GridDB

GridDB is a distributed Key-Value Store (KVS) database built by Toshiba. It has Key-Container data model and time-series functions which are designed specifically to target large data generated by IoT devices. It can be accessed by C and Java APIs, or TQL, a custom SQL-like query language.

History

Toshiba started development of GridDB in 2011. Its first commercial release was in 2013. The community edition (CE) was open-sourced in 2016. Compared with CE, the standard version has better software support and more administrative tools.

Concurrency Control

Multi-version Concurrency Control (MVCC)

GridDB adopts MVCC to realize READ\_COMMITTED. It improves throughput as multiple transactions can access data that is prior to the update concurrently.

Data Model

Key/Value

The data model of GridDB is key-container model which extends typical NoSQL Key-Value store. Containers are comparable to tables in Relational Database and consist of two types: _Collection Container_ for general purpose; and _TimeSeries Container_ for time series data where each tuple in the container is associated with a timestamp as ROWKEY.

Indexes

B+Tree Hash Table

GridDB has three types of index: hash index (HASH), tree index (TREE) and space index (SPATIAL). Hash index is used in equivalent-value search and tree index is used in comparison such as range search. The data structure of tree index is B+Tree.

Isolation Levels

Read Committed

GridDB supports READ\_COMMITTED as transaction isolation level. In READ\_COMMITTED, dirty read is impossible as data is only updated when the transaction is committed. However, non-repeatable read may happen as within the same transaction, if the data is read again, it may be updated by a committed transaction between the two reads and return different result from the previous read.

Joins

Not Supported

GridDB does not support JOIN operation. All JOIN operations have to be implemented in the application.

Query Interface

Custom API SQL HTTP / REST Command-line / Shell

GridDB has a Web-application GUI (gs\_admin) and command line tool (gs\_sh) that integrates cluster operations. For queries, GridDB supports TQL, a custom subset of SQL for GridDB that includes search and aggregation. Although TQL does not support some SQL clauses such as GROUP_BY and JOIN, it has additional operations for time-series data. GridDB provides C and Java API for TQL.

Storage Architecture

Hybrid

GridDB has "Memory first, Storage second" structure where frequently accessed data is stored in memory. The rest data is moved to disks.

Stored Procedures

Not Supported

System Architecture

Shared-Nothing

GridDB has a master-slave architecture. All nodes in the cluster contain partitioned data and one node acts as the master. If the master node fails, an election is held and another node is promoted to be the master.

GridDB Logo
Website

https://griddb.net/en/

Source Code

https://github.com/griddb/griddb_nosql

Tech Docs

https://griddb.net/en/docs/documents/1-1_what-is-griddb.php

Developer

Toshiba Corporation

Country of Origin

JP

Start Year

2011

Project Type

Commercial, Open Source

Written in

C++

Supported languages

C, C++, Go, Java, Perl, PHP, Python, Ruby

Operating Systems

Linux

Licenses

AGPL v3, Apache v2