Nya databasalternativ BASE och VMDBMS

Den databas-teknologi vi idag använder har varit oförändrad sedan 70-talet. Nu kommer nya alternativ eftersom de äldre  inte klarar dagens höga krav. Databasen är en flaskhals och man kan kanske inte lösa det så enkelt som att lägga till mer datorkraft. Som grupp kallas dessa databaser NoSQL, men det finns olika grundideer. No SQL skrivs numera (Not only SQL) och många lösningar bygger på SQL, men utan de gamla flaskhalsarna.

Alternativen är obeprövade i stor skala och har sina nackdelar och problem, men idéerna och tankarna bakom är intressanta.

BASE

BASE är ett annorlunda tankesätt där man tummar på en av grundreglerna. BASE betyder (basically available, soft state, eventually consistent) och bygger på idéen att man i vissa fall kan tillåta icke-konsistent data under korta perioder för användarna som några sekunder. Efter en tidsperiod blir data konsistent. Användarna av lösningarna måste acceptera detta, men det är inte mer konstigt än att saldot för kreditkort blir korrekt först några dagar efter att transaktionerna gjorts.

Läs mer på http://queue.acm.org/detail.cfm?id=1394128

VMDBMS – hämtat från en produkt från Starcounter

I Java och C# finns en virtuell maskin (VM) som lagrar programmets objekt i minnet. Med RAM-databaser har man kunnat förbättra prestanda med tusentals ggr. Svårigheten och begränsningarna finns i att lagra data permanent. För det är en vanlig databas(DBMS) bättre. Med VMDBMS menas en kombination.

Jag har läst om en intressant produkt inom området från ett svenskt bolag Starcounter. Som jag förstått deras material fungerar det så här: VM lagrar normalt data i en HEAP som i detta fallet inte är RAM-minne utan istället en DBMS. Skrivningen delas upp så att enbart transaktionerna loggas direkt på disk medan själva lagringen i tabellerna sker asynkront i bakgrunden. Man får styrkan från RDBMS och hastigheten från skrivningar i RAM-minnet.

En intressant konsekvens är att man får transaktionshantering av minnet(HEAP) vilket gör att man inte behöver hantera samtidig skrivning från flera parallella processer(thread-safety). Transaktionshanteringen gör att man styr när förändringen blir synlig för andra processer.

Produkten bygger på optimistisk låsning, men det känsliga tidspannet blir kortare när skrivningarna går fort och därmed sjunker risken för konflikt.

Läs mer på: http://www.starcounter.com/VMDBMS-white-paper.pdf