You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Daniel Lee (JIRA)" <ji...@apache.org> on 2007/07/20 22:29:06 UTC

[jira] Updated: (OPENJPA-263) 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).

     [ 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: datacache.patch, kernel.patch, 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.