org.apache.derby.impl.store.raw.data
Class PhysicalPageOperation
java.lang.Object
org.apache.derby.impl.store.raw.data.PageBasicOperation
org.apache.derby.impl.store.raw.data.PhysicalPageOperation
- All Implemented Interfaces:
- java.io.Externalizable, Formatable, Loggable, RePreparable, java.io.Serializable, TypedFormat, Undoable
- Direct Known Subclasses:
- AllocPageOperation, ChainAllocPageOperation, CompressSpacePageOperation, CopyRowsOperation, InitPageOperation, InvalidatePageOperation, PurgeOperation, UpdateOperation
- public abstract class PhysicalPageOperation
- extends PageBasicOperation
- implements Undoable
An abstract class that is used for physical log operation. A physical log
operation is one where the undo of the operation must be applied to the
same page as the original operation, and the undo operation must store the
byte image of the row(s) changed to its before image. (If a logical page
operation happened to the page or if another transaction altered other rows
on the page, the undo of this operation will only restore the before image
of the row(s) affected).
- See Also:
- Serialized Form
Format ID | no format id, an abstract class. |
Purpose | provide methods for physical undo |
Upgrade | |
Disk Layout | PageBasicOperation the super class |
Fields inherited from interface org.apache.derby.iapi.store.raw.Loggable |
ABORT, BI_LOG, CHECKSUM, COMMIT, COMPENSATION, FILE_RESOURCE, FIRST, LAST, PREPARE, RAWSTORE, XA_NEEDLOCK |
Methods inherited from class org.apache.derby.impl.store.raw.data.PageBasicOperation |
findpage, getPage, getPageForLoadTran, getPageId, getPageVersion, getPreparedLog, group, needsRedo, readExternal, reclaimPrepareLocks, releaseResource, resetPageNumber, restoreMe, toString, writeExternal |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.io.Externalizable |
readExternal, writeExternal |
PhysicalPageOperation
protected PhysicalPageOperation(BasePage page)
PhysicalPageOperation
public PhysicalPageOperation()
generateUndo
public Compensation generateUndo(Transaction xact,
LimitObjectInput in)
throws StandardException
- Generate a Compensation (PageUndoOperation) that will rollback the
changes of this page operation. If this Page operation cannot or need not
be rolled back (redo only), overwrite this function to return null.
Note
For operation that needs logical undo, use
LogicalUndoOperation instead This implementation just finds
the same page that the PageOperation was applied on - i.e., only works
for undo on the same page.
During recovery redo, the logging system is page oriented and will use
the pageID stored in the PageUndoOperation to find the page. The
page will be latched and released using the default findpage and
releaseResource - this.releaseResource() will still be called so it has
to know not to release any resource it did not acquire.
- Specified by:
generateUndo
in interface Undoable
- Parameters:
xact
- the transaction doing the compensatingin
- optional input
- Returns:
- the compensation operation that will rollback this change
- Throws:
StandardException
- Standard Cloudscape policy.- See Also:
PageBasicOperation
,
Undoable.generateUndo(org.apache.derby.iapi.store.raw.Transaction, org.apache.derby.iapi.services.io.LimitObjectInput)
undoMe
public abstract void undoMe(Transaction xact,
BasePage undoPage,
LogInstant CLRinstant,
LimitObjectInput in)
throws StandardException,
java.io.IOException
- Undo the change indicated by this log operation and optional data.
The page the undo should apply to is the latched undoPage, the
recordId is the same as the roll forward operation.
In this RawStore implementation, should only only be called via
CompOp.doMe.
The available() method of in indicates how much data can be read, i.e.
how much was originally written.
- Parameters:
xact
- the Transaction doing the rollbackundoPage
- the page to rollback changes onCLRinstant
- the log instant of this (PageUndo) operationin
- optional data for the rollback operation
- Throws:
java.io.IOException
- Can be thrown by any of the methods of ObjectInput.
StandardException
- Standard Cloudscape policy.
Apache Derby V10.1 Engine Documentation - Copyright © 1997,2005 The Apache Software Foundation or its licensors, as applicable.