Class SqlJetPageCache

  • All Implemented Interfaces:
    ISqlJetPageCache

    public class SqlJetPageCache
    extends java.lang.Object
    implements ISqlJetPageCache
    A complete page cache is an instance of this structure.
    Author:
    TMate Software Ltd., Sergey Scherbina (sergey.scherbina@gmail.com)
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cleanAll()
      Mark all dirty list pages as clean Make every page in the cache clean.
      void clear()
      Discard the contents of the cache
      void clearSyncFlags()
      Clear flags from pages of the page cache
      void close()
      Reset and close the cache object
      void drop​(ISqlJetPage page)
      Remove page from cache Drop a page from the cache.
      ISqlJetPage fetch​(int pgno, boolean createFlag)
      Try to obtain a page from the cache.
      int getCachesize()
      Get the cache-size for the pager-cache.
      ISqlJetPage getDirtyList()
      Get a list of all dirty pages in the cache, sorted by page number
      int getPageCount()
      Return the total number of pages stored in the cache
      int getRefCount()
      Return the total number of outstanding page references
      void iterate​(ISqlJetPageCallback iter)
      Iterate through all pages currently stored in the cache.
      void makeClean​(ISqlJetPage page)
      Make sure the page is marked as clean.
      void makeDirty​(ISqlJetPage page)
      Make sure the page is marked as dirty.
      void move​(ISqlJetPage page, int newPgno)
      Change a page number.
      void open​(int szPage, boolean purgeable, ISqlJetPageCallback stress)
      Create a new pager cache.
      void release​(ISqlJetPage page)
      Dereference a page.
      void setCacheSize​(int mxPage)
      Set the suggested cache-size for the pager-cache.
      void setPageSize​(int pageSize)
      Modify the page-size after the cache has been created.
      void truncate​(int pgno)
      Remove all pages with page numbers more than pageNumber.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • SQLJET_PAGE_CACHE_SIZE

        public static final java.lang.String SQLJET_PAGE_CACHE_SIZE
        System property name for cache size configuration.
        See Also:
        Constant Field Values
      • PAGE_CACHE_SIZE_DEFAULT

        public static final int PAGE_CACHE_SIZE_DEFAULT
        See Also:
        Constant Field Values
      • PAGE_CACHE_SIZE_MINIMUM

        public static final int PAGE_CACHE_SIZE_MINIMUM
        See Also:
        Constant Field Values
    • Method Detail

      • 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
      • 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
      • 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
      • 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
      • 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
      • 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
      • 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