OrientDB, the most versatile database I’ve run across(pettergraff.blogspot.sg)
pettergraff.blogspot.sg
OrientDB, the most versatile database I’ve run across
http://pettergraff.blogspot.sg/2013/12/orientdb-thanks.html
8 comments
We are using OrientDB to store visitor stats on meople.net behind the scenes: http://meople.net/visitor/index.jsp
Document oriented tables are used. I like no-sql access to indexes:
Document oriented tables are used. I like no-sql access to indexes:
OIndex<?> index = db.getMetadata().getIndexManager().
getClassIndex(klassName, indexName);
Collection<ODocument> = index.getEntriesBetween(start, end, true);
Nothing to say here: it just works.I'm in the same boat. I've been looking at Neo4J, Titan, etc., as part of research for a new application I'm building. Our data set is fairly tiny (<<10M entities, almost certainly), but the information we're tracking is highly graph-oriented.
I've been trying to decide between a graph db, which seems like a better fit for the real world relationships but is entirely new to me, and postgresql with exports to graph structures for analysis as needed.
In particular, I'd be interested in deployment experiences with Orient and other graph dbs. I don't have a sys admin and I'm not one myself, so a PaaS platform is highly attractive.
Neo4J has a Heroku "try" option, but there's no clear upgrade path. Titan is flexible in terms of backing store (Cassandra, PersistIt, etc.), but seems to require self-admin.
Anyone deployed and maintained OrientDB or any of these other tools?
I've been trying to decide between a graph db, which seems like a better fit for the real world relationships but is entirely new to me, and postgresql with exports to graph structures for analysis as needed.
In particular, I'd be interested in deployment experiences with Orient and other graph dbs. I don't have a sys admin and I'm not one myself, so a PaaS platform is highly attractive.
Neo4J has a Heroku "try" option, but there's no clear upgrade path. Titan is flexible in terms of backing store (Cassandra, PersistIt, etc.), but seems to require self-admin.
Anyone deployed and maintained OrientDB or any of these other tools?
Heroku will have another Neo4j option in January that will offer an upgrade path.
Disclaimer: I work for Heroku on Add-ons.
Disclaimer: I work for Heroku on Add-ons.
In your research, have you found any good graph database not written in Java?
ArangoDB (C/C++, http://www.arangodb.org/)
Here you have 15 Graph databases compared: https://docs.google.com/spreadsheet/ccc?key=0AlHPKx74VyC5dER...
Here you have 15 Graph databases compared: https://docs.google.com/spreadsheet/ccc?key=0AlHPKx74VyC5dER...
I'm building the app in Java, so I specifically looked for those. Almost all of them have REST built-in (or easily available via the stack at http://www.tinkerpop.com), so the client could be language-agnostic. Look at http://bulbflow.com for Python, for instance.
Triple/Quad stores (specialisation of a Graph DB for storing RDF) are available written in C (4Store, Virtuoso) as well as Lisp (AllegroGraph).
They support a standardised query language called SPARQL which is based on matching graph patterns.
They support a standardised query language called SPARQL which is based on matching graph patterns.
I've used it in my Java Swing GUI app which I open sourced (https://github.com/jjk3/scrape-it-screen-scraper) in year 2012, because the other Object database cost licensing money (in small letters).
It was the only joy I got from working with a Java Swing. It's excellent to just store Java Objects directly to the local filesystem. If you don't like that, you can setup a OrientDB server. The writer of OrientDB was super helpful too (always on google groups helping out). It's flexibility outdoes MongoDB.
I'm surprised that it's catching on now...after 2 years.
It was the only joy I got from working with a Java Swing. It's excellent to just store Java Objects directly to the local filesystem. If you don't like that, you can setup a OrientDB server. The writer of OrientDB was super helpful too (always on google groups helping out). It's flexibility outdoes MongoDB.
I'm surprised that it's catching on now...after 2 years.
I've been watching OrientDB from a distance for a couple years now. It remains incredibly interesting, and I want so badly to give it a real shot. Unfortunately, I don't [currently] have spare cycles to get into it.
I'm still waiting to hear about a large project with fairly significant scaling needs go on to sing the praises of OrientDb. Unfortunately I don't have the time or resources to become said project.
I'm still waiting to hear about a large project with fairly significant scaling needs go on to sing the praises of OrientDb. Unfortunately I don't have the time or resources to become said project.
Can anyone point me to a documentation that explains the consistency choices? Is it CP? Is it AP?
It has a nice/easy to use REST interface too (shameless plug: I authored the Python REST a few years back and the community has kept it up to date https://github.com/emehrkay/Compass)
We are actually talking about moving away from a relational DB to a graph one for some of our internal data needs. A coworker was looking at Neo4j (another great one, but with licensing fees) and I told him bout Orient. Exciting stuff, especially when you factor in Tinkerpop's (tinkerpop.com) abstraction layer allowing you to switch out DBs.
We are actually talking about moving away from a relational DB to a graph one for some of our internal data needs. A coworker was looking at Neo4j (another great one, but with licensing fees) and I told him bout Orient. Exciting stuff, especially when you factor in Tinkerpop's (tinkerpop.com) abstraction layer allowing you to switch out DBs.
OrientDB has issues with documentation and tooling. Generally the drivers for each language are difficult to use and confusing. There is very little in the way of high performance ORMs which is the main reason you'd want to use something like OrientDB - mapping your classes directly to the database.
I looked at OrientDB in a past job where we wanted schema flexibility but we ended up choosing Datomic instead.
Why did you end up choosing Datomic?
Same here.
That site puts stuff on the right scroll bar (at least in Firefox). Highly annoying.
It looks terrible, but do you ever physically click on a vertical scrollbar?
I can't remember the last time I had to do this.
I can't remember the last time I had to do this.
Yea, this is my main irk when I read blogs on blogspot.
Plus, it's hijacking my back button.
Plus, it's hijacking my back button.
I really want aphyr to run this through jepsen now...
I'll be honest: I've pretty much only ever used Relational databases. I've not even properly tried using Document databases (the hype just didn't overcome my laziness and inertia!). On big big projects, I just wrote the queries I needed, with a schema I defined, and let my DBA deal with the nitty gritty of it... I really should learn more about the various classes of data stores. I know enough to understand a lot of the trade offs inherent to the major types (hence why I've stuck with relational, it fits the way i think about application data, and I haven't needed Web Scale(tm) for those projects, so horizontal scaling wasn't ever an issue), so I'm really curious how this one holds up under close scrutiny, and whether I can map how I think about data to how Orient works (or whether it's way of tackling it is better enough than how I think to just embrace it's style entirely).
Anyone here have experience with it? What use case, data model, etc. what trade offs did you make, and why?