VanillaDB

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

Logging

Physiological Logging

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.

Isolation Levels

Read Committed Serializable Repeatable Read

VanillaDB supports transactions at different isolation levels concurrently.

Data Model

Relational

Checkpoints

Non-Blocking

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

Two-Phase Locking (Deadlock Detection)

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.

VanillaDB Logo
Website

http://www.vanilladb.org/

Source Code

https://github.com/vanilladb/vanillacore

Developer

National Tsing Hua University

Country of Origin

TW

Start Year

2016

Project Type

Academic, Open Source

Written in

Java

Operating Systems

All OS with Java VM

Licenses

Apache v2