Class AbstractSail

java.lang.Object
org.eclipse.rdf4j.sail.helpers.AbstractSail
All Implemented Interfaces:
Sail
Direct Known Subclasses:
AbstractNotifyingSail, FedX, FedXConnection.SailBaseDefaultImpl

public abstract class AbstractSail extends Object implements Sail
An abstract Sail implementation that takes care of common sail tasks, including proper closing of active connections and a grace period for active connections during shutdown of the store.
Author:
Herko ter Horst, jeen, Arjohn Kampman
  • Field Details Link icon

    • DEFAULT_CONNECTION_TIMEOUT Link icon

      protected static final long DEFAULT_CONNECTION_TIMEOUT
      Default connection timeout on shutdown: 20,000 milliseconds.
      See Also:
    • DEFAULT_ITERATION_SYNC_THRESHOLD Link icon

      protected static final long DEFAULT_ITERATION_SYNC_THRESHOLD
      default value for the Iteration item sync threshold
      See Also:
    • initializationLock Link icon

      protected final ReentrantReadWriteLock initializationLock
      Lock used to synchronize the initialization state of a sail.
      • write lock: initialize(), shutDown()
      • read lock: getConnection()
    • connectionTimeOut Link icon

      protected volatile long connectionTimeOut
      Connection timeout on shutdown (in ms). Defaults to DEFAULT_CONNECTION_TIMEOUT.
  • Constructor Details Link icon

    • AbstractSail Link icon

      public AbstractSail()
  • Method Details Link icon

    • debugEnabled Link icon

      protected static boolean debugEnabled()
    • setConnectionTimeOut Link icon

      public void setConnectionTimeOut(long connectionTimeOut)
      Set connection timeout on shutdown (in ms).
      Parameters:
      connectionTimeOut - timeout (in ms)
    • setDataDir Link icon

      public void setDataDir(File dataDir)
      Description copied from interface: Sail
      Sets the data directory for the Sail. The Sail can use this directory for storage of data, parameters, etc. This directory must be set before the Sail is
      invalid reference
      initialized
      .
      Specified by:
      setDataDir in interface Sail
    • getDataDir Link icon

      public File getDataDir()
      Description copied from interface: Sail
      Gets the Sail's data directory.
      Specified by:
      getDataDir in interface Sail
      See Also:
    • toString Link icon

      public String toString()
      Overrides:
      toString in class Object
    • isInitialized Link icon

      protected boolean isInitialized()
      Checks whether the Sail has been initialized. Sails are initialized from initialization until shutdown.
      Returns:
      true if the Sail has been initialized, false otherwise.
    • init Link icon

      public void init() throws SailException
      Description copied from interface: Sail
      Initializes the Sail. Care should be taken that required initialization parameters have been set before this method is called. Please consult the specific Sail implementation for information about the relevant parameters.
      Specified by:
      init in interface Sail
      Throws:
      SailException - If the Sail could not be initialized.
    • initializeInternal Link icon

      protected void initializeInternal() throws SailException
      Do store-specific operations to initialize the store. The default implementation of this method does nothing.
      Throws:
      SailException
    • shutDown Link icon

      public void shutDown() throws SailException
      Description copied from interface: Sail
      Shuts down the Sail, giving it the opportunity to synchronize any stale data. Care should be taken that all initialized Sails are being shut down before an application exits to avoid potential loss of data. Once shut down, a Sail can no longer be used until it is re-initialized.
      Specified by:
      shutDown in interface Sail
      Throws:
      SailException - If the Sail object encountered an error or unexpected situation internally.
    • shutDownInternal Link icon

      protected abstract void shutDownInternal() throws SailException
      Do store-specific operations to ensure proper shutdown of the store.
      Throws:
      SailException
    • getConnection Link icon

      public SailConnection getConnection() throws SailException
      Description copied from interface: Sail
      Opens a connection on the Sail which can be used to query and update data. Depending on how the implementation handles concurrent access, a call to this method might block when there is another open connection on this Sail.
      Specified by:
      getConnection in interface Sail
      Throws:
      SailException - If no transaction could be started, for example because the Sail is not writable.
    • getConnectionInternal Link icon

      protected abstract SailConnection getConnectionInternal() throws SailException
      Returns a store-specific SailConnection object.
      Returns:
      A connection to the store.
      Throws:
      SailException
    • connectionClosed Link icon

      protected void connectionClosed(SailConnection connection)
      Signals to the store that the supplied connection has been closed; called by AbstractSailConnection.close().
      Parameters:
      connection - The connection that has been closed.
    • addSupportedIsolationLevel Link icon

      protected void addSupportedIsolationLevel(IsolationLevels level)
      Appends the provided IsolationLevels to the SAIL's list of supported isolation levels.
      Parameters:
      level - a supported IsolationLevel.
    • removeSupportedIsolationLevel Link icon

      protected void removeSupportedIsolationLevel(IsolationLevel level)
      Removes all occurrences of the provided IsolationLevels in the list of supported Isolation levels.
      Parameters:
      level - the isolation level to remove.
    • setSupportedIsolationLevels Link icon

      protected void setSupportedIsolationLevels(List<IsolationLevel> supportedIsolationLevels)
      Sets the list of supported IsolationLevelss for this SAIL. The list is expected to be ordered in increasing complexity.
      Parameters:
      supportedIsolationLevels - a list of supported isolation levels.
    • setSupportedIsolationLevels Link icon

      protected void setSupportedIsolationLevels(IsolationLevel... supportedIsolationLevels)
      Sets the list of supported IsolationLevelss for this SAIL. The list is expected to be ordered in increasing complexity.
      Parameters:
      supportedIsolationLevels - a list of supported isolation levels.
    • getSupportedIsolationLevels Link icon

      public List<IsolationLevel> getSupportedIsolationLevels()
      Description copied from interface: Sail
      Retrieve the IsolationLevels supported by this SAIL, ordered by increasing complexity.
      Specified by:
      getSupportedIsolationLevels in interface Sail
      Returns:
      a non-empty List of supported Isolation Levels, in order of increasing complexity. Every SAIL supports at least one IsolationLevel.
    • getDefaultIsolationLevel Link icon

      public IsolationLevel getDefaultIsolationLevel()
      Description copied from interface: Sail
      Retrieves the default IsolationLevel level on which transactions in this Sail operate.
      Specified by:
      getDefaultIsolationLevel in interface Sail
      Returns:
      the IsolationLevel that will be used with SailConnection.begin(), for SAIL connections returned by Sail.getConnection().
    • setDefaultIsolationLevel Link icon

      public void setDefaultIsolationLevel(IsolationLevel defaultIsolationLevel)
      Sets the default IsolationLevel on which transactions in this Sail operate.
      Parameters:
      defaultIsolationLevel - The defaultIsolationLevel to set.
    • getIterationCacheSyncThreshold Link icon

      public long getIterationCacheSyncThreshold()
      Retrieves the currently configured threshold for syncing query evaluation iteration caches to disk.
      Returns:
      Returns the iterationCacheSyncThreshold.
    • setIterationCacheSyncThreshold Link icon

      public void setIterationCacheSyncThreshold(long iterationCacheSyncThreshold)
      Set the threshold for syncing query evaluation iteration caches to disk.
      Parameters:
      iterationCacheSyncThreshold - The iterationCacheSyncThreshold to set.
    • isTrackResultSize Link icon

      public boolean isTrackResultSize()
      Returns the status of the result size tracking for the query plan. Useful to determine which parts of a query plan generated the most data.
      Returns:
      true if result size tracking is enabled.
    • setTrackResultSize Link icon

      public void setTrackResultSize(boolean trackResultSize)
      Enable or disable results size tracking for the query plan. Useful to determine which parts of a query plan generated the most data.
      Parameters:
      trackResultSize - true to enable tracking.
    • getDefaultQueryEvaluationMode Link icon

      public QueryEvaluationMode getDefaultQueryEvaluationMode()
      Returns:
      the defaultQueryEvaluationMode
    • setDefaultQueryEvaluationMode Link icon

      public void setDefaultQueryEvaluationMode(QueryEvaluationMode defaultQueryEvaluationMode)
      Parameters:
      defaultQueryEvaluationMode - the defaultQueryEvaluationMode to set