NoSQL: nieuwlichterij in databaseland
Deze week trekken we ons strakke tijdsreizigerspakje aan, niet om Hole in the Wall te spelen, maar even het Cambrium te bezoeken. Dat is zomaar eventjes 530 miljoen jaar terug in de tijd.
Het Cambrium was het toneel van de oerknal van het leven. Een periode waar in ijltempo tal van nieuwe levensvormen ontstonden die uiteindelijk mee aan de basis lagen van de huidige hogere diersoorten.
De omstandigheden waren dan ook ideaal: de man met de baard had de zuurstofkraan eindelijk opengedraaid. De beestjes van weleer konden vrijuit ademen in plaats van het bewerkelijke alternatief van de fotosynthese.
De ons zo bekende en vertrouwde databases bevinden zich vandaag in een soortgelijke Cambrische renaissance: mede door het succes van het web en de Moore-overstijgende zucht naar immer groeiende opslag- én zoeknoden van informatie, is er op zéér korte termijn een niet te negeren frisse wind gaan waaien in DBA-land: NoSQL – een kreet die tal van actuele alternatieve niet-relationele databases groepeert.
Grote informatieboeren
Een half stapje terug brengt ons naar de ontstaansgeschiedenis van NoSQL: de grote informatieboeren van vandaag zoals Google, Amazon, LinkedIn en Facebook. Organisaties die opslag- en opzoeknoden hebben waar de enterprisewereld nog maar van kan dromen. Deze informatiegiganten hebben, soms na enig vallen en opstaan, vrij resoluut voor het eigen ambacht gekozen, en zelf de opslagtoepassingen gebouwd die de servers in hun datacenters warm houden.
En via de wonderen van het softwaresalonsocialisme, namelijk open source, zijn de afgelopen twee, drie jaar een resem NoSQL-oplossingen in handbereik van een breder publiek gekomen. Al dan niet getrouwe implementaties van relevante academische papers over dit nieuwe kennisdomein (Google BigTable en Amazon Dynamo zijn uw zoektermvrienden).
De vier takken van NoSQL
De NoSQL-familie kent grofweg vier takken: kolom en document stores, key-value stores, en graph databases. Voor iedere oude en jongere programmeeromgeving zijn er verschillende opties voorhanden, met vaak exotisch klinkende namen als Cassandra, MongoDB, Redis, CouchDB, HBase (de Hadoop database) en héél veel andere.
Die New Kids on the Block van NoSQL hebben een Mening, ja zelfs een Opinie (en gelukkig geen afzakkende broeken). En hun design is vaak geoptimaliseerd voor die omgevingen waar schaalbaarheid en beschikbaarheid voorgaan op tijdelijke inconsistentie. Wat hen gek genoeg ook karakteriseert, is het ontbreken van een zoektaal, zoals SQL er één is voor relationele databanken. Dus je kan er iets instoppen en uithalen, maar alleen als je weet hoe iets heet of geadresseerd kan worden. Ad-hoc queries of dynamische indexen zijn ook grote afwezigen in NoSQL-context.
Gekke nieuwe databases zonder zoektaal, dat klinkt als ‘object databases – the sequel’, niet? Toch vinden de eerste NoSQL-bedrijven vlot venture capital, en rijzen de meet-ups, informele bijeenkomsten van NoSQL-gebruikers en ontwikkelaars, als paddenstoelen uit de grond.
En anders dan tijdens het OODBMS-tijdperk zijn er tal van gratis – pardon – openbronimplementaties waar je snel mee aan de slag kan, die vaak verrassend stabiel en volledig zijn. Dat moet ook als organisaties als Microsoft (Bing/Powerset) of Yahoo hun strategische data aan pakweg Hadoop/Hbase toevertrouwen.
Blijvertje
NoSQL-databases dus. Oude wijn in nieuwe zakken, maar wat mij betreft een blijvertje. Hoog tijd dus om als architect na te beginnen denken over een andere manier om bestaande problemen op te lossen: hoe maak ik mijn applicatie schaalbaar en beschikbaar op een ROI-vriendelijke manier?
Want dat is misschien de killer application van NoSQL: door terug naar de basics te gaan en te schalen met goedkope clusters aan commodity hardware los je misschien het luxeprobleem van groei op zonder pakweg peperdure Oracle RAC-licencies.
Op zondag 7 februari, in de coulissen van Fosdem, Europa’s grootste openbronbijeenkomst, gaat er een informele NoSQL-meet-up door van 9 tot 5. Tot NoSQL, tot Fosdem?