simpledb
Interface Page

All Known Implementing Classes:
HeapPage

public interface Page

Page is the interface used to represent pages that are resident in the BufferPool. Typically, DbFiles will read and write pages from disk.

Pages may be "dirty", indicating that they have been modified since they were last written out to disk. For recovery purposes, pages MUST have a single constructor of the form: Page(PageId id, byte[] data)


Method Summary
 Page getBeforeImage()
          Provide a representation of this page before any modifications were made to it.
 byte[] getPageData()
          Generates a byte array representing the contents of this page.
 PageId id()
          Return the id of this page.
 TransactionId isDirty()
          Returns true if this page is dirty.
 void markDirty(boolean dirty, TransactionId tid)
          Set the dirty state of this page as dirtied by a particular transaction
 

Method Detail

id

PageId id()
Return the id of this page. The id is a unique identifier for a page that can be used to look up the page on disk or determine if the page is resident in the buffer pool.

Returns:
the id of this page

isDirty

TransactionId isDirty()
Returns true if this page is dirty.

Returns:
The id of the transaction that last dirtied this page, or null

markDirty

void markDirty(boolean dirty,
               TransactionId tid)
Set the dirty state of this page as dirtied by a particular transaction


getPageData

byte[] getPageData()
Generates a byte array representing the contents of this page. Used to serialize this page to disk.

The invariant here is that it should be possible to pass the byte array generated by getPageData to the Page constructor and have it produce an identical Page object.

Returns:
A byte array correspond to the bytes of this page.

getBeforeImage

Page getBeforeImage()
Provide a representation of this page before any modifications were made to it. Used by recovery.