Top Description Fields Constructors Methods
org.apache.derby.impl.store.raw.data

public Class AllocExtent

extends Object
implements Externalizable
Class Inheritance
All Implemented Interfaces
java.io.Externalizable, java.io.Serializable
Imports
org.apache.derby.shared.common.sanity.SanityManager, org.apache.derby.shared.common.error.StandardException, org.apache.derby.iapi.store.raw.ContainerHandle, org.apache.derby.iapi.store.raw.xact.RawTransaction, org.apache.derby.iapi.services.io.FormatableBitSet, java.io.Externalizable, .IOException, .ObjectOutput, .ObjectInput

An allocation extent row manages the page status of page in the extent. AllocExtent is externalizable and is written to the AllocPage directly, without being converted to a row first.

See Also
AllocPage

Field Summary

Modifier and TypeField and Description
private static final int
protected static final int
ALLOCATED_PAGE

public Per Page status

protected static final int
private long
private int
private long
private long
pack-priv int
protected static final int
pack-priv FormatableBitSet
private static final int
private static final int
private static final int
private static final int
private static final int
private int
private int
private long
private long
private static final int
pack-priv FormatableBitSet

Constructor Summary

AccessConstructor and Description
protected
AllocExtent(long offset, long start, int length, int pagesize, int maxlength)

protected
public

Method Summary

Modifier and TypeMethod and Description
protected void
allocPage(long pagenum)

Allocate this page - this is called underneath the log record

protected boolean
canAddFreePage(long lastAllocatedPage)

private void
checkInRange(long pagenum)

protected int

Returns:

Return bit of page where all pages that follow can be returned to the OS.
compress
(BaseContainerHandle owner, RawTransaction ntt, AllocPage alloc_page)

Compress free pages at end of this extent.

protected void
compressPages(int new_highest_page, int num_pages_truncated)

protected void
deallocPage(long pagenum)

Deallocate logical page pagenum - this is called underneath the log record.

protected int
getAllocatedPageCount()

Get the number of used page in this extent

protected long
protected long
getFirstPagenum()

Get the first logical page number managed by this extent.

protected long
getFreePageNumber(long pnum)

Get a page number that is free

protected long
getLastPagenum()

Get the last logical page number managed by this extent.

protected long
getLastPreallocPagenum()

get the last preallocated pagenumber managed by this alloc page

protected long
protected long
getNextValidPageNumber(long prevPageNumber)

protected long

Returns:

The page number of this "bit" in the extent map.
getPagenum
(int bit_pos)

translate bit position in map to page number.

protected long
getPageOffset(long pagenum, int pagesize, boolean deallocOK)

Get the physical offset of pagenum.

protected int
getPageStatus(long pagenum)

Return the status of a particular page

protected int
getTotalPageCount()

Get the total number of pages in this extent

protected int
getUnfilledPageCount()

Get the number of unfilled pages in this extent

protected long
getUnfilledPageNumber(long pagenum)

Get a page number that is unfilled, pagenum is the last page that was rejected.

protected boolean
isRetired()

Return the status of this extent

protected static int
MAX_RANGE(int availspace)

Statically calculates how many pages this extent can manage given the availspace number of bytes to store this extent in if read/writeExternal changes, this must change too

private boolean
public void
readExternal(ObjectInput
the stream to read data from in order to restore the object
in
)

Implements java.io.Externalizable.readExternal.

The object implements the readExternal method to restore its contents by calling the methods of DataInput for primitive types and readObject for objects, strings and arrays.

private void
setExtentFreePageStatus(boolean hasFree)

protected void
setLastPreallocPagenum(long preAllocPagenum)

preallocated N pages, passed in the last preallocated page number.

protected String
protected boolean
trackUnfilledPage(long pagenumber, boolean unfilled)

protected void
undoCompressPages(int new_highest_page, int num_pages_truncated)

Undo the compress space operation.

protected void
public void
writeExternal(ObjectOutput
the stream to write the object to
out
)

Implements java.io.Externalizable.writeExternal.

The object implements the writeExternal method to save its contents by calling the methods of DataOutput for its primitive values or calling the writeObject method of ObjectOutput for objects, strings, and arrays.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

ALL_FREEback to summary
private static final int ALL_FREE
ALLOCATED_PAGEback to summary
protected static final int ALLOCATED_PAGE

public Per Page status

DEALLOCATED_PAGEback to summary
protected static final int DEALLOCATED_PAGE
extentEndback to summary
private long extentEnd
extentLengthback to summary
private int extentLength
extentOffsetback to summary
private long extentOffset
extentStartback to summary
private long extentStart
extentStatusback to summary
pack-priv int extentStatus
FREE_PAGEback to summary
protected static final int FREE_PAGE
freePagesback to summary
pack-priv FormatableBitSet freePages
HAS_DEALLOCATEDback to summary
private static final int HAS_DEALLOCATED
HAS_FREEback to summary
private static final int HAS_FREE
HAS_UNFILLED_PAGESback to summary
private static final int HAS_UNFILLED_PAGES
KEEP_UNFILLED_PAGESback to summary
private static final int KEEP_UNFILLED_PAGES
NO_DEALLOC_PAGE_MAPback to summary
private static final int NO_DEALLOC_PAGE_MAP
preAllocLengthback to summary
private int preAllocLength
reserved1back to summary
private int reserved1
reserved2back to summary
private long reserved2
reserved3back to summary
private long reserved3
RETIREDback to summary
private static final int RETIRED
unFilledPagesback to summary
pack-priv FormatableBitSet unFilledPages

Constructor Detail

AllocExtentback to summary
protected AllocExtent(long offset, long start, int length, int pagesize, int maxlength)
AllocExtentback to summary
protected AllocExtent(AllocExtent original)
AllocExtentback to summary
public AllocExtent()

Method Detail

allocPageback to summary
protected void allocPage(long pagenum) throws StandardException

Allocate this page - this is called underneath the log record

Exceptions
StandardException:
Standard Derby error policy
canAddFreePageback to summary
protected boolean canAddFreePage(long lastAllocatedPage)
checkInRangeback to summary
private void checkInRange(long pagenum)
compressback to summary
protected int compress(BaseContainerHandle owner, RawTransaction ntt, AllocPage alloc_page) throws StandardException

Compress free pages at end of this extent.

Search backward from end of extent and prepare data structures to return pages at end of extent to the OS. Returns the lowest page that can be returned to the OS.

Returns:int

Return bit of page where all pages that follow can be returned to the OS.

compressPagesback to summary
protected void compressPages(int new_highest_page, int num_pages_truncated)
deallocPageback to summary
protected void deallocPage(long pagenum) throws StandardException

Deallocate logical page pagenum - this is called underneath the log record. pagenum must be a page managed by this extent and it must be valid

Exceptions
StandardException:
Standard Derby error policy
getAllocatedPageCountback to summary
protected int getAllocatedPageCount()

Get the number of used page in this extent

getExtentEndback to summary
protected long getExtentEnd()
getFirstPagenumback to summary
protected long getFirstPagenum()

Get the first logical page number managed by this extent.

getFreePageNumberback to summary
protected long getFreePageNumber(long pnum)

Get a page number that is free

getLastPagenumback to summary
protected long getLastPagenum()

Get the last logical page number managed by this extent.

getLastPreallocPagenumback to summary
protected long getLastPreallocPagenum()

get the last preallocated pagenumber managed by this alloc page

getLastValidPageNumberback to summary
protected long getLastValidPageNumber()
getNextValidPageNumberback to summary
protected long getNextValidPageNumber(long prevPageNumber)
getPagenumback to summary
protected long getPagenum(int bit_pos)

translate bit position in map to page number.

Returns:long

The page number of this "bit" in the extent map.

getPageOffsetback to summary
protected long getPageOffset(long pagenum, int pagesize, boolean deallocOK) throws StandardException

Get the physical offset of pagenum. If deallocOK is true, then even if pagenum is deallocated, it is OK. If deallocOK is false, then an exception is thrown if pagenum is deallocated. An exception is always thrown if pagenum is a free page

Exceptions
StandardException:
Standard Derby error policy
getPageStatusback to summary
protected int getPageStatus(long pagenum)

Return the status of a particular page

getTotalPageCountback to summary
protected int getTotalPageCount()

Get the total number of pages in this extent

getUnfilledPageCountback to summary
protected int getUnfilledPageCount()

Get the number of unfilled pages in this extent

getUnfilledPageNumberback to summary
protected long getUnfilledPageNumber(long pagenum)

Get a page number that is unfilled, pagenum is the last page that was rejected.

isRetiredback to summary
protected boolean isRetired()

Return the status of this extent

MAX_RANGEback to summary
protected static int MAX_RANGE(int availspace)

Statically calculates how many pages this extent can manage given the availspace number of bytes to store this extent in if read/writeExternal changes, this must change too

mayHaveFreePageback to summary
private boolean mayHaveFreePage()
readExternalback to summary
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException

Implements java.io.Externalizable.readExternal.

Doc from java.io.Externalizable.readExternal.

The object implements the readExternal method to restore its contents by calling the methods of DataInput for primitive types and readObject for objects, strings and arrays. The readExternal method must read the values in the same sequence and with the same types as were written by writeExternal.

Parameters
in:ObjectInput

the stream to read data from in order to restore the object

Exceptions
IOException:
if I/O errors occur
ClassNotFoundException:
If the class for an object being restored cannot be found.
setExtentFreePageStatusback to summary
private void setExtentFreePageStatus(boolean hasFree)
setLastPreallocPagenumback to summary
protected void setLastPreallocPagenum(long preAllocPagenum)

preallocated N pages, passed in the last preallocated page number.

toDebugStringback to summary
protected String toDebugString()
trackUnfilledPageback to summary
protected boolean trackUnfilledPage(long pagenumber, boolean unfilled)
undoCompressPagesback to summary
protected void undoCompressPages(int new_highest_page, int num_pages_truncated)

Undo the compress space operation.

Undo of this operation doesn't really "undo" the operation, it just makes sure the data structures are ok after the undo. We are guaranteed at the point of the transaction doing the Undo of the compress space operation fixes up the bit maps to only point at pages within the new_highest_page range.

Prior to logging the compress space operation all pages greater than There are only 2 possibilities at this point: 1) the truncate of pages greater than new_highest_page happened before the abort took place. W 2)

updateUnfilledPageInfoback to summary
protected void updateUnfilledPageInfo(AllocExtent inputExtent)
writeExternalback to summary
public void writeExternal(ObjectOutput out) throws IOException

Implements java.io.Externalizable.writeExternal.

Doc from java.io.Externalizable.writeExternal.

The object implements the writeExternal method to save its contents by calling the methods of DataOutput for its primitive values or calling the writeObject method of ObjectOutput for objects, strings, and arrays.

Parameters
out:ObjectOutput

the stream to write the object to

Exceptions
IOException:
Includes any I/O exceptions that may occur