How to Write to SSDs

Dit artikel toont aan dat het overgaan op 'out-of-place' schrijven in database-systemen essentieel is om SSD-prestaties te maximaliseren en de levensduur te verlengen, wat leidt tot aanzienlijke verbeteringen in doorvoersnelheid en een drastische reductie van schrijfgrootte.

Bohyun Lee, Tobias Ziegler, Viktor Leis

Gepubliceerd Wed, 11 Ma
📖 5 min leestijd🧠 Diepgaand

Each language version is independently generated for its own context, not a direct translation.

🚀 De Kunst van het Schrijven op een SSD: Waarom "Op de Plaat" niet meer werkt

Stel je voor dat je een enorme bibliotheek beheert (een database) en je moet boeken (data) opslaan in een modern magazijn (een SSD-schijf). Vroeger, met oude harde schijven, was het magazijn een beetje als een oude kast: je kon een boek op een specifieke plank zetten, en als je het wilde updaten, nam je het oude boek weg en legde je het nieuwe er direct op.

Maar moderne SSD's werken heel anders. Ze zijn als een super-snel, maar kwetsbaar magazijn dat niet van "vervanging" houdt. Ze werken liever met nieuwe boeken op nieuwe plekken en gooien de oude, verouderde boeken pas later weg in een grote opruimronde.

Deze paper (van onderzoekers van de TU München en TigerBeetle) laat zien dat de meeste databasesystemen (zoals MySQL of PostgreSQL) nog steeds doen alsof ze in een oude kast werken. Ze proberen boeken op de oude plek te vervangen. Dit zorgt voor enorme chaos, onnodig veel werk en versnelt de slijtage van het magazijn.

De oplossing? Stop met "op de plek" werken en begin met "op een nieuwe plek" werken.

Hier is hoe ze dat doen, vertaald in alledaagse taal:

1. Het Probleem: De "Dubbele Werk" en de "Opruimramp"

Wanneer een database een update doet, gebeurt er vaak iets dwaas:

  • De Dubbele Werk (Doublewrite): Om zeker te zijn dat niets kapot gaat bij een stroomuitval, schrijven systemen het boek eerst op een tijdelijke plek en daarna pas op de definitieve plek. Dit verdubbelt het werk.
  • De Opruimramp (Garbage Collection): Omdat je niet op de oude plek mag schrijven, moet de SSD later de hele plank leegmaken om ruimte te maken. Maar als er nog een paar "goede" boeken op die plank staan, moet de SSD die eerst verplaatsen naar een nieuwe plank voordat hij de oude kan wissen.
    • Het resultaat: Je vraagt om 1 boek te schrijven, maar de SSD moet er 4 of 5 verplaatsen en herschrijven. Dit noemen ze Write Amplification (Schrijfgroei). Het is alsof je een brief wilt posten, maar de postbode eerst drie andere buren moet bezoeken om hun brieven te verplaatsen voordat hij jouw brief kan bezorgen.

2. De Oplossing: De "Slimme Verhuizer" (Out-of-Place Writes)

De auteurs zeggen: "Laten we stoppen met proberen op de oude plek te schrijven. Laten we gewoon een nieuwe plek kiezen!"

Ze hebben een nieuwe database-engine gebouwd (ZLeanStore) die als een slimme verhuizer werkt:

  • Nieuwe plekken: Als een boek verandert, krijgt het een nieuwe, vrije plek in het magazijn. De oude plek wordt gewoon gemarkeerd als "niet meer geldig".
  • Geen dubbele werk: Omdat je direct op de nieuwe plek schrijft, hoef je niet eerst een kopie te maken. Dat scheelt direct 50% van het werk.

3. De Slimme Trucs (De "Magische" Optimalisaties)

Alleen op een nieuwe plek schrijven is goed, maar de auteurs hebben nog vier slimme trucjes toegevoegd om het magazijn nog efficiënter te maken:

  • 📦 Inpakken (Page Packing):
    Stel, je hebt een boek dat na het updaten veel kleiner is geworden (bijvoorbeeld door compressie). In een oud systeem zou je een hele grote plank gebruiken voor een klein boek, wat ruimteverspilling is.

    • De truc: De verhuizer pakt meerdere kleine boeken in één grote doos (een vaste 4KB-granulariteit). Zo past er meer in, en de postbode (de SSD) hoeft maar één doos te dragen in plaats van veel losse kleine enveloppen.
  • ⏰ De "Levensduur"-Groepering (Deathtime Grouping):
    Sommige boeken worden elke dag vernieuwd (zoals nieuws), andere blijven jaren staan (zoals archief).

    • De truc: De verhuizer groepeert boeken die ongeveer op hetzelfde moment "dood" gaan (verouderd zijn) samen in dezelfde plank. Als de opruimronde (Garbage Collection) komt, kan de hele plank leeg worden gegooid zonder dat er nog goede boeken tussen zitten. Geen verplaatsen meer nodig!
  • 🚧 De "Geen Chaos"-Regel (NoWA Pattern):
    Soms schrijven meerdere verhuizers tegelijkertijd, waardoor ze per ongeluk boeken van verschillende planken door elkaar gooien.

    • De truc: De database houdt streng toezicht. Hij zorgt ervoor dat als hij een nieuwe plank begint te vullen, hij die eerst helemaal vol maakt voordat hij begint aan de volgende. Zo voorkomt hij dat de SSD later halve planken hoeft op te ruimen. Dit garandeert dat de SSD nooit meer hoeft te "verplaatsen" dan strikt noodzakelijk.
  • 🗣️ Praten met de Schijf (ZNS & FDP):
    Moderne SSD's hebben nieuwe talen gesproken (zoals ZNS en FDP).

    • De truc: In plaats van dat de database raadt waar de SSD ruimte heeft, zegt de database precies: "Ik doe dit boek in dit specifieke vakje." De SSD luistert en doet precies wat er gezegd wordt. Hierdoor is er geen enkele onnodige verplaatsing meer.

4. Het Resultaat: Sneller en Langer Leven

Door deze aanpak te gebruiken, laten de onderzoekers zien dat:

  • De snelheid verdubbelt: De database kan veel meer transacties per seconde verwerken omdat de SSD niet meer verstrikt raakt in onnodig werk.
  • De levensduur verdubbelt (of meer): Omdat er 6 tot 10 keer minder fysieke schrijfbewerkingen nodig zijn, gaat de SSD veel langer mee. Het is alsof je een auto rijdt met een veel zuiniger motor; je tankt minder vaak en de motor slijt minder snel.
  • Kostenbesparing: Minder schrijfwear betekent dat je minder vaak nieuwe dure schijven hoeft te kopen en minder stroom verbruikt.

Conclusie

De kernboodschap is simpel: Databases moeten stoppen met proberen de SSD te "bedriegen" door op de oude plek te schrijven. Ze moeten juist samenwerken met de SSD, gebruikmaken van nieuwe plekken, en slim plannen wanneer ze opruimen.

Het is de overstap van een chaotische, handmatige verhuizing naar een geautomatiseerd, logistiek perfect magazijnsysteem. En dat maakt het niet alleen sneller, maar ook goedkoper en duurzamer.