Can I use OrientDB v2.0 in production?
Yes. We recommend using this final 2.0 over previous versions. OrientDB 2.0 supports databases created with release 1.7. In order to use the new binary serialization, you are required to export and re-import the database. For more information, take a look at Migrate from 1.7.x. Since the APIs have been improved upon for this release, we always recommend testing your database(s) and application(s) in a test environment before upgrading your production environment.
What’s new?
OrientDB 2.0 is much faster than 1.7 (many users notice a 40% performance improvement) and performs much better when distributed on multiple servers. The new Binary Protocol compresses the database size resulting in less space used on the File System and higher I/O throughput. Furthermore, OrientDB 2.0 is less sensitive to index corruption between restarts.
Below is a detailed list of the enhancements since 1.7:
Core
- Avoids rebuilding of indexes if working in Transactional mode
- New Schema Driver Serialization avoids writing field names for records with Schema resulting in 20% performance improvement
- New RW-Locks to speed-up internal parallelism
- In-Memory database uses off-heap cache now
- Disabled SNAPPY compression by default
- Improved schema concurrency using immutable instances
- Added strategies to manage conflict: by content and auto-merge. Furthermore can be injected custom strategy via Java API
- Cache, removed 2nd level cache and improved 1st level cache
- Cluster selection strategy now can decide on the input document content
- Clusters can be detached (offline) and re-attached (online)
- Better automatic allocation of Heap and Disk-Cache
- Fetch-Plan: support for wildcards
- Using SIGTRAP (kill -5) to dump OrientDB information
- Logged database name on server and embedded messages
- Removed a couple of internal layers on Document API to speedup and simplify implementation. Added also ODocument.fromMap() and ODocument.toMap()
- Merged in core commons and native-os modules
- On first run, the server asks for the root password. Blank means auto-generate (like before)
- Global settings are copied in database at creation time and can be update
- Lucene plugin for Full-Text and Spatial indexes is now in bundle with default distribution
### Distributed
- 3x performance improvement
- New asynchronous replication
- On first run, ask for node name. Blank means auto-generate (like before)
- Unified script and config files with stand-alone server
### Javascript
- Invoking of JS functions is now 10x faster due to caching of the JVM Script engine
### Network
- Support for stateless requests using Token
### Graph API
- Disabled light-weight edges by default
- New OGraphBatchInsertBasic and OGraphBatchInsert API for massive insertion on graphs: 13x faster than Blueprints
- New SQL MOVE VERTEX command to refactor portion of graphs and to move vertices between distributed nodes
- Improved OrientGraphFactory performance reducing recycling time. Added central config of generated graphs in Factory
- Creation of edges can be set to avoid updating both vertices
### Security
- Added configurable SSL to HTTP and binary connections
### SQL
- New UUID() function to generate Unique IDs
- New statistic functions: mode(), variance(), stddev(), median(), percentile()
- Rewritten implementation of shortestPath() function to be much faster
- Improvement for “order by @Rid desc” to browse results in opposite direction without use an index or RAM
- Added UNSAFE to CREATE PROPERTY command to avoid slow checks auto conversion from map when working on EMBEDDED types
### Tools
- Studio: New Layout, new Graph Editor, new Security panel (Users and Roles management)
- New ETL module to import data from JDBC, CVS and JSON input sources
See more at: http://www.orientechnologies.com/orientdb-2-0-production-ready