This forum is now a read-only archive. All commenting, posting, registration services have been turned off. Those needing community support and/or wanting to ask questions should refer to the Tag/Forum map, and to http://spring.io/questions for a curated list of stackoverflow tags that Pivotal engineers, and the community, monitor.

OrientDB support

Dec 13th, 2010, 09:41 AM

Hi,
I'd like to support OrientDB (http://www.orientechnologies.com) as a new implementation of Spring Data. OrientDB is a document-graph NoSQL dbms, so I don't know if it's better to implement the Document APIs or Graph APIs or maybe both.

Comment

Hi all,
I'm seriously interested in the development of this implementation for OrientDB. Now, I'd like to have both Document and Graph templates. Probably the simpler is the Document one. WDYT? Anyone is interested on this task?

Lvc@
CEO NuvolaBase - the OrientDB company

Comment

I would create an OrientDocumentTemplate and OrientGraphTemplate (with their repositories, annotations and mapping, ecc).

The implementation of the document based API could be based on the mongoDB implementation since the core functionality of both DBs are similar, however spring data modules only share the basic infrastructure of spring-data-commons so one would have to create all the document-database APIs from scratch, however, some code could actually be the same and in fact, even the basic design could be the same as well (and I think it should, it would be a waste of time to rewrite everything from scratch having well designed apache licensed code available, and if some improvements are made along the way, the mongo implementation could benefit from it too)

Comment

Hi,
+1 about using MongoDB as beginning to design and develop the OrientDocumentTemplate. Probably the Graph one is more complex, but I'm pretty sure once the Document is ready writing the Graph module will be straightforward.

The big big good point of OrientDB in comparison to MongoDB is that OrientDB is written in Java! This means SpringData users could
the OrientDB's "local" mode to use it embedded in the same JVM of the applications for the maximum of the performance.

Lvc@
CEO NuvolaBase - the OrientDB company

Comment

It would be cool to see a Spring Data implementation for OrientDB so feel free to point us to intermediate work for feedback or cross-promotion. I'd also suggest to start looking at the MongoDB module, mimic the implementation and start from there. If we identify parts that could be extracted into a common Spring Data document base module, I am happy to have a look at this. We just didn't want to start introducing more layers than initially necessary. A lot of stuff shared between the MongoDB and Neo4j module for example is in Spring Data Commons even (the TypeMapper API e.g.).

Also, have a look at the (admittedly work in progress) store developer guide at [0]. It's by far not complete yet but the stuff that is in there is up to date.

Comment

Thanks for your suggestions.
I am looking at the mongoDB implementation and using it as the basis for the orientdb document implementation (the developer guide was very useful by the way). I managed to get some basic operations working. We'll probably create a github repository soon.

I have some doubts about the license details of the code, since I am mimicking the mongodb implementation, what should i put in the headers of the files? I am thinking about leaving the apache license and leaving the @author tags and just adding one tag with my name on it, is this ok? or should I remove the @author tags of the original file? or should I make a distinction between authors of the derivative work and authors of the original file its based on?

Comment

The implementation is still under early development, it will have two implementations, you will be able to use orientDB as a document store (like mongo) and as a graphDB (like neo4j).

What you will find on the repo right now is a connection manager and a transaction manager, even though the implementation is under early development as I said, it still beats writing your own transaction manager to integrate orientDB with spring.

Right now I'm working on the Object-Document Mapping part of the document module, I expect to finish it soon and we will have a basic OrientDocumentTemplate implementation.