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.

Storage Architecture

Disk-oriented

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

Isolation Levels

Read Committed Serializable Repeatable Read

VanillaDB supports transactions at different isolation levels concurrently.

Data Model

Relational

VanillaDB is a relational database.

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.

Query Interface

Command-line / Shell

VanillaDB supports to be access by SQL, JDBC and native query interfaces.

Indexes

Hash Table

VanillaDB supports both hash index and B-tree index.

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