[ 
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.

Reply via email to