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.
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.
Sparksee supports consistent checkpointing, meaning all recovery log files are flushed to disk when the checkpoint is invoked. Users can configure the checkpoint frequency.
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.
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.
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.
Sparksee supports full ACID transactions and the default isolation level is SERIALIZABLE. The granularity is at graph level.
In Sparksee, the recovery log files store page-level information.
Sparksee uses custom APIs for data retrieval and returns object instances. A sample SELECT operation is provided below
Objects Graph#select(attribute, condition, value)
Sparksee has native graph storage, meaning the storage system is specifically built for graph data.
Sparksee offers a shared-nothing architecture with master-slave replication and synchronous updates.
C#, C++, Java, Objective-C, Python
Android, iOS, Linux, OS X, Windows