Alexander Lapin created IGNITE-15403:
----------------------------------------
Summary: Eliminate excessive storage directories creation for
table partitions
Key: IGNITE-15403
URL: https://issues.apache.org/jira/browse/IGNITE-15403
Project: Ignite
Issue Type: Bug
Reporter: Alexander Lapin
Assignee: Alexander Lapin
It's requited to create and resolve directories for storage only if a local
node hosts partition raft node:
{code:java}
if
(nodes.stream().map(ClusterNode::name).collect(Collectors.toSet()).contains(locNodeName))
{code}
However, at this moment it's ignored and storage directory will be created on
every node:
{code:java}
private void createTableLocally(
String name,
UUID tblId,
List<List<ClusterNode>> assignment,
SchemaRegistry schemaReg
) {
int partitions = assignment.size();
var partitionsGroupsFutures = new
ArrayList<CompletableFuture<RaftGroupService>>();
Path storageDir = partitionsStoreDir.resolve(name);
try {
Files.createDirectories(storageDir);
} catch (IOException e) {
throw new IgniteInternalException(
"Failed to create partitions store directory for " + name + ": " +
e.getMessage(),
e
);
}
for (int p = 0; p < partitions; p++) {
RocksDbStorage storage = new RocksDbStorage(
storageDir.resolve(String.valueOf(p)),
ByteBuffer::compareTo
);
{code}
In other words, storage directory is created regardless of whether a raft node
is created or not.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)