Nieuwe cache servers op basis van flash geheugen kunnen het energieverbruik van datacenters terugdringen. Niet alleen verbruikt het flash geheugen zelf minder energie, ook kan dankzij de hogere opslagdichtheid van flashgeheugen de hoeveelheid cache servers in datacenters worden teruggedrongen.
Het nieuwe systeem is ontwikkeld door onderzoekers van het Computer Science and Artificial Intelligence Laboratory (CSAIL) van de het Massachusetts Institute of Technology (MIT). Veel moderne websites slaan data op in database. Aangezien database queries relatief langzaam zijn, maken veel websites gebruik van cache servers waarin de resultaten van de meest voorkomende opdrachten worden opgeslagen om pagina’s sneller toegankelijk te maken.
RAM vs flash
Cache servers maken over het algemeen gebruik van random-access geheugen (RAM). Dit geheugen is snel, maar heeft echter ook een relatief hoog prijskaartje en een relatief hoog energieverbruik. Onderzoekers van het CSAIL hebben daarom een nieuw systeem ontwikkeld waarin het RAM-geheugen is vervangen door flash geheugen, dat ook wordt gebruikt in veel smartphones.
Per gigabyte aan geheugen verbruikt flash slechts zo’n 5% van de energie die RAM-geheugen verbruikt. Daarnaast is de opslagdichtheid van flash ongeveer 100 keer groter, waardoor meer data in een kleinere ruimte kan worden opgeslagen. Hierdoor kan het aantal caching servers in datacenters worden teruggedrongen. De onderzoekers van het MIT stellen dan ook dat hun nieuwe caching servers het energieverbruik van datacenters flink kunnen terugdringen. Zo zijn in grote datacenters van bijvoorbeeld Google en Facebook al snel 1.000 servers toegewijd aan caching. In dergelijke grote datacenters kan de energiebesparing – en daarmee kostenbesparing – dan ook fors oplopen.
Lagere prestaties
Flash heeft echter ook een nadeel ten opzichte van RAM. Zo is flash naar schatting 10.000 keer langzamer dan dynamisch RAM (DRAM). De onderzoekers van MIT wijzen erop dat flash echter nog steeds veel sneller is dan de menselijke reactiesnelheid. Een verzoek via RAM wordt gemiddeld in 0,0002 seconde verwerkt, terwijl het verwerken van een verzoek via flash gemiddeld 0,0004 seconde in beslag neemt. Het MIT benadrukt dat een gebruiker dit tijdsverlies in de praktijk niet zal merken.
De snelheid waarmee verzoeken wordt verwerkt heeft echter ook invloed op de hoeveelheid verzoeken die een caching server kan verwerken. In het systeem van het CSAIL, dat BlueCache wordt genoemd, wordt dit probleem aangepakt door ‘pipelining’ toe te passen. Dankzij deze techniek kan een cache server voordat het resultaat van de eerste query wordt verstuurd, al beginnen met de volgende 10.000 queries. De onderzoekers stellen dat het verwerken van de eerste query in dit geval wellicht 200 microseconden in beslag neemt, maar de reactietijd voor de hierop volgende verzoeken zal teruglopen tot .02-microseconde.
DRAM combineren met flash
Daarnaast hebben de onderzoekers een tweetal ‘trucjes’ toegepast om de snelheid van BlueCache te verhogen. Zo hebben zij een klein beetje DRAM toegevoegd aan iedere BlueCache flash cache. Het gaat hierbij om enkele megabytes aan RAM per miljoenen megabytes aan flash. De DRAM slaat een tabel op die een database query koppelt aan het flash memory geheugen van het bijbehorende resultaat. Dit maakt cache lookups niet zo zeer sneller, maar versnelt wel de detectie van ontbrekende data die nog niet in de cache is geïmporteerd.
Een cache systeem voert doorgaans slechts drie soorten operaties uit: het lezen van een waarde uit de cache, het schrijven van een nieuwe waarde naar de cache en het verwijderen van eenwaarde uit de cache. Deze operaties worden doorgaans uitgevoerd door software. De tweede ‘truc’ die het team van MIT heeft toegepast is het gebruik van speciaal ontwikkelde hardware circuit ontwikkeld voor ieder van deze drie operaties. Dit verhoogt de snelheid waarmee deze operaties worden uitgevoerd en verlaagt tegelijkertijd het energieverbruik.
4,2 keer sneller
Deze trucjes leveren tijdwinst op. Om deze tijdwinst inzichtelijk te maken hebben de onderzoekers BlueCache vergeleken met wat de onderzoekers noemen ‘een standaard implementatie van een flash-gebaseerde cache server’. Dit is een database server is die geconfigureerd is voor caching. BlueCache was 4,2 keer sneller dan deze standaard implementatie.