Released OrientDB v1.0rc8: Traverse command, new management of many relationships and Asynchronous API

297 views
Skip to first unread message

Luca Garulli

unread,
Feb 2, 2012, 7:02:27 PM2/2/12
to orient-database
Hi all,
so many news in just one day!

First, starting from today OrientDB can be used as service in the Cloud. Look at www.NuvolaBase.com!

Second thing, this week-end don't miss to have a trip to Brussels to follow the Luca Molino's talk "Works with persistent graphs using OrientDB" in the Graph Processing DevRoom. I'll be there most of the time: what best chance to meet so many OrientDB users in one single place?

Ok, now the 3rd more technical one: OrientDB 1.0rc8 has been just released. This new release brings many news, superior performance and better stability. The perfect receipt for the next final 1.0. Below some coordinates to download even if most of you will use the MAVEN repository.


Thanks to all the contributors every weeks more!

Changes
  • New TRAVERSE command to traverse records by relationships
  • New fetch-plan to support more complex use cases
  • Asynchronous API to speedup insert, update and delete via remote network
  • New DECIMAL type to handle currency without pains of float and double types
  • Strict schema mode to work like a Relational DBMS
  • Resolved the "big-node" problem when a record has many links to other records by using a MVRB-Tree to handle relationships
  • SQL: new NOT and INSTANCEOF operators
  • Index works also against MAP types
  • Supported JPA @Embedded annotation
  • Many bug fixed about 30

New TRAVERSE command
Thanks to the new  TRAVERSE command, combined with SELECT you can execute complex searches against graphs just using the OrientDB SQL. TRAVERSE supportes all OrientDB domains, not only using the Graph API.

This is an example to extract all the movies of actors that have worked, at least once, in any movie produced by J.J. Abrams:

select from (
  traverse
Movie.actors, Actor.movies from (
   
select from Movie where producer = "J.J. Abrams"
 
) where $depth <= 3
) where @class = 'Movie'

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

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

Professional Services

Every month OrientDB gains the trust of new users that want to benefit of the professional services to speed-up the development of their applications:
If you'd like to see a live presentation of OrientDB in your city please contact me via email or twitter (http://www.twitter.com/lgarulli).

Ciao,
Lvc@

Geoff

unread,
Feb 4, 2012, 2:24:01 PM2/4/12
to OrientDB
Congratulations to Luca and the other Orient contributors! This is
definitely huge milestone on the road to 1.0.

On Feb 2, 4:02 pm, Luca Garulli <l.garu...@gmail.com> wrote:
> Hi all,
> so many news in just one day!
>
> First, starting from today OrientDB can be used as service in the Cloud.
> Look atwww.NuvolaBase.com!
>
> Second thing, this week-end don't miss to have a trip to Brussels to follow
> the Luca Molino's talk "Works with persistent graphs using
> OrientDB<http://fosdem.org/2012/schedule/event/graphdb_orientdb>"
> in the Graph Processing
> DevRoom<http://fosdem.org/2012/schedule/track/graph_processing_devroom>.
> I'll be there most of the time: what best chance to meet so many OrientDB
> users in one single place?
>
> Ok, now the 3rd more technical one: *OrientDB 1.0rc8* has been just
> released. This new release brings many news, superior performance and
> better stability. The perfect receipt for the next final 1.0. Below some
> coordinates to download even if most of you will use the MAVEN repository.
>
> OrientDB Embedded and Server:http://code.google.com/p/orient/downloads/detail?name=orientdb-1.0rc8...
> OrientDB Graph(ed):http://code.google.com/p/orient/downloads/detail?name=
> orientdb-graphed-1.0rc8.zip
>
> Thanks to all the contributors every weeks more!
>
> *Changes*
>
>    - New TRAVERSE
> <http://code.google.com/p/orient/wiki/SQLTraverse>command to traverse
> records by relationships
>    - New fetch-plan<https://groups.google.com/d/topic/orient-database/nUTS0HCq5NM/discussion>to
> support more complex use cases
>    - Asynchronous
> API<https://groups.google.com/d/topic/orient-database/mSa2nQBs-KA/discussion>to
> speedup insert, update and delete via remote network
>    - New DECIMAL<https://groups.google.com/d/topic/orient-database/vTVppBnKLso/discussion>type
> to handle currency without pains of float and double types
>    - Strict schema
> mode<https://groups.google.com/d/topic/orient-database/zK1uTATTKcs/discussion>to
> work like a Relational DBMS
>    - Resolved the "big-node" problem when a record has many links to
>    other records by using a MVRB-Tree to handle relationships
>    - SQL: new NOT and INSTANCEOF operators
>    - Index works also against MAP
> types<https://groups.google.com/d/topic/orient-database/OlIJygtDcHw/discussion>
>    - Supported JPA
> @Embedded<https://groups.google.com/d/topic/orient-database/9lIa4IfPjZE/discussion>annotation
>    - Many bug fixed about 30
>
> Full list:http://code.google.com/p/orient/issues/list?can=1&q=label%3Av1.0rc8
>
> *New TRAVERSE command*
> Thanks to the new  TRAVERSE<http://code.google.com/p/orient/wiki/SQLTraverse>
>  command, combined with SELECT you can execute complex searches against
> graphs just using the OrientDB SQL.
> TRAVERSE<http://code.google.com/p/orient/wiki/SQLTraverse> supportes
> all OrientDB domains, not only using the Graph API.
>
> This is an example to extract all the movies of actors that have worked, at
> least once, in any movie produced by J.J. Abrams:
>
> select from (
>
>   traverse Movie.actors, Actor.movies from (
>
>     select from Movie where producer = "J.J. Abrams"
>
>   ) where $depth <= 3
> ) where @class = 'Movie'
>
> *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).
>
> *Issues*
>
> To report an issue please follow the suggestions posted some days
> ago<https://groups.google.com/d/topic/orient-database/uDqnWjQ0uJE/discussion>,
> 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*
>
> Every month OrientDB gains the trust of new users that want to benefit of
> the professional services to speed-up the development of their applications:
>
>    - Support for servers in production:
>    http://www.orientechnologies.com/professional.htm#support
>    - On-site consulting, to help companies to build software using OrientDB
>    :http://www.orientechnologies.com/professional.htm#consulting
>    - Training, with 6 courses:http://www.orientechnologies.com/training.htm

project2501

unread,
Feb 6, 2012, 8:27:38 AM2/6/12
to OrientDB
Spectacular! Well done.

On Feb 2, 7:02 pm, Luca Garulli <l.garu...@gmail.com> wrote:
> Hi all,
> so many news in just one day!
>
> First, starting from today OrientDB can be used as service in the Cloud.
> Look atwww.NuvolaBase.com!
>
> Second thing, this week-end don't miss to have a trip to Brussels to follow
> the Luca Molino's talk "Works with persistent graphs using
> I'll be there most of the time: what best chance to meet so many OrientDB
> users in one single place?
>
> Ok, now the 3rd more technical one: *OrientDB 1.0rc8* has been just
> released. This new release brings many news, superior performance and
> better stability. The perfect receipt for the next final 1.0. Below some
> coordinates to download even if most of you will use the MAVEN repository.
>
> OrientDB Embedded and Server:http://code.google.com/p/orient/downloads/detail?name=orientdb-1.0rc8...
> OrientDB Graph(ed):http://code.google.com/p/orient/downloads/detail?name=
> orientdb-graphed-1.0rc8.zip
>
> Thanks to all the contributors every weeks more!
>
> *Changes*
>
>    - New TRAVERSE
> <http://code.google.com/p/orient/wiki/SQLTraverse>command to traverse
> records by relationships
>    - New fetch-plan<https://groups.google.com/d/topic/orient-database/nUTS0HCq5NM/discussion>to
> support more complex use cases
>    - Asynchronous
> API<https://groups.google.com/d/topic/orient-database/mSa2nQBs-KA/discussion>to
> speedup insert, update and delete via remote network
>    - New DECIMAL<https://groups.google.com/d/topic/orient-database/vTVppBnKLso/discussion>type
> to handle currency without pains of float and double types
>    - Strict schema
> mode<https://groups.google.com/d/topic/orient-database/zK1uTATTKcs/discussion>to
> work like a Relational DBMS
>    - Resolved the "big-node" problem when a record has many links to
>    other records by using a MVRB-Tree to handle relationships
>    - SQL: new NOT and INSTANCEOF operators
>    - Index works also against MAP
> types<https://groups.google.com/d/topic/orient-database/OlIJygtDcHw/discussion>
>    - Supported JPA
> @Embedded<https://groups.google.com/d/topic/orient-database/9lIa4IfPjZE/discussion>annotation
>    - Many bug fixed about 30
>
> Full list:http://code.google.com/p/orient/issues/list?can=1&q=label%3Av1.0rc8
>
> *New TRAVERSE command*
> Thanks to the new  TRAVERSE<http://code.google.com/p/orient/wiki/SQLTraverse>
>  command, combined with SELECT you can execute complex searches against
> graphs just using the OrientDB SQL.
> TRAVERSE<http://code.google.com/p/orient/wiki/SQLTraverse> supportes
> all OrientDB domains, not only using the Graph API.
>
> This is an example to extract all the movies of actors that have worked, at
> least once, in any movie produced by J.J. Abrams:
>
> select from (
>
>   traverse Movie.actors, Actor.movies from (
>
>     select from Movie where producer = "J.J. Abrams"
>
>   ) where $depth <= 3
> ) where @class = 'Movie'
>
> *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).
>
> *Issues*
>
> To report an issue please follow the suggestions posted some days
> ago<https://groups.google.com/d/topic/orient-database/uDqnWjQ0uJE/discussion>,
> 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*
>
> Every month OrientDB gains the trust of new users that want to benefit of
> the professional services to speed-up the development of their applications:
>
>    - Support for servers in production:
>    http://www.orientechnologies.com/professional.htm#support
>    - On-site consulting, to help companies to build software using OrientDB
>    :http://www.orientechnologies.com/professional.htm#consulting
>    - Training, with 6 courses:http://www.orientechnologies.com/training.htm

Vidar Langberget

unread,
Feb 6, 2012, 2:16:03 PM2/6/12
to orient-...@googlegroups.com
Hi!

What is the status of .Net support for OrientDB? The language bindings wiki page links to an empty page about the native driver. Is it in development? The rest based driver hasn't been updated since April, and is at v0.1.

Someone also talked about porting OrientDB to .Net. Any news on that?



Vidar

Martin Bean

unread,
Feb 9, 2012, 1:04:33 PM2/9/12
to OrientDB
.Net is still open... I had it running in IKVM, but it was a lot
slower so not really an option. Porting was discussed, I even started
a port but stopped because of my lack of knowledge of Java(I came
across a lot of problems with generics).

Another option I am investigating is jni. There is a project called
jni4net (google it!) which allows you to run a Java instance within
your .Net process. With the help of jni you can then call Java methods
in classes from C#. However, jni4net is not production ready and a lot
of features are missing. The author however is working on a next
version of jni4net with better stability and more features. He just
released a new preview version, didnt had the time to look at it.

But besides jni, perhaps we(as the .Net community) should restart a
REST driver??
Although I would really appreciate some effort from OrientDB to
deliver a native .Net driver(not REST but a binary driver). With a
somewhat low level driver maintained by the OrientDB developers we
would be really helped. This assures stability and updates with new
versions of OrientDB. A community project always stays behind which
makes usage from .Net difficult/dangerous.

Anton Kulaga

unread,
Feb 9, 2012, 2:19:46 PM2/9/12
to orient-...@googlegroups.com
> But besides jni, perhaps we(as the .Net community) should restart a 
REST driver?? 

And what do you think about porting orient C++ binary driver to .NET? Maybe it would be easier than writing C# REST driver?

Adolfo Rodriguez

unread,
Feb 10, 2012, 12:37:05 AM2/10/12
to OrientDB
Hi, do not forget to update the roadmap by removing 1.0rc8 as
released.

Look forward v1.0. Keep up the great work.

Regards

Luca Garulli

unread,
Feb 10, 2012, 11:52:28 AM2/10/12
to orient-...@googlegroups.com
Hi,
roadmap updated. About .NET driver it's a shame that no one can work on it. But this is an open source project so who can start it? maybe we can find 2-3 .NET developers can contribute on it.

If the driver design was layered, it could use the Dino's C lib and to allow, in the future, to switch between the C and the .NET pure implementation if someone could develop it.

Lvc@

Martin Bean

unread,
Feb 13, 2012, 3:12:27 AM2/13/12
to OrientDB
What would be the most nice thing to have?? A REST driver or a NATIVE
driver in .Net??

And I am not just asking Luca... I like to hear from other .Net
developers too :)



On Feb 10, 5:52 pm, Luca Garulli <l.garu...@gmail.com> wrote:
> Hi,
> roadmap updated. About .NET driver it's a shame that no one can work on it.
> But this is an open source project so who can start it? maybe we can find
> 2-3 .NET developers can contribute on it.
>
> If the driver design was layered, it could use the Dino's C lib and to
> allow, in the future, to switch between the C and the .NET pure
> implementation if someone could develop it.
>
> Lvc@
>

Vidar Langberget

unread,
Feb 13, 2012, 3:24:56 AM2/13/12
to orient-...@googlegroups.com
I think a Native driver is best..

I looked at the PHP native driver this weekend. For someone familiar with PHP and low level binary code, I think it should be possible to port it to .Net fairly quickly.


-----
No virus found in this message.
Checked by AVG - www.avg.com
Version: 2012.0.1913 / Virus Database: 2112/4806 - Release Date: 02/12/12

Martin Bean

unread,
Feb 13, 2012, 3:30:02 AM2/13/12
to OrientDB
I think the PHP driver should not be ported. To use the full .Net
power a new implementation is needed. PHP is very different from .Net.

Vidar Langberget

unread,
Feb 13, 2012, 3:34:03 AM2/13/12
to orient-...@googlegroups.com
I agree that it is better with a completely new implementation, but it is also a lot more work. It's better with a suboptimal driver than no driver at all. Maybe both? A port first, and then a new implementation?

Martin Bean

unread,
Feb 13, 2012, 4:06:40 AM2/13/12
to OrientDB
Protocol question:

From the binary protocol wiki page, Connect chapter:
Request: (driver-name:string)(driver-version:string)(protocol-
version:short)(client-id:string)(user-password:string)(user-
password:string)
Response: (session-id:int)

Is suppose the first user-password should be user-name ??

Luca Garulli

unread,
Feb 13, 2012, 5:04:07 AM2/13/12
to orient-...@googlegroups.com
Cut & Paste victim: WiKi fixed.

Lvc@

Martin Bean

unread,
Feb 13, 2012, 5:41:56 AM2/13/12
to OrientDB
While we are at it...

DB_OPEN
Request: (driver-name:string)(driver-version:string)(protocol-
version:short)(client-id:string)(database-name:string)(database-
type:string)(user-name:string)(user-password:string)
Response: (session-id:int)(num-of-clusters:short)[(cluster-name:string)
(cluster-id:short)(cluster-type:string)](cluster-config:bytes)

database-type. If I send it, I get a security exception. Username/
password not correct. If i dont send the database-type, i can connect.
It seems database-type is not expected??(it sees database-type as
username) I send protocolversion 7.

Martin Bean

unread,
Feb 13, 2012, 5:46:39 AM2/13/12
to OrientDB
I ment protocol version 8

Luca Garulli

unread,
Feb 13, 2012, 5:49:30 AM2/13/12
to orient-...@googlegroups.com
Protocol v.8 works with 1.0rc9-SNAPSHOT.

Lvc@

Greg T

unread,
Feb 13, 2012, 6:11:25 AM2/13/12
to OrientDB
From nicest:
1. Both NATIVE and REST
2. NATIVE
3. REST

I wish I have enough skills to help on this but I am afraid I don't
even know what such a job would require

Martin Bean

unread,
Feb 13, 2012, 7:39:25 AM2/13/12
to OrientDB
Ehhhh....

So
rc8 == proto version 7
rc9 == proto version 8

??

Dave Dolan

unread,
Feb 13, 2012, 9:54:33 AM2/13/12
to orient-...@googlegroups.com
I'm a long time .net developer. I can help test, and maybe some other
things, but I don't have a lot of free time, but I'll help when I can.
Is there a repo for this somewhere or are we just discussing idly at
this point?

--
---------------------------------------------------------------
Dave Dolan
http://davedolan.com/blog

Martin Bean

unread,
Feb 13, 2012, 10:04:46 AM2/13/12
to OrientDB
I hope to have a repository up in about 1 week. Having the binary
protocol wiki page and the OrientDB source code open trying to setup a
binary protocol in .Net.

Kind of weird though... having to supply a serialized Java object.
Perhaps this could be fixed in a future version of the binary protocol
to make it more 'generic'.

Anyway, only thing it does now is... DBCONNECT and executing a simple
query... lots of stuff still to do.

keep you all posted.

Anton Terekhov

unread,
Feb 14, 2012, 3:51:40 AM2/14/12
to orient-...@googlegroups.com
Luca, I think its a good one - to simplify query serialization with replacement of Java class name to somesthing more short - like byte on query type in binary protocol.

Luca Garulli

unread,
Feb 14, 2012, 7:34:40 AM2/14/12
to orient-...@googlegroups.com
Hi Anton,
that mechanism allow to use custom Command implementation. I must admit we can improve it by defining a sort of aliases for queries and standard commands:
  • "q" for query (class com.orientechnologies.orient.core.sql.query.OSQLSynchQuery)
  • "c" for sql command (class com.orientechnologies.orient.core.sql.OCommandSQL)
So backward compatibility is assured by using the "old" mode specifying the full class name. I've implemeted it in current SVN trunk r4835 (1.0rc9-SNAPSHOT).

Lvc@

Anton Terekhov

unread,
Feb 14, 2012, 9:59:17 AM2/14/12
to orient-...@googlegroups.com
Great!
What about com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery ?

Luca Garulli

unread,
Feb 14, 2012, 10:12:20 AM2/14/12
to orient-...@googlegroups.com
Hi,
OSQLAsynchQuery it's the same as for OSQLSynchQuery. The asynchronous is known by reading the first parameter set to 'a'.

So 's' works also for asynchronous queries.

Lvc@

On 14 February 2012 15:59, Anton Terekhov <anton.a....@gmail.com> wrote:
Great!
What about com.orientechnologies.orient.core.sql.query.OSQLAsynchQuery ?

Reply all
Reply to author
Forward
0 new messages