db4o 8 Looks Great

DZone 's Guide to

db4o 8 Looks Great

· Performance Zone ·
Free Resource
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. 

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}