ActorDB is a distributed relational SQL database, which is strongly consistent, massively concurrent, and horizontally scalable. It supports no single point of failure and uses no global read or write locks. To achieve the features provided, ActorDB uses Raft distributed consensus algorithm on top of an existing stable SQL database engine. ActorDB splits the dataset into small independent chunks, which is inspired by the "Actor Model". The database is designed for microservices, saas solutions, and (mobile) app backends.
Started with the project "Emit Cloud", which is a file synchronization application like Dropbox, the developers at Biokoda found problems in achieving no single point of failure and horizontal scalability. To solve the problem, developers at Biokoda extended SQLite's WAL format to implement Raft consensus algorighm. In the later versions, LMDB is used as the storage engine for ActorDB. ActorDB was first launched in 2014.
Pages are compressed in ActorDB using LZ4, which is a general-purpose algorithm.
Although ActorDB is concurrent on the database level, it is not on each actor. The storage engine LMDB employs MVCC.
ActorDB doesn't need any special drivers, as developers can use MySQL driver of the language of choice. ActorDB is connectable over the MySQL protocol. It is also connectable to the thrift interface, which supports languages including C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, and so on.
Commercial, Open Source
Linux, OS X, Windows