|
|
Line 1: |
Line 1: |
− | <div style="margin:5px;float:right;border:1px solid #000000;padding:5px">__TOC__</div>
| |
− | = Design Specification: Performance Monitor =
| |
| | | |
− | [http://bugs.eclipse.org/321763 ER 321763]
| |
− |
| |
− | [[Talk:EclipseLink/DesignDocs/321763 | Feedback]]
| |
− |
| |
− | = Document History =
| |
− | {|{{BMTableStyle}}
| |
− | |-{{BMTHStyle}}
| |
− | ! 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=
| |
− |
| |
− | {|{{BMTableStyle}}
| |
− | |-{{BMTHStyle}}
| |
− | ! Issue #
| |
− | ! Owner
| |
− | ! Description / Notes
| |
− | |-
| |
− | | 1
| |
− | | Are there additional metrics to profile?
| |
− | |}
| |
− |
| |
− | = Decisions =
| |
− |
| |
− | {|{{BMTableStyle}}
| |
− | |-{{BMTHStyle}}
| |
− | ! Issue #
| |
− | ! Description / Notes
| |
− | ! Decision
| |
− | |-
| |
− | |-
| |
− | |}
| |
− |
| |
− | = Future Considerations =
| |
− | Additional metrics.
| |