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.
Difference between revisions of "EclipseLink/Performance"
m (→Links) |
|||
Line 8: | Line 8: | ||
** Configurable cache size per Entity | ** Configurable cache size per Entity | ||
** Clustered cache coordination | ** Clustered cache coordination | ||
+ | ** Database change event invalidation (Oracle DCN) | ||
+ | ** Cache indexes | ||
* Querying | * Querying | ||
** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Read_Only|Read-only queries]] | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Read_Only|Read-only queries]] | ||
** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_the_.40JoinFetch_Annotation|Join fetching]] ([[Using_EclipseLink_JPA_Extensions_(ELUG)#Join_Fetch|query]], nested, mapping) | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_the_.40JoinFetch_Annotation|Join fetching]] ([[Using_EclipseLink_JPA_Extensions_(ELUG)#Join_Fetch|query]], nested, mapping) | ||
− | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Batch|Batch | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Batch|Batch fetching]] (IN, JOIN, EXISTS) |
** Fetch groups (query, default, dynamic) | ** Fetch groups (query, default, dynamic) | ||
** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Fetch_Size|Fetch size]] | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Fetch_Size|Fetch size]] | ||
Line 30: | Line 32: | ||
** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Statement caching]] | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Statement caching]] | ||
** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Batch writing]] (JDBC, parametrized, native) | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Batch writing]] (JDBC, parametrized, native) | ||
+ | ** Indexes | ||
* Tools | * Tools | ||
** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_the_Persistence_Unit_Properties_for_Optimization|Performance Profiler]] | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_the_Persistence_Unit_Properties_for_Optimization|Performance Profiler]] | ||
+ | ** Performance Monitor | ||
==Benchmarks== | ==Benchmarks== | ||
Line 44: | Line 48: | ||
* [http://java-persistence-performance.blogspot.com/ Java Persistence Performance (Blog)] | * [http://java-persistence-performance.blogspot.com/ Java Persistence Performance (Blog)] | ||
* [http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html Batch fetching - optimizing object graph loading] | * [http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html Batch fetching - optimizing object graph loading] | ||
+ | * [http://java-persistence-performance.blogspot.com/2011/06/how-to-improve-jpa-performance-by-1825.html How to improve JPA performance by 1,825% ] | ||
+ | * [http://java-persistence-performance.blogspot.com/2011/05/data-partitioning-scaling-database.html Data Partitioning - Scaling the Database ] | ||
+ | * [http://java-persistence-performance.blogspot.com/2012/11/eclipselink-15x-faster-than-other-jpa.html EclipseLink 15x faster than other JPA providers] | ||
+ | * [http://java-persistence-performance.blogspot.com/2013/01/got-cache.html Got Cache?] | ||
* [http://wiki.eclipse.org/EclipseLink/Examples/Distributed#Multicore_Analysis Performance characteristics for 1-512 parallel threads on a single 8-core i7-920 node as part of a distributed JPA application] | * [http://wiki.eclipse.org/EclipseLink/Examples/Distributed#Multicore_Analysis Performance characteristics for 1-512 parallel threads on a single 8-core i7-920 node as part of a distributed JPA application] | ||
[[Category:EclipseLink|Performance]] | [[Category:EclipseLink|Performance]] |
Revision as of 14:24, 6 March 2013
EclipseLink is dedicated to being the best performing, and most scalable JPA implementation.
Contents
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
Forum Posts
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