OrientDB is an Open Source NoSQL DBMS with the features of both Document and Graph DBMSs. Written in Java, it is incredibly fast: it can store up to 150,000 records per second on common hardware. Even for a Document based database, the relationships are managed as in Graph Databases with direct connections among records. You can traverse parts of or entire trees and graphs of records in a few milliseconds. Supports schema-less, schema-full and schema-mixed modes. Has a strong security profiling system based on user and roles and supports SQL amongst the query languages. Thanks to the SQL layer, it’s straightforward to use for those skilled in the relational database world.
OrientDB can embed documents like any other Document Database, but can also connect documents like a Relational Database. The main difference is that OrientDB doesn’t use the costly JOIN, but rather uses direct, super-fast links taken from the Graph Database world.
The illustration above shows how the original document has been split in two documents linked using the Customer’s Record ID #8:124 to connect the Order to the Customer document. Links can be thought of as in-memory pointers, but persistent on disk.
Why connect documents rather than embedding them? No duplicates, the resulting database is smaller and lighter and Faster: a smaller database means better usage of RAM thus allowing more caching.
Upon loading the order document, OrientDB will assemble the entire document by fetching all the connections transparently.
OrientDB has been designed to be very fast. It inherits the best features and concepts from Document, Graph and Object Databases. The persistence layer is entirely managed by OrientDB avoiding to delegate it to the OS, like other DBMSs do, by using the Memory Mapping technique: fast when pages are loaded in RAM, but very slow and on flush to disk. Furthermore relying to the OS means no control at all. What about indexing? Most of DBMS, Relational or NoSQL, uses B+Tree indexes, while OrientDB has SB-Trees and Hash-Index algorithms to achieve the best of performance even on different use cases.
The most common reason applications scale up badly is, very often, the database. The database is the bottleneck of most applications. OrientDB scales up very well on a single machine. A single server does the work of about 125 servers running MySQL. The transactional engine can run in distributed systems supporting up to 302,231,454,903,657 billion (2^78) records for the maximum capacity of 19,807,040,628,566,084 Terabytes of data distributed on multiple disks in multiple nodes.
When you need more throughput, simply add a new server in the network and it will join the current distributed server cluster. Synchronization occurs automatically as soon as the server is brought online. You can’t get it much easier than that!
What happens when a server node crashes? The server cluster redistributes the load across the available nodes and all the clients connected to the node in failure are automatically switched to an available server node with no fail-over to the application level.
OrientDB is the first and only graph database to appear on Gartner’s Operational DBMS Magic Quadrant* based on Orient Technologies ability to execute and completeness of vision.
*Gartner, Magic Quadrant for Operational Database Management System, Donald Feinberg, et al, October 21, 2013.
Also, take a look at GraphDB comparison and DocumentDB comparison. What about speed? Download the independent Benchmark between GraphDB products “XGDBench: A Benchmarking Platform for Graph Stores in Exascale Clouds“ by Tokyo Institute of Technology and IBM Research.
“…and possibly the biggest innovation since microchip (or sliced bread) called OrientDB…. OrientDB stands to be the most important database on market right now, nothing short of the future of databases.” – Why OrientDB is important
Take a look at the most recent PRESS articles.
Absolutely. OrientDB is written completely in Java and can run on any platform without configuration and installation. The Full Server distribution is about 1Mb without the demo database. Do you develop with a language different than Java? No problem, look at the Programming Language Bindings.
OrientDB Community Edition is FREE for any use (Apache 2 license). The Enterprise Edition is commercial software developed by the same team that developed the OrientDB engine. If you’re using OrientDB in production, don’t miss the Professional Support service. For Training, please take a look at the on-line course catalog.