[Hawkular-dev] Titan's future at Datastax and Hawkular Inventory
Lukas Krejci
lkrejci at redhat.com
Wed Mar 11 16:48:12 EDT 2015
Hi all,
today, Jirka and me attended the webinar organized by Datastax where they
outlined their plans for Titan - our candidate graph database to use for
inventory storage.
The outcome is IMHO both good and bad.
Datastax is committed to push Titan to 1.0 and port it to Tinkerpop3 API
(which is due "imminently" and the port is well under way -
https://github.com/thinkaurelius/titan/tree/titan09). They are also committed
to be further involved in the design of the Tinkerpop3 API (i.e. the
equivalent of JDBC for graph databases).
Once Titan 1.0 is out they plan to "let the community take over" and don't
plan any further work on it.
After that, they're shifting focus on DSE Graph - a proprietary graph database
that will be integrated into DSE - their proprietary offering expanding on
Cassandra's capabilities. This is not going to be open source but will support
the Tinkerpop3 API as its primary interface.
So there are 2 outcomes for us from this IMHO.
First, if we are to stick with a graph database as the storage platform (which
I think makes sense), we should adopt Tinkerpop. We currently support
Tinkerpop2 which is radically different from Tinkerpop3 but the contact
surface between us and their API is quite small (at least at the moment) and
in an area that actually didn't change that much (the Gremlin graph traversal
DSL).
Second, given the unique advantage of the shared storage for metrics and
inventory, we should stick with Titan (perf benchmarks still pending) for now
and see how it will evolve post 1.0. If it dies slowly and we hit issues that
we would not be able to solve ourselves, we can choose another database
implementing Tinkerpop3. At the moment the only other choice is Neo4j, but
given the involvement of many graphdb companies in the design of the
Tinkerpop3 API
(http://www.tinkerpop.com/docs/3.0.0.M7/#tinkerpop-contributors), I am quite
confident that there are going to be more choices in due time.
As a side note, our inventory API is not tied to the Tinkerpop API in any way.
It's just that the graph API naturally fits for implementing the inventory API
and in fact, the impl is quite compact. But should we, due to some cataclysmic
findings, choose to abandon tinkerpop API altogether, then only a fraction of
the inventory codebase would be affected - the REST API, UI and all the other
future integration code would be unaffected by that departure.
WDYT?
Lukas
More information about the hawkular-dev
mailing list