Azure Friday | Container-native developer experiences, Part 1 - Overview
Inženýři společnosti YouTube vyvíjejí soubor softwaru nazvaný Vitess, který pomůže open source MySQL databázům pracovat efektivněji ve velkých výrobních prostředích. K napsání kódu používají programovací jazyk Google Go.
YouTube již používá jednu komponentu Vitess, nazvanou Vtocc, která pomáhá poslouchat videa všem uživatelům 800 milionů měsíčně. Google získal YouTube v roce 2006.
VTCc je "velmi stabilní a má všechny potřebné nástroje, které můžete použít ve výrobním prostředí," řekl architekt YouTube Sugu Sougoumarane, který společně s inženýrem YouTube Mikeem Solomonem diskutoval o společnosti Vitess na konferenci Usenix LISA (Large Installation Administration Administration), která se konala tento týden v San Diegu.
To, že Vitess je napsáno v Go, by mohlo pomoci ověřit myšlenku, že tento relativně nový programovací jazyk může být použit ve velkých výrobních prostředích. Společnost Google představila v březnu verzi 1. Go
Služba YouTube poskytuje měsíčně více než 4 miliard hodin videa. Do služby se každou minutu nahrává přibližně 72 hodin videa. Zatímco YouTube ukládá všechna videa přímo do souborového systému, používá MySQL k ukládání všech metadat potřebných k zobrazování každého videa, například uživatelských preferencí, reklamních informací, přizpůsobení země a dalších potřebných bitů informací.
YouTube rád používá MySQL pro jeho spolehlivost, řekl Solomon, jeden z inženýrů, kteří původně vybudovali službu. To má zvláštní pocity, ale ty vzpomínky jsou dobře známé a lze je poměrně snadno zmírnit, řekl. Nicméně MySQL má také problémy se škálováním - minimální škálování, aby vyhovovalo službě tak velké jako služba YouTube.
"Hlavním problémem s MySQL je to, že jakmile se dostanete do určitého bodu [využití], utratíte hodně časové řízení hardwaru a kolik případů máte, "řekl Solomon. "Chceme automatizovat tento blok. Chceme provést každou akci, která je komplikovaná a náchylná k chybám, a uzdravíme ji sama."
MySQL také není příliš efektivní, pokud se používá ve velkém nasazení. Obvykle každé připojení k serveru MySQL vyžaduje vlastní podproces na serveru. Tento přístup není však možný v rozsahu operací YouTube. "Běžící desítky tisíc připojení není opravdu životaschopné," uvedl Solomon.
Inženýři společnosti se však zdráhali pokusit změnit základní kód MySQL a poznamenat, že změny komplexní a poněkud obtížně - pochopení kódu může často mít za následek neočekávané účinky. "Není to jednoduché, právě když si myslíte, že víte, co děláte, to je, když se začnete dostávat do problémů," řekl Solomon.
Takže Vitess byl vytvořen pro běh ve spojení s MySQL, aby nabídl další možnosti správy. Komponenta Vtocc například konsoliduje tisíce příchozích SQL dotazů do menšího počtu šarží, takže MySQL může mít méně prostředků, které tyto požadavky splňují. VTCC také analyzuje dotazy, aby mohly být spouštěny efektivněji, a snižuje práci způsobenou duplicitními dotazy tím, že znovu použijí výsledky z jednoho dotazu, aby vyhověly ostatním identickým požadavkům.
Používání technologie Go umožnilo vývojářům YouTube zvýšit produktivitu, používají tradiční jazyk, řekl Sougoumarane.
Rychle se překračuje kód, řekl. 30 000 řádků kódu ve formátu Vitess může být zkompilováno do binárních souborů přibližně za 30 sekund. A díky bohaté sadě knihoven mnohé úkoly nevyžadují tolik programování. Například Sougoumarane napsal rutinu o 105 řádcích, která pravidelně upravuje log soubory, funkce, které nemohly být napsány v několika řádcích pomocí C nebo C ++. "Tak je to expresivní Go," řekl Sougoumarane. "Jazykové funkce jsou dobře promyšlené, pomáhají vám složitějším způsobem věci než tradičními jazyky." Sougoumarane také chválil Goova souběžnou podporu, nezbytnou pro použití v multicore procesorech. "Nemusíte se starat o správu vláken. Jděte je spravovat za vás," řeklJazyk má také některé nevýhody, připustil Sougoumarane. Chyba při manipulaci může být například vylepšena. Plánování a shromažďování odpadků by mohly využít i některé práce.
Šalamoun řekl, že časem bude společnost Vitess přebírat další povinnosti, jako je například replikace databází a automatické shazování, takže databáze může růst na více serverech bez zásahu administrátorů.
Joab Jackson pokrývá podnikový software a obecné technologické novinky pro
IDG News Service
. Sledujte Joab na Twitteru @ @ Joab_Jackson. Joabova e-mailová adresa je [email protected]
ATI Acquisition stále váží na AMD
Společnost AMD oznámila, že za druhé fiskální čtvrtletí bude hradit 880 milionů dolarů v souvislosti s bývalými obchodními jednotkami společnosti ATI ...
Software Group váží pirátství žalobu proti eBay
SIIA zvažuje žalovat eBay kvůli umožnění prodeje padělaného softwaru