|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.derby.impl.store.access.btree.BTreePostCommit
The BTreePostCommit class implements the Serviceable protocol. In it's role as a Serviceable object, it stores the state necessary to find a page in a btree that may have committed delete's to reclaim. In it's role as a PostCommitProcessor it looks up the page described, and reclaims space in the btree. It first trys to clean up any deleted commits on the page. It then will shrink the tree if it is going to delete all rows from the page (RESOLVE - not done yet).
Field Summary | |
private AccessFactory |
access_factory
|
protected BTree |
btree
|
private long |
page_number
|
Fields inherited from interface org.apache.derby.iapi.services.daemon.Serviceable |
DONE, REQUEUE |
Constructor Summary | |
(package private) |
BTreePostCommit(AccessFactory access_factory,
BTree btree,
long input_page_number)
|
Method Summary | |
private void |
doShrink(OpenBTree open_btree,
DataValueDescriptor[] shrink_row)
|
private DataValueDescriptor[] |
getShrinkKey(OpenBTree open_btree,
ControlRow control_row,
int slot_no)
|
int |
performWork(ContextManager contextMgr)
perform the work described in the postcommit work. |
private DataValueDescriptor[] |
purgeCommittedDeletes(OpenBTree open_btree,
long pageno)
Reclaim space taken up by committed deleted rows. |
boolean |
serviceASAP()
The urgency of this post commit work. |
boolean |
serviceImmediately()
If this work should be done immediately on the user thread then return true. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private AccessFactory access_factory
private long page_number
protected BTree btree
Constructor Detail |
BTreePostCommit(AccessFactory access_factory, BTree btree, long input_page_number)
Method Detail |
public boolean serviceASAP()
This determines where this Serviceable is put in the post commit queue. Post commit work in the btree can be safely delayed until there is not user work to do.
serviceASAP
in interface Serviceable
public boolean serviceImmediately()
Serviceable
serviceImmediately
in interface Serviceable
private final void doShrink(OpenBTree open_btree, DataValueDescriptor[] shrink_row) throws StandardException
StandardException
public int performWork(ContextManager contextMgr) throws StandardException
In this implementation the only work that can be executed by this post commit processor is this class itself.
performWork
in interface Serviceable
contextMgr
- the context manager started by the
post commit daemon
StandardException
- Standard exception policy.private final DataValueDescriptor[] getShrinkKey(OpenBTree open_btree, ControlRow control_row, int slot_no) throws StandardException
StandardException
private final DataValueDescriptor[] purgeCommittedDeletes(OpenBTree open_btree, long pageno) throws StandardException
This routine assumes it has been called by an internal transaction which has performed no work so far, and that it has an exclusive table lock. These assumptions mean that any deleted rows encountered must be from committed transactions (otherwise we could not have gotten the exclusive table lock).
RESOLVE (mikem) - under row locking this routine must do more work to determine a deleted row is a committed deleted row.
open_btree
- The btree already opened.pageno
- The page number of the page to look for committed deletes.
StandardException
- Standard exception policy.
|
Built on Mon 2007-06-04 09:58:47+0400, from revision ??? | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |