Question

I'm new to the GraphDB concept so please forgive me if I have misunderstood anything. This question is primarily about OrientDB as I'm interested in using it as a hybrid Document + Graph DB.

While the documentation from OrientDB's Raw API seems to suggest we should declare a root node and give it a name... http://code.google.com/p/orient/wiki/GraphDatabaseRaw

However I wonder if this is absolutely required. As I see independent graphs as much more of a common practical usage and given OrientDB's architecture (the GraphDB is built on top of a Document based database). Surely I should be able to create multiple independent graphs within a Cluster/Class type and traverse the graph by specifying a 'starting' node.

The ideal of a single 'root' node for a 'type/class' of data seems too restrictive.

Is there anyone with better examples as well for handling OrientDB using the Raw Graph API? I'm reluctant to use Tinkerpop as according to this page http://code.google.com/p/orient/wiki/JavaAPI Tinkerpop API are much slower than the Raw Graph API (and I'm building a performance oriented application) but I can't find any typical usage implementation examples.

Was it helpful?

Solution

root nodes are optional as a way to start crossing the graph without queries. You can avoid using it and execute query to get your graph elements.

About the usage of TinkerPop Blueprints you could stay hybrid at this level too by using native API only when performance are a real must (after some benchmarks) and letting to Gremlin the most of the traversing.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top