NoSQL Benchmarks NoSQL use cases NoSQL Videos NoSQL Hybrid Solutions NoSQL Presentations Big Data Hadoop MapReduce Pig Hive Flume Oozie Sqoop HDFS ZooKeeper Cascading Cascalog BigTable Cassandra HBase Hypertable Couchbase CouchDB MongoDB OrientDB RavenDB Jackrabbit Terrastore Amazon DynamoDB Redis Riak Project Voldemort Tokyo Cabinet Kyoto Cabinet memcached Amazon SimpleDB Datomic MemcacheDB M/DB GT.M Amazon Dynamo Dynomite Mnesia Yahoo! PNUTS/Sherpa Neo4j InfoGrid Sones GraphDB InfiniteGraph AllegroGraph MarkLogic Clustrix CouchDB Case Studies MongoDB Case Studies NoSQL at Adobe NoSQL at Facebook NoSQL at Twitter



OrientDB: All content tagged as OrientDB in NoSQL databases and polyglot persistence

NuvolaBase: OrientDB in the Cloud

Another interesting announcement coming out today is NuvolaBase, the OrientDB in the cloud. The information about the service is very scarce on its website, so except the different account plans I couldn’t find out much. I hope to hear more about it from Luca Garulli, the creator of OrientDB and the guy behind NuvolaBase.

Original title and link: NuvolaBase: OrientDB in the Cloud (NoSQL databases © myNoSQL)

OrientDB New Release Featuring Sync and Async Replication

OrientDB, the document or graph store, has announced a new release, 0.9.24, featuring amongst a few SQL support improvements, synchronous and asynchronous replication.

The complete list of changes can be found ☞ here. The ☞ official announcement is listing the following new features:

  • Support for Clustering with synchronous and asynchronous replication
  • New SQL RANGE keyword: SELECT FROM ... WHERE ... RANGE <from> [,<to>]
  • New SQL LIMIT keyword: SELECT FROM ... WHERE ... LIMIT 20
  • Improved CREATE INDEX command
  • New REMOVE INDEX command
  • New console command INFO CLASS
  • New console command TRUNCATE CLASS and TRUNCATE CLUSTER
  • MRB+Tree now is faster and stable
  • Improved import/export commands
  • Improved JSON compliance
  • Improved TRAVERSE operator with the optional field list to traverse

I’ve contacted Luca Garulli, OrientDB main developer, for more details about the OrientDB replication.

Original title and link: OrientDB New Release Featuring Sync and Async Replication (NoSQL databases © myNoSQL)

Neo4j and OrientDB Performance Compared

Sort of a benchmark based on running the ☞ TinkerPop test suite against Neo4j and OrientDB (nb: we’ve learned recently that OrientDB is a document-graph database).

OrientDB vs Neo4j Performance NoSQL benchmark

A couple of notes:

  • I don’t think the test suite is also addressing the concurrency angle of these graph databases
  • Neo4j is fully ACID compliant and transactions can have a huge impact on the performance, at least for bulk operations

If not mistaking, this is the first data comparing the performance of two graph database. It doesn’t mean it is a relevant NoSQL benchmark or performance evaluation though.

Original title and link: Neo4j and OrientDB Performance Compared (NoSQL databases © myNoSQL)


Correction: OrientDB is a Document and Graph Store

Luca Garulli, ☞ OrientDB project lead, contacted me a couple of days ago offering some clarifications about OrientDB.

Luca Garulli: OrientDB is a document-graph dbms with schema-less, schema-full or mixed modes. Why also graph? Because the relationships are all direct links between documents. No “JOIN” is used. This allow to load entire graph of interconnected documents in few ms!

The Graph interface is documented ☞ here and starting from v. 0.9.22 OrientDB is compliant with Tinkerpop stack of Graph tools such as the Gremlin language. ☞ This is the link that shows the OrientDB usage from Gremlin.

Alex: Couple of questions:

  1. what is the format in which data is stored?
  2. how do you query data?

Luca: The document is stored in a compressed JSON-like format. Documents are contained in clusters. Clusters can be physical, logical or in-memory. A cluster is something close to the Collection of MongoDB and its aim is to group documents all together. The first use of a cluster is to group documents of the same type, as a sort of TABLE in the Relational world. But you can create a cluster “UrgentInvoices” and put all the urgent invoices close to be expired.

A cluster can be browsed and queried using Native queries and SQL queries. The SQL support is good enough and has extension to handle the schema-free features such as add/remove items in collections and maps. This example add the String ‘Luca’ to the collection “names”.

update Account add names = 'Luca'

And special operators to treat Trees and Graphs. This cross all the relationships avoiding costly JOINs:

select from Profile where = 'Rome'

This one is much more powerful and complex:

select from Profile where any() traverse( 0,3 ) ( 
    any().toUpperCase().indexOf( 'NAVONA' ) > -1 )

any() means any fields because each documents can have different fields (is schema-less). the traverse operator goes recursively from the current document (0) to maximum the 3rd level of nesting (3) checking the condition on the right.

Then you have native queries:

new ONativeAsynchQuery<ODocument, OQueryContextNativeSchema<ODocument>>(
        new OQueryContextNativeSchema<ODocument>(), this) {

      public boolean filter(OQueryContextNativeSchema<ODocument> iRecord) {
        return iRecord.column("id").toInt().minor(10).go();

Alex: Thanks a lot!

Update: It looks like OrientDB is also seeing some speed improvements these days. You can read about it ☞ here.

Original title and link: Correction: OrientDB is a Document and Graph Store (NoSQL databases © myNoSQL)

OrientDB Schema Options: Schema-less, Schema-full, and Schema-Mixed

I’ve seen a similar approach on handling different schema approaches in the Java Content Repository spec:

Although OrientDB can work in Schema-less mode sometime you need to enforce your data model using a schema. OrientDB supports schema-full or schema-mixed solutions where the second one means to set such constraints only for certain fields and leave the user to add custom fields to the records.

Just in case you aren’t familiar with OrientDB:


Release: OrientDB 0.9.20 Featuring Runtime Fetch Strategies

OrientDB, the mixed document/graph database with SQL flavor, ☞ has announced a new release featuring:

  • New run-time Fetch Plans
  • New database properties (Issue #54)
  • POJO callback on serialization/deserialization (Issue #56)
  • New annotation to use RAW binding (Issue #57)

You can read more about OrientDB fetch strategies ☞ here. OrientDB 0.9.20 can be downloaded from ☞ here.

Considering I’ve started to look at OrientDB quite recently and except this presentation I couldn’t find many more details, I’m wondering if there are people using OrientDB in their projects and what are some of its use cases.

Presentation: OrientDB introduction

Not long ago, I’ve written about a couple of new projects in the NoSQL space, listing OrientDB among those.

The slides below are offering a quick overview of OrientDB:

  • what is OrientDB
  • database structure
  • API
  • clustering and partitioning