Skip to main content

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.

Jump to: navigation, search

EclipseLink/DesignDocs/221546(2.0)

< EclipseLink‎ | DesignDocs
Revision as of 16:04, 24 March 2009 by Unnamed Poltroon (Talk) (New page: <div style="margin:5px;float:right;border:1px solid #000000;padding:5px">__TOC__</div> = Design Specification: Performance and Concurrency = [http://bugs.eclipse.org/221546 ER 221546] [[...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Design Specification: Performance and Concurrency

ER 221546

Feedback

Document History

Date Author Version Description & Notes
2009-03-24 James 0.1 Draft

Project overview

This project groups several smaller performance related bug fixes and enhancements into a single unit. Its' goal is the improve the performance, concurrency and scalability of the product.

Concepts

Performance is concerned about reducing CPU usage and finding more optimal methods of processing operations.

Concurrency is concerned with reducing contention and improving multi-threaded and multi-CPU performance.

Scalability is concerned with clustering, large workloads and data.

Requirements

The goal of this project is to ensure that our product remains the leading high-performance persistence solution. Areas of improvement are determined through performance comparison with other persistence products and benchmarking.

Specific performance investigations desired for this release:

  • JPA performance comparison with EclipseLink 1.1
  • core performance comparison with EclipseLink 1.1
  • JPA concurrency comparison with EclipseLink 1.1
  • JPA cache coordination comparison in clustered environment
  • JPA provider and app server comparison through SPECjAppServer ® benchmark.

Design Constraints

The goal of the project is to improve performance of common usage patterns. Fringe features and usage patterns will not be specifically targeted unless found to be highly deficient.

Any optimization must also be weighed in its' impact on usability, and spec compliance. Optimizations that may have a large negative impact to usability may need to be only enabled through specific configuration.

Functionality

Each specific performance improvement is discussed separately below.

Reflection Optimization

Usage of ASM to weaving attribute access, and instantiation will be investigated.

Improved Connection Pool

The connection pool will be improved to allow configuration of a shared read/write pool, and provide an initial option. The default size will also be increased to a min and max of 32 connection, but an initial of 1 connection.

Testing

Both the existing performance and concurrency tests and pubic benchmarks will be used to monitor and evaluate performance improvements.

Specific performance testing desired for this release:

  • JPA performance comparison with EclipseLink 1.1
  • core performance comparison with EclipseLink 1.1
  • JPA concurrency comparison with EclipseLink 1.1
  • JPA cache coordination comparison in clustered environment
  • JPA provider and app server comparison through SPECjAppServer ® benchmark.

API

Config files

persistence.xml

  • property: "eclipselink.weaving.internal" = "true" | "false" , existing option, now also controls reflection and instantiation weaving.

GUI

Documentation

Open Issues

Issue # Owner Description / Notes
1 Group Should weaving of instantiation be on by default?

Decisions

Issue # Description / Notes Decision

Future Considerations

Continually improve performance.

Back to the top