Over

Data & Architectuur

Een Verschuiving in de Fundering van de Datastore

De beslissing welke database u kiest voor een nieuw enterprise-applicatieproject (het ‘persistence’ model) is de meest invloedrijke en onomkeerbare keuze die een softwarearchitect kan maken. In de begindagen van het internet beheerste de relationele database (RDBMS), zoals PostgreSQL en MySQL, de wereld met ijzeren vuist. Ze boden ACID-garanties (Atomic, Consistent, Isolated, Durable), wat betekende dat uw data 100% betrouwbaar en gestructureerd werd weggeschreven. Echter, in de afgelopen decennia is de groei van cloud-scale applicaties geëxplodeerd, met enorme, complexe architecturen en asynchrone data stromen tot gevolg. Dit introduceerde onverwachte knelpunten in traditionele relationele database-architecturen.

Relationele databases zijn van oudsher ontworpen om ‘verticaal’ (scale-up) te schalen: als u meer capaciteit nodig heeft, moet u de fysieke server verzwaren (meer RAM en CPU). Deze verticale schaalbaarheid kent een harde, fysieke, en enorm dure limiet. Dit creëerde de perfecte storm voor de NoSQL revolutie, en tegenwoordig, de opkomst van NewSQL-systemen.

De NoSQL Beweging (MongoDB en Cassandra)

Om te voldoen aan de eisen van web-scale applicaties, ontstond in de vroege jaren ’10 de NoSQL-beweging (Not Only SQL). Databases zoals MongoDB (Document-based) en Cassandra (Wide-Column Store) wezen de rigide tabel-structuur en buitenlandse sleutels (foreign keys) af. Hun primaire voordeel: ze zijn ontworpen om horizontaal (scale-out) te schalen op commodity hardware (goedkope cloud-servers). Als uw database vol raakt, klikt u simpelweg een nieuwe server (‘node’) in het cluster erbij en de database verdeelt (shard) de data automatisch.

Ontwikkelaars waardeerden NoSQL, specifiek document-stores zoals MongoDB, omdat ze direct JSON-objecten vanuit hun applicatie (JavaScript/NodeJS) naar de database konden sturen zonder de complexe vertaalslagen van een Object-Relational Mapper (ORM). Echter, ze leverden hier wel transactionele garanties (ACID) en krachtige ad-hoc JOIN queries voor in, wat NoSQL vaak ongeschikt bleek te maken voor kritieke financiële of e-commerce domeinen waar dataconsistentie prioriteit nummer één is.

De Renaissance van PostgreSQL

Ondertussen is de relationele ‘oude garde’ niet blijven stilstaan. PostgreSQL wordt door ontwikkelaars vandaag de dag geprezen als de meest geavanceerde open-source database ter wereld. Het heeft veel functies geadopteerd die NoSQL uniek maakten. Met het native JSONB datatype kunt u in PostgreSQL ongestructureerde JSON-documenten opslaan én indexeren, en er razendsnelle queries op uitvoeren. Hierdoor functioneert PostgreSQL voor veel organisaties als een capabele ‘NoSQL’ document-store, terwij het nog steeds de absolute kracht behoudt van relationele consistentie, triggers, constraints, en subqueries.

NewSQL: Best of Both Worlds (CockroachDB & Spanner)

Wat als u de absolute ACID-transactionele garanties en SQL-taal van PostgreSQL nodig heeft, maar ook de horizontale, gedistribueerde schaalbaarheid en robuustheid (weerbaarheid tegen downtime) van Cassandra? Deze behoefte creëerde de nieuwste categorie in databaseland: ‘NewSQL’ (of Distributed SQL).

Technologieën zoals Google Cloud Spanner en open-source alternatieven zoals CockroachDB en TiDB vormen de koplopers in dit nieuwe veld. CockroachDB, wiens naam verwijst naar de onverwoestbaarheid van de kakkerlak, is ontworpen om een complete datacenter-brand of netwerk-onderbreking te overleven zonder dataverlies of downtime. Het verdeelt datablokken over meerdere datacenters of continenten heen en gebruikt gedistribueerde consensus algoritmes (zoals Raft) om te zorgen dat knooppunten altijd overeens zijn over de status van de transacties, ongeacht de netwerk-latency. Het feit dat developers met deze systemen communiceren via een standaard, vertrouwde SQL-verbinding, verlaagt de drempel enorm. Lees diepgaand over de connectie tussen databases en cloud-architecturen op de experts-hub van Computable.

Volgende:

Inhoudsopgave

Geverifieerd door MonsterInsights