[
https://issues.apache.org/jira/browse/OPENJPA-263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Lee updated OPENJPA-263:
-------------------------------
Attachment: OpenJPA-263.patch
The result of performance measurement which has been done on a smaller data set
(1 customer with 10 orders, each order has 100 orderitems) has shown 96%
performance gain (please refer to the result below). This is on a standalone
environment without network overhead. It is sure that the performance
improvement will be much greater if the data cache is on a separate machine.
Test scenario:
reload the customer which has 10 orders, each order has 100 orderitems. All
relationship are EAGER. DataCache is turned on with plug-in to an IBM caching
products.
Performance result:
- average time without the new (getAll) implementation: 11.38 sec.
- average time with this (getAll) implementation: 5.8 sec.
Please refer to the final patch (OpenJPA-263.patch) for the complete changes.
> Introducing getAll(List) method for data cache to be called by loadAll() will
> allow data cache plug-ins to leverage the advantage of any third-party cache
> that provides a way to get multiple object in one call by providing a list of
> keys (oids).
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: OPENJPA-263
> URL: https://issues.apache.org/jira/browse/OPENJPA-263
> Project: OpenJPA
> Issue Type: New Feature
> Components: datacache
> Affects Versions: 1.0.0
> Reporter: Daniel Lee
> Attachments: OpenJPA-263.patch, OpenJPAJIRA.doc
>
>
> OpenJPA: 5 files to be donated to OpenJPA: (changed, no new file)
> There are changes to the following 5 files which will be donated to OpenJPA
> to be able to leverage ObjectGrid map agent to improve the performance on
> getting the relationship loaded.
> (the donation is upon the approval of OpenJPA committee)
> - org.apache.openjpa.datacache:
> o AbstractPCData:
> toField: calling toNestedFields(new) instead of looping thru all
> elements in the field
> (Implements the Collection only for now, may need to apply it to Map and
> Array)
> toNestedFields: (new)
> toRelationFields: (new) calls findAll()
> - org.apache.openjpa.datacache:
> o DataCacheStoreManager: enhance loadAll() to issue getAll() instead get()
> o AbstractDataCache: add getAll() to abstract as default
> o DataCache: add getAll() to interface
> o DelegatingDataCache: add getAll() delegation
> (Please see detail information in the attached Word document.)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.