Hlavní navigace

MySQL bude mít nový storage engine ze solidDB

23. 8. 2006 22:19 (aktualizováno) | suchy

Kolem populární databáze mySQL se vznáší několik měsíců nejistota. Proč vlastně? (Pokud vývoj kauzy sledujete, přeskočte tento odstavec).

MySQL obsahovala původně pouze vlastní storage engine MYISAM (prapůvodně jenom ISAM), který nikdy nebyl zamýšlen na podporu transakcí. Jak mySQL rostla, začali zákaznící vyžadovat transakce a tak bylo třeba vytvořit nový storage engine. Místo vytvoření úplně nového kódu, navázalo MySQL AB (to je firma tvořící mySQL) spolupráci s firmou Sleepycat Software, která dodává BerkeleyDB (BDB), a s firmou Innobase Oy Inc., která dodává InnoDB. Oba enginy umí transakce, ale InnoDB má o něco více vlastností a hlavně umí zamykat jednotlivé řádky (BDB jenom stránky). InnoDB si svými vlastnostmi velmi rychle získalo popularitu a k mySQL přivedlo větší firmy. Anthony Curtis řekl, že „možná jsme byli v MySQL AB trochu líní (k psaní vlastnímu enginu), možná si mysleli, že partnerství s InnoBase bude trvat věčně a možná MySQL AB časem Innobase koupí.“ Jenže se tak nestalo a Innobase koupil Oracle. Ještě ani odkoupení firmy nebylo oficiálně zveřejněno a už se začaly objevovat spekulace, proč se tak stalo. První co každého napadlo, že chce Oracle potopit MySQL AB (Oracle to popřelo, což většinu lidí v tomto názoru jen utvrdilo). Druhou možností je, že Oracle koupil Innobase, protože chtěl vylepšit vlastní engine protože InnoDB má efektivnější model pro konzistentní čtení (paradoxem je, že při návrhu InnoDB měl Heikki Tuuri za vzor právě Oracle). Pravděpodobné je, že oba důvody se vzájemně doplnovaly. Faktem je, že od té doby je kolem MySQL nejistota (např. i u Lukačoviče.) Nezasvěcení se mohou ptát v čem je problém? InnoDB je licencované pod GPL, takže připadně stačí udělat fork a pokračovat dále podobně jako u XFree86/Xorg. Jenže to nejde ze dvou důvodů. Zaprvé MySQL nemá žádného vývojáře, který by pracoval na InnoDB. Všichni jsou v Innobase a tudíž v Oracle. A zkoušeli jste někdy adoptovat tak velký projekt, na kterém jste osobně nepracovali? Tudy cesta nevede. Zadruhé MySQL potřebuje InnoDB i pod jinou licencí než GPL. Ačkoliv to zní paradoxně – MySQL AB je existenčně závislé na tom, aby si mohlo InnoDB kupovat/licencovat. MySQL totiž žije z toho, že prodává licence na MySQL. Pokud totiž váš produkt obsahuje mySQL a vy ho prodáváte dál, tak si musíte koupit licenci na mySQL. A aby vám ji mohla MySQL AB prodat, tak musí koupit licenci na InnoDB. No a pokud ji Innobase odmítne prodat, tak si InnoDB sice MySQL AB může stáhnout zdarma, ale GPL licence ji neumožní prodat své produkty. A MySQL tak přijde o svůj (prakticky jediný) zdroj příjmů. A protože na rozdíl od PostgreSQL není kolem mySQL vybudovana komunita vývojařů a veškerý vývoj probíhá prakticky jenom v MySQL AB, tak s krachem MySQL AB by zřejmě skončilo i mySQL. Nebo by se přinejmenším na dlouhou dobu zastavil vývoj.

Minulé pondělí ohlásilo MySQL AB partnerství se Solid IT a dodávce solidDB storage enginu pro mySQL. Co to bude znamenat pro mySQL? SolidDB má plnou podporu transakcí a ACID vlastností, takže by se mohl stát rovnocenou alternativou k InnoDB. 26. dubna bude předveden v Santa Claře prototyp solidDB pod mySQL, takže tam možná poprvé uvidíme zda bude solidDB alternativou k InnoDB. Uvidíme.

Jenže co když se bude historie opakovat? Co když Larry furiantsky bouchne do stolu: „A koupíme i Solid IT!“ Mimochodem z prohlášení CEO Solid IT, že tímto krokem si chtějí rozšířit své trhy a získat další zákazníky, mám dojem, že by se klidně koupit dali. Skoro se mi to zdá jako nepřímá nabídka Oraclu: „A nás byste nechtěli?“. Ale možná je to jenom můj dojem.

Takže v nejbližší době dojde na lámání chleba. Pokud za pár měsíců koupí Oracle Solid IT, pak bude jasné, že v Oraclu vyhlásili MySQL AB válku. Pokud se tak nestane, tak si mnoho lidí oddechne a nejistota kolem mySQL opadne a InnoDB zřejmě dále zůstane v mySQL, protože kdyby ne, tak tím nikdo nic nezíská (protože je tu náhrada solidDB) a naopak spoluprácí jenom získají (peníze, trhy, pozici a uživatele).

V MySQL už sice plánují i vlastní storage engine podporující transakce, ale to jim bude několik let trvat. Takže letošní rok bude pro MySQL kritický. A uvidíme, zda solidDB bude schopno nahradit InnoDB. Zda Oracle koupí i Solid IT. Zda Innobase potažmo Oracle bude dále prodávat licence na InnoDB. Plusem pro MySQL AB je, že je to malá firma, takže v nejhorším případě by asi i přežila rok obléhání Oraclem.

Přidávat nové názory je zakázáno.