InceptionDB was born to be the persistence layer of another project called Bitumen. Bitumen is a distributed NAS that should store family memories, pictures and videos that should last for 50 or 100 years. One of the biggest motivations is that the code should be simple and easy to maintain (yes, even the database itself) and also 100% free of license restrictions. The second biggest motivation is to have fun and learn some things :D.
InceptionDB stores all the data in memory and also a copy on disk in the form of a journal. When the service starts, the journal is read and applied to recreate the last valid state in memory. From that point on, it is ready to continue operation. One lateral effect is that you can recover the state of the whole database at any point in the past.
It supports unique indexes that can be:
It does not have a scheduler, so the user has the responsibility to choose the proper index (or do a full scan). The main drawback is that adding a new index will require modifying the application.
InceptionDB has been designed to be small and easy to read, not to be blazing fast, but some performance tests reach more than 200K inserts per second with 2 indexes in one node.