You might remember our last post on graph databases. We promised to write a follow-up post, when we knew in which direction we were heading. Well, now we know. :-)
Over the last two months we have been working intensively to build the initial release of the .NET graph database that will run Webling.
Before setting out to build our own database, we examined the market closely to see if an existing database fit our needs. We looked into both closed and open source graph databases, but realized that there were no competitive clustered server-based solutions for .NET. In our quest to build an alternate .NET graph database, the main concerns were speed and scalability. So we set out to build a fast and distributed database.
As of today Webling has been migrated from a temporary MySQL graph hack, to our new graph database (currently in private beta). Our current in-house benchmarks show very high throughput even on commodity hardware. Results we look forward to sharing with you at a later date! The database is being developed as a standalone solution with APIs supporting both an embedded and a client/server approach.
These are our thoughts from evaluating the different graph databases:
Neo4J
Pros: Easy API, limited open source edition, REST
Cons: No .NET connector, no clustering (embedded), slow version cycles
http://www.neo4j.org
InfiniteGraph
Pros: Startup program, supported by Objectivity, clustering
Cons: Complex API, no .NET connector, no REST, closed source, slow version cycles
http://www.infinitegraph.com
OrientDB
Pros: Open source, REST, fast version cycles
Cons: Early development, few active developers, no .NET connector, no clustering (yet)
http://code.google.com/p/orient
SonesDB
Pros: Limited open source edition, clustering, .NET connector
Cons: No data persistence in open source edition (at the moment), expensive, limited documentation
http://www.sones.com
Note: During our tests we found that REST APIs are simply too slow for backend server connections.