Skip to content

BisonDBA document database built from scratch

BSON storage, hand-written B+Trees, and a Compass-style GUI.

BisonDB

Download

BisonDB

The engine — bisond, bisonsh, bisonc. For the terminal.

Prairie

The GUI — a Compass-style desktop client.

Sixty seconds in the shell

$ bisond --dir data\db
[info] bisond listening on 127.0.0.1:27027
·
$ bisonsh --username admin
BisonDB 1.2.0 @ 127.0.0.1:27027  (as admin)
bisondb> db.zips.find({pop: {$gt: 100000}}).explain()
{ "plan": "scan", "docsExamined": 29470, "docsReturned": 4 }
bisondb> db.zips.createIndex('pop')
{ "built": true, "docsIndexed": 29470 }
bisondb> db.zips.find({pop: {$gt: 100000}}).explain()
{ "plan": "index_range", "index": "pop", "docsExamined": 4, "docsReturned": 4 }
index_range on "pop" — examined 4, returned 4

That 29470 → 4 collapse is the whole point of the B+Tree.

BisonDB and Prairie are GPLv3 · educational projects.