De allersnelste database is er geen

En de goedkoopste ook! 💰

Voor de recente ontwikkeling van mijn “Cannect” app had ik een backend nodig die kandidaten ter beoordeling voorstelt, en beschikbare kandidaten aan elkaar koppelt. Dit is een relatief eenvoudig algoritme, maar wel met potentieel veel data die bovendien doorlopend wijzigt. Omdat mijn doel was om de backend zo goedkoop mogelijk te houden, besloot ik om de actuele data niet in een database te bewaren en met SQL te queryen, maar als datastructuren in het geheugen van de server.

Het gevolg is een oplossing die met minimale processing grote hoeveelheden transacties kan verwerken, omdat de data rechtstreeks in het geheugen beschikbaar is, en de interactie met een externe database niet meer nodig is. Dit maakt dat een eenvoudige server meer capaciteit levert, en de operationele kosten van een SQL database zowel in performance als geld zijn voorkomen.

Omdat servers soms herstart moeten worden, heb ik in plaats van de database een mechanisme toegevoegd dat de evolutie per evenement in een bestand schrijft. Normaal worden deze bestanden nooit meer gelezen, maar na een reset kan de server hiermee toch terug worden gebracht in de laatste stabiele toestand. Deze oplossing is net zo simpel als hij doeltreffend is.

Na het aflopen van een evenement kan bovendien het bijbehorende bestand zonder impact op het systeem worden gearchiveerd tot het definitief wordt vernietigd. Dat is laatste wel zo goed voor de privacy van de deelnemers. 🕵️