Introduction
JonoonDB is a multi-model database. It aims to do what specialized databases (row stores, column stores, nosql stores etc.) do at equal or better performance.
JonoonDB is a multi-model database. It aims to do what specialized databases (row stores, column stores, nosql stores etc.) do at equal or better performance.
Well we have too many, somewhere north of 100. But the real question is why do we have so many databases. If it’s a solved problem, we should have maybe less than 5 right? The truth is a lot of databases just cover a thin vertical slice of the overall data use cases. We need a database that can cover all the data uses cases or at least try. JonoonDB is an attempt to write such a database.
I would agree if we were talking about a pair of shoes. But we are talking about a pretty sophisticated piece of software (JonoonDB) that is already catering to a wide range of use cases.
The most important ones are:
The secret sauce is that JonoonDB internally keeps the same record in many different forms. This allows JonoonDB to behave as a row store, column store or a document store depending upon the query. JonoonDB's query planner is even smart enough to use these different forms in a single query plan to perform really fast queries.
JonoonDB uses a row oriented format for on disk representation. Also, it allows the user to create different kinds of indexes (InvertedCompressedBitmaps, Vector and more to come.) that are only stored in memory. Keeping the indexes in memory allows us to do very fast inserts as compared to traditional databases.
No. Everything you write to the database is reliably written to the disk in a transaction. It’s even protected against process and OS crash. However, to get the best performance the indexes need to fit in memory and that is a recommendation that all leading database have so there is nothing new here.
The indexes have to be rebuilt and that can take time proportional to your database size. It will reduce your database availability and the way we propose to make JonoonDB highly available is to use replica sets (Part of the JonoonDB roadmap).
Damn skippy!