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.
 PageId getId()
          Return the id of this page.
 byte[] getPageData()
          Generates a byte array representing the contents of this page.
 TransactionId isDirty()
          Get the id of the transaction that last dirtied this page, or null if the page is clean..
 void markDirty(boolean dirty, TransactionId tid)
          Set the dirty state of this page as dirtied by a particular transaction
 void setBeforeImage()
           
 

Method Detail

getId

PageId getId()
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()
Get the id of the transaction that last dirtied this page, or null if the page is clean..

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.


setBeforeImage

void setBeforeImage()