db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-2857) Store API should allow PageKey to identify the requested page
Date Wed, 27 Jun 2007 14:07:26 GMT

    [ https://issues.apache.org/jira/browse/DERBY-2857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12508552
] 

Knut Anders Hatlen commented on DERBY-2857:
-------------------------------------------

Fixing DERBY-2878 would be a better way to solve the problem addressed by unlockScan.diff.

> Store API should allow PageKey to identify the requested page
> -------------------------------------------------------------
>
>                 Key: DERBY-2857
>                 URL: https://issues.apache.org/jira/browse/DERBY-2857
>             Project: Derby
>          Issue Type: Improvement
>          Components: Performance, Store
>    Affects Versions: 10.4.0.0
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: getPage.diff, unlockScan.diff
>
>
> Derby allocates more PageKey objects than it has to. For instance, when selecting one
record using an index, it allocates two PageKey instances identifying the leaf node in the
B-tree, and three PageKey instances identifying the data page. Some of these allocations could
easily be avoided if the store API had methods which took a PageKey object instead of the
page number as a long integer.
> As an example, a typical caller of ContainerHandle.getPage(long) already has a reference
to the PageKey for the page it wants to access. It then calls getPageNumber() on the PageKey
and passes the page number to getPage()
> 		p = getContainer().getPage(getPageId().getPageNumber());
> The call to getPage() ends up calling FileContainer.getUserPage() which recreates a PageKey
object identical to the one the caller had:
> 		PageKey pageSearch = new PageKey(identity, pageNumber);
> 		BasePage page = (BasePage)pageCache.find(pageSearch);
> If the caller is allowed to pass down a reference to the PageKey object it has, this
allocation can be avoided.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message