infinitegraph: All content tagged as infinitegraph in NoSQL databases and polyglot persistence
Firstly announced just a bit over a month ago, InfiniteGraph, the graph database from Objectivity, has already reached the 1.0 release. At this time I don’t have yet the details of these release.
InfiniteGraph offers a 2-month free version to developers requiring afterwards a $999/year license. According to this comparison of NoSQL graph databases, I cannot say that’s the most “generous” offer in the graph database market.
It looks like InfiniteGraph, the newcomer in the graph database world, is moving fast towards its first 1.0 release.
In this ☞ latest release, they’ve added support for 64bit Linux and Windows platforms (nb I’m still waiting for the Mac OS version and also wondering what the final license will be).
Another feature present in this version is weighted edges, a notion pretty common for graphs.
- In case you missed it, sones GraphDB is offering now an open source version (↩)
InfiniteGraph is a new product in the space of graph databases coming from the producers of Objectivity/db, an object database with a long history. While still in early beta, InfiniteGraph promise is to provide “uniquely distributed capabilities and virtually unlimited scalability”. As we’ve learned, scaling graph databases is a challenging problem, so we’ll have to keep our eyes on InfiniteGraph and see what approaches it will take to tackle these complex problems.
About the first public beta release:
- This first public beta release includes fully distributed capabilities, and an addressing scheme that supports virtually unlimited scalability.
- InfiniteGraph 0.8 beta supports Java programmers, on 32-bit Linux and Windows platforms. Support for 64-bit Linux, Windows and Mac platforms, and a C# language binding are also slated for upcoming releases.
- The InfiniteGraph 1.0 RTM and GA public releases are planned for later in July.
To get into the InfiniteGraph beta program use the following ☞ link.
As I said in MongoDB MapReduce tutorial, the best way to validate that you’ve got the basics right about a system is to use some basic code. And this is exactly the idea behind this post: to take a look at a very (very) basic tagging app in InfoGrid and Neo4j.
The code with more details can be found ☞ here.
The Neo4j code was contributed by Mattias Persson from Neo Technology (thanks Mattias).
Note: I couldn’t figure out a way to make the code more readable that this. But you can hover over the code snippets and you’ll get the option to see the original source code.
Here are my notes about the two code snippets above:
- everything in Neo4j must happen inside a transaction even if it’s a graph traversal operation (this gives a very strong Isolation level). The InfoGrid traversal code seem to happen outside the transaction, so it sounds like it supports a more relaxed isolation level (interesting question here is: if traversal would happen inside a transaction, would that isolate it from seeing possible external modifications?)
- InfoGrid’s central element is
MeshObject, while Neo4j has
Relationship. Generally speaking I have found the terminology in InfoGrid a bit more unusual (f.e.
- the Neo4j uses also the
LuceneIndexServicefor indexing both the tag and web resources nodes, but that’s only becaus e the code there makes sure not to duplicate either tags or web resources (i.e. this functionality is not present in the InfoGrid code and I don’t know how that would look like)
- in both cases a relationship gives you access at both its ends. While both InfoGrid and Neo4j documentation speak about bidirectional arcs
Update: The guys from Sones picked up my challenge and they show up their C# implementation on this ☞ post. I have included below the code for reference
Update: I’ve just got another submission from Filament. Code is included below and their original post is ☞ here