Kompanija „Facebook“ neseniai pristatė duomenų bazių valdymo sistemą „WebScaleSQL“, kuri sukurta „MySQL“ – populiarios „Oracle“ reliacinės duomenų bazės su atviru išeities kodu – pagrindu. Kartu su socialiniu tinklu prie projekto dirbo ir „Google“, „LinkedIn“ bei „Twitter“ inžinieriai.
Visos šios kompanijos turi bendrą bruožą: joms tenka aptarnauti puslapius su precedentų neturinčiu apkrovimo lygiu. Pavyzdžiui, „Facebook“ jau turi 1,23 mlrd. aktyvių vartotojų, ir šis rodiklis auga toliau. Prieš keletą metų, kai socialinis tinklas turėjo „tik“ 800 mln. vartotojų (65 proc. dabartinio rodiklio), „Facebook“ turimi „MySQL“ serveriai įvykdydavo maždaug 60 mln. užklausų per sekundę.
Paprasta „MySQL“ versija ne per geriausiai susidoroja su tokia užduotimi, tačiau ji turi ir kitą privalumą – atvirus išeities kodus. Jie naudojami, siekiant ištaisyti klaidas savarankiškai, ir „Facebook“ specialistai prieš keletą metų pradėjo naudotis šia galimybe. Tą patį darė ir kiti interneto gigantai, susidūrę su analogiškomis problemomis, tad dabar buvo nuspręsta jėgas apjungti.
„Mūsų tikslas, plėtojant „WebScaleSQL“ – garantuoti daug glaudesnį bendradarbiavimą tarp „MySQL“ bendruomenės, kuri susiduria su didžiulėmis apkrovomis. Projektas leis susikoncentruoti ties aspektais, kurie svarbiausi būtent jiems“, – kompanijos tinklaraštyje teigė „Facebook“ inžinierius Stephan Greene.
Nemažai naujovių, kurie išskiria „WebScaleSQL“ iš kitų, yra susijusios su funkcionalumu, kuris supaprastina bendrą darbą prie naujo projekto. Čia galima rasti ir naują „frameworką“, leidžiantį automatiškai testuoti ir publikuoti kiekvieno pasiūlyto pakeitimo rezultatus, apkrovimo testavimo priemones ir eilę naujų testų.
Visa tai supaprastins kūrimo procesą ateityje, tačiau svarbiausia vis tik yra kitas dalykas. „WebScaleSQL“ skiriasi nuo „MySQL“ daugybe pakeitimų, kurios skirtos padidinti duomenų bazės produktyvumo lygį. Be to, pridėtas naujas funkcionalumas, palengvinantis nuolat didėjančios sistemos valdymą.
Dar įdomesni pakeitimai numatyti ateityje. Tarp jų yra ir asinchroninis „MySQL“ klientas. Jis neleis blokuoti duomenų bazės prisijungiant, siunčiant užklausas arba gaunant rezultatus. Asinchroninis klientas jau keletą mėnesių naudojamas „Facebook“ specialistų. Kai tik šį pasiūlymą patvirtins kiti projekto dalyviai, jis bus įtrauktas į „WebScaleSQL“ kodą.
„WebScaleSQL“ kūrėjai ypatingai pabrėžia, kad projektas nėra „MySQL“ atšaka, t. y. projektas nebus plėtojamas nepriklausomai nuo „MySQL“. Planai kiti: po kiekvienos naujos „MySQL“ versijos pasirodymo visi atlikti pakeitimai ir naujovės bus integruoti ir į „WebScaleSQL“.