org.apache.derby.impl.store.raw.data
Class CompressSpacePageOperation

java.lang.Object
  extended by org.apache.derby.impl.store.raw.data.PageBasicOperation
      extended by org.apache.derby.impl.store.raw.data.PhysicalPageOperation
          extended by org.apache.derby.impl.store.raw.data.CompressSpacePageOperation
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Formatable, TypedFormat, Loggable, RePreparable, Undoable
Direct Known Subclasses:
CompressSpacePageOperation10_2

public class CompressSpacePageOperation
extends PhysicalPageOperation

Log operation to implement compressing space from a container and returning it to the operating system.

See Also:
Serialized Form

Field Summary
protected  int newHighestPage
          The new highest page on this allocation page.
protected  int num_pages_truncated
          The number of allocated pages in this allocation page prior to the truncate.
 
Fields inherited from class org.apache.derby.impl.store.raw.data.PageBasicOperation
containerHdl, foundHere, page
 
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
 
Constructor Summary
CompressSpacePageOperation()
          Public Methods of Formatable interface.
CompressSpacePageOperation(AllocPage allocPage, int highest_page, int num_truncated)
          Constructors for This class:
 
Method Summary
 void doMe(Transaction tran, LogInstant instant, LimitObjectInput in)
          Compress space from container.
 int getTypeFormatId()
          Return my format identifier.
 void readExternal(java.io.ObjectInput in)
           
 void restoreMe(Transaction xact, BasePage undoPage, LogInstant CLRinstant, LimitObjectInput in)
          Undo the change indicated by this log operation and optional data.
 java.lang.String toString()
          debug
 void undoMe(Transaction xact, BasePage undoPage, LogInstant CLRInstant, LimitObjectInput in)
          Compress space undo.
 void writeExternal(java.io.ObjectOutput out)
           
 
Methods inherited from class org.apache.derby.impl.store.raw.data.PhysicalPageOperation
generateUndo
 
Methods inherited from class org.apache.derby.impl.store.raw.data.PageBasicOperation
findpage, getPage, getPageForRedoRecovery, getPageId, getPageVersion, getPreparedLog, group, needsRedo, reclaimPrepareLocks, releaseResource, resetPageNumber
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.derby.iapi.store.raw.Loggable
getPreparedLog, group, needsRedo, releaseResource
 

Field Detail

newHighestPage

protected int newHighestPage
The new highest page on this allocation page. The number is the offset of the page in the array of pages maintained by this allocation page, for instance a value of 0 indicates all page except the first one are to be truncated. If all pages are truncated then the offset is set to -1.


num_pages_truncated

protected int num_pages_truncated
The number of allocated pages in this allocation page prior to the truncate. Note that all pages from NewHighestPage+1 through newHighestPage+num_pages_truncated should be FREE.

Constructor Detail

CompressSpacePageOperation

public CompressSpacePageOperation(AllocPage allocPage,
                                  int highest_page,
                                  int num_truncated)
                           throws StandardException
Constructors for This class:

Throws:
StandardException

CompressSpacePageOperation

public CompressSpacePageOperation()
Public Methods of Formatable interface.

Method Detail

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Overrides:
writeExternal in class PageBasicOperation
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Overrides:
readExternal in class PageBasicOperation
Throws:
java.io.IOException - error reading from log stream
java.lang.ClassNotFoundException - cannot read object from input

getTypeFormatId

public int getTypeFormatId()
Return my format identifier.

Returns:
The identifier. (A UUID stuffed in an array of 16 bytes).

doMe

public final void doMe(Transaction tran,
                       LogInstant instant,
                       LimitObjectInput in)
                throws StandardException
Compress space from container.

Compress the indicate space from the container, returning the free pages to the OS. Update the allocation page to reflect the file change.

Parameters:
tran - transaction doing the operation.
instant - log instant for this operation.
in - unused by this log operation.
Throws:
StandardException - Standard exception policy.

undoMe

public void undoMe(Transaction xact,
                   BasePage undoPage,
                   LogInstant CLRInstant,
                   LimitObjectInput in)
            throws StandardException
Compress space undo.

Specified by:
undoMe in class PhysicalPageOperation
Parameters:
xact - the Transaction doing the rollback
undoPage - the page to rollback changes on
CLRInstant - the log instant of this (PageUndo) operation
in - optional data for the rollback operation
Throws:
StandardException - Thrown by methods I call
See Also:
PhysicalPageOperation.undoMe(org.apache.derby.iapi.store.raw.Transaction, org.apache.derby.impl.store.raw.data.BasePage, org.apache.derby.iapi.store.raw.log.LogInstant, org.apache.derby.iapi.services.io.LimitObjectInput)

restoreMe

public void restoreMe(Transaction xact,
                      BasePage undoPage,
                      LogInstant CLRinstant,
                      LimitObjectInput in)
Description copied from class: PageBasicOperation
Undo the change indicated by this log operation and optional data. The page the undo should apply to is the latched undoPage. The undoPage must be the same page as the doMe page and the undo operation must restore the before image of the row that changed.
this can only be used under special circumstances: namely table level locking, and no internal or nested transaction, and all operations are rollec back with restoreMe instead of undoMe.
This method is here to support BeforeImageLogging

Specified by:
restoreMe in class PageBasicOperation
Parameters:
xact - the Transaction doing the rollback
undoPage - the page to rollback changes on
CLRinstant - the log instant of this (PageUndo) operation
in - optional data for the rollback operation

toString

public java.lang.String toString()
debug

Overrides:
toString in class PageBasicOperation

Built on Thu 2012-03-29 21:53:33+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.