Sones: All content tagged as Sones in NoSQL databases and polyglot persistence
Friday, 21 May 2010
NoSQL Graph Database Matrix
After triggering our quick review of graph databases, Pere Urbón came up with a nice comparison of these — Neo4j, HyperGraphDB, DEX, InfoGrid, Sones, VertexDB — in terms of License, Schema, Querying, Storage implementation, Utilities, Language and Operating system support.
Pere has made this very interesting NoSQL graph database matrix available as a ☞ PDF on his blog.
Tuesday, 6 April 2010
Quick Review of Existing Graph Databases
Pere Urbón ☞ published a short review of a couple of existing graph databases. For your reference, below are the ones reviewed in the post and a couple more that we’ve previously mentioned here on myNoSQL:
Neo4j
☞ Neo4j is an embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables.
DEX
☞ DEX is a high performance library to manage very large graphs or networks
HyperGraphDB
☞ HyperGraphDB: a general purpose, extensible, portable, distributed, embeddable, open-source data storage mechanism.
InfoGrid
☞ InfoGrid: an Internet Graph Database with a many additional software components that make the development of REST-ful web applications on a graph foundation easy.
vertexdb
☞ vertexdb: a high performance graph database server that supports automatic garbage collection.
Note: by checking the project homepage I cannot tell if the project is still active or not.
AllegroGraph
☞ AllegroGraph RDFStore: a modern, high-performance, persistent RDF graph database.
Note: AllegroGraph seems to be positioned in the RDF stores space, which features some other solutions too.
Filament
☞ Filament: a graph persistence framework and associated toolkits based on a navigational query style.
Sones
☞ Sones GraphDS provides an inherent support for high-level data abstraction concepts (graph structures, walks, consistency, editions, revisions, copies), its own Graph Query Language, an underlying distributed file system and various interfaces like SOAP, REST or WebDAV.
And I’m not sure these are all …
Update: make sure you check the NoSQL Graph Database Matrix
Quick Review of Existing Graph Databases originally posted on the NoSQL blog: myNoSQL
Monday, 22 February 2010
Get a Taste of Graph Databases: InfoGrid and Neo4j
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.
InfoGrid version
The code with more details can be found ☞ here.
Neo4j version
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 hasNodeandRelationship. Generally speaking I have found the terminology in InfoGrid a bit more unusual (f.e.MeshObject,relateAndBless, etc.) - 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
If someone would contribute the code for ☞ HyperGraphDB and/or ☞ VertexDB I think this post would get even more interesting!
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
Sones version
Update: I’ve just got another submission from Filament. Code is included below and their original post is ☞ here
Filament version
InfiniteGraph version
Update: Thanks to ☞ Todd Stavish we now have a version of this sample code for InfiniteGraph
Most Popular Articles
- Translate SQL to MongoDB MapReduce
- Tutorial: Getting Started With Cassandra
- CouchDB vs MongoDB: An attempt for a More Informed Comparison
- Cassandra @ Twitter: An Interview with Ryan King
- A Couple of Nice GUI Tools for MongoDB
- NoSQL benchmarks and performance evaluations
- Ehcache: Distributed Cache or NoSQL Store?
- Document Databases Compared: CouchDB, MongoDB, RavenDB
- Quick Review of Existing Graph Databases
- NoSQL Data Modeling
