Batoo JPA
Original author(s) | Hasan Ceylan |
---|---|
Developer(s) | Asım Arslan |
Stable release | 2.0.1.1
/ June 1, 2013 |
Repository | |
Written in | Java |
Operating system | Cross-platform |
Platform | Java |
Type | Object-relational mapping |
License | GNU Lesser General Public License |
Website | www |
Batoo JPA is an implementation of Java Persistence API version 1.0 and 2.0. It is created as a response to the assumption that the current JPA implementations are quite heavy implementations that require large CPU resources during execution therefore makes it expensive or impossible to run Java applications on top JPA technology in large scale or mobile and embedded systems.
What is JPA
JPA stands for Java Persistence API a JCP (Java Community Process) Specification led by Oracle and others.
JPA allows programmers to map data objects in a java program to database tables and persist, update, remove and query data in object oriented way. Applications developed using JPA are simply need not have to deal with low level SQL statements and transactions making them:
- Easy to develop by Junior Programmers with no SQL knowledge,
- Disciplined and in integration with supporting and surrounding standards governed technologies, which further standardizes the concepts like transaction management, usage of Enterprise Java Beans, Java Web technologies, etc,
- Applications developed on top of JPA are safe to Vendor Lock-in at the levels of implementation of specification (Hibernate, OpenJPA, EclipseLink) itself and database vendor (Oracle, DB2, MySQL, PostgreSQL, Derby, Hypersonic, MSSQL, etc.)
Why Yet Another JPA Implementation
Ceylan, the founder of Batoo JPA, was recently assigned tasks to solve performance problems in large projects mainly telecom and social networking applications. While attaining performance improvements in various proprietary applications, he adopted a large knowledge of performance on top of earlier experience. During these works, he also discovered that Hibernate the leading JPA provider (and also others), while providing fast develop to market ability, are simply also extremely performance demanding, increasing the production costs of the applications. He has seen applications running on gigantic hardware but still under-performing according to project needs. Amazed with the opportunity and wide use of JPA technology in the Java ecosystem, he then developed the prototype which gave 1 / 50 operating costs at the JPA level. The main development of Batoo JPA has been finished as of August 2012 and project has been released as of October 2012.
Open Source License
Batoo JPA is provided as open source project with LGPL licence.
Benchmark
Primary goal of Batoo JPA is to provide community with a lightweight, robust and fast implementation of JPA. To attain this, as part of Batoo JPA, a benchmark project is developed to benchmark Batoo JPA against other JPA implementation after every development iteration.
Based on this specific benchmark of the first released version of Batoo JPA, Batoo JPA compares to leading JPA implementation as below:
- Persist: 13.97 times faster
- Find: 16.76 times faster
- Remove: 22.48 times faster
- Update: 16.77 times faster
- Criteria: API 19.83 times faster
- JPQL: 16.77 times faster
Those numbers have been criticized as being only focused on cpu utilization of the application server, while the real load and most time spent actually happens on the database server.[1]
External links
- ^ Patricio, Anthony. "Decrypting another JPA benchmark".