DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

BoJack


BoJack is a single-node key-value store written in Crystal. It has since been built out to additionally support Python, Ruby, and Elixir.

Source Code
https://github.com/marceloboeira/bojack[01]
Developer
Country of Origin
DE
Start Year
2016 [07]
Project Type
Open Source
Written in
Crystal
Supported Languages
Crystal, Elixir, Python, Ruby
Inspired By
Redis
Operating System
Linux
License
MIT License

Database Entry

BoJack


BoJack is a single-node key-value store written in Crystal. It has since been built out to additionally support Python, Ruby, and Elixir.

History[02]


The systems was started by Marcelo Boeira in 2016 as a learning vehicle for understanding NoSQL database systems.

Checkpoints


Concurrency Control[03]


BoJack does not provide any kind of concurrency control. Concurrent client requests are handled by the Crystal language's concurrent Channel class.

Data Model[01]


BoJack's data model relies on a key/value store which maps string keys to string array values.

Foreign Keys[01]


As BoJack is a key-value store, SQL joins are not supported.

Indexes


Joins


Logging[04]


Bojack logs, in addition to errors, individual commands for any client action, along with the date and time of interaction, and the client's address and port.

This includes anytime a client connects, or a key is set, updated, or deleted.

Query Compilation


Query Interface[05]


Bojack provides a standard command-line interface for starting the server and connecting clients.

Storage Architecture


Storage Model[06]


BoJack uses Crystal's default hash table to store its data as key-value pairs.

Storage Organization


Stored Procedures


System Architecture


Views


Revision #13