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

Database Entry

VanillaDB


VanillaDB is a single node, multi-threaded relational database engine that partially supports the SQL-92 standard.

Source Code
https://github.com/vanilladb/vanillacore[02]
Country of Origin
TW
Start Year
2016
Project Types
Academic, Open Source
Written in
Java
Operating System
All OS with Java VM
License
Apache v2

Database Entry

VanillaDB


VanillaDB is a single node, multi-threaded relational database engine that partially supports the SQL-92 standard.

Checkpoints[03]


VanillaDB supports non-quiescent checkpointing, which means it stops accepting new transactions but still allows current running transactions to continue when checkpointing. The checkpointing will be done periodically active transactions will be saved in the log.

Concurrency Control[04]


VanillaDB implements strict two-phase locking protocol in multiple granularities: file, block and record. And vanillaDB supports time-limit deadlock detection, which means transactions have to rollback when they wait a lock for too long.

Data Model


Indexes[05]


VanillaDB supports both hash index and B-tree index.

Isolation Levels[04]


VanillaDB supports transactions at different isolation levels concurrently.

Logging[03]


VanillaDB implements write ahead logging (WAL) under No-Force/Steal buffering policy, and VanillaDB supports value-level log granularity. Meanwhile, VanillaDB implements ARIES recovery algorithm.

Storage Architecture[06]


VanillaDB is a disk-oriented database, and each transactions maintain its own buffer manager in memory

Citations

6 sources
  1. VanillaDB - Simple, fast, and extensible database system prototypes vanilladb.org
  2. GitHub - vanilladb/vanillacore: The core engine of VanillaDB · GitHub github.com
  3. Transaction Management vanilladb.org
  4. Transaction Management vanilladb.org
  5. Indexing vanilladb.org
  6. Memory Management vanilladb.org
Revision #4 Last Updated: