Class CommitTracker

java.lang.Object
org.apache.solr.update.CommitTracker
All Implemented Interfaces:
Runnable

public final class CommitTracker extends Object implements Runnable
Helper class for tracking autoCommit state.

Note: This is purely an implementation detail of autoCommit and will definitely change in the future, so the interface should not be relied-upon

Note: all access must be synchronized.

Public for tests.

  • Field Details

  • Constructor Details

    • CommitTracker

      public CommitTracker(String name, SolrCore core, int docsUpperBound, int timeUpperBound, long tLogFileSizeUpperBound, boolean openSearcher, boolean softCommit)
  • Method Details

    • getOpenSearcher

      public boolean getOpenSearcher()
    • close

      public void close()
    • scheduleCommitWithin

      public void scheduleCommitWithin(long commitMaxTime)
      schedule individual commits
    • cancelPendingCommit

      public void cancelPendingCommit()
    • addedDocument

      public void addedDocument(int commitWithin)
      Indicate that documents have been added
      Parameters:
      commitWithin - amount of time (in ms) within which a commit should be scheduled
    • addedDocument

      public void addedDocument(int commitWithin, LongSupplier currentTlogSize)
      Indicate that documents have been added
      Parameters:
      commitWithin - amount of time (in ms) within which a commit should be scheduled
      currentTlogSize - current tlog size (in bytes). Use -1 if we don't want to check for a max size triggered commit
    • deletedDocument

      public void deletedDocument(int commitWithin)
      Indicate that documents have been deleted
    • scheduleMaxSizeTriggeredCommitIfNeeded

      public void scheduleMaxSizeTriggeredCommitIfNeeded(LongSupplier currentTlogSize)
      If the given current tlog size is greater than the file size upper bound, then schedule a commit
      Parameters:
      currentTlogSize - current tlog size (in bytes)
    • didCommit

      public void didCommit()
      Inform tracker that a commit has occurred
    • didRollback

      public void didRollback()
      Inform tracker that a rollback has occurred, cancel any pending commits
    • run

      public void run()
      This is the worker part for the ScheduledFuture *
      Specified by:
      run in interface Runnable
    • getCommitCount

      public int getCommitCount()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getTimeUpperBound

      public long getTimeUpperBound()
    • setTimeUpperBound

      public void setTimeUpperBound(long timeUpperBound)
    • setTLogFileSizeUpperBound

      public void setTLogFileSizeUpperBound(int sizeUpperBound)
    • setOpenSearcher

      public void setOpenSearcher(boolean openSearcher)
    • hasPending

      public boolean hasPending()