Scaling with Go: YouTube's Vitess
YouTube-ingeniører utvikler et sett med programvare, kalt Vitess, som vil hjelpe open-source MySQL-databaser til å fungere mer effektivt i svært store produksjonsmiljøer. For å skrive koden bruker de Googles programmeringsspråk Go.
YouTube bruker allerede en Vitess-komponent, kalt Vtocc, for å hjelpe med å vise videoer til alle 800 millioner månedlige brukere av tjenesten. Google kjøpte YouTube i 2006.
Vtocc har "vært veldig stabil, og den har alle nødvendige verktøy for deg å bruke i et produksjonsmiljø," sa YouTube arkitekt Sugu Sougoumarane, som sammen med YouTube-ingeniør Mike Solomon diskuterte Vitess på konferansen Usenix LISA (Large Installation System Administration), holdt denne uken i San Diego.
At Vitess er skrevet i Go kan bidra til å validere ideen om at dette relativt nye programmeringsspråket kan brukes i store produksjonsmiljøer. Google introduserte versjon 1 av Go i mars.
YouTube serverer mer enn 4 milliarder timer med video hver måned. Omtrent 72 timers video lastes opp til tjenesten hvert minutt. Mens YouTube lagrer alle sine videoer direkte på et filsystem, bruker det MySQL til å lagre alle metadataene som trengs for å vise hver video, for eksempel brukerinnstillinger, annonseringsinformasjon, landtilpasninger og andre nødvendige biter av informasjon.
YouTube liker å bruke MySQL for sin pålitelighet, sa Salomon, en av de ingeniører som opprinnelig bygget tjenesten. Det har kjennskap, men de kjendingene er velkjente og kan mildnes ganske enkelt, sa han. MySQL har imidlertid også problemer med skalering - minst skalering for å imøtekomme en tjeneste som er så stor som YouTube.
"Det store problemet med MySQL er at når du kommer til et bestemt punkt [av bruk], bruker du mye av tidsstyring av maskinvare og hvor mange forekomster du har, "sa salomon. "Vi ønsker å automatisere den chunken. Vi ønsker å ta alle handlinger som er kompliserte og feilproblemer og få det til å helbrede seg selv."
MySQL er heller ikke veldig effektiv når den brukes i en stor distribusjon. Vanligvis krever hver forbindelse til MySQL sin egen tråd på serveren. Denne tilnærmingen er imidlertid ikke mulig i omfang av YouTubes operasjoner. "Kjører titusenvis av tilkoblinger er ikke veldig levedyktig," sa Salomon.
Selskapets ingeniører har imidlertid vært motvillige til å prøve å endre kjerne MySQL-koden selv, og noterer seg at det gjør endringer i det komplekse og noe vanskelig å Forstå kode kan ofte resultere i uventede effekter. "Det er ikke greit. Bare når du tror du vet hva du gjør, da begynner du å komme i trøbbel," sa Salomon.
Så Vitess ble opprettet for å kjøre sammen med MySQL for å tilby ytterligere ledelsesfunksjoner. Vtocc-komponenten, for eksempel, konsoliderer tusenvis av innkommende SQL-spørringer i et mindre antall batcher, slik at MySQL kan ta færre ressurser som oppfyller disse forespørslene. Vtocc analyserer også spørringer, slik at de kan utføres mer effektivt, og reduserer arbeidet som skyldes dupliserte spørringer ved å gjenbruke resultatene fra ett søk for å tilfredsstille de andre identiske forespørslene.
Bruke Go har tillatt YouTube-utviklere å være mer produktive enn de ville har brukt et mer tradisjonelt språk, sa Sougoumarane.
Go-koden kompilerer raskt, sa han. De 30 000 kodelinjene i Vitess kan kompileres til binærfiler på omtrent 30 sekunder. Og takket være et rikt sett med biblioteker krever mange oppgaver ikke så mye programmering. For eksempel skrev Sougoumarane en 105-linjers rutine som periodisk trimmer loggfiler, funksjonalitet som ikke kunne ha blitt skrevet i så få linjer ved å bruke C eller C ++.
"Det er så uttrykksfulle Go," sa Sougoumarane. "Språkfunksjonene er godt gjennomtenkte. De hjelper deg å komponere ting på en langt mer elegant måte enn tradisjonelle språk." Sougoumarane roste også Go's samtidige støtte, avgjørende for bruk i multicore-prosessorer. "Du trenger ikke å bekymre deg for å administrere tråder. Go administrerer dem for deg," sa han.
Språket har også noen ulemper, også Sougoumarane innrømmet. Feilhåndtering kan for eksempel forbedres. Planlegging og søppelsamling kan også gjøre noe arbeid.
Salomon sa at Vitess vil overta tid på å påta seg flere oppgaver, for eksempel databasereplikasjon og automatisk skjæring, slik at en database kan vokse på flere servere uten inngrep fra administratorer.
Joab Jackson dekker enterprise software og generell teknologi bryte nyheter for IDG News Service. Følg Joab på Twitter på @Joab_Jackson. Joabs e-postadresse er [email protected]
Palm's nyeste Treo er en slank og godt tilkoblet Windows Mobile Treo, men den er kostbar fordi den mangler support. Gledet seg suksess med sine sportslige Centro-modeller, tar Palm noen av leksjonene den lærte der tilbake til Treo-forretningslinjen: Palm Treo Pro integrerer visse Centro designelementer med Windows Mobile 6.1-operativsystemet og med de mer robuste funksjonene til moderne BlackBerrys å produsere en elegant smart telefon som er bygget med den bildebevisste bedriftens bruker i tanke
All den stilen og kraften kommer imidlertid ikke billig. Palm Treo Pro debuterer på $ 549. Til dels skyldes det at det blir solgt ulåst, noe som betyr at du ikke får den typen bærerstøtte som har gjort iPhone 3G så rimelig. Men på den annen side kan du bruke den på en hvilken som helst GSM-operatør over hele verden ved bare å sette inn den bærerens SIM-kort inn i enheten. Denne fleksibiliteten er utmerket for hyppige reisende - du er ikke bundet til en operatør eller en langsiktig plan, og du ka
To selskaper som tilbyr tredjeparts støtte til Oracles åpen kildekode MySQL database, samt MySQL offshoot MariaDB, har kunngjort planlegger å fusjonere.
To selskaper som tilbyr tredjepartsstøtte til Orakles open-source MySQL-database, samt MySQL-offshooten MariaDB, har annonsert planer om å fusjonere.
For en besøkende på nettstedet er det ganske frustrerende å tenke hvis man har spørsmål om et innlegg på nettstedet, men kan ` t finne noen metoder for å spørre nettstedet eier, i tillegg kommenterer i nevnte innlegg. Venterprosessen er usikker, da det kanskje til og med tar dager for nettstedseierne å svare, med mindre de overvåker sine nettsteder 24/7. Men leserne er ikke de eneste som blir skadet med områdets manglende evne til å kommunisere direkte med sine lesere - siden de ender med å gi d
Chatwing