Class SqlJetPageCache

java.lang.Object
org.tmatesoft.sqljet.core.internal.pager.SqlJetPageCache
All Implemented Interfaces:
ISqlJetPageCache

public class SqlJetPageCache extends Object implements ISqlJetPageCache
A complete page cache is an instance of this structure.
  • Field Details

    • SQLJET_PAGE_CACHE_SIZE

      public static final String SQLJET_PAGE_CACHE_SIZE
      System property name for cache size configuration.
      See Also:
    • PAGE_CACHE_SIZE_DEFAULT

      public static final int PAGE_CACHE_SIZE_DEFAULT
      See Also:
    • PAGE_CACHE_SIZE_MINIMUM

      public static final int PAGE_CACHE_SIZE_MINIMUM
      See Also:
  • Method Details

    • open

      public void open(int szPage, boolean purgeable, ISqlJetPageCallback stress)
      Description copied from interface: ISqlJetPageCache
      Create a new pager cache. Under memory stress, invoke xStress to try to make pages clean. Only clean and unpinned pages can be reclaimed.
      Specified by:
      open in interface ISqlJetPageCache
      Parameters:
      szPage - Size of every page
      purgeable - True if pages are on backing store
      stress - Call to try to make pages clean
    • setPageSize

      public void setPageSize(int pageSize)
      Description copied from interface: ISqlJetPageCache
      Modify the page-size after the cache has been created. Change the page size for PCache object. This can only happen when the cache is empty.
      Specified by:
      setPageSize in interface ISqlJetPageCache
      Parameters:
      pageSize -
    • fetch

      public ISqlJetPage fetch(int pgno, boolean createFlag) throws SqlJetException
      Description copied from interface: ISqlJetPageCache
      Try to obtain a page from the cache.
      Specified by:
      fetch in interface ISqlJetPageCache
      Parameters:
      createFlag - If true, create page if it does not exist already
      Returns:
      Throws:
      SqlJetException
    • release

      public void release(ISqlJetPage page)
      Description copied from interface: ISqlJetPageCache
      Dereference a page. When the reference count reaches zero, move the page to the LRU list if it is clean. One release per successful fetch. Page is pinned until released. Reference counted.
      Specified by:
      release in interface ISqlJetPageCache
      Parameters:
      page -
    • drop

      public void drop(ISqlJetPage page)
      Description copied from interface: ISqlJetPageCache
      Remove page from cache Drop a page from the cache. There must be exactly one reference to the page. This function deletes that reference, so after it returns the page pointed to by p is invalid.
      Specified by:
      drop in interface ISqlJetPageCache
      Parameters:
      page -
    • makeDirty

      public void makeDirty(ISqlJetPage page)
      Description copied from interface: ISqlJetPageCache
      Make sure the page is marked as dirty. If it isn't dirty already, make it so.
      Specified by:
      makeDirty in interface ISqlJetPageCache
      Parameters:
      page -
    • makeClean

      public void makeClean(ISqlJetPage page)
      Description copied from interface: ISqlJetPageCache
      Make sure the page is marked as clean. If it isn't clean already, make it so.
      Specified by:
      makeClean in interface ISqlJetPageCache
      Parameters:
      page -
    • cleanAll

      public void cleanAll()
      Description copied from interface: ISqlJetPageCache
      Mark all dirty list pages as clean Make every page in the cache clean.
      Specified by:
      cleanAll in interface ISqlJetPageCache
    • clearSyncFlags

      public void clearSyncFlags()
      Description copied from interface: ISqlJetPageCache
      Clear flags from pages of the page cache
      Specified by:
      clearSyncFlags in interface ISqlJetPageCache
    • move

      public void move(ISqlJetPage page, int newPgno)
      Description copied from interface: ISqlJetPageCache
      Change a page number. Used by incr-vacuum. Change the page number of page p to newPgno. If newPgno is 0, then the page object is added to the clean-list and the PGHDR_REUSE_UNLIKELY flag set.
      Specified by:
      move in interface ISqlJetPageCache
      Parameters:
      page -
      newPgno -
    • truncate

      public void truncate(int pgno)
      Description copied from interface: ISqlJetPageCache
      Remove all pages with page numbers more than pageNumber. Reset the cache if pageNumber==0 Drop every cache entry whose page number is greater than "pgno".
      Specified by:
      truncate in interface ISqlJetPageCache
      Parameters:
      pgno -
    • close

      public void close()
      Description copied from interface: ISqlJetPageCache
      Reset and close the cache object
      Specified by:
      close in interface ISqlJetPageCache
    • clear

      public void clear()
      Description copied from interface: ISqlJetPageCache
      Discard the contents of the cache
      Specified by:
      clear in interface ISqlJetPageCache
    • getDirtyList

      public ISqlJetPage getDirtyList()
      Description copied from interface: ISqlJetPageCache
      Get a list of all dirty pages in the cache, sorted by page number
      Specified by:
      getDirtyList in interface ISqlJetPageCache
      Returns:
    • getRefCount

      public int getRefCount()
      Description copied from interface: ISqlJetPageCache
      Return the total number of outstanding page references
      Specified by:
      getRefCount in interface ISqlJetPageCache
    • getPageCount

      public int getPageCount()
      Description copied from interface: ISqlJetPageCache
      Return the total number of pages stored in the cache
      Specified by:
      getPageCount in interface ISqlJetPageCache
    • getCachesize

      public int getCachesize()
      Description copied from interface: ISqlJetPageCache
      Get the cache-size for the pager-cache.
      Specified by:
      getCachesize in interface ISqlJetPageCache
      Returns:
    • setCacheSize

      public void setCacheSize(int mxPage)
      Description copied from interface: ISqlJetPageCache
      Set the suggested cache-size for the pager-cache. If no global maximum is configured, then the system attempts to limit the total number of pages cached by purgeable pager-caches to the sum of the suggested cache-sizes.
      Specified by:
      setCacheSize in interface ISqlJetPageCache
      Parameters:
      mxPage -
    • iterate

      public void iterate(ISqlJetPageCallback iter) throws SqlJetException
      Description copied from interface: ISqlJetPageCache
      Iterate through all pages currently stored in the cache.
      Specified by:
      iterate in interface ISqlJetPageCache
      Parameters:
      iter -
      Throws:
      SqlJetException