FineDB is a multi-threaded NoSQL DBMS written in C. Amaury Bouchard from France created this database for the pure reason of wanting to experiment with the skills required to create a database management system. It is based on Nanomsg and LMDB and is currently open-sourced and available on Github. It handles all basic queries. It uses LMDB as its internal storage manager, so all detailed information on the storage model can be found on LMDB's page.[04]
- Website
- http://www.finedb.org[01]
- Source Code
- https://github.com/Amaury/FineDB[02]
- Developer
- Country of Origin
- FR
- Start Year
- 2013 [10]
- Project Type
- Open Source
- Written in
- C
- Derived From
- LMDB
- Embeds / Uses
- LMDB
- License
- Apache v2
FineDB is a multi-threaded NoSQL DBMS written in C. Amaury Bouchard from France created this database for the pure reason of wanting to experiment with the skills required to create a database management system. It is based on Nanomsg and LMDB and is currently open-sourced and available on Github. It handles all basic queries. It uses LMDB as its internal storage manager, so all detailed information on the storage model can be found on LMDB's page.[04]
History[05][06][02]
FineDB was created by Amaury Bouchard of France in June of 2013, listed on his website as a project that he could use to learn more about network programming, multi-threading, replication and clustering. There have been no major updates to the code since September of 2013.
Compression[07]
FineDB makes use of Google's Snappy (previously known as Zippy), which is open-source and written in C++. Snappy uses byte-oriented encoding during the compression process.
Data Model[08]
After compression, data is stored in a key with a description (1 byte), replication timestamp (8 bytes), expiration time stamp (8 bytes), and the data (n bytes). The length of the key is 64KB and length of the data is 4GB.
Query Interface[09]
The server uses a binary protocol to communicate with the client. The requests contain a byte describing the command and is followed by other data if the request requires it. The response follows a similar format.
System Architecture
There are three main types of threads in the server. The main thread creates the other threads while listening for connections. The write thread writes into the LMDB storage engine asynchronously. The communication threads read in the requests and communicate with the client-side.
Citations
10 sources- http://www.finedb.org finedb.org
- GitHub - Amaury/FineDB: High-performance nosql database. Written in C, multi-threaded, based on LightningDB and nanomsg. · GitHub github.com
- http://www.finedb.org/page/show/1/protocol finedb.org
- https://dbdb.io/db/lmdb dbdb.io
- Amaury.net amaury.net
- http://www.finedb.org/page/show/16/development-status finedb.org
- Snappy (compression) - Wikipedia wikipedia.org
- http://www.finedb.org/page/show/27/storage finedb.org
- http://www.finedb.org/page/show/1 finedb.org
- Initial commit github.com