pojo data persistence

pojo data persistence
pojo pojo pojo
pojo data persistence pojo data persistence
  CocoBase PURE POJO

features of new v5.0
> pure pojo - ejb3
> magic mapper
> high performance
> o/r mapping
> querying solutions
> cocobase is free
> eclipse, spring
> technical spec's

  tech support


Industry Leading Performance For Dynamic POJO Data Persistence™ With CocoBase® Enterprise O/R

CocoBase® makes POJO Applications twice as fast over raw JDBC with identical commands and SQL statements; without using Caching, Combined Calls or other Tricks. It is just plain faster than JDBC! When you introduce Caching and other methods for increasing performance, CocoBase increases the speed from 10 to 1,000 times and more than that of raw JDBC.

No other Java-based Object to Relational Mapping tool providing POJO Data Persistence has published information stating performance numbers at this performance level. Most O/R Mapping tools publish performance numbers on average 15 to 20% slower (as a layer) than raw JDBC without caching. CocoBase's® fast performance continues an almost decade of technological leadership with a solution for Dynamic POJO Data Persistence™ performance that is unequaled in the industry.

CocoBase® Enterprise O/R Whitepaper



Dynamic POJO Data Persistence™: A unified persistence and query manager for local J2SE and distributed J2EE environments which is completely transparent to the object and does not require the modification of the bytecode of the object.


The CocoBase® Dynamic Object to Relational Mapping™ tool is specifically designed to manage the impedance mismatch between an object oriented system such as the Java platform and a relational database management system such as the Oracle or DB2 Relational databases. The main challenge here is to manage the process of bringing the data out of and saving application changes back to the database (i.e. persist the data) efficiently. The POJO based business objects must be accessible by applications in a manner that both performs rapidly and scales to a high volume of transactions for a complex model of information. This is a very challenging problem set for engineers to hand-code especially when dealing with the complexities of the typical enterprise-level application with modern business requirements. CocoBase® successfully generates the POJO objects and manages the persistence thus solving this challenge with a simple to use tool based on a powerful persistence architecture that is unequalled in the industry.

BASE LEVEL POJO PERFORMANCE - "Speed is twice as fast as raw JDBC"

The general perception is that an additional persistence layer providing O/R Mapping between the object and the database layer will reduce performance. For most all O/R tools this is true with an average slow down of 15 - 25%. CocoBase® actually increases performance to twice that of raw JDBC with identical JDBC driver and SQL. It is on average 125% faster than most all other O/R tools at the base level.

This performance advantage is not a 'trick' of adding caching or making CocoBase® use optimizations not used in the JDBC code - instead it's an apples to apples comparison. In this comparison no caching enabled, same SQL, same JDBC driver, same transaction settings and same prepared statement handling is used. This is accomplished through optimized code that in combination with the Java just in time compiler produces a faster 'executable' when running. After years of working with the Java JIT, CocoBase® has evolved itself to execute highly optimized code thus creating a solution unique to CocoBase®. As a result of this optimization, raw SQL operations with CocoBase® execute on average twice as fast as they do with JDBC.



CocoBase® provides the fastest Java caching architecture currently available. Our patent pending implementations include performance improvements as much as 400-500 times that of raw SQL loads. This is a 40,000-50,000% increase! The CocoBase® caching implementation is on average 10-100 times faster than other typical caching architectures available in Java and provides a unique level of performance and scalability.

Good Use of Combined Calls

CocoBase® supports advanced SQL optimizations such as Cartesian and combined SQL loads that can reduce SQL traffic and database querying. Batch Inserts, stored procedure support, optimization of SQL (including support for database hints and proprietary syntax) all provide a dynamic ability to support complex and optimized solutions for loading and persisting POJO object models.

Handling of Complex Models

CocoBase® object graph performance is 'linear'. The performance cost of managing 1 object or 10,000 objects which have changed is the same per object cpu-wise. We know of no other Object to Relational Mapping tool that retains linear performance for complex models. The last time we did analysis on one of the common Open Source solutions for instance, a model of 500 objects performed 2-3 times slower per object than a model of 50 objects. This is but one example of scalability issues that plague o/r tools other than CocoBase®.

Extremely Efficient SQL

By default CocoBase® generates SQL based on the context of the operation. So for instance if an update of only a single column is required, that's what's issued. If database custom syntax such as hints or proprietary SQL are required, the admin facilities allow the developer to edit SQL mapping and create this custom syntax.

Effective JDBC Commands

Out of the box, the CocoBase® runtime uses best practices for managing JDBC connections, prepared statements, cursors, and SQL generation and execution. As a result, the application runs in an optimized and high performance fashion that generally outperforms equivalent hand coded applications by 2-3 times often with orders of magnitude of performance improvement.


This section briefly describes the results obtained with the CocoBase Runtime Performance Test. The initial run of the test used the following test platform and test settings;

Oracle 8i database running on the following computer; Dual AMD Athalon 1800, 12 MB RAM, ATA-133 RAID HD, Windows 2000 SR3.

Test client running on the following computer; Dual Pentium III 1000MHz, 512 MB RAM, ATA-133 HD, Windows 2000 SR3, JRE 1.4.1_01.

Database server access over 100 Base-T LAN, running 10000 records, averageOver set to 1 and averageType set to averageIndividually.

Here are the results in graph form of that test: 

Where the red bars represent the time required (ms) for the CocoBase operation and the blue bars represent the time required (ms) for the equivalent JDBC operation. The in-house result values are as follows:

The results show that for the initial run, the CocoBase SELECTALL operation time is approximately twice that of embedded JDBC, while for the INSERT, SELECT, UPDATE and DELETE operations, the CocoBase runtime shows a distinct performance advantage. The results show that for the initial run, the CocoBase SELECTALL operation time is approximately twice that of embedded JDBC, while for the INSERT, SELECT, UPDATE and DELETE operations, the CocoBase runtime shows a distinct performance advantage.

A second run with the same settings results in the following graph: 

 The in-house result values are as follows:

The results of the second run shows a significant improvement in CocoBase runtime performance and fluctuations for the JDBC implementation. The CocoBase performance improvement results from reuse of SQL statements generated from map definitions during the first run. CocoBase maps are compiled just once per VM instance, when a map isrequired to perform an operation. Once compiled, query arguments are bound as needed tothe buffered SQL strings.

The Performance Test Suite doesn’t delete test module instances
between test runs, and the performance advantages of using precompiled CocoBase maps is reflected in the test results after the initial test run. The CocoBase SELECTALL operation, which reflects NULL value handling that does not occur in the JDBC class, improves significantly after the initial run. This operation will always appear slightly slower than the analogous default JDBC implementation. The results of a third run should reflect no significant improvement in CocoBase runtime performance, however, any subsequent run should always show a CocoBase performance
advantage for four of the five operations vs. equivalent JDBC operations. 

Fluctuations may occur in the results due to a combination of the following: Variations in system speed, Number of tasks running, Garbage collections, Hotspot compiler activation, JDBC driver implementation and Fluctuating database load.


Using CocoBase® for building POJO Data Persistence based applications provides a base performance increase to that of twice as fast as raw JDBC. This speed is created based on the architecture and optimization of the CocoBase® persistence runtime without caching, combined calls or other tricks of O/R mapping tools. The result is a POJO based application that can perform twice as fast than if coded by hand or written with another O/R mapping tool. When you add in CocoBase® Caching and other methods for increasing performance, the speed can increase from 10 to 1,000 times than with just raw JDBC.

CocoBase® is the key to produce high performance POJO Data Persistence based business applications. The top priority and challenge for business software development is to meet high performance and scalability requirements. Thus having a solution that can easily and consistently deliver this for engineering teams is critical. That is why companies such as United Airlines, CVS Pharmacy, Expeditors, State of Maine, Social Security Services use CocoBase® for their mission-critical application development.

NOTE - Please find the performance test suite on the download website. You need to request CocoBase to download and that will give you the information to access the download section of the website. Thanks.


This document is copyrighted and owned solely by THOUGHT Inc.® 2005. CocoBase® and THOUGHT Inc.® are registered trademarks of THOUGHT Inc.®. Dynamic POJO Data Persistence™, Dynamic O/R Mapping™, Dynamic Object to Relational Mapping™, Dynamic Universal Querying™ and Dynamic Transparent Persistence™ are pending trademarks of THOUGHT Inc.®. CocoBase® technology is based on US patent #5857197 as well as additional pending patents directed to object navigation, object modeling, querying and caching. All other trademarks are property of their respective company. This publication is provided "as is" without warranty of any kind, either express or implied, including, but not limited to, the implied warranties of merchantability, fitness for a particular purpose, or non-infringement, to also include any and all technical inaccuracies or typographical errors.