Graph Represented Algorithm Implementation Layer
GRAIL is an algorithm implementation layer that allows arbitrary algorithms to be backed, and executed, from a graph database. The backing graph database can be either an on-disk server instance or a purely local in-memory instance. This allows generic tools to be interfaced to accomplish an assortment of extensions such as: distributed processing, visualizations, indexing, graph traversal, SPARQL queries, and much more.
GRAIL uses a native TinkerPop stack, this means it can support virtually every graph database available to you. A few examples of supported Graph Databases are as follows.
TinkerPop also provides several tools which can be used to work with GRAIL backed algorithms.
- Furnace - Graph analysis utilities
- Pipes - A data-flow framework for splitting, merging, filtering, and transforming of data
- Gremlin - A graph query language
- Blueprints - A standard graph API
Finally, depending on the choice of a graph database backend, it is possible to utilize any of the following features.
- Elastic and linear scaling capabilities
- ACID and BASE consistency models
- Distributed data, replication, high availability, and fault tolerance
- Faunus Gremlin-based distributed graph analytics, backed by an Hadoop cluster.
- Direct Apache Hadoop integration providing graph analytics, reporting, and ETL features
- Indexing and search utilities including: ElasticSearch, Solr, and Lucene
A Titan backend can support all the above features.
Obtaining the Source
The official source repository for GRAIL is located on the Syncleus Gerrit instance and can be cloned using the following command.
git clone http://gerrit.syncleus.com/GRAIL-core