Package org.elasticsearch.index.shard
Class ShardPath
- java.lang.Object
-
- org.elasticsearch.index.shard.ShardPath
-
public final class ShardPath extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
INDEX_FOLDER_NAME
static java.lang.String
TRANSLOG_FOLDER_NAME
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static void
deleteLeftoverShardDirectory(org.apache.logging.log4j.Logger logger, NodeEnvironment env, ShardLock lock, IndexSettings indexSettings)
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.boolean
equals(java.lang.Object o)
boolean
exists()
java.nio.file.Path
getDataPath()
java.nio.file.Path
getRootDataPath()
Returns the data-path root for this shard.java.nio.file.Path
getRootStatePath()
Returns the state-path root for this shard.ShardId
getShardId()
java.nio.file.Path
getShardStatePath()
int
hashCode()
boolean
isCustomDataPath()
Returnstrue
iff the data location is a custom data location and therefore outside of the nodes configured data paths.static ShardPath
loadShardPath(org.apache.logging.log4j.Logger logger, NodeEnvironment env, ShardId shardId, IndexSettings indexSettings)
This method walks through the nodes shard paths to find the data and state path for the given shard.static ShardPath
loadShardPath(org.apache.logging.log4j.Logger logger, ShardId shardId, IndexSettings indexSettings, java.nio.file.Path[] availableShardPaths, int nodeLockId, java.nio.file.Path sharedDataPath)
This method walks through the nodes shard paths to find the data and state path for the given shard.java.nio.file.Path
resolveIndex()
java.nio.file.Path
resolveTranslog()
static ShardPath
selectNewPathForShard(NodeEnvironment env, ShardId shardId, IndexSettings indexSettings, long avgShardSizeInBytes, java.util.Map<java.nio.file.Path,java.lang.Integer> dataPathToShardCount)
java.lang.String
toString()
-
-
-
Field Detail
-
INDEX_FOLDER_NAME
public static final java.lang.String INDEX_FOLDER_NAME
- See Also:
- Constant Field Values
-
TRANSLOG_FOLDER_NAME
public static final java.lang.String TRANSLOG_FOLDER_NAME
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ShardPath
public ShardPath(boolean isCustomDataPath, java.nio.file.Path dataPath, java.nio.file.Path shardStatePath, ShardId shardId)
-
-
Method Detail
-
resolveTranslog
public java.nio.file.Path resolveTranslog()
-
resolveIndex
public java.nio.file.Path resolveIndex()
-
getDataPath
public java.nio.file.Path getDataPath()
-
exists
public boolean exists()
-
getShardId
public ShardId getShardId()
-
getShardStatePath
public java.nio.file.Path getShardStatePath()
-
getRootDataPath
public java.nio.file.Path getRootDataPath()
Returns the data-path root for this shard. The root is a parent ofgetDataPath()
without the index name and the shard ID.
-
getRootStatePath
public java.nio.file.Path getRootStatePath()
Returns the state-path root for this shard. The root is a parent ofgetRootStatePath()
()} without the index name and the shard ID.
-
isCustomDataPath
public boolean isCustomDataPath()
Returnstrue
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, IndexSettings indexSettings) throws java.io.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:
java.io.IOException
-
loadShardPath
public static ShardPath loadShardPath(org.apache.logging.log4j.Logger logger, ShardId shardId, IndexSettings indexSettings, java.nio.file.Path[] availableShardPaths, int nodeLockId, java.nio.file.Path sharedDataPath) throws java.io.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:
java.io.IOException
-
deleteLeftoverShardDirectory
public static void deleteLeftoverShardDirectory(org.apache.logging.log4j.Logger logger, NodeEnvironment env, ShardLock lock, IndexSettings indexSettings) throws java.io.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:
java.io.IOException
-
selectNewPathForShard
public static ShardPath selectNewPathForShard(NodeEnvironment env, ShardId shardId, IndexSettings indexSettings, long avgShardSizeInBytes, java.util.Map<java.nio.file.Path,java.lang.Integer> dataPathToShardCount) throws java.io.IOException
- Throws:
java.io.IOException
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-