Mitch Pronschinske is the Lead Research Analyst at DZone. Researching and compiling content for DZone's research guides is his primary job. He likes to make his own ringtones, watches cartoons/anime, enjoys card and board games, and plays the accordion. Mitch is a DZone Zone Leader and has posted 2577 posts at DZone. You can read more from them at their website. View Full User Profile

db4o 8 Looks Great

  • submit to reddit
The decade-old, open source 'database for objects' has managed to stay speedy and relevant in its old age.  As it reaches version 8.0 with a developer release this week, db4o is getting significant performance upgrades - in fact, they're the theme of this release.  db4o is an embeddable object database for Java and .NET.  It's developed and supported by Versant.

Here are the major new features coming in the final release:

  • New Major Performance Features
    • Internal Id system ( pluggable per our preferred approach ) will help with improving I/O, clustering, defragmentation, etc. *
    • Improved Memory Manager - reduces heap space by factor of 2
    • New cache options for different workloads
    • Fast Collection implementations ( BigSet )
    • Custom Type Handlers
    • Object pre-fetching for client/server optimization
  • New Major Capabilities
    • Replication from db4o to big brother Versant. *
    • TP/TA for Java and .NET collections
    • Silverlight and Mono support
    • .NET LINQ provider
    • Internationalization - Unicode, now also UTF-8 and other string encodings .. support Chinese, Japanese character sets
  • New Major Open Source Community Perks
    • Expanded Open-Source licensing - Microsoft (Ms-PL, Ms-RL ) , FLOSS licenses, compatibility with GPL_v3
    • Open source of OME as Eclipse and Visual Studio plugins
    • DZone RefCard and new tech videos and podcasts
    • Android demo applications like MapMe
    • Eclipse and Visual Studio TA/TP plugins available
  • New Major Usability Features
    • Secure Socket communications ( pluggable sockets )
    • Introduction of Maven snapshot repository
    • ADO .NET Data Services interface ( IQueryable, IUpdateable ) 
    • New runtime statistics gathering and visual profilers
    • mdRS - mobile dRS for Google Android users needing replication to relational database
    • Spring db4o Extension
    • Support for Array of Nullable types
    • New configuration Interfaces for simplified use
    • Support for .NET enums as value types
    •  First db in industry to support LINQ on CompactFramework
    • .NET Generic collection support
    • Commit callbacks for pushed updates to client caches 
    • TP for .NET LINQ provider
    • Collection aware dRS implementation
* not necessarily available in first release candidate, but in-progress and scheduled for the final release.

The last major release of db4o (7.0) was two years ago.  Robert Greene, Versant's VP of Open Source Operations says Ease of Use was the theme of the last major version.  It included transparent activation, handling of runtime/unchecked exceptions, a mulit-transactional container client server implementation, and updated active client scenarios.  Compared to the native object mapping of what he calls "band-aid style ORM technologies," Greene says that db4o is much easier to deal with.

db4o 8.0 also includes ease of use features, but its main goal is performance.  The new release introduces fundamental changes to the identity management system.  As a result, the I/O characteristics of the db4o server have also changed, bringing defragmentation management, I/O clustering, and object evolution to 8.0.

Another significant feature of 8.0 is its integration with the Versant Object Database, which extends db4o's reach for end to end object persistence.  db4o will also include improved transparent persistence and activation for .NET collections, security enablement features, client server optimizations, and up-to-date support for lightweight environments like Android and Silverlight.

db4o is distributed under the GPL, Microsoft licenses (Ms-PL, Ms-RL ) , FLOSS licenses, the db4o Opensource Compatibility License (dOCL), or a commercial license for use in proprietary software.  Follow this link to download the 8.0 developer release of db4o. 


Onur Gümüs replied on Fri, 2010/05/14 - 7:58am

I guess versant guys just realized they start to lose the battle afther the nosql thing. Sorry I don't see much any features here.



  • TP/TA for Java and .NET collections *
       This does exist in db4o 7.x too. just the name was changed from ArrayList4 to ActivatableList.
  • Silverlight and Mono support
  •   This does exist in db4o 7.x too. Not a new feature
  • .NET LINQ provider
  •   This does exist in db4o 7.x too. Not a new feature
db4o performs terriblly for most basic queries like pagination or case insensitive queries. Linq provider also is worthless. And collection support is a joke. if you have a collection with 100 items adding a new one casues all previous items to be updated again.

Carl Rosenberger replied on Fri, 2010/05/14 - 12:54pm

Some small corrections to the comment above:
  • Transparent Activation and Transparent Persistence for .NET collection support has been greatly enhanced. Db4oTool now allows to automatically exchange the standard .NET List and Dictionary collections in your code to TA/TP-aware collections. You can do this as part of your build.
  • Silverlight support is still constantly being enhanced towards the final 8.0 release. We also recently provided bugfixes for the Mono platform.
  • The LINQ provider for the CompactFramework platform is very new and has never been in a db4o 7.x stable release. I really wonder why you consider our standard LINQ provider to be "worthless". It fully supports LINQ syntax and it gets optimized to indexed queries under the hood.
  • Indeed we don't provide strong built-in support for query pagination.
  • For large scalable collections please look into BigSet.
Carl Rosenberger
db4o Chief Software Architect
Versant Corporation

Alessandro Santini replied on Sat, 2010/05/15 - 5:06am

When will the IT community (particularly the Java one) start replacing the word "old" with "stable" and "mature"?

Anyway, kudos to Versant for yet another quality release.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.