Sep
14
2004

Commercial-friendly Embedded Db Options

For our little spam filter app, we’ve been evaluating embedded storage options. For commercial apps, the options are surprisingly few. HSQL and McKoi are nice but neither sports a commercial-friendly license. Axion shows a lot more promise (but it’s dependent on an older version of commons-collection).

Of the commercial options, you’ve got Daffodil and ObjectDb which both look very good, but have prohibitivly high per seat licensing options – which is no good for a desktop app. Ditto for JDataStore. And Pointbase seems to have their download links broken. I’ve filled out their forms numerous times, but it still won’t let me download an Eval copy. So they’re out too. If that’s their download approach, their support is probably going to be big trouble.

One left-field option is InfinityDb which is a non-relational BTree-based API that Matt recommended. Unusual API, but it’s got a decent royalty-free price. It stores it’s data compressed. It’s incorruptable. The schema is dynamically updatable (so no version probs). And the support is just wonderful. I just received a two-page reply from their support giving numerous options for my implementation problem.

So, anyone out there using an Embedded DB in their commercial app? What have you had good experience with?

About the Author: Glen Smith

8 Comments + Add Comment

  • Derby ( http://incubator.apache.org/derby/ ) is on the ramp up for their first open source binary release. Svn HEAD is very stable from what I hear. Right now it is only really usable as an embedded DB as IBM chose not to release network drivers with it, only embedded drivers. I expect this will be fixed quickly.

    -Brian

  • You can get a commercial license for McKoi which isn’t very costlh at all. You can contact them for details and they’re very helpful. The source code is also quite readable with many comments and relatively easy to get into if you need to make some changes.
    Daffodil seems to be a product with many problems for the testing that we’ve done and it’s quite slow, so I’d really not consider it.
    Derby’s transactional model leaves much to be desired (based solely on locking), so I’d stay away from it too. Also, it has been actively crippled when IBM adapted it from Cloudscape.

  • There is db4o which is an object database that works well in-memory. There licensing structure is flexible.

  • I’m not sure what all of your criteria are for selecting an embeddable database but you might want to check out Berkeley DB, Java Edition. It uses a B+tree in memory coupled with an LFS-based persistent store.

  • You’ve lost me on HSQLDB. It appears to just be a standard BSD license. How much more commercial friendly could you want?

    I’m not trying to be argumentative, but I use BSD licenses on most everything I put out for this very reason. I want to allow both commercial and non-commercial use of what I write.

  • Just to beat the dead horse further:

    This section out of their FAQ is a bit of a giveaway, “May I use HSQLDB in a commercial product?

    HSQLDB is Open Source and free to use in any commercial product so long as the terms of the Licenses are met. The License of Hypersonic SQL (on which HSQLDB is based) is based on the old BSD License. The HSQLDB Licence is based on the new BSD License.”

  • Thanks for the feedback guys. I didn’t realise that HSQL was a BSD license. I was more concerned about the underlying Hypersonic License (which isn’t BSD), but the FAQ does seem to give it the all clear on the derived work (not sure how that works, but whatever).

    Last time I checked BerkeleyDB were charging $30000 for a commercial license, so they are out (but I havn’t ruled out using InfinityDb which is also a Btree job). I’m still waiting to hear back from some of the others.

  • I think before deciding upon anything you should give a try to Daffodil their product is good and what i gathered from their sales guys is that they have a flexible licensing policy wherein you just have to pay an initial amount of around 999$ and after that you can pay them a royality on each copy sold which will be 8-10% of your license cost or 80% of their license cost which ever is less.. If you are looking at huge volumes than i suppose this licensing will fit your requirements.

Leave a comment

Glen Smith

About Glen

Co-author Grails in Action