刘珍 created IOTDB-4062:
-------------------------

             Summary: [ raft log & MetaData ] raft log recovery should not redo 
MeasurementAlreadyExist operation 
                 Key: IOTDB-4062
                 URL: https://issues.apache.org/jira/browse/IOTDB-4062
             Project: Apache IoTDB
          Issue Type: Improvement
          Components: mpp-cluster
            Reporter: 刘珍
            Assignee: Jialin Qiao


raft log恢复,会重做所有MetaData的写操作,对于失败的元数据写操作比如序列已存在:

 [192.168.10.62_50010@group-000200000000-StateMachineUpdater] ERROR 
o.a.i.d.m.v.SchemaExecutionVisitor:108 - IoTDB: MetaData error:
org.apache.iotdb.db.exception.metadata.MeasurementAlreadyExistException: Path 
[root.bm68_dn62.g_0.d_0.s_1] already exist

不需要重做。
完整的异常:
2022-08-08 17:46:29,045 
[192.168.10.62_50010@group-000200000000-StateMachineUpdater] ERROR 
o.a.i.d.m.v.SchemaExecutionVisitor:108 - IoTDB: MetaData error:
org.apache.iotdb.db.exception.metadata.MeasurementAlreadyExistException: Path 
[root.bm68_dn62.g_0.d_0.s_2] already exist
        at 
org.apache.iotdb.db.metadata.mtree.MTreeBelowSGMemoryImpl.createTimeseries(MTreeBelowSGMemoryImpl.java:213)
        at 
org.apache.iotdb.db.metadata.schemaregion.SchemaRegionMemoryImpl.createTimeseries(SchemaRegionMemoryImpl.java:589)
        at 
org.apache.iotdb.db.metadata.visitor.SchemaExecutionVisitor.visitCreateMultiTimeSeries(SchemaExecutionVisitor.java:105)
        at 
org.apache.iotdb.db.metadata.visitor.SchemaExecutionVisitor.visitCreateMultiTimeSeries(SchemaExecutionVisitor.java:62)
        at 
org.apache.iotdb.db.mpp.plan.planner.plan.node.metedata.write.CreateMultiTimeSeriesNode.accept(CreateMultiTimeSeriesNode.java:141)
        at 
org.apache.iotdb.db.consensus.statemachine.SchemaRegionStateMachine.write(SchemaRegionStateMachine.java:68)
        at 
org.apache.iotdb.consensus.ratis.ApplicationStateMachineProxy.applyTransaction(ApplicationStateMachineProxy.java:121)
        at 
org.apache.ratis.server.impl.RaftServerImpl.applyLogToStateMachine(RaftServerImpl.java:1588)
        at 
org.apache.ratis.server.impl.StateMachineUpdater.applyLog(StateMachineUpdater.java:239)
        at 
org.apache.ratis.server.impl.StateMachineUpdater.run(StateMachineUpdater.java:182)
        at java.lang.Thread.run(Thread.java:748)

复现流程
1. benchmark重复执行附件中的脚本





--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to