Sparksee

Sparksee is a high performance native graph database management system developed by Sparsity Technologies. Designed to support computations on graph/network objects at large-scale, Sparksee leverages the bitmap data structure. While being the first graph database for iOS and android, Sparksee can also be run on Linux, Windows and MacOSX. It provides full ACID transactions and has largely been used in social network analysis.

History

Sparksee was formerly known as DEX. Development around DEX was first started by the DAMA-UPC technology transfer team from Universitat Politècnica de Catalunya (Barcelona, Spain) in 2006. Intended for large graph analysis, DEX was already used in various industrial projects and gained popularity from different areas such as medical and bibliographical network analysis. In 2008, its first version was released, and DEX officially changed its name to Sparksee on its 5th release in 2014.

Checkpoints

Consistent

Sparksee supports consistent checkpointing, meaning all recovery log files are flushed to disk when the checkpoint is invoked. Users can configure the checkpoint frequency.

Concurrency Control

Two-Phase Locking (Deadlock Detection)

Sparksee supports a multiple read and single write model and locking is performed at graph level. All transactions, unless explicitly initialized as writes, start as reads and are transformed into write transactions when all the other read transactions finish. All transactions can roll back in case of deadlock.

Data Model

Graph Object-Oriented

Sparksee represents data and schema as a graph and map data operations into graph operations. In the actual implementation, a graph is composed of nodes, edges and attributes, and they are all stored as objects.

Indexes

B+Tree BitMap

In Sparksee, index can be built on attributes to speed up operations, but one attribute can only be associated with a single index. In addition, Sparksee stores actual data, instead of pointers, at the index level to have faster data retrieval.

Isolation Levels

Serializable

Sparksee supports full ACID transactions and the default isolation level is SERIALIZABLE. The granularity is at graph level.

Query Interface

Custom API

Sparksee uses custom APIs for data retrieval and returns object instances. A sample SELECT operation is provided below

Objects Graph#select(attribute, condition, value)

Storage Model

Custom

Sparksee has native graph storage, meaning the storage system is specifically built for graph data.

System Architecture

Shared-Nothing

Sparksee offers a shared-nothing architecture with master-slave replication and synchronous updates.

People Also Viewed