RubatoDB is an academic database project started by Dr. Li-Yan Yuan at University of Alberta, Canada. It falls into the category of a NewSQL system. It aims to provide the scalable performance similar to NOSQL systems while maintaining the traditional ACID guarantees present in relational databases. SQL is support is provided as the primary language with interfaces such as JDBC and ODBC. It has been implemented through a staged architecture consisting of a grid of staged modules connected through explicit queues. It implements a novel formula protocol for distributed concurrency control called as Formula DB a layer on top of Berkeley DB providing three levels of consistency guarantees :- ACID, BASE and BASIC. All table partitions and files along with the indexes are stored as Berkeley DB files where the transnational layer of Berkeley DB is switched off.[04][05][06]
- Website
- https://rubatodb.com/[01]
- Developer
- Country of Origin
- CA
- Start Year
- 2014 [08]
- Project Type
- Academic
- Derived From
- Berkeley DB
RubatoDB is an academic database project started by Dr. Li-Yan Yuan at University of Alberta, Canada. It falls into the category of a NewSQL system. It aims to provide the scalable performance similar to NOSQL systems while maintaining the traditional ACID guarantees present in relational databases. SQL is support is provided as the primary language with interfaces such as JDBC and ODBC. It has been implemented through a staged architecture consisting of a grid of staged modules connected through explicit queues. It implements a novel formula protocol for distributed concurrency control called as Formula DB a layer on top of Berkeley DB providing three levels of consistency guarantees :- ACID, BASE and BASIC. All table partitions and files along with the indexes are stored as Berkeley DB files where the transnational layer of Berkeley DB is switched off.[04][05][06]
History[05]
The name Rubato has been taken from the Italian word, "rubare". This literally translates to soft and subtle rhythmic changes in performance. This corresponds from RubatoDB's support for various types of consistencies giving full freedom.
Concurrency Control[07][05]
Concurrency Control in Rubato DB is provided through two different layers :-
1) Transaction Stage - This is present in all grid servers and is responsible for data integrity at a per server level. It supports operations like pre_commit, commit and rollback. 2) Formula DB - This is a thread free-layer present on the top over all the Berkeley DB nodes, orchestrating the transactions and allowing the system to provide three levels of consistency :-
A) ACID - The traditional Relational DBMS consistency guarantees, Atomicity, Consistency, Isolation and Durability. B) BASE - This is one of models of the NoSQL world with weak consistency semantics. BASE stands for Basically Available with Soft State Eventual Consistency. C) BASIC - Rubato DB also provides a middle ground of the both SQL and new SQL worlds, standing between the two extremes. BASIC stands for Basic Availability, Scalability and Instant Consistency.
The BASE and BASIC models differ on choosing one spectrum of the CAP theorem, either providing instant availability with fast queries or providing consistent results with higher latency.
Data Model[06]
RubatoDB is a Key-Value store due to the underlying data model of BerkeleyDB. Support is provided for variable length keys and access through BTree Indexes.
Citations
8 sources- Rubato DB rubatodb.com
- http://webdocs.cs.ualberta.ca/~yuan/databases/rubatodb/rubatodb_dist.4.0.2.tar.gz ualberta.ca
- The Documentation of RubatoDB ualberta.ca
- Rubato DB rubatodb.com
- https://doi.org/10.1145/2723372.2735380 doi.org
- https://doi.org/10.1145/2661829.2661879 doi.org
- https://doi.org/10.1109/BigData.2014.7004206 doi.org
- https://rubatodb.com/documentation.html rubatodb.com