Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/Performance
EclipseLink is dedicated to being the best performing, and most scalable JPA implementation.
Features
EclipseLink's performance features include:
- Object cache
- Cache invalidation (time to live, and time of day)
- Configurable cache types per Entity, (Weak, Soft, SoftCache, HardCache, Full)
- Configurable cache size per Entity
- Clustered cache coordination
- Database change event invalidation (Oracle DCN)
- Cache indexes
- Querying
- Read-only queries
- Join fetching (query, nested, mapping)
- Batch fetching (IN, JOIN, EXISTS)
- Fetch groups (query, default, dynamic)
- Fetch size
- Pagination (firstResult, maxResult, ROWNUM filtering)
- Cursors (stream and scrollable)
- Cache usage (in-memory, primary key)
- Query cache (invalidation, size configuration)
- Mapping
- Lazy loading
- Read-only objects
- Weaving enhancements
- Transactions
- Attribute level change tracking
- Field level updates
- Database
- Connection pooling
- Parametrized SQL
- Statement caching
- Batch writing (JDBC, parametrized, native)
- Indexes
- Tools
- Performance Profiler
- Performance Monitor
Benchmarks
Links
- "Enhancing Performance" chapter in the EclipseLink Solutions Guide
- Performance Development
- Java Persistence Performance (Blog)
- Batch fetching - optimizing object graph loading
- How to improve JPA performance by 1,825%
- Data Partitioning - Scaling the Database
- EclipseLink 15x faster than other JPA providers
- Got Cache?
- Performance characteristics for 1-512 parallel threads on a single 8-core i7-920 node as part of a distributed JPA application