Car-tech

YouTube skala MySQL sa Go kodom

Week 9

Week 9
Anonim

Inženjeri YouTubea razvijaju skup softvera, nazvan Vitess, koji će pomoći MySQL bazama podataka otvorenog koda da rade učinkovitije u vrlo velikim proizvodnim okruženjima. Da biste napisali kôd, upotrebljavaju Googleov programski jezik Idi.

YouTube već koristi jednu Vitess komponentu, pod nazivom Vtocc, kako bi pomogla poslužiti videozapise svim korisnicima 800 milijuna mjesečnih usluga. Google je 2006. godine kupio uslugu YouTube.

Vtocc je bio "vrlo stabilan i ima sve potrebne alate za upotrebu u proizvodnom okruženju", izjavio je arhitekt Sugu Sougoumarane na YouTubeu koji je zajedno s inženjerom YouTubea Mikea Solomona raspravljao o Vitessu na konferenciji Usenix LISA održanog ovog tjedna u San Diegu.

To je Vitess napisano u Go-u moglo bi pomoći u potvrđivanju ideje da se ovaj relativno novi programski jezik može koristiti u velikim proizvodnim okruženjima. Google je uvela verziju 1 Go u ožujku.

YouTube služi više od 4 milijarde sati videozapisa svaki mjesec. Oko 72 sata videozapisa prenosi se u servis svake minute. Dok YouTube pohranjuje sve svoje videozapise izravno na datotečni sustav, MySQL upotrebljava MySQL pohranu svih metapodataka potrebnih za posluživanje svakog videozapisa, kao što su preferencije korisnika, informacije o oglašavanju, prilagodbe zemlje i ostale bitne informacije.

YouTube voli koristiti MySQL za njegovu pouzdanost, rekao je Solomon, jedan od inženjera koji je izvorno izgradio uslugu. Ima čudovišta, ali oni su poznati i mogu se lako ublažiti, rekao je. Međutim, MySQL ima problema s skaliranjem - barem skaliranjem kako bi se smjestio servis veći od YouTubea.

"Najveći problem s MySQL-om je da kada jednom dođete do određene točke [upotrebe], potrošite mnogo vrijeme upravljanja hardverom i koliko ste slučajeva ", rekao je Solomon. "Želimo automatizirati taj komad, želimo poduzeti sve akcije koje su komplicirane i pogreške su sklone i čine ga samim."

MySQL također nije vrlo učinkovit kada se koristi u velikoj implementaciji. Obično svaka veza s MySQL-om zahtijeva vlastitu nit na poslužitelju. Međutim, ovaj pristup nije moguće ostvariti na razini operacija YouTubea. "Provođenje desetaka tisuća veza nije stvarno izvedivo", rekao je Solomon.

Inženjeri tvrtke, međutim, nerado su pokušavali promijeniti samu jezgru MySQL koda, ističući kako bi promjene u kompleksu i pomalo teže -upoznavanje koda često može rezultirati neočekivanim efektima. "Nije izravno, samo kada mislite da znate što radite, to je kad počinjete u nevolji", rekao je Solomon.

Dakle, Vitess je stvoren da radi zajedno s MySQL-om kako bi ponudio dodatne mogućnosti upravljanja. Vtocc komponenta, na primjer, konsolidira tisuće dolaznih SQL upita u manji broj batchova tako da MySQL može potrajati manje resursa koji ispunjavaju te zahtjeve. Vtocc također analizira upite kako bi se mogli učinkovitije izvršiti i smanjuje rad uzrokovan dvostrukim upitima ponovnim korištenjem rezultata iz jednog upita kako bi zadovoljio ostale identične zahtjeve.

Korištenje usluge Go omogućilo je razvojnim programerima usluge YouTube da budu produktivniji nego što bi to učinili koristili su više tradicionalni jezik, rekao je Sougoumarane.

Idi kod se brzo sastavlja, rekao je. 30.000 linija koda u Vitessu može se sastaviti u binarnima za otprilike 30 sekundi. Zahvaljujući bogatom skupu knjižnica, mnogi zadaci ne zahtijevaju toliko programiranje. Na primjer, Sougoumarane je napisao 105 redaka koji povremeno skraćuje log datoteke, funkcionalnost koja nije mogla biti napisana u nekoliko redaka pomoću C ili C +. "Tako je izražajni Go", rekao je Sougoumarane. "Značajke jezika su dobro promišljene i pomažu vam da sastavite stvari na mnogo elegantniji način od tradicionalnih jezika." Sougoumarane je također pohvalio Goovu podršku konkurentnosti, od vitalnog značaja za upotrebu u višespojnim procesorima. "Ne morate se brinuti o upravljanju temama, nego ih upravlja njima", rekao jeJezik također ima neke padove, priznao je Sougoumarane. Na primjer, može se poboljšati rukovanje pogreškama. Zaključivanje i sakupljanje smeća može poslužiti i nekom radu.

Solomon je rekao da će tijekom vremena Vitess preuzeti dodatne dužnosti, kao što je replikacija baze podataka i automatsko brisanje, tako da baza podataka može rasti na više poslužitelja bez intervencije administratora.

Joab Jackson pokriva softverske programe i opće tehnološke vijesti za

IDG News Service

. Slijedite Joab na cvrkut na @Joab_Jackson. Joabova adresa e-pošte je [email protected]