[jboss-dev] Embedded DB for internal use

Galder Zamarreno galder.zamarreno at redhat.com
Wed Sep 19 12:24:42 EDT 2007


Could we use Berkeley DB only for unit testing and not distribute it?

Afaik, from 
http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html

"Oracle employs a dual licensing model that offers customers a choice of 
either our open source license or a commercial license. Our open source 
license is OSI-certified and permits use of Berkeley DB in open source 
projects or in applications that are not distributed to third parties. 
Our commercial license permits closed-source distribution of an 
application to third parties and provides business assurance."

Galder Zamarreno wrote:
> Afaik, Java 6 includes Derby, which might be a good or not so good idea, 
> but gets around the necessity to have hypersonic any more. Has anyone 
> tried this Derby version?
> 
> Personally, I see two sides of the story here:
> 
> + On one side, we have the CLs (cache loader) that customers will be 
> using with JDBC, whether FCL or JDBCCL...etc. We already have DefaultDS 
> which by default points to HS. When it comes to support, we don't 
> support it. Users need to change to a production ready database. Why 
> can't we do the same for JBC? Pretty much every user/customer uses a 
> production ready database for something.
> 
> My point is, we're gonna be better of in production if we make EJB3 
> cache services point to JDBC databases rather than file systems. At 
> least until we found a better default CL. Customers could easily 
> encounter the same issues Brian did UT'ing.
> 
> + On the other side, we have unit testing, which Brian has issues with 
> too (long file paths...etc). FCL does not work well here, HS does not 
> either. I suspect this is what Brian needs resolving.
> 
> Cheers,
> 
> Brian Stansberry wrote:
>> Forwarding a response from Elias Ross:
>>
>> Elias Ross wrote:
>>  >
>>  > [I can't post to the dev list for some reason]
>>  >
>>  > I thought that the default configuration could use the JDBM cache
>>  > loader, which is a free DBM similar to BerkeleyDB. JDBM, like
>>  > Berkeley, uses the local file-system and doesn't have the overhead or
>>  > management complexity of a relational database. Unfortunately, I have
>>  > no idea what's going on with the ongoing development of the project.
>>  > It seemed to be going strong when I wrote the JdbmCacheLoader a year
>>  > and a half ago.
>>
>> Yeah, my original hope was to use JdbmCacheLoader.  But the JDBM 
>> project seems pretty dead now; no release since mid-2005, something 
>> about a move to codehaus but no roadmap there on the codehaus site. We 
>> looked at it a bit this spring for 4.2 and rejected it as too 
>> inactive, and now several months have gone by and I see no sign of 
>> change.
>>
>>  > Somebody from JBoss Cache could approach the current
>>  > authors and adopt the project, perhaps.
>>  >
>>
>> Maybe that genman guy? ;)
>>
>> Seriously though, I don't think the JBC guys have the bandwidth to 
>> drive JDBM.  I'd think adopting that would have to be a larger Red Hat 
>> commitment. Dunno one way or the other if there's any appetite for that.
>>
>> Part of the reason I raised this topic is every now and then replacing 
>> HSQLDB with Derby gets tossed around.  If we were going to do that 
>> anyway, and we regard Derby as production quality, and some other 
>> internal use cases in the AS could benefit from having it available 
>> for internal use, then using it for cache overflow would make sense too.
>>
>>  > I also wonder if some of the limitations with FileCacheLoader couldn't
>>  > be addressed, for example the way Microsoft worked around the 8.3
>>  > filename length limitations. And for transactions, keeping a
>>  > transaction log would be one way to address corruption. E.g. create
>>  > files using a ".tmp" designation, then do a rename in the commit
>>  > phase.
>>
>> Whether we stick w/ FileCacheLoader for the session caches or not, 
>> improving FCL makes sense to me. JBC users are going to want to use it 
>> for the same reason AS did -- it's the most straightforward to setup 
>> and use, partic if you don't have a ton of control over the 
>> environment you're running in.
>>
> 

-- 
Galder Zamarreño
Sr. Software Maintenance Engineer
JBoss, a division of Red Hat



More information about the jboss-development mailing list