Released OrientDB 2.1.13

London, March 15, 2016

The OrientDB Team has just released OrientDB v2.1.13, resolving 16 issues from v2.1.12. This is the last stable release. Please upgrade your production environments to v2.1.13. For more information, take a look at the Change Log.

Download OrientDB v2.1.13 now: https://orientdb.com/download

A big thank you goes out to the OrientDB team and all the contributors who worked hard on this release, providing pull requests, tests, issues and comments.

Best regards,

Luigi Dell’Aquila
Director of Consulting
OrientDB LTD

OrientDB has an optimistic concurrency control system, but on very high concurrent updates on the few records it could be more efficient locking records to avoid retries. You could synchronize the access by yourself or by using the storage API. Note that this works only with non-remote databases.
((OStorageEmbedded)db.getStorage()).acquireWriteLock(final ORID iRid)
((OStorageEmbedded)db.getStorage()).acquireSharedLock(final ORID iRid)
((OStorageEmbedded)db.getStorage()).releaseWriteLock(final ORID iRid)
((OStorageEmbedded)db.getStorage()).releaseSharedLock(final ORID iRid)
Example of usage. Writer threads:
try{
((OStorageEmbedded)db.getStorage()).acquireWriteLock(record.getIdentity());

// DO SOMETHING
} finally {
((OStorageEmbedded)db.getStorage()).releaseWriteLock(record.getIdentity());
}
Reader threads:
try{
((OStorageEmbedded)db.getStorage()).acquireSharedLock(record.getIdentity());
// DO SOMETHING

} finally {
((OStorageEmbedded)db.getStorage()).releaseSharedLock(record.getIdentity());
}


For more information: 
https://github.com/orientechnologies/orientdb/wiki/Performance-Tuning#high-concurrency

Luca Garulli
CEO at Orient Technologies
the Company behind OrientDB
http://about.me/luca.garulli




London, April 29th 2013

NuvolaBase ltd moved all the activities related to OrientDB product to the new “Orient Technologies” division: www.orientechnologies.com. In this way NuvolaBase company will be focused on the Cloud Database only (powered by OrientDB) while Orient Technologies will offer training, support, consulting and commercial products.

Orient Technologies web site

NuvolaBase Team





OrientDB continues to grow up adding amazing features you can’t find in other NoSQL products. This is the time of “Record Level Security”. Now creating multi-tenant apps is a breeze!

Record level security

This is also called “horizontal security” because doesn’t act to the schema (vertically) but per single record.
To activate this kind of advanced security let the classes you want to have such kind of security system to extends the ORestricted super class. Every time a class extends the ORestricted class, OrientDB, by a hook, injects a check before each CRUD operation:

The _allow field can contain instances of OUser and ORole records. Use OUser to allow single users and ORole to allow all the users that are part of these roles.

Use case

You want to enable this security in a BLOG like application. First create the document class, like “Post” that extends “ORestricted”. Then if the user “Luke” creates a new post and the user “Steve” make the same each user can’t access the Post instances created by each other.

> connect remote:localhost/blog admin admin
> create class Post extends ORestricted
Class 'Post' created successfully
The user “Luke”, registered as OUser “luke” having RID #5:5, logs in and create a new Post:
> connect remote:localhost/blog luke luke

> insert into Post set title = "Yesterday in Italy"

Created document #18:0

> select from Post

+-----+--------------+-----------------------+
| RID | _allow       | title                 |
+-----+--------------+-----------------------+
|#18:0| [#5:5]       | Yesterday in Italy    |
+-----+--------------+-----------------------+
Then the user Steve, registered as OUser “steve” having RID #5:6, logs in too and create a new Post
> connect remote:localhost/blog steve steve

> insert into Post set title = "My Nutella cake"

Created document #18:1

> select from Post

+-----+--------------+-----------------------+
| RID | _allow       | title                 |
+-----+--------------+-----------------------+
|#18:1| [#5:6]       | My Nutella cake       |
+-----+--------------+-----------------------+
Each user can see only the record where they have access. Now try to allow the user Steve (rid #5:6) to access to the first Luke’s post adding the Steve’s RID in the _allow field:
> connect remote:localhost/blog luke luke

> update #18:0 add _allow = #5:6
Now if Steve executes the same query as before, the result changes:
> connect remote:localhost/blog steve steve

> select from Post

+-----+--------------+-----------------------+
| RID | _allow       | title                 |
+-----+--------------+-----------------------+
|#18:0| [#5:5]       | Yesterday in Italy    |
|#18:1| [#5:6]       | My Nutella cake       |
+-----+--------------+-----------------------+

This is available since now in v. 1.2.0-SNAPSHOT. For more information: http://code.google.com/p/orient/wiki/Security#Record_level_security
Enjoy,
NuvolaBase – The Company behind OrientDB



Since 1.2.0 OrientDB supports Functions. A Function is an executable unit of code that can takes parameters and returns a result. Using the Functions you can do Functional programming where logic and data are all together in a central place. Functions are similar to the Stored Procedures of RDBMS.

These the features of OrientDB Functions:


For more information: http://code.google.com/p/orient/wiki/Functions.


NuvolaBase Team




Hi all,

it’s all been done: release 1.1.0 is ready to be downloaded and used before you go on holidays! Thank you to the 3 committers and the always growing contributors for this fruit of the keyboard.
Before to go in deep with this release an announcement: NuvolaBase, the company behind OrientDB, is working to the new “OrientDB Enterprise” product planned for September 2012. OrientDB is and will always remain Open Source, but companies asked us some “enterprise” features we want to provide as commercial product based on top of OrientDB server. So starting from the next release (1.2) we will have 2 lines of products:
Release 1.1.0
Download as usual: http://code.google.com/p/orient/wiki/Download or click on the direct links:
What’s new?
  • New distributed server architecture with balance of workload, full replication and management of failures
  • New MMAP manager optimized for 64bit OS
  • Index: new support for binary keys and collections in composite keys
  • Support for in-memory database replication
  • Object Database added support for cascade deletion, attach/detach, ENUM and binary data (ORecordBytes)
  • SQL: new DROP CLUSTER command, INSERT now supports clusters, new CREATE VERTEX and CREATE EDGE commands
  • Support for Gephi visual tool
  • 50 bugs fixed
Full list: http://code.google.com/p/orient/issues/list?can=1&q=label%3Av1.1.0

Distributed architecture
This is the most important feature of this release and allow to use OrientDB with multiple server nodes. To reach this goal OrientDB uses the Hazelcast library that is licensed with the same OrientDB license: Apache 2.
Since the “old” replication commands are not more working the only way to get working a replication among multiple servers is to run OrientDB in distributed mode with all the servers having the same databases before to start.
To start it use dserver.sh (or dserver.bat under MS Windows systems) instead of the classic server.sh/bat. “dserver” script takes config/orientdb-dserver-config.xml as configuration instead of config/orientdb-server-config.xml.

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).

New MMAP
In order to use the HW/SW resource at the maximum, starting from this release OrientDB brings in the distribution 3 new libraries to uses some low-level feature provided by the OS:
If these libraries are not available in the classpath, OrientDB will continue to use the standard Java runtime. This releases has a new MMAP manager optimized for 64bit systems. The older one remains available. To activate it set the system variable: file.mmap.useOldManager=true at startup.

Object Database
Far to provide a 100% compliant JPA interface, this release adds the support for cascade deletion, detach/attach of POJO, ENUM and the management of binary data by using the ORecordBytes objects directly by the POJO.

If you’re a Hibernate/JPA user please don’t try OrientDB Object Database interface, otherwise you will never go back to a OR-Mapping tool! 🙂 Some users is experiencing the usage of OrientDB through the Object Database interface + JRebel in Web Applications: this is the maximum of productivity because they can change the POJO classes at run-time without stop the JVM and OrientDB gets all the new POJO classes in a flash. Cool!

Issues

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
To open a new issue: http://code.google.com/p/orient/issues/entry
Professional Services
All the professional services are provided by NuvolaBase.com Ltd.
Partnership
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.
Roadmap
The roadmap has been updated -> http://code.google.com/p/orient/wiki/Roadmap. Below the main features of the next release planned for September 2012:

Enjoy the summer,

Lvc@




Luca Molino presented OrientDB at Fosdem 2012 event in Brussels, Belgium. The demo was running on NuvolaBase



Start using the world’s leading multi-model database today