NeoDatis 1.8.0, an object oriented database, released in beta


News: NeoDatis 1.8.0, an object oriented database, released in beta

  1. NeoDatis 1.8.0 beta has been released. This is an open-source (LGPL) object database, which stores objects as objects in a datastore, instead of translating an object and its components into entities and columns for a relational database. NeoDatis uses an instance of the ODB object to access a database. An example, derived from the documentation:ODB"foo.odb"); MyObject("key")); odb.close();As expected of an object database, the object stored can contain references to other objects, which will be stored along with the parent object. Retrieving data can be done by four methods: a gross "retrieve all instances of class X" method, query by criteria, query by native query, and query by OID (a unique key assigned by the datastore.) NeoDatis also provides an object explorer utility, a GUI application that can show you a number of views into the datastore, including attributes for all objects. It can also rename classes stored in the datastore, update data in the datastore, and create new instances in a datastore. NeoDatis has also posted a comparison of NeoDatis and Db4o, using the Pole Position benchmark. According to the benchmark, NeoDatis is generally faster, with converging data as object tree sizes grow. However, as with most such benchmarks, it's hard to tell if either of the two object databases were optimized (or how well). One fundamentally interesting aspect of NeoDatis is their client/server mode, which is still in beta.
  2. LGPL? Really?[ Go to top ]

    This is an open-source (LGPL) object database
    Kudos for choosing LGPL, I think it is a big advantage against db4o that is dual licensed as GPL/commercial.
  3. Congrats for what seems to be a very nice clone! Here is a small suggestion to correct the documentation. Quote:
    Native queries(NQ) were introduced by Prof. William Cook at the 27th International Conference on Software Engineering (ICSE) in May of 2005. NQs are queries written in native language. A native query is a peace of code that receives an object of the database and returns a Boolean value to indicate the query manager if the object must be included in the query result set.
    While the principle idea for "Safe Query Objects" certainly comes from William Cook and his students, the idea to call them "Native Queries" was first proposed by Klaus Wuestefeld at a db4o team meeting in Bavaria in June 2005. That's also where we agreed on the syntax that you are now using. Indeed Native Queries are great to write peaceful code. You are using Poleposition for benchmarking! That's excellent! We have written a couple of tougher query processor circuits in the meanwhile and we will ask the Poleposition maintainers to include them. All the best for your project!
  4. Hi Carl, I know Db4o first introduced the Native Queries on a product. But when implementing Native Queries in NeoDatis ODB, we took care about that and I took this text (that you are quoting) from a DB4O news article ( If you think we should change the doc of NeoDatis ODB to refer to Db4o, no problem, just let me know. I am not sure how to interprete 'very nice clone' :-)
  5. Re: LGPL? Really?[ Go to top ]

    Dual licensed Gpl/Commercial does not sound very 'open source' for us (NeoDatis)!
  6. Re: LGPL? Really?[ Go to top ]

    GPL/Commercial wouldn't be that bad alone. But in case of db4o - if I got that right - commercial license means that you have to pay royalties for each sold copy of your software that includes db engine. No chance for flat fee, or year subscription only. That kind of license policy sounds like an echo of early 90-ties, nobody uses that kind of model anymore. Kudos to NeoDatis for choosing LGPL, it is a great move and even if your DB lack some features compared to db4o, thanks to licensing model it is much more appealing..and I believe I am not the only one with such opinion. Hope db4o learns a lesson and change the license to LGPL too, or at least removes the royalties system.
  7. It's a nice OODBMS attempt. The downside of tossing away the relational world, of course, is that you throw away 30 years of research into concurrency strategies, distributed lock managers, query plan optimizers, etc, and the tuned implementations thereof. We've used products like Prevayler, db4o and Matisse in certain applications with decent success, but only the last one survived even moderate load on highly contended data sets (probably because Matisse model things internally using proven techniques). The sad state of the onion is that for real-world, mission critical systems which isn't exclusively object navigational in nature, relational databases rule. I would like them to go away, but we're far from that goal (other issues are obviously lack of query language standards, harder system integration [sometimes the database IS the most sensible interface] and lack of tooling) But good luck. Keep pushing that pesky envelope! And thank you for not choosing GPL.
  8. Han, you are right! There is still a long way to go for OODBMS be widely adopted. Database is always a very critical component of applications. So it is easier to choose a relational database that is in the market for years than a new unknown OODB! But we really think that simplicity and productivity will win in the future!
  9. "But we really think that simplicity and productivity will win in the future! " Not if those are the only treats. The thing is, you cannot simplify things that are intrinsically hard (concurrency and correctness). And productivity doesn't mean a thing if the result is only half-way there (slow, doesn't scale enough, coursegrained locking to obtain correctness). For instance, db4o has only read-committed semantics and if you want anything else, things starts to get very hairy (and slow and hard to get correct) because you need to program the locking yourself. And we all know how that fares. It's just stupid and not something you should have to do in a database systems. After all, automatic locking *IS* 25% of the point of any database system.
  10. What is your business model?[ Go to top ]

    LGPL is nice and all but I don't understand, what is your business model? Are you implying you're putting together a Java, .NET and Mono version all by yourself for free?
  11. Re: What is your business model?[ Go to top ]

    Yes it is the idea. The Business model is based on consulting and commercial support. Olivier.