Class ShardPath

java.lang.Object
org.elasticsearch.index.shard.ShardPath

public final class ShardPath extends Object
  • Field Details

  • Constructor Details

    • ShardPath

      public ShardPath(boolean isCustomDataPath, Path dataPath, Path shardStatePath, ShardId shardId)
  • Method Details

    • resolveTranslog

      public Path resolveTranslog()
    • resolveIndex

      public Path resolveIndex()
    • getDataPath

      public Path getDataPath()
    • exists

      public boolean exists()
    • getShardId

      public ShardId getShardId()
    • getShardStatePath

      public Path getShardStatePath()
    • getRootDataPath

      public Path getRootDataPath()
      Returns the data-path root for this shard. The root is a parent of getDataPath() without the index name and the shard ID.
    • getRootStatePath

      public Path getRootStatePath()
      Returns the state-path root for this shard. The root is a parent of getRootStatePath() ()} without the index name and the shard ID.
    • isCustomDataPath

      public boolean isCustomDataPath()
      Returns true iff the data location is a custom data location and therefore outside of the nodes configured data paths.
    • loadShardPath

      public static ShardPath loadShardPath(org.apache.logging.log4j.Logger logger, NodeEnvironment env, ShardId shardId, String customDataPath) throws IOException
      This method walks through the nodes shard paths to find the data and state path for the given shard. If multiple directories with a valid shard state exist the one with the highest version will be used. Note: this method resolves custom data locations for the shard if such a custom data path is provided.
      Throws:
      IOException
    • loadShardPath

      public static ShardPath loadShardPath(org.apache.logging.log4j.Logger logger, ShardId shardId, String customDataPath, Path[] availableShardPaths, int nodeLockId, Path sharedDataPath) throws IOException
      This method walks through the nodes shard paths to find the data and state path for the given shard. If multiple directories with a valid shard state exist the one with the highest version will be used. Note: this method resolves custom data locations for the shard.
      Throws:
      IOException
    • deleteLeftoverShardDirectory

      public static void deleteLeftoverShardDirectory(org.apache.logging.log4j.Logger logger, NodeEnvironment env, ShardLock lock, IndexSettings indexSettings, Consumer<Path[]> listener) throws IOException
      This method tries to delete left-over shards where the index name has been reused but the UUID is different to allow the new shard to be allocated.
      Throws:
      IOException
    • selectNewPathForShard

      public static ShardPath selectNewPathForShard(NodeEnvironment env, ShardId shardId, IndexSettings indexSettings, long avgShardSizeInBytes, Map<Path,Integer> dataPathToShardCount) throws IOException
      Throws:
      IOException
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object