private Map<TaskName, Map<String, StorageEngine>> createTaskStores(ContainerModel containerModel, JobContext jobContext, ContainerContext containerContext,
Map<String, StorageEngineFactory<Object, Object>> storageEngineFactories,
Map<String, SystemStream> changelogSystemStreams, Map<String, Serde<Object>> serdes,
Map<TaskName, TaskInstanceMetrics> taskInstanceMetrics,
Map<TaskName, TaskInstanceCollector> taskInstanceCollectors, StorageEngineFactory.StoreMode storeMode) {
Map<TaskName, Map<String, StorageEngine>> taskStores = new HashMap<>();
for (Map.Entry<TaskName, TaskModel> task : containerModel.getTasks().entrySet()) {
TaskName taskName = task.getKey();
TaskModel taskModel = task.getValue();
if (!taskStores.containsKey(taskName)) {
taskStores.put(taskName, new HashMap<>());
}
for (String storeName : storageEngineFactories.keySet()) {
StorageEngine storageEngine =
createStore(storeName, taskName, taskModel, jobContext, containerContext, storageEngineFactories,
changelogSystemStreams, serdes, taskInstanceMetrics, taskInstanceCollectors, storeMode);
taskStores.get(taskName).put(storeName, storageEngine);
LOG.info("Created store {} for task {}", storeName, taskName);
}
}
return taskStores;
}