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

Database Entry

Blazegraph


Blazegraph is an open-source graph database system written in Java. Blazegraph is supported for use on a standalone server, as well as a highly available (HA) replication cluster. ACID properties are fully supported in both use cases. Blazegraph makes use of multi-version concurrency control (MVCC). As a graph database, Blazegraph is optimal for storing and querying linked data. Blazegraph uses RDF and RDR as the standards for the data model.[03]

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

Database Entry

Blazegraph


Blazegraph is an open-source graph database system written in Java. Blazegraph is supported for use on a standalone server, as well as a highly available (HA) replication cluster. ACID properties are fully supported in both use cases. Blazegraph makes use of multi-version concurrency control (MVCC). As a graph database, Blazegraph is optimal for storing and querying linked data. Blazegraph uses RDF and RDR as the standards for the data model.[03]

History[02][04][05]


Blazegraph, formerly known as Bigdata, was released in August of 2016. Its former version, Bigdata, was released in February of 2015. Blazegraph was announced as SYSTAP, LLC's flagship product. Blazegraph is still supported as of December 2018. SYSTAP, LLC received funding from DARPA to develop the GPU-acceleration feature of Blazegraph. Blazegraph has been used as part of commercial applications in addition to being resold by various OEM companies.

Checkpoints


Blazegraph supports consistent checkpoints. Blazegraph is capable of providing a consistent database state given a user-specified commit point.

Compression


Blazegraph uses dictionary encoding as the compression method for values stored in graph nodes and edges.

Concurrency Control[06]


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

Data Model[03]


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[07]


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

Hardware Acceleration[08]


GPU

The enterprise version of Blazegraph supports GPU-accelerated queries.

Indexes[09]


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[10]


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

Joins[11]


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.

Logging[12]


Blazegraph supports physical logging through log4j in its enterprise version.

Query Compilation[13]


Stored procedure compilation is supported in Blazegraph through the SPARQL extensions.

Query Execution[14][12]


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

Query Interface[15]


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.

Storage Architecture[16]


Blazegraph supports both in-memory storage and disk-oriented storage. However, operations are optimized for faster disk speed than for greater memory capacity.

Storage Model[14]


Storage Organization[14]


Blazegraph makes use of copy-on-write mechanisms with its use of B+ trees. This contributes to the system's ability to decide which operations are isolatable by transactions.

Stored Procedures[13]


Blazegraph supports stored procedures through SPARQL extensions. These allow for more complex logic to be applied to the database. In order to use a stored query, one must first register an instance of the StoredQueryService class, and then invoke it.

System Architecture[17][18]


Blazegraph makes use of a shared-nothing system architecture. When used in the highly available (HA) deployment mode, continued operation is possible with a quorum of present nodes in the case of failure.

Citations

19 sources
  1. https://www.blazegraph.com blazegraph.com Dead — Check Archive
  2. GitHub - blazegraph/database: Blazegraph High Performance Graph Database · GitHub github.com
  3. https://wiki.blazegraph.com/wiki/index.php/Concepts blazegraph.com Dead — Check Archive
  4. Blazegraph - Bloor Research bloorresearch.com
  5. Bigdata - Semantic Web Standards w3.org
  6. https://wiki.blazegraph.com/wiki/index.php/TxGuide blazegraph.com Dead — Check Archive
  7. 503 Service Temporarily Unavailable blazegraph.com Dead — Check Archive
  8. https://wiki.blazegraph.com/wiki/index.php/Roadmap#Accelerating_Features blazegraph.com Dead — Check Archive
  9. https://wiki.blazegraph.com/wiki/index.php/BTreeGuide blazegraph.com Dead — Check Archive
  10. https://wiki.blazegraph.com/wiki/index.php/TxGuide#Kinds_of_transactions blazegraph.com Dead — Check Archive
  11. https://wiki.blazegraph.com/wiki/index.php/QueryEvaluation#Joins blazegraph.com Dead — Check Archive
  12. Google Sheets: Sign-in google.com Dead — Check Archive
  13. https://wiki.blazegraph.com/wiki/index.php/StoredQuery blazegraph.com Dead — Check Archive
  14. https://www.blazegraph.com/whitepapers/bigdata_architecture_whitepaper.pdf blazegraph.com Dead — Check Archive
  15. https://wiki.blazegraph.com/wiki/index.php/SPARQL_Order_Matters blazegraph.com Dead — Check Archive
  16. https://wiki.blazegraph.com/wiki/index.php/Hardware_Configuration blazegraph.com Dead — Check Archive
  17. https://www.blazegraph.com/whitepapers/bigdata_ha_whitepaper.pdf blazegraph.com Dead — Check Archive
  18. https://www.blazegraph.com/yahoo7-2x/ blazegraph.com Dead — Check Archive
  19. https://wiki.blazegraph.com/wiki/index.php/About_Blazegraph blazegraph.com Dead — Check Archive
Revision #9