You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by GitBox <gi...@apache.org> on 2022/04/11 01:40:25 UTC
[GitHub] [iotdb] wangchao316 commented on a diff in pull request #5464: [IOTDB-2687] Base partition policy of data
wangchao316 commented on code in PR #5464:
URL: https://github.com/apache/iotdb/pull/5464#discussion_r846886112
##########
confignode/src/main/java/org/apache/iotdb/confignode/manager/DataNodeManager.java:
##########
@@ -18,83 +18,63 @@
*/
package org.apache.iotdb.confignode.manager;
-import org.apache.iotdb.commons.partition.DataNodeLocation;
+import org.apache.iotdb.commons.cluster.DataNodeLocation;
import org.apache.iotdb.confignode.consensus.response.DataNodesInfoDataSet;
import org.apache.iotdb.confignode.persistence.DataNodeInfoPersistence;
import org.apache.iotdb.confignode.physical.sys.QueryDataNodeInfoPlan;
import org.apache.iotdb.confignode.physical.sys.RegisterDataNodePlan;
-import org.apache.iotdb.consensus.common.response.ConsensusWriteResponse;
-import org.apache.iotdb.rpc.TSStatusCode;
import org.apache.iotdb.service.rpc.thrift.TSStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
-import java.util.Map;
-import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
/** Manager server info of data node, add node or remove node */
public class DataNodeManager {
+
private static final Logger LOGGER = LoggerFactory.getLogger(DataNodeManager.class);
- private DataNodeInfoPersistence dataNodeInfo = DataNodeInfoPersistence.getInstance();
+ private static final DataNodeInfoPersistence dataNodeInfoPersistence =
+ DataNodeInfoPersistence.getInstance();
- private Manager configManager;
+ private final Manager configManager;
/** TODO:do some operate after add node or remove node */
- private List<ChangeServerListener> listeners = new CopyOnWriteArrayList<>();
-
- private final ReentrantReadWriteLock dataNodeInfoReadWriteLock;
-
- private int nextDataNodeId;
+ private final List<ChangeServerListener> listeners = new CopyOnWriteArrayList<>();
public DataNodeManager(Manager configManager) {
this.configManager = configManager;
- this.dataNodeInfoReadWriteLock = new ReentrantReadWriteLock();
}
/**
- * register dta node info when data node start
+ * Register DataNode
*
* @param plan RegisterDataNodePlan
- * @return success if data node regist first
+ * @return SUCCESS_STATUS
*/
public TSStatus registerDataNode(RegisterDataNodePlan plan) {
- TSStatus result;
- DataNodeLocation info = plan.getInfo();
- dataNodeInfoReadWriteLock.writeLock().lock();
- try {
- if (dataNodeInfo.containsValue(info)) {
- // TODO: optimize
- result = new TSStatus(TSStatusCode.SUCCESS_STATUS.getStatusCode());
- result.setMessage(String.valueOf(dataNodeInfo.getDataNodeInfo(info)));
- } else {
Review Comment:
Some judgmental and calculation logic can be placed in the manager. Only when certain conditions are met, the logic needs to be pushed down to the consensus layer.
一些判断性的和计算的逻辑可以放在manager中,只有满足一定条件后才需要下推到共识层。这样可以减轻共识层的压力。
--
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.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org