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

Database Entry

Blazegraph


Source Code
https://github.com/blazegraph/database[02]
Developer
Country of Origin
US
Start Year
2006 [13]
Former Name
Bigdata
Project Types
Commercial, Open Source
Written in
Java
Supported Languages
C, C++, Java, JavaScript, PHP, Python, Ruby
Operating Systems
Linux, macOS, Windows
License
GPL v2

Database Entry

Blazegraph


Checkpoints[03]


Due to the multiversion concurrency control (MVCC) architecture, read-only operations never block.

Concurrency Control[04]


Blazegraph supports transactions. Blazegraph uses Multi-Version Concurrency Control (MVCC), which can be viewed as a version of Optimistic Concurrency Control (OCC).

Data Model[05]


Blazegraph functions as a triplestore (RDF) and graph database. As a graph database, Blazegraph uses a graph structure of nodes and edges to represent data. Blazegraph also supports the triplestore (RDF) data model, which can be viewed as a specialized version of graph databases that is optimized for storing and retrieving triples.

Foreign Keys[06]


Blazegraph supports the use of foreign keys, as well as joins on foreign keys.

Hardware Acceleration[07]


GPU

The commercial version of Blazegraph supports GPU-accelerated queries.

Indexes[08]


Blazegraph uses B+ trees in its architecture. Keys and values are both implemented as byte arrays. Blazegraph provides an interface for both single-machine and scale-out B+ trees. Use of this interface requires the user to manage concurrency control.

Isolation Levels[09]


Blazegraph uses snapshot isolation. Read-only transactions are always supported and returns a fully consistent view of the database state as of the user-specified commit point. Read-write transactions buffer writes on isolated indices and commit only if the write set has been validated.

Joins[10]


Blazegraph supports both nested index joins (referred to as pipelined joins) and hash joins. Nested index joins are considered to be "zero investment" joins when used for an RDF (triplestore) database. Hash joins are built dynamically during query evaluation. Blazegraph supports hash join operators that run on JVM heap, as well as hash join operators that run on the native process heap. The former is more appropriate for lower volumes of data, while the latter is more appropriate for higher volumes.

Query Execution[11][03]


Blazegraph uses a vectorized query execution model that supports concurrency at the operator level and query plan level.

Query Interface[12]


Blazegraph's query interface aligns with SPARQL standards. Note that SPARQL semantics uses a sequential approach in join operations. Blazegraph may reorder join groups in order to minimize query time.

Revision #7