MySQL NDB Cluster: Set up a shared nothing high availability cluster in 15 minutes by Saroj Tripathy
YouTube-ingenjörer utvecklar en uppsättning programvaror, kallad Vitess, som hjälper till att öppna MySQL-databaser med öppen källkod effektivare i mycket stora produktionsmiljöer. För att skriva koden använder de Googles programspråk Go.
YouTube använder redan en Vitess-komponent, kallad Vtocc, för att hjälpa till att tjäna videor till alla tjänsten 800 miljoner månadsanvändare. Google förvärvade YouTube 2006.
Vtocc har varit mycket stabil och har alla nödvändiga verktyg för dig att använda i en produktionsmiljö, säger YouTube-arkitekten Sugu Sougoumarane, som tillsammans med YouTube-ingenjören Mike Solomon diskuterade Vitess vid Usenix LISA (Large Installation System Administration) konferensen, höll denna vecka i San Diego.
Att Vitess är skrivet i Go kan hjälpa till att validera idén om att detta relativt nya programmeringsspråk skulle kunna användas i storskaliga produktionsmiljöer. Google introducerade version 1 av Go i mars.
YouTube serverar mer än 4 miljarder timmar med video varje månad. Omkring 72 timmars video laddas upp till tjänsten varje minut. Medan YouTube lagrar alla sina videoklipp direkt på ett filsystem använder den MySQL för att lagra alla metadata som behövs för att tjäna varje video, till exempel användarpreferenser, annonseringsinformation, land anpassningar och andra nödvändiga bitar av information.
YouTube gillar att använda MySQL för sin tillförlitlighet, sade Salomon, en av de ingenjörer som ursprungligen byggde tjänsten. Det har krångligheter, men de här frågorna är välkända och kan mildras ganska lätt, sa han. Men MySQL har också problem med skalering - åtminstone skalning för att rymma en tjänst som är lika stor som YouTube.
"Det stora problemet med MySQL är att när du kommer till en viss punkt [av användningen] spenderar du mycket av tidsstyrning av hårdvara och hur många instanser du har ", sa Salomo. "Vi vill automatisera den chunken. Vi vill vidta alla åtgärder som är komplicerade och felaktiga och gör att det läker sig själv."
MySQL är inte särskilt effektiv när den används i en stor implementering. Vanligtvis kräver varje anslutning till MySQL sin egen tråd på servern. Detta tillvägagångssätt är dock inte genomförbart i storleksordningen av YouTubes verksamhet. "Att driva tiotusentals anslutningar är inte riktigt livskraftigt", säger Salomon.
Företagets ingenjörer har emellertid varit ovilliga att försöka byta kärnan MySQL-koden själv och notera att man ändrar det komplexa och något svårt att -underkodskod kan ofta resultera i oförutsedda effekter. "Det är inte enkelt. Precis när du tror att du vet vad du gör, då börjar du komma i trubbel," sa Solomon.
Så Vitess skapades för att köras i samband med MySQL för att erbjuda ytterligare ledningsfunktioner. Vtocc-komponenten konsoliderar exempelvis tusentals inkommande SQL-frågor i ett mindre antal satser, så MySQL kan ta färre resurser som uppfyller dessa önskemål. Vtocc analyserar även frågor så att de kan utföras mer effektivt och reducerar arbetet som orsakas av dubbla frågor genom att återanvända resultaten från en fråga för att tillgodose de andra identiska förfrågningarna.
Med Go har YouTube-utvecklare tillåtit att vara mer produktiva än de skulle har använt ett mer traditionellt språk, sa Sougoumarane.
Go kod sammanställs snabbt, sa han. De 30 000 raderna av kod i Vitess kan sammanställas i binärer på cirka 30 sekunder. Och, tack vare en rik uppsättning bibliotek, kräver många uppgifter inte så mycket programmering. Sougoumarane skrev till exempel en 105-linjers rutin som periodiskt trimmer loggfiler, funktionalitet som inte kunde ha skrivits i så få rader med C eller C ++.
"Så uttrycksfull Go är", sa Sougoumarane. "Språkfunktionerna är väl genomtänkta. De hjälper dig att komponera saker på en mycket elegantare sätt än traditionella språk." Sougoumarane lovordade också Gos samtidiga stöd, som är avgörande för användning i multicore-processorer. "Du behöver inte oroa dig för att hantera trådar. Gå hantera dem för dig," sa han.
Språket har också vissa nackdelar, även Sougoumarane erkände. Felhantering kan till exempel förbättras. Schemaläggning och skräpsamling kan också använda lite arbete.
Salomon sa att Vitess kommer över tiden att ta på sig ytterligare uppgifter, såsom databasreplikation och automatisk sharding, så en databas kan växa över flera servrar utan ingripande från administratörer.
Joab Jackson täcker företagsprogramvara och allmänna teknikbrytande nyheter för IDG News Service. Följ Joab på Twitter på @Joab_Jackson. Joabs e-postadress är [email protected]
Palm's senaste Treo är en snygg och väl ansluten Windows Mobile Treo, men den är dyr eftersom den saknar bärarstöd. Njut av framgång med sina sportiga Centro-modeller. Palm tar några av de lärdomar som den lärt sig tillbaka till Treo-affärslinjen: Palm Treo Pro integrerar vissa Centro-designelement med operativsystemet Windows Mobile 6.1 och med de robustare funktionerna i samtida BlackBerrys för att producera en elegant smart telefon byggd med den bildmedvetna företagsanvändaren i åtanke.
All sådan stil och kraft kommer dock inte billigt. Palm Treo Pro debuterar på $ 549. Till viss del beror det på att det säljs olåst vilket innebär att du inte får den typ av bärarsubvention som har gjort iPhone 3G så överkomligt. Men å andra sidan kan du använda den på en GSM-operatör över hela världen genom att enkelt sätta in den bärarens SIM-kort i enheten. Denna flexibilitet är utmärkt för frekventa resenärer - du är inte knuten till en operatör eller en långsiktig plan, och du kan popa på e
En ny dator är som en låda med choklad ... om lådan var halvfull av choklad du inte bryr dig om, och du var tvungen att få alla bra kakor separat, en efter en. Med andra ord är nya datorer ofta besvärade med oönskad programvara (även känd som crapware), och kommer inte med de verktyg du verkligen behöver för att få jobb. För att bli av med crapware finns det PC Decrapifier. Men när det är borta måste du installera alla bra saker - och där gratis verktyg Ninite kan göra ditt liv lyckligt enkelt.
Du börjar använda Ninite innan du hämtar den, genom att välja vilken programvara du vill installera från en lista på Ninite-webbplatsen.
Två företag som erbjuder tredjeparts support för Oracles öppna källkod MySQL-databas, liksom MySQL-offshooten MariaDB, har meddelat planerar att slå samman.
Två företag som erbjuder stöd från tredje part för Oracles open-source MySQL-databas, liksom MySQL-offshooten MariaDB, har meddelat planer på att slå samman.