Batoo JPA es una implementación de la API de persistencia de Java versiones 1.0 y 2.0. Se creó como respuesta a la suposición de que las implementaciones actuales de JPA son bastante pesadas y requieren muchos recursos de CPU durante la ejecución, lo que hace que sea costoso o imposible ejecutar aplicaciones Java sobre la tecnología JPA en sistemas a gran escala, móviles o embebidos.
Fondo
Ceylan, fundador de Batoo JPA, recibió recientemente la tarea de resolver problemas de rendimiento en grandes proyectos, principalmente aplicaciones de telecomunicaciones y redes sociales. Al lograr mejoras de rendimiento en diversas aplicaciones propietarias, adquirió un amplio conocimiento sobre rendimiento, sumado a su experiencia previa. Durante este trabajo, descubrió que Hibernate, el proveedor líder de JPA (y otros), si bien ofrece una rápida comercialización, también exige un rendimiento extremadamente alto, lo que incrementa los costos de producción de las aplicaciones. Observó aplicaciones ejecutándose en hardware de gran capacidad, pero con un rendimiento inferior al requerido por el proyecto. Impresionado por el potencial y el amplio uso de la tecnología JPA en el ecosistema Java, desarrolló un prototipo que logró costos operativos de 1/50 a nivel de JPA. El desarrollo principal de Batoo JPA finalizó en agosto de 2012 y el proyecto se lanzó en octubre de 2012.
Licencia
Batoo JPA se proporciona como un proyecto de código abierto con licencia LGPL .
Punto de referencia
El objetivo principal de Batoo JPA es proporcionar a la comunidad una implementación de JPA ligera, robusta y rápida. Para lograrlo, como parte de Batoo JPA, se desarrolla un proyecto de evaluación comparativa para comparar Batoo JPA con otras implementaciones de JPA después de cada iteración de desarrollo.
Basándose en este punto de referencia específico de la primera versión publicada de Batoo JPA, Batoo JPA se compara con las principales implementaciones de JPA de la siguiente manera:
- Persistencia: 13,97 veces más rápido
- Hallar: 16,76 veces más rápido
- Eliminar: 22,48 veces más rápido
- Actualización: 16,77 veces más rápido
- Criterios: API 19,83 veces más rápida
- JPQL: 16,77 veces más rápido
Esas cifras han sido criticadas por centrarse únicamente en la utilización de la CPU del servidor de aplicaciones , mientras que la carga real y la mayor parte del tiempo empleado se produce en el servidor de la base de datos . [ 1 ]
Enlaces externos
- Sitio web del proyecto Batoo JPA
- Repositorio de código fuente Batoo JPA
- ↑ Patricio, Anthony (23 de octubre de 2012). "Descifrando otro benchmark de JPA" .
- API de Java