CulturePlex / Sylva

A Relaxed Schema Graph Database Management System
sylvadb.com
Other
53 stars 9 forks source link

Adding basic support for the Tinkergraph in-memory graph database engine #31

Closed davebshow closed 9 years ago

davebshow commented 9 years ago

This PR adds support for Tinkergraph, an in-memory reference implementation of a Tinkerpop3 enabled graph database system. This IS NOT meant to be a standalone backend for SylvaDB, instead it is a building block towards adding support for the new Titan when released, and will facilitate the use of any graphdb that uses the Gremlin Server for communication.

For connectivity it uses gremlinrestclient, a simple client based on requests. This client is pretty alpha, but it has a fairly comprehensive test suite.

This PR makes almost no changes to the existing code base. It adds a tinkergraph.GraphDatabase and tinkergraph.Q class to the existing implementations. These classes will be inherited from (and inevitably refactored) when adding support for Titan.

A few things to note:

In the near future, I plan to submit pull requests adding support for Titan, and Titan with Hadoop/Spark/Giraph graph analytics enabled. The Titan backend will eventually support all current SylvaDB apps.

Thanks @versae de antemano!

versae commented 9 years ago

This is awesome! Promising first steps :dancer: I was thinking that the best way might be by creating a new remote branch tinkergraph, so when all the work is done we can safely merge. WDYT?

davebshow commented 9 years ago

SGTM. Thanks Javi, I'm pretty stoked on the project. Titan is looking like it's gonna be pretty sweet :fire:

davebshow commented 9 years ago

Will I need to submit a new PR to the new target branch then?

versae commented 9 years ago

I could manually merge to the branch, but it's possibly easier if you could just cancel this PR and do it again on the new branch.

davebshow commented 9 years ago

Will do. Maybe we should call the branch tp3 or tinkerpop, and we can merge when we get tested Titan support, or just create a special docker for the Titan installation...

versae commented 9 years ago

Alright. Branch created :+1: