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.
TPTP Test Log Scalability
Contents
TPTP Test Log Scalability
Overview
Although all the majority of the persistent models in TPTP require large scale data support in some use cases, and this was set aside as a value add for extenders of the project, it has been determined that TPTP needs to provide exemplary support in this area.
A direct EMF based implementation implies the entire object model is in memory, particularly if the serialization form is XML/XMI. This is a limiting flaw in the original Hyades UI since it was directly bound to the EMF model which was directly bound to the XMI serialization.
Initially TPTP provided RDB backed log support for the log analyzer based tooling. The objective of this support was simply to work without requiring all the data to be in memory. The basic design had the client manage lists that were backed by a paging/windowed view of the storage system. This would be backed by a query and a cursor in an RDB and have the desired effect of only drawing the requested data into memory. At the same time as data falls outside the paging list it can be released and GC'd. This addresses the issue when the data is backed by the RDB, however when backed by XMI everything still ends up in memory due to the nature of XML serialization.
Our longer term strategy is to depricate the direct EMF model to XMI support and work with the new Data management service which is being described on this link. An EMF model may still be used for the UI but it will be decoupled from the model used for persistance.
Requirements discussion
The simple requirement being addressed by this effort can be characterized as decoupling the user interface and the event data loaders from each other and from the persistence mechanism. In addition to making the UI query based, the data loaders need to support additional bulk data events. The TPTP implementation needs to be fully scalable on an out of the box relational data store. This must come as part of the standard workbench download experience. It is additional function to allow the user to point to a disconnected data base for persistence. The user will also be able to continue to work with existing XMI based resources, although this will continue to experience data volume limits. An extender of the TPTP implementation will be able to install an alternate schema if desired as long as the access views continue to be supported. Finally the user will be able to migrate data from an XMI resource to a RDB storage system. All API will be provisional since the more strategic api is the TPTP DMS design.
Design overview
Due to limited time and resource, 4.4 Test Log scalability work items will provide the foundation necessary for the proposed scalable work in 4.5. These work items are covered under defect 180986 and include:
- File Output: Test execution (eg. comptest agent) will stream test execution events to a XML file in the local workspace. The user will select this option and specify the location/path of the output file in the launch configuration dialog for Tests.
- File Importer:Import wizard for files containing XML test execution events in the local workspace that using the existing model loaders.
- Paging:The Test Navigator and Test Log View will be refactored to be query-based using the new paging lists support rather than direct model navigation (e.g. open, view, navigate and search). This involves creating and iterating paging lists of data as well as managing blocks of data within the paging lists rather than directly going to the modeled lists. Lists should always be processed with a range/window/page size and use indexed access rather than continuous get next kind of operation. See the org.eclipse.hyades.models.hierarchy.util.IExtendedQueryService interface. specifically, this will include navigation, searching and the BIRT pie chart in the Test Log View.
- Virtual Tress:The Test Navigator and Test Log View will be refactored to support virtual trees (see defect 179540). The expansion of execution results in the Test Navigator will also be removed.
- Testing:Create AGR and Manual test cases for all delivered function. Continual testing for all developed function.
- Reporting:Refactoring the report generators to be query-based using the new paging lists support rather than direct model navigation.
Progress
As of the release date of 4.4, the status of the following work items:
- File Output:Completed.
- File Importer:Completed. Requires additional work to import files directly into the relational database.
- Paging:Completed.
- Virtual Tress:Completed.
- Testing:Completed.
- Reporting:Outstanding and deferred to 4.5.
The remaining work items will be covered in 4.5 under defect 177041.