You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by lt...@apache.org on 2019/06/08 16:11:16 UTC
[incubator-iotdb] 02/04: fix a serve bug of set consistency level
This is an automated email from the ASF dual-hosted git repository.
lta pushed a commit to branch cluster
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git
commit b4c70a61d2cdbe1d26bf50aac968731c65df54b5
Author: lta <li...@163.com>
AuthorDate: Sat Jun 8 22:12:48 2019 +0800
fix a serve bug of set consistency level
---
.../org/apache/iotdb/cluster/config/ClusterConfig.java | 10 ++++++----
.../apache/iotdb/cluster/config/ClusterDescriptor.java | 18 ++++++++++++------
.../iotdb/cluster/qp/executor/AbstractQPExecutor.java | 1 +
.../qp/executor/ClusterQueryProcessExecutor.java | 2 +-
.../cluster/qp/executor/QueryMetadataExecutor.java | 2 +-
.../iotdb/cluster/config/ClusterDescriptorTest.java | 4 ++--
6 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
index 230afcb..95905dd 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterConfig.java
@@ -121,14 +121,16 @@ public class ClusterConfig {
private int maxQueueNumOfQPTask = 500;
/**
- * ReadMetadataConsistencyLevel: 1 Strong consistency, 2 Weak consistency
+ * ReadMetadataConsistencyLevel: strong or weak. Default consistency level is strong.
+ * This parameter is case-insensitive.
*/
- private int readMetadataConsistencyLevel = 1;
+ private int readMetadataConsistencyLevel = ClusterConsistencyLevel.STRONG.ordinal();
/**
- * ReadDataConsistencyLevel: 1 Strong consistency, 2 Weak consistency
+ * ReadDataConsistencyLevel: strong or weak. Default consistency level is strong.
+ * This parameter is case-insensitive.
*/
- private int readDataConsistencyLevel = 1;
+ private int readDataConsistencyLevel = ClusterConsistencyLevel.STRONG.ordinal();
/**
* Maximum number of threads which execute tasks generated by client requests concurrently. Each
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
index 3251dbd..2e67d6a 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/config/ClusterDescriptor.java
@@ -148,13 +148,19 @@ public class ClusterDescriptor {
.parseInt(properties.getProperty("max_queue_num_of_inner_rpc_client",
Integer.toString(conf.getMaxQueueNumOfQPTask()))));
- conf.setReadMetadataConsistencyLevel(Integer
- .parseInt(properties.getProperty("read_metadata_consistency_level",
- Integer.toString(conf.getReadMetadataConsistencyLevel()))));
+ String readMetadataLevelName = properties.getProperty("read_metadata_consistency_level", "");
+ int readMetadataLevel = ClusterConsistencyLevel.getLevel(readMetadataLevelName);
+ if(readMetadataLevel == ClusterConsistencyLevel.UNSUPPORT_LEVEL){
+ readMetadataLevel = ClusterConsistencyLevel.STRONG.ordinal();
+ }
+ conf.setReadMetadataConsistencyLevel(readMetadataLevel);
- conf.setReadDataConsistencyLevel(Integer
- .parseInt(properties.getProperty("read_data_consistency_level",
- Integer.toString(conf.getReadDataConsistencyLevel()))));
+ String readDataLevelName = properties.getProperty("read_data_consistency_level", "");
+ int readDataLevel = ClusterConsistencyLevel.getLevel(readDataLevelName);
+ if(readDataLevel == ClusterConsistencyLevel.UNSUPPORT_LEVEL){
+ readDataLevel = ClusterConsistencyLevel.STRONG.ordinal();
+ }
+ conf.setReadDataConsistencyLevel(readDataLevel);
conf.setConcurrentQPSubTaskThread(Integer
.parseInt(properties.getProperty("concurrent_qp_sub_task_thread",
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/AbstractQPExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/AbstractQPExecutor.java
index 44049cf..2a721f3 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/AbstractQPExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/AbstractQPExecutor.java
@@ -22,6 +22,7 @@ import com.alipay.sofa.jraft.entity.PeerId;
import java.util.HashSet;
import java.util.Set;
import org.apache.iotdb.cluster.config.ClusterConfig;
+import org.apache.iotdb.cluster.config.ClusterConsistencyLevel;
import org.apache.iotdb.cluster.config.ClusterDescriptor;
import org.apache.iotdb.cluster.entity.Server;
import org.apache.iotdb.cluster.exception.ConsistencyLevelException;
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/ClusterQueryProcessExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/ClusterQueryProcessExecutor.java
index e8e0aec..39324d8 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/ClusterQueryProcessExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/ClusterQueryProcessExecutor.java
@@ -126,7 +126,7 @@ public class ClusterQueryProcessExecutor extends AbstractQPExecutor implements I
public List<String> getAllPaths(String originPath)
throws PathErrorException {
try {
- LOGGER.debug("read metadata level :" + getReadMetadataConsistencyLevel());
+ LOGGER.debug(String.format("read metadata level :%d", getReadMetadataConsistencyLevel()));
return queryMetadataExecutor.processPathsQuery(originPath);
} catch (InterruptedException | ProcessorException e) {
throw new PathErrorException(e.getMessage());
diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/QueryMetadataExecutor.java b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/QueryMetadataExecutor.java
index 92f4c97..4270c2b 100644
--- a/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/QueryMetadataExecutor.java
+++ b/cluster/src/main/java/org/apache/iotdb/cluster/qp/executor/QueryMetadataExecutor.java
@@ -289,7 +289,7 @@ public class QueryMetadataExecutor extends AbstractQPExecutor {
public TSDataType processSeriesTypeQuery(String path)
throws InterruptedException, ProcessorException, PathErrorException {
- TSDataType dataType = null;
+ TSDataType dataType;
List<String> storageGroupList = mManager.getAllFileNamesByPath(path);
if (storageGroupList.size() != 1) {
throw new PathErrorException("path " + path + " is not valid.");
diff --git a/cluster/src/test/java/org/apache/iotdb/cluster/config/ClusterDescriptorTest.java b/cluster/src/test/java/org/apache/iotdb/cluster/config/ClusterDescriptorTest.java
index 4bb6449..4c3286e 100644
--- a/cluster/src/test/java/org/apache/iotdb/cluster/config/ClusterDescriptorTest.java
+++ b/cluster/src/test/java/org/apache/iotdb/cluster/config/ClusterDescriptorTest.java
@@ -54,8 +54,8 @@ public class ClusterDescriptorTest {
private String testVNodesNew = "4";
private String testClientNumNew = "400000";
private String testQueueLenNew = "300000";
- private String testMetadataConsistencyNew = "2";
- private String testDataConsistencyNew = "4";
+ private String testMetadataConsistencyNew = String.valueOf(ClusterConsistencyLevel.STRONG.ordinal());
+ private String testDataConsistencyNew = String.valueOf(ClusterConsistencyLevel.STRONG.ordinal());
private String testConcurrentQPTaskThreadNew = "6";
private String testConcurrentRaftTaskThreadNew = "11";