Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/DesignDocs/321763"
(→Future Considerations) |
(→Requirements) |
||
Line 31: | Line 31: | ||
= Requirements = | = Requirements = | ||
− | Make use of the existing SessionProfiler API that was designed for DMS. | + | * Make use of the existing SessionProfiler API that was designed for DMS. |
− | Support multi-threading. | + | * Support multi-threading. |
− | Support a server environment. | + | * Support a server environment. |
− | Be configurable without any Java code. | + | * Be configurable without any Java code. |
= Design Constraints = | = Design Constraints = |
Revision as of 13:23, 5 August 2010
Design Specification: Performance Monitor
Document History
Date | Author | Version Description & Notes |
---|---|---|
2010-08-05 | James | 0.1 Draft |
Project overview
We currently have two profilers, the PerformanceProfiler and the QueryMonitor. The PerformanceProfiler provides detailed information, but is not very useful in a server environment. The QueryMonitor is useful in a server environment, but does not provide detailed information. EclipseLink already contains an extensive profiling and monitoring API that was previously developed under TopLink for Oracle DMS, but does not provide a profiler implementation that makes use of these APIs.
The PerformanceMonitor's goal is to somewhat unify the PerformanceProfiler and QueryMonitor to provide detailed profiling and monitoring information in a mutli-threaded server environment.
Concepts
Profiling is mainly concerned with timing information (time spent in cache, querying), monitoring is mainly concerned with state information (cache size, number of transactions).
Requirements
- Make use of the existing SessionProfiler API that was designed for DMS.
- Support multi-threading.
- Support a server environment.
- Be configurable without any Java code.
Design Constraints
Functionality
Testing
Output of profiler should be analyzed under SRG test run, performance tests, and in JEE performance benchmark runs.
API
- ProfilerType - PerformanceMonitor
- PerformanceMonitor
- getOperationTimings()
- setDumpTime(int)
Config files
- persistence.xml
- <property name="eclipselink.profiler" value="PerformanceMonitor"/>
Documentation
Should be documented under performance section of JPA user guide.
Open Issues
Issue # | Owner | Description / Notes |
---|---|---|
1 | Are there additional metrics to profile? |
Decisions
Issue # | Description / Notes | Decision |
---|
Future Considerations
- Additional metrics.
- JMX support.