Discussions

ASCS has released AcornDB v1.06, an open source, object-oriented embedded database for Java that offers high performance persistence and ease in working with objects. ASCS is offering AcornDb as a free download and spearheading its development in the open source community. ASCS also now sells AcornDB support as well as commercial licenses.
Under AcornDB's dual license, users can modify database source code and use it freely in non-commercial applications (software that is neither sold nor used internally by a business, and for which source code is made available) under the GPL. ASCS's commercial license is required if AcornDB-based software will be sold or used for business, or if source code is to be withheld.
AcornDB is intended for Java applications requiring a modest footprint and fast, multi-platform data management - typical uses include packaged software, mobile and embedded applications, Web services and industrial systems. AcornDB fits within the resource constraints of many embedded systems applications.
AcornDB requires no dedicated compiler, byte code processor or specialized Java run-time environment. The AcornDB API is flexible and easy to use. It requires no end-user administration, and ensures integrity via transactions that adhere to the ACID properties (Atomicity, Consistency, Isolation and Durability) with fast recovery.
In this way AcornDB works with an application to use available JVM resources while providing access to very large data sets.It architecture provides an underlying storage layer for any Java application requiring high performance, transactional integrity and recoverability.
[Editor: More information and download is available at http://www.ascstech.com/products.html ].

How does it compare to BDB-JE Direct Persistence Layer? BDB-JE is really really fast and very easy to work with.
Also, I'd suggest that if you're trying to sell your product to Java developers, show them some Java code of how easy your application is to use.

I concur the website is not particularly informative, however I do not really understand why any non-free commercial license must be tagged as "ill-fated" - is free software the only way to go? I do not think so.

.. but last time I checked on the GPL, there was no clause prohibiting commercial software based upon GPL'ed software (even if it is a derivative work).
As long as I make the sourcecode available to the users under the terms of the GPL, I may earn as much money as I like. And I've never even heard of limitations of usage for a GPL'ed application.
So the following sentence is AFAIK at least a little "exagerated" and more wishful thinking, than actual license terms.

and use it freely in non-commercial applications (software that is neither sold nor used internally by a business, and for which source code is made available) under the GPL.

OK, so you have a graphic showing your benchmark, how did you get those results? How did you setup your environments? BDB caches writes, writing to RAM and persisting to disk on a background thread, so I'm sceptical that you had a 20x write improvement.
Which BDB did you use? what was your cache size? Were these even on the same machine?
I suppose I could contrive a benchmark that gives another DB a 20x performance improvement over Acorn by giving the acorn instance the smallest cache allowed, a slower disk (write to a 10 year old CompactFlash card), start the JVM with much less RAM, defragment my hard drive during the Acorn run. If that doesn't work, I'll throw in a few Thread.sleep() calls just to skew things even more.

The AcornDB.zip holds the benchmark, you need only extract zip file and run benchmark scripts to get the results. In benchmark we used default values, run on same environment and the direct write to disk in all databases. In case that you can optimize this program and get better performance please send it.

The AcornDB.zip holds the benchmark, you need only extract zip file and run benchmark scripts to get the results. In benchmark we used default values, run on same environment and the direct write to disk in all databases. In case that you can optimize this program and get better performance please send it.

This class is identical to the code within this project. It looks like the code was taken from JDBM, the comments removed and a new license placed on it.

Compare com.pg.base.DefaultCacheManager in AcornDB to the code above.

This code is actually a piece of the jdbm project at sourceforge (http://jdbm.sourceforge.net/). JDBM is released under a BSD license which is pretty open and liberal, so even if AcornDB has been based on jdbm, they are free to do that. However, I still would consider it really bad ethics to "steel" someone else's code, slap a new license on it, re-brand it and sell it for profit.
So, even if the BSD license is pretty unrestrictive, there is still the case of "steeling" someone else's intellectual property.
So, even if AcornDB is a good product, I still would hesitate to use it because of this alleged IP theft.
Can someone check how much code of AcornDB is based on JDBM?

AcornDB need to commercial licensing only for companies which necessaries technical support

So, dear ASCSTech Team, dear Alex,
for all purposes of fairness, please re-add the original license (BSD), add the notes giving credit to the original work, and you are free to sell commercial support for this product as much as you like. If you happen to have proprietary extensions to the software that you chose not to release under BSD, you can do this and also release it under your own license.
But, stop steeling someone else's code and claim it as your own. That is the worst thing you can do and will definitely kill your product in the open source community sooner as you can think.
Just my two cents and well intentioned advise.
-Uli

I confirm. As far as I can see, this is a simple copy of JDBM code base.
They broke item (1) and -5) of the JDBM license :
1. Redistributions of source code must retain copyright statements and notices. Redistributions must also contain a copy of this document.
5. Due credit should be given to the JDBM Project((http://jdbm.sourceforge.net/).

This class is identical to the code within this project. It looks like the code was taken from JDBM, the comments removed and a new license placed on it.

Compare com.pg.base.DefaultCacheManager in AcornDB to the code above.

You're absolutely right. Looking at a few other files with the same names in both, the standard pattern seems to be (Look at BlockIo.java for an example as well):
1. Remove the JDBM copyright
2. Remove all original comments in the JDBM code
3. Add an AcornDB GPL header
4. Change the names of a few of the private properties to deter text matching algorithms that might happen to help catch this
5. Refactor interfaces to use "Hungarian" notation, also to help deter text matching algorithms
All in all a pretty questionable business practice, and I don't see any reason to pay a company for support whose whole business model is ripping off open-source projects, especially with giving credit where it is due.

Gentlemen, let be positive sometimes, at least from the beginning. AccornDB is really cool (from my perspective). We are using it within our solution as a persistence layer for our message bus. And there is no regret on our decision to use AccornDB: minimal setup, great performance, fast and professional support (what else can we expect from a software product). In summary: it is very easy to find negative points in anything, especially if you are looking for those negatives. But I have another proposal, just try the benchmark and try to be not biased to anything before jumping to your conclusions.
Peace,
Y.K.

TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations technology projects - with its network of technology-specific websites, events and online magazines.