NutsDB

NutsDB is a key/value store database written in Go. Like other database systems, NubsDB uses transaction to track all the operations. All transactions happened in NutsDB is fully serializable and to better store and manipulate data, it supports many different data structures such as list, set and sorted set. Transactions are categorized into types based on their level of access. In other words, there are read-only and read-write transactions. Multiple read-only transactions are allowed at the same time, and they could, of course, read values from a bucket using a key or traverse the buckets to find a range of key-value pairs. However, only one read-write transaction is allowed at the same time and it could read, update and delete from the data storage.

History

NutsDB is developed mainly by Jiajun Xu, currently a CTO for a Chinese tech company based in Hangzhou. The motivation is that the author wants a simpler, faster, and more persistent key/value store database system. The first commit is on Dec 7, 2018, and the development goes from that point till Aug 29, 2019, which is the latest commit. There are in total of 303 commits, and most of which are coming from the author himself. It currently has 948 stars and growing. It is not derived or forked from any other database systems. However, the author adopted Bitcask as the key/value store and retrieval model. The author further optimized it using B+ tree as index to compensate Bitcask's limitations in range and prefix scanning.

Data Model

Key/Value

System Architecture

Embedded

NutsDB Logo
Website

https://xujiajun.cn/nutsdb/

Source Code

https://github.com/xujiajun/nutsdb

Tech Docs

https://xujiajun.cn/nutsdb/

Developer

Jiajun Xu

Country of Origin

CN

Start Year

2018

Project Type

Open Source

Written in

Go

Supported languages

Go

Operating Systems

Linux, OS X, Windows

Licenses

Apache v2