Tuesday 15 May 2012

OrientDB release 1.0: the GraphDB market will never be the same

Yes we did it: the long waited release 1.0 of OrientDB is finally out!

By looking back to the download history it was on May 2011, exactly 1 year ago, when we started to mark the releases with the "Release Candidate2 suffix (1.0rc1 was the first) because we thought the 1.0 was quite close. Well, to have a stable 1.0 we spent 1 year of work more made of fix, patches and a lot of new developments to reach this so waited release.

If you're following the list since a while you noticed that this is not only the fruit of my hands and my mind, but the entire effort of a community made today of 17 members and led by 4 committers: Andrey Lomakin, Artem Orobets, Luca Molino and me. Thank you so much!

Before to go in deep with the news remember that professional services are available through NuvolaBase and partners. See below for more details.

Release 1.0
Download as usual: http://code.google.com/p/orient/wiki/Download. Maven artifacts are uploading right now.

Or click on the direct links:
+ Changes

  • new Multi-Master Replication architecture
  • new Object Database interface that use run-time enhancement. Now handles lazy loading, it's lighter and faster than before
  • new OTraverse class to traverse graphs via Java API using a stack-free approach
  • Data segments: added support for multiple ones and create/drop commands
  • new ODocument.undo() to revert local changes
  • new Server Side Scripting support
  • Query: new context variables
  • Console: new check database command
  • Studio: improved Graph management
  • Improved OSGi support
  • Fixed more than 40 bugs

Multi Master replication
Some months ago we throw away old Mater-Slave replication because it didn't scale with high volumes of changes in favor of a brand new Multi-Masterreplication. In this release the replication is not yet rock solid, but this is our job for the next months. To know more look at the new WiKi page: http://code.google.com/p/orient/wiki/Replication. The old command "share database" has been removed for a bunches of new commands to manage the cluster and replication:
  • cluster status
  • copy database <database-name> <server-name>:<server-port> <database-type>
  • replication start <database-name> <server-name>:<server-port>
  • replication stop <database-name> <server-name>:<server-port>
  • replication align <database-name> <server-name>:<server-port>
  • replication get journal <database-name> <server-name>:<server-port>
  • replication reset journal <database-name> <server-name>:<server-port>
  • replication get conflicts <database-name>
Check database command
We've implemented the new "check database" command to execute a full scan of the database in search of errors and warnings. Example (-v stands for verbose)

> connect local:/temp/db/test admin admin
> check database -v

New Object Database interface
Since 1.0 you can use OrientDB like Hibernate and any RDBMS. Some JPA annotations are supported, but in the future it could be a full JPA compliant implementation. Current implementation uses JBoss Javassist to instrument user classes at run-time and in transparent way. Lazy loading works well and performance in general are better than the previous Reflection based implementation. To know more look at Object Database.

Server Side Scripting
OrientDB supports server side scripting. This is an example to execute a snippet of Javascript in the OrientDB server:
db.command( new OCommandScript("Javascript", "print('hello world')") ).execute();

And this is to insert 1,000 records using the console and the new "js" command:

orientdb> js for( i = 0; i < 1000; i++ ){ db.query( 'insert into jstest (label) values ("test'+i+'")' ); }

The command "jss" is the same but executes the script into the OrientDB server and get back the result.

Release management
As proposed Daniel Kersten in this Group we're going to use the Semantic Version to enumerate release. For more information: http://semver.org/.

Contribute to the OrientDB project (sorry but I can't stop to remember this)Please help OrientDB to be more famous by writing a short review in your Blog, Magazines and Mailing Lists. The magic formula is: More users = More test = More stable = More support (drivers, plugins, etc).

To report an issue please follow the suggestions posted some days ago, in particular attach the following information:
  • OrientDB version. Please don't forget this! If it's a SNAPSHOT please tell if it's from SVN (revision number) or from MAVEN
  • Operative System
  • 32-bit or 64-bit
  • JVM version
  • RAM
  • Dump of configuration and profiler

Professional Services
We're moving all the Professional Services from Orient Technologies to NuvolaBase.com Ltd. All live contracts will be transferred and managed by NuvolaBase Ltd company.
We've built a new Partnership Agreement for companies interested to sell NuvolaBase or OrientDB services as "reseller" or "services partner". Please contact info@nuvolabase.com to have more information about it.

Certification program
We're finishing to define the Certification Program for OrientDB. All the committers will receive the "OrientDB Joda" level for free (valued about €200).

Luca Garulli
CEO NuvolaBase.com


  1. This is kool! I look forward to testing and using!

  2. Congratulations to the whole Team!
    Greetings from Gentics!


Note: only a member of this blog may post a comment.