Ring-k commented on a change in pull request #1387:
URL: https://github.com/apache/incubator-iotdb/pull/1387#discussion_r443679064
##########
File path:
cluster/src/main/java/org/apache/iotdb/cluster/server/member/MetaGroupMember.java
##########
@@ -1520,12 +1534,31 @@ private TSStatus processPartitionedPlan(PhysicalPlan
plan) throws UnsupportedPla
} catch (MetadataException e) {
logger.error("Cannot route plan {}", plan, e);
}
- // the storage group is not found locally, forward it to the leader
+ // the storage group is not found locally
if (planGroupMap == null || planGroupMap.isEmpty()) {
- logger.debug("{}: Cannot found storage groups for {}", name, plan);
+ if (plan instanceof InsertPlan &&
IoTDBDescriptor.getInstance().getConfig()
+ .isAutoCreateSchemaEnabled()) {
+ // try to set storage group
+ String deviceId = ((InsertPlan) plan).getDeviceId();
+ try {
+ String storageGroupName = MetaUtils
+ .getStorageGroupNameByLevel(deviceId,
IoTDBDescriptor.getInstance()
+ .getConfig().getDefaultStorageGroupLevel());
+ SetStorageGroupPlan setStorageGroupPlan = new SetStorageGroupPlan(
+ new Path(storageGroupName));
+ TSStatus setStorageGroupResult =
executeNonQuery(setStorageGroupPlan);
+ if (setStorageGroupResult.getCode() !=
TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ throw new MetadataException("Failed to set storage group " +
storageGroupName);
+ }
+ return executeNonQuery(plan);
+ } catch (MetadataException e) {
+ logger.info("Failed to set storage group of device id {}", deviceId);
+ }
+ }
+ logger.error("{}: Cannot found storage groups for {}", name, plan);
return StatusUtils.NO_STORAGE_GROUP;
}
- logger.debug("{}: The data groups of {} are {}", name, plan, planGroupMap);
+ logger.error("{}: The data groups of {} are {}", name, plan, planGroupMap);
Review comment:
Alright, I will revert.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]