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?
8 Comments + Add Comment
Leave a comment
Glen Smith
Archives
- April 2012
- March 2012
- January 2012
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- March 2004
- February 2004
- January 2004
- December 2003
- November 2003
- October 2003
- September 2003

An article by Glen





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.