Orient DB 1.6.4 / 1.7 RC1

NoSQL document database light, portable and fast
OrientDB is a new open source NoSQL DBMS, born with the best features of all the others. It's written in Java and it's amazing fast: can store up to 200,000 records in 5 seconds on common hardware. Even if it's Document based database the relationships are managed as in Graph Databases with direct connections among records. You can travere entire or part of trees and graphs of records in few milliseconds. Supports schema-less, schema-full and schema-mixed modes. Has a strong security profiling system based on user and roles and support the SQL between the query languages. Thank to the SQL layer it's straightforward to use it for people skilled in Relational world.

Is Orient a Relational DBMS?

No. Orient adheres to the NoSQL movement even if supports a subset of SQL as query language. In this way it's easy to start using it without to learn too much new stuff. Orient is a Document Database but has the best features of other DBMSs. For example the relationships are handled as in the Graph Databases.

Scalability: the database is the bottleneck of most of applications

The most common problem why applications scale out bad is, very often, the database. Database is the bottleneck of most of applications. Orient scales out very well on a single machine. A single server makes the work of about 125 servers running MySQL. The transactional engine can run in distributed systems supporting up to 9.223.372.036 Billions of records for the maximum capacity of 19.807.040.628.566.084 Terabytes of data distributed on multiple disks in multiple nodes. Today only Orient Key/Value Server can run in a cluster with thousands of instances using a Distributed Hash Table algorithm. We're developing the distributed version of OrientDB as well.

I can't believe! Why it's so fast?

Orient has been designed to be very fast. It inherits the best features and concepts from the Object Databases, Graph DBMS and the modern NoSQL engines. Furthermore it uses the own RB+Tree algorithm as mix of Red-Black Tree and B+Tree. RB+Tree consumes about half memory of the Red-Black Tree implementation mantaining the original speed while it balances the tree on insertion/update. Furthermore the RB+Tree allows fast retrieving and storing of nodes in persistent way.

What about the Orient Key/Value Server?

The Orient Key/Value Server has been built on top of Orient Document Database. It scales out very well in a cluster with thousands of running machines: Orient will divide the load among all the nodes. Cluster, by default, works in auto-discovery mode: when a node starts it attaches itself to the cluster if any. When a node goes down the cluster auto rebalances itself.

But Orient wasn't a ODBMS?

Orient ODBMS was the very first version of the Orient engine developed in C++ in 1997. Today OrientDB has been totally rewritten in Java under the form of a Document database but with the previous main goal: performance. However now you can find the Object Database, but it's a wrapper built on top of the Document Database. It maps transparently Orient document records with POJOs.

Easy to install and use

Yes. Orient is totally written in Java and can run in any platform without configuration and installation. The full Server distribution is about 500Kb without the demo database.

last updated on:
October 4th, 2010, 8:45 GMT
developed by:
Luca Garulli
license type:
The Apache License 2.0 
ROOT \ Database \ Database APIs


In a hurry? Add it to your Download Basket!

user rating



Rate it!
What's New in version 1.7 RC1
  • Engine: new LINKBag to manage LINKS by using SBTree indexes. This drastically improved performance
  • SQL: new LOCK keyword to specify locking strategy new RETURNING keyword to let to UPDATE and DELETE commands to return modified records new include() and exclude() to respectively include or exclude fields of documents operator [] now can be used in chain, also with functions projections can be reused as variables support for LET also in UPDATE and DELETE commands
  • Graph API: support for ordered edge list new detach() and attach() method to work with Graph Element offline new OrientGraphFactory to manage pooled instances
  • HTTP: new support for ETag, If-Match and If-None-Match headers new PATCH method against /document command and /documentbyclass for partial updates
read full changelog

Add your review!