You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by su...@apache.org on 2020/10/27 12:31:46 UTC
[iotdb] branch jira_961 created (now a03a501)
This is an automated email from the ASF dual-hosted git repository.
sunzesong pushed a change to branch jira_961
in repository https://gitbox.apache.org/repos/asf/iotdb.git.
at a03a501 [IOTDB-961] Remove ActiveTimeSeriesCounter
This branch includes the following new commits:
new a03a501 [IOTDB-961] Remove ActiveTimeSeriesCounter
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[iotdb] 01/01: [IOTDB-961] Remove ActiveTimeSeriesCounter
Posted by su...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
sunzesong pushed a commit to branch jira_961
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a03a501082679b469bf5982a151e0308ae9ba24a
Author: samperson1997 <sz...@mails.tsinghua.edu.cn>
AuthorDate: Tue Oct 27 20:31:01 2020 +0800
[IOTDB-961] Remove ActiveTimeSeriesCounter
---
.../resources/conf/iotdb-engine.properties | 3 -
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 13 --
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 8 +-
.../db/conf/adapter/ActiveTimeSeriesCounter.java | 159 ---------------------
.../db/conf/adapter/IActiveTimeSeriesCounter.java | 61 --------
.../iotdb/db/engine/flush/MemTableFlushTask.java | 9 --
.../org/apache/iotdb/db/metadata/MManager.java | 98 ++-----------
.../iotdb/db/rescon/PrimitiveArrayManager.java | 5 +-
.../conf/adapter/ActiveTimeSeriesCounterTest.java | 125 ----------------
.../db/conf/adapter/CompressionRatioTest.java | 1 -
.../iotdb/db/conf/adapter/HyperLogLogTest.java | 65 ---------
.../db/engine/cache/ChunkMetadataCacheTest.java | 4 -
.../db/engine/memtable/MemTableFlushTaskTest.java | 2 -
.../storagegroup/StorageGroupProcessorTest.java | 2 -
.../engine/storagegroup/TsFileProcessorTest.java | 3 -
.../iotdb/db/metadata/MManagerBasicTest.java | 26 ----
.../apache/iotdb/db/utils/EnvironmentUtils.java | 1 -
.../recover/RecoverResourceFromReaderTest.java | 3 -
.../db/writelog/recover/SeqTsFileRecoverTest.java | 3 -
.../writelog/recover/UnseqTsFileRecoverTest.java | 3 -
20 files changed, 21 insertions(+), 573 deletions(-)
diff --git a/server/src/assembly/resources/conf/iotdb-engine.properties b/server/src/assembly/resources/conf/iotdb-engine.properties
index e557696..3240a50 100644
--- a/server/src/assembly/resources/conf/iotdb-engine.properties
+++ b/server/src/assembly/resources/conf/iotdb-engine.properties
@@ -226,9 +226,6 @@ mtree_snapshot_threshold_time=3600
# Whether to enable memory control
enable_mem_control=true
-# Whether to enable active timeseries counter
-enable_active_timeseries_counter=true
-
# Memory Allocation Ratio: Write, Read, MTree and Free Memory.
# The parameter form is a:b:c:d, where a, b, c and d are integers. for example: 1:1:1:1 , 6:2:1:1
write_read_mtree_free_memory_proportion=4:3:1:2
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index c0c23a5..38b1723 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -136,11 +136,6 @@ public class IoTDBConfig {
private long allocateMemoryForMTree = Runtime.getRuntime().maxMemory() * 1 / 10;
/**
- * Is active timeseries counter enable.
- */
- private boolean enableActiveTimeseriesCounter = false;
-
- /**
* Memory allocated for the read process besides cache
*/
private long allocateMemoryForReadWithoutCache = Runtime.getRuntime().maxMemory() * 9 / 100;
@@ -1214,14 +1209,6 @@ public class IoTDBConfig {
this.mergeIntervalSec = mergeIntervalSec;
}
- public boolean isEnableActiveTimeseriesCounter() {
- return enableActiveTimeseriesCounter;
- }
-
- public void setEnableActiveTimeseriesCounter(boolean enableActiveTimeseriesCounter) {
- this.enableActiveTimeseriesCounter = enableActiveTimeseriesCounter;
- }
-
public double getBufferedArraysMemoryProportion() {
return bufferedArraysMemoryProportion;
}
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 61cadb5..38980ce 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -199,10 +199,6 @@ public class IoTDBDescriptor {
conf.setTimestampPrecision(properties.getProperty("timestamp_precision",
conf.getTimestampPrecision()));
- conf.setEnableActiveTimeseriesCounter(
- Boolean.parseBoolean(properties.getProperty("enable_active_timeseries_counter",
- Boolean.toString(conf.isEnableActiveTimeseriesCounter()))));
-
conf.setBufferedArraysMemoryProportion(
Double.parseDouble(properties.getProperty("buffered_arrays_memory_proportion",
Double.toString(conf.getBufferedArraysMemoryProportion()))));
@@ -704,14 +700,14 @@ public class IoTDBDescriptor {
long tsfileSizeThreshold = Long.parseLong(properties
.getProperty("tsfile_size_threshold",
Long.toString(conf.getTsFileSizeThreshold())).trim());
- if (tsfileSizeThreshold >= 0 && !conf.isEnableActiveTimeseriesCounter()) {
+ if (tsfileSizeThreshold >= 0) {
conf.setTsFileSizeThreshold(tsfileSizeThreshold);
}
long memTableSizeThreshold = Long.parseLong(properties
.getProperty("memtable_size_threshold",
Long.toString(conf.getMemtableSizeThreshold())).trim());
- if (memTableSizeThreshold > 0 && !conf.isEnableActiveTimeseriesCounter()) {
+ if (memTableSizeThreshold > 0) {
conf.setMemtableSizeThreshold(memTableSizeThreshold);
}
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/adapter/ActiveTimeSeriesCounter.java b/server/src/main/java/org/apache/iotdb/db/conf/adapter/ActiveTimeSeriesCounter.java
deleted file mode 100644
index 0934605..0000000
--- a/server/src/main/java/org/apache/iotdb/db/conf/adapter/ActiveTimeSeriesCounter.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.conf.adapter;
-
-import com.clearspring.analytics.stream.cardinality.HyperLogLog;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
-import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ActiveTimeSeriesCounter implements IActiveTimeSeriesCounter {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(ActiveTimeSeriesCounter.class);
- /**
- * Map[StorageGroup, HyperLogLogCounter]
- */
- private static Map<String, HyperLogLog> storageGroupHllMap = new ConcurrentHashMap<>();
-
- /**
- * Map[StorageGroup, ActiveTimeSeriesRatio]
- */
- private static Map<String, Double> activeRatioMap = new ConcurrentHashMap<>();
-
- /**
- * Map[StorageGroup, ActiveTimeSeriesNumber]
- */
- private static Map<String, Long> activeTimeSeriesNumMap = new ConcurrentHashMap<>();
-
- /**
- * LOG2M decide the precision of the HyperLogLog algorithm
- */
- static final int LOG2M = 13;
-
- private ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
-
- @Override
- public void init(String storageGroup) {
- storageGroupHllMap.put(storageGroup, new HyperLogLog(LOG2M));
- activeRatioMap.put(storageGroup, 0D);
- activeTimeSeriesNumMap.put(storageGroup, 0L);
- }
-
- @Override
- public void offer(String storageGroup, String device, String measurement) {
- String path = device + IoTDBConstant.PATH_SEPARATOR + measurement;
- try {
- HyperLogLog log = storageGroupHllMap.get(storageGroup);
- if (log != null) {
- log.offer(path);
- } else {
- LOGGER.warn(
- "Unknown SG {} is calling HyperLogLog.offer(). It can be ignored the sg is deleted recently",
- storageGroup);
- }
- } catch (Exception e) {
- //we do not register it if there is no the storage group.
- LOGGER.error("Storage group {} registers active time series {} failed", storageGroup, path,
- e);
- }
- }
-
- @Override
- public void updateActiveRatio(String storageGroup) {
- lock.writeLock().lock();
- try {
- HyperLogLog log = storageGroupHllMap.get(storageGroup);
- if (log == null) {
- LOGGER.warn(
- "Unknown SG {} is calling updateActiveRatio. It can be ignored the sg is deleted recently",
- storageGroup);
- return;
- }
- long activeTimeSeriesNum = storageGroupHllMap.get(storageGroup).cardinality();
- if (activeTimeSeriesNum != activeTimeSeriesNumMap.get(storageGroup)) {
- // update the active time series number in the newest memtable to be flushed
- activeTimeSeriesNumMap.put(storageGroup, activeTimeSeriesNum);
-
- double totalActiveTsNum = 0;
- LOGGER.debug("{}: updating active ratio", Thread.currentThread().getName());
- for (double number : activeTimeSeriesNumMap.values()) {
- totalActiveTsNum += number;
- }
- for (Map.Entry<String, Long> entry : activeTimeSeriesNumMap.entrySet()) {
- double activeRatio = 0;
- if (totalActiveTsNum > 0) {
- activeRatio = entry.getValue() / totalActiveTsNum;
- }
- activeRatioMap.put(entry.getKey(), activeRatio);
- LOGGER.debug("{}: storage group {} has an active ratio: {}",
- Thread.currentThread().getName(),
- entry.getKey(), activeRatio);
- }
- }
- // initialize the HLL counter
- storageGroupHllMap.put(storageGroup, new HyperLogLog(LOG2M));
- } catch (Exception e) {
- LOGGER.error("Update {} active ratio failed", storageGroup, e);
- } finally {
- lock.writeLock().unlock();
- }
- }
-
- @Override
- public double getActiveRatio(String storageGroup) {
- lock.readLock().lock();
- double ratio;
- try {
- ratio = activeRatioMap.get(storageGroup);
- } catch (Exception e) {
- ratio = 0;
- LOGGER.error("Get active ratio failed", e);
- } finally {
- lock.readLock().unlock();
- }
- return ratio;
- }
-
- @Override
- public void delete(String storageGroup) {
- storageGroupHllMap.remove(storageGroup);
- activeRatioMap.remove(storageGroup);
- activeTimeSeriesNumMap.remove(storageGroup);
- }
-
- private static class ActiveTimeSeriesCounterHolder {
- private static final ActiveTimeSeriesCounter INSTANCE = new ActiveTimeSeriesCounter();
- }
-
- public static ActiveTimeSeriesCounter getInstance() {
- return ActiveTimeSeriesCounterHolder.INSTANCE;
- }
-
- /**
- * this method is for test
- */
- public static void clear() {
- storageGroupHllMap = new ConcurrentHashMap<>();
- activeRatioMap = new ConcurrentHashMap<>();
- activeTimeSeriesNumMap = new ConcurrentHashMap<>();
- }
-}
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/adapter/IActiveTimeSeriesCounter.java b/server/src/main/java/org/apache/iotdb/db/conf/adapter/IActiveTimeSeriesCounter.java
deleted file mode 100644
index 43bc10c..0000000
--- a/server/src/main/java/org/apache/iotdb/db/conf/adapter/IActiveTimeSeriesCounter.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.conf.adapter;
-
-public interface IActiveTimeSeriesCounter {
-
- /**
- * Initialize the counter by adding a new HyperLogLog counter for the given storage group
- *
- * @param storageGroup the given storage group to be initialized
- */
- void init(String storageGroup);
-
- /**
- * Register a time series to the active time series counter
- *
- * @param storageGroup the storage group name of the time series
- * @param device the device name of the time series
- * @param measurement the sensor name of the time series
- */
- void offer(String storageGroup, String device, String measurement);
-
- /**
- * Update the ActiveRatioMap
- *
- * @param storageGroup whose counter will be refreshed after the update
- */
- void updateActiveRatio(String storageGroup);
-
- /**
- * Get the active time series number proportion of the given storage group
- *
- * @param storageGroup the storage group to be calculated
- * @return the active time series number proportion of the given storage group
- */
- double getActiveRatio(String storageGroup);
-
- /**
- * Delete the counter for the given storage group
- *
- * @param storageGroup whose counter will be removed
- */
- void delete(String storageGroup);
-
-}
\ No newline at end of file
diff --git a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
index 9e16042..e9f4c92 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/flush/MemTableFlushTask.java
@@ -23,8 +23,6 @@ import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.engine.flush.pool.FlushSubTaskPoolManager;
import org.apache.iotdb.db.engine.memtable.IMemTable;
import org.apache.iotdb.db.engine.memtable.IWritableMemChunk;
@@ -94,16 +92,9 @@ public class MemTableFlushTask {
TVList tvList = series.getSortedTVList();
sortTime += System.currentTimeMillis() - startTime;
encodingTaskQueue.add(new Pair<>(tvList, desc));
- // register active time series to the ActiveTimeSeriesCounter
- if (IoTDBDescriptor.getInstance().getConfig().isEnableActiveTimeseriesCounter()) {
- ActiveTimeSeriesCounter.getInstance().offer(storageGroup, deviceId, measurementId);
- }
}
encodingTaskQueue.add(new EndChunkGroupIoTask());
}
- if (IoTDBDescriptor.getInstance().getConfig().isEnableActiveTimeseriesCounter()) {
- ActiveTimeSeriesCounter.getInstance().updateActiveRatio(storageGroup);
- }
noMoreEncodingTask = true;
logger.debug(
"Storage group {} memtable {}, flushing into disk: data sort time cost {} ms.",
diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
index 99e0d3a..b072fef 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/MManager.java
@@ -44,7 +44,6 @@ import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.engine.StorageEngine;
import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
import org.apache.iotdb.db.exception.metadata.AliasAlreadyExistException;
@@ -70,7 +69,6 @@ import org.apache.iotdb.db.query.dataset.ShowTimeSeriesResult;
import org.apache.iotdb.db.rescon.PrimitiveArrayManager;
import org.apache.iotdb.db.utils.RandomDeleteCache;
import org.apache.iotdb.db.utils.SchemaUtils;
-import org.apache.iotdb.db.utils.TestOnly;
import org.apache.iotdb.db.utils.TypeInferenceUtils;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
import org.apache.iotdb.tsfile.exception.cache.CacheException;
@@ -125,10 +123,6 @@ public class MManager {
private Map<TSDataType, Integer> schemaDataTypeNumMap = new ConcurrentHashMap<>();
// reported total series number
private long reportedDataTypeTotalNum;
-
- // storage group name -> the series number
- private Map<String, Integer> seriesNumberInStorageGroups = new ConcurrentHashMap<>();
- private long maxSeriesNumberAmongStorageGroup;
private long totalSeriesNumber = 0L;
private boolean initialized;
protected static IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
@@ -215,16 +209,10 @@ public class MManager {
isRecovering = true;
int lineNumber = initFromLog(logFile);
-
- if (config.isEnableActiveTimeseriesCounter()) {
- List<PartialPath> storageGroups = mtree.getAllStorageGroupPaths();
- for (PartialPath sg : storageGroups) {
- MNode node = mtree.getNodeByPath(sg);
- seriesNumberInStorageGroups.put(sg.getFullPath(), node.getLeafCount());
- totalSeriesNumber += node.getLeafCount();
- }
- maxSeriesNumberAmongStorageGroup =
- seriesNumberInStorageGroups.values().stream().max(Integer::compareTo).orElse(0);
+ List<PartialPath> storageGroups = mtree.getAllStorageGroupPaths();
+ for (PartialPath sg : storageGroups) {
+ MNode node = mtree.getNodeByPath(sg);
+ totalSeriesNumber += node.getLeafCount();
}
logWriter = new MLogWriter(config.getSchemaDir(), MetadataConstant.METADATA_LOG);
@@ -293,8 +281,6 @@ public class MManager {
this.mtree = new MTree();
this.mNodeCache.clear();
this.tagIndex.clear();
- this.seriesNumberInStorageGroups.clear();
- this.maxSeriesNumberAmongStorageGroup = 0;
this.totalSeriesNumber = 0;
if (logWriter != null) {
logWriter.close();
@@ -423,21 +409,12 @@ public class MManager {
}
}
- // update statistics
- if (config.isEnableActiveTimeseriesCounter()) {
- int size = seriesNumberInStorageGroups.get(storageGroupPath.getFullPath());
- seriesNumberInStorageGroups.put(storageGroupPath.getFullPath(), size + 1);
- if (size + 1 > maxSeriesNumberAmongStorageGroup) {
- maxSeriesNumberAmongStorageGroup = size + 1L;
- }
- totalSeriesNumber++;
- if (totalSeriesNumber * ESTIMATED_SERIES_SIZE >= MTREE_SIZE_THRESHOLD) {
- logger.warn("Current series number {} is too large...", totalSeriesNumber);
- allowToCreateNewSeries = false;
- }
+ // update statistics and schemaDataTypeNumMap
+ totalSeriesNumber++;
+ if (totalSeriesNumber * ESTIMATED_SERIES_SIZE >= MTREE_SIZE_THRESHOLD) {
+ logger.warn("Current series number {} is too large...", totalSeriesNumber);
+ allowToCreateNewSeries = false;
}
-
- // update statistics in schemaDataTypeNumMap
updateSchemaDataTypeNumMap(type, 1);
// write log
@@ -483,18 +460,7 @@ public class MManager {
*/
public String deleteTimeseries(PartialPath prefixPath) throws MetadataException {
if (isStorageGroup(prefixPath)) {
-
- if (config.isEnableActiveTimeseriesCounter()) {
- int size = seriesNumberInStorageGroups.get(prefixPath.getFullPath());
- seriesNumberInStorageGroups.put(prefixPath.getFullPath(), 0);
- totalSeriesNumber -= size;
- if (size == maxSeriesNumberAmongStorageGroup) {
- seriesNumberInStorageGroups.values().stream()
- .max(Integer::compareTo)
- .ifPresent(val -> maxSeriesNumberAmongStorageGroup = val);
- }
- }
-
+ totalSeriesNumber -= mtree.getAllTimeseriesCount(prefixPath);
mNodeCache.clear();
}
try {
@@ -578,17 +544,7 @@ public class MManager {
// TODO: delete the path node and all its ancestors
mNodeCache.clear();
-
- if (config.isEnableActiveTimeseriesCounter()) {
- PartialPath storageGroup = getStorageGroupPath(path);
- int size = seriesNumberInStorageGroups.get(storageGroup.getFullPath());
- seriesNumberInStorageGroups.put(storageGroup.getFullPath(), size - 1);
- totalSeriesNumber--;
- if (size == maxSeriesNumberAmongStorageGroup) {
- seriesNumberInStorageGroups.values().stream().max(Integer::compareTo)
- .ifPresent(val -> maxSeriesNumberAmongStorageGroup = val);
- }
- }
+ totalSeriesNumber--;
return storageGroupPath;
}
@@ -600,11 +556,6 @@ public class MManager {
public void setStorageGroup(PartialPath storageGroup) throws MetadataException {
try {
mtree.setStorageGroup(storageGroup);
-
- if (config.isEnableActiveTimeseriesCounter()) {
- ActiveTimeSeriesCounter.getInstance().init(storageGroup.getFullPath());
- seriesNumberInStorageGroups.put(storageGroup.getFullPath(), 0);
- }
if (!isRecovering) {
logWriter.setStorageGroup(storageGroup.getFullPath());
}
@@ -621,7 +572,6 @@ public class MManager {
public void deleteStorageGroups(List<PartialPath> storageGroups) throws MetadataException {
try {
for (PartialPath storageGroup : storageGroups) {
-
// clear cached MNode
mNodeCache.clear();
@@ -633,16 +583,7 @@ public class MManager {
updateSchemaDataTypeNumMap(leafMNode.getSchema().getType(), -1);
}
- if (config.isEnableActiveTimeseriesCounter()) {
- int size = seriesNumberInStorageGroups.get(storageGroup.getFullPath());
- ActiveTimeSeriesCounter.getInstance().delete(storageGroup.getFullPath());
- totalSeriesNumber -= size;
- seriesNumberInStorageGroups.remove(storageGroup.getFullPath());
- if (size == maxSeriesNumberAmongStorageGroup) {
- maxSeriesNumberAmongStorageGroup =
- seriesNumberInStorageGroups.values().stream().max(Integer::compareTo).orElse(0);
- }
- }
+ totalSeriesNumber -= mtree.getAllTimeseriesCount(storageGroup);
// if success
if (!isRecovering) {
logWriter.deleteStorageGroup(storageGroup.getFullPath());
@@ -657,14 +598,14 @@ public class MManager {
* update statistics in schemaDataTypeNumMap
*
* @param type data type
- * @param num 1 for creating timeseries and -1 for deleting timeseries
+ * @param num 1 for creating timeseries and -1 for deleting timeseries
*/
private void updateSchemaDataTypeNumMap(TSDataType type, int num) {
schemaDataTypeNumMap.put(type, schemaDataTypeNumMap.getOrDefault(type, 0) + num);
schemaDataTypeNumMap.put(TSDataType.INT64,
schemaDataTypeNumMap.getOrDefault(TSDataType.INT64, 0) + num);
int currentDataTypeTotalNum = schemaDataTypeNumMap.values().size();
- if (num > 0 && currentDataTypeTotalNum >=
+ if (num > 0 && currentDataTypeTotalNum >=
reportedDataTypeTotalNum * UPDATE_SCHEMA_MAP_IN_ARRAYPOOL_THRESHOLD) {
PrimitiveArrayManager.updateSchemaDataTypeNum(schemaDataTypeNumMap);
reportedDataTypeTotalNum = currentDataTypeTotalNum;
@@ -758,7 +699,7 @@ public class MManager {
public List<PartialPath> searchAllRelatedStorageGroups(PartialPath path)
throws MetadataException {
- return mtree.searchAllRelatedStorageGroups(path);
+ return mtree.searchAllRelatedStorageGroups(path);
}
/**
@@ -1110,15 +1051,6 @@ public class MManager {
return TIME_SERIES_TREE_HEADER + mtree.toString();
}
- @TestOnly
- public void setMaxSeriesNumberAmongStorageGroup(long maxSeriesNumberAmongStorageGroup) {
- this.maxSeriesNumberAmongStorageGroup = maxSeriesNumberAmongStorageGroup;
- }
-
- public long getMaximalSeriesNumberAmongStorageGroups() {
- return maxSeriesNumberAmongStorageGroup;
- }
-
public void setTTL(PartialPath storageGroup, long dataTTL) throws MetadataException, IOException {
getStorageGroupNodeByStorageGroupPath(storageGroup).setDataTTL(dataTTL);
if (!isRecovering) {
diff --git a/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java b/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java
index 04224e0..eb21328 100644
--- a/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/rescon/PrimitiveArrayManager.java
@@ -95,7 +95,7 @@ public class PrimitiveArrayManager {
* @return an array
*/
public static Object getDataListByType(TSDataType dataType) {
- // check buffered array num
+ // check buffered array num (to avoid entering synchronized block every time)
if (bufferedArraysSize.get() + ARRAY_SIZE * dataType.getDataTypeSize()
> BUFFERED_ARRAY_SIZE_THRESHOLD) {
// return an out of buffer array
@@ -112,6 +112,9 @@ public class PrimitiveArrayManager {
return dataArray;
}
}
+
+ // if no buffered array is returned, return an out of buffer array
+ outOfBufferArraysSize.addAndGet(ARRAY_SIZE * dataType.getDataTypeSize());
return getDataList(dataType);
}
diff --git a/server/src/test/java/org/apache/iotdb/db/conf/adapter/ActiveTimeSeriesCounterTest.java b/server/src/test/java/org/apache/iotdb/db/conf/adapter/ActiveTimeSeriesCounterTest.java
deleted file mode 100644
index 0cd020f..0000000
--- a/server/src/test/java/org/apache/iotdb/db/conf/adapter/ActiveTimeSeriesCounterTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.conf.adapter;
-
-import static org.junit.Assert.assertEquals;
-
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-import org.apache.iotdb.db.concurrent.WrappedRunnable;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * ActiveTimeSeriesCounter Tester.
- */
-public class ActiveTimeSeriesCounterTest {
-
- private static final String TEST_SG_PREFIX = "root.sg_";
- private static int testStorageGroupNum = 10;
- private static String[] storageGroups = new String[testStorageGroupNum];
- private static int[] measurementNum = new int[testStorageGroupNum];
- private static double totalSeriesNum = 0;
-
- static {
- for (int i = 0; i < testStorageGroupNum; i++) {
- storageGroups[i] = TEST_SG_PREFIX + i;
- measurementNum[i] = i + 1;
- totalSeriesNum += measurementNum[i];
- }
- }
-
- @Before
- public void before() throws Exception {
- ActiveTimeSeriesCounter.clear();
- for (String storageGroup : storageGroups) {
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
- }
- }
-
- @After
- public void after() throws Exception {
- for (String storageGroup : storageGroups) {
- ActiveTimeSeriesCounter.getInstance().delete(storageGroup);
- }
- }
-
- /**
- * Method: init(String storageGroup)
- */
- @Test
- public void testInit() throws Exception {
- for (int i = 0; i < testStorageGroupNum; i++) {
- assertEquals(0D, ActiveTimeSeriesCounter.getInstance().getActiveRatio(storageGroups[i]), 0.0);
- }
- }
-
- /**
- * Method: updateActiveRatio(String storageGroup)
- */
- @Test
- public void testUpdateActiveRatio() throws Exception {
- ExecutorService service = Executors.newFixedThreadPool(storageGroups.length);
- CountDownLatch finished = new CountDownLatch(storageGroups.length);
- for (int i = 0; i < storageGroups.length; i++) {
- service.submit(new OfferThreads(storageGroups[i], measurementNum[i], finished));
- }
- finished.await();
- for (String storageGroup : storageGroups) {
- ActiveTimeSeriesCounter.getInstance().updateActiveRatio(storageGroup);
- double sum = 0;
- for (String s : storageGroups) {
- sum += ActiveTimeSeriesCounter.getInstance().getActiveRatio(s);
- }
- assertEquals(1.0, sum, 0.001);
- }
- for (int i = 0; i < storageGroups.length; i++) {
- double r = ActiveTimeSeriesCounter.getInstance().getActiveRatio(storageGroups[i]);
- assertEquals(measurementNum[i] / totalSeriesNum, r, 0.001);
- }
- }
-
- private static class OfferThreads extends WrappedRunnable {
- private int sensorNum;
- private String storageGroup;
- private CountDownLatch finished;
-
- private OfferThreads(String storageGroup, int sensorNum, CountDownLatch finished) {
- this.sensorNum = sensorNum;
- this.storageGroup = storageGroup;
- this.finished = finished;
- }
-
- @Override
- public void runMayThrow() {
- try {
- for (int j = 0; j < sensorNum; j++) {
- ActiveTimeSeriesCounter.getInstance().offer(storageGroup, "device_0", "sensor_" + j);
- }
- }finally {
- finished.countDown();
- }
- }
- }
-
-
-}
diff --git a/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java b/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java
index 7bb382e..688762d 100644
--- a/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/conf/adapter/CompressionRatioTest.java
@@ -49,7 +49,6 @@ public class CompressionRatioTest {
FileUtils.forceMkdir(new File(directory));
compressionRatio.reset();
compressionRatio.restore();
- IoTDBDescriptor.getInstance().getConfig().setEnableActiveTimeseriesCounter(true);
}
@After
diff --git a/server/src/test/java/org/apache/iotdb/db/conf/adapter/HyperLogLogTest.java b/server/src/test/java/org/apache/iotdb/db/conf/adapter/HyperLogLogTest.java
deleted file mode 100644
index 09da1b1..0000000
--- a/server/src/test/java/org/apache/iotdb/db/conf/adapter/HyperLogLogTest.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.iotdb.db.conf.adapter;
-
-import static org.junit.Assert.assertEquals;
-
-import com.clearspring.analytics.stream.cardinality.HyperLogLog;
-import com.clearspring.analytics.stream.cardinality.ICardinality;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Random;
-import java.util.Set;
-import org.junit.Ignore;
-import org.junit.Test;
-
-public class HyperLogLogTest {
-
- @Test
- public void testStreamLibHll() {
- final int seed = 12345;
- // data on which to calculate distinct count
- Random random = new Random(seed);
- int sampleSize = 10000;
- double[] floor = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0};
- String[] avgErrors = new String[floor.length];
- int testNum = 1000;
-
- for (double v : floor) {
- double errorSum = 0;
- for (int testIndex = 0; testIndex < testNum; testIndex++) {
- final ArrayList<Integer> list = new ArrayList<>();
- for (int i = 0; i < sampleSize; i++) {
- list.add(random.nextInt((int) (sampleSize * v)));
- }
- Set<Integer> set = new HashSet<>();
- ICardinality card = new HyperLogLog(ActiveTimeSeriesCounter.LOG2M);
- for (int a : list) {
- set.add(a);
- card.offer(a);
- }
- double p = (card.cardinality() - set.size()) / (double) set.size();
- errorSum += Math.abs(p);
- }
- // allow average error rate less than 1%
- assertEquals(0, errorSum / testNum, 0.01);
- }
- }
-}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkMetadataCacheTest.java b/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkMetadataCacheTest.java
index 1b1135e..3380f6e 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkMetadataCacheTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/cache/ChunkMetadataCacheTest.java
@@ -22,7 +22,6 @@ import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.MetadataManagerHelper;
import org.apache.iotdb.db.engine.flush.TsFileFlushPolicy.DirectFlushPolicy;
@@ -34,8 +33,6 @@ import org.apache.iotdb.db.exception.WriteProcessException;
import org.apache.iotdb.db.exception.metadata.IllegalPathException;
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.metadata.PartialPath;
-import org.apache.iotdb.db.metadata.mnode.MNode;
-import org.apache.iotdb.db.metadata.mnode.MeasurementMNode;
import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.query.control.FileReaderManager;
@@ -69,7 +66,6 @@ public class ChunkMetadataCacheTest {
public void setUp() throws Exception {
EnvironmentUtils.envSetUp();
MetadataManagerHelper.initMetadata();
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
storageGroupProcessor = new StorageGroupProcessor(systemDir, storageGroup,
new DirectFlushPolicy());
insertData();
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java
index 3dc173a..d175cac 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/memtable/MemTableFlushTaskTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.MetadataManagerHelper;
import org.apache.iotdb.db.engine.flush.MemTableFlushTask;
@@ -49,7 +48,6 @@ public class MemTableFlushTaskTest {
public void setUp() throws Exception {
EnvironmentUtils.envSetUp();
MetadataManagerHelper.initMetadata();
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
writer = new RestorableTsFileIOWriter(FSFactoryProducer.getFSFactory().getFile(filePath));
memTable = new PrimitiveMemTable();
}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
index fce49da..b554aae 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/StorageGroupProcessorTest.java
@@ -24,7 +24,6 @@ import java.util.Collections;
import java.util.List;
import org.apache.iotdb.db.conf.IoTDBConfig;
import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.MetadataManagerHelper;
import org.apache.iotdb.db.engine.flush.TsFileFlushPolicy;
@@ -70,7 +69,6 @@ public class StorageGroupProcessorTest {
.setTsFileManagementStrategy(TsFileManagementStrategy.NORMAL_STRATEGY);
MetadataManagerHelper.initMetadata();
EnvironmentUtils.envSetUp();
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
processor = new DummySGP(systemDir, storageGroup);
MergeManager.getINSTANCE().start();
}
diff --git a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorTest.java b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorTest.java
index bd57703..ae9b385 100644
--- a/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/engine/storagegroup/TsFileProcessorTest.java
@@ -28,7 +28,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.MetadataManagerHelper;
import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
@@ -36,7 +35,6 @@ import org.apache.iotdb.db.engine.querycontext.ReadOnlyMemChunk;
import org.apache.iotdb.db.engine.version.SysTimeVersionController;
import org.apache.iotdb.db.exception.TsFileProcessorException;
import org.apache.iotdb.db.exception.WriteProcessException;
-import org.apache.iotdb.db.exception.metadata.IllegalPathException;
import org.apache.iotdb.db.exception.metadata.MetadataException;
import org.apache.iotdb.db.qp.physical.crud.InsertRowPlan;
import org.apache.iotdb.db.query.context.QueryContext;
@@ -74,7 +72,6 @@ public class TsFileProcessorTest {
public void setUp() throws Exception {
EnvironmentUtils.envSetUp();
MetadataManagerHelper.initMetadata();
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
context = EnvironmentUtils.TEST_QUERY_CONTEXT;
}
diff --git a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
index 5d02398..dee7ba1 100644
--- a/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/metadata/MManagerBasicTest.java
@@ -40,19 +40,15 @@ import static org.junit.Assert.*;
public class MManagerBasicTest {
private CompressionType compressionType;
- private boolean canAdjust = IoTDBDescriptor.getInstance().getConfig().isEnableActiveTimeseriesCounter();
@Before
public void setUp() throws Exception {
- canAdjust = IoTDBDescriptor.getInstance().getConfig().isEnableActiveTimeseriesCounter();
compressionType = TSFileDescriptor.getInstance().getConfig().getCompressor();
EnvironmentUtils.envSetUp();
- IoTDBDescriptor.getInstance().getConfig().setEnableActiveTimeseriesCounter(true);
}
@After
public void tearDown() throws Exception {
- IoTDBDescriptor.getInstance().getConfig().setEnableActiveTimeseriesCounter(canAdjust);
EnvironmentUtils.cleanEnv();
}
@@ -276,28 +272,6 @@ public class MManagerBasicTest {
}
@Test
- public void testMaximalSeriesNumberAmongStorageGroup() throws MetadataException {
- MManager manager = IoTDB.metaManager;
- assertEquals(0, manager.getMaximalSeriesNumberAmongStorageGroups());
- manager.setStorageGroup(new PartialPath("root.laptop"));
- assertEquals(0, manager.getMaximalSeriesNumberAmongStorageGroups());
- manager.createTimeseries(new PartialPath("root.laptop.d1.s1"), TSDataType.INT32, TSEncoding.PLAIN,
- CompressionType.GZIP, null);
- manager.createTimeseries(new PartialPath("root.laptop.d1.s2"), TSDataType.INT32, TSEncoding.PLAIN,
- CompressionType.GZIP, null);
- assertEquals(2, manager.getMaximalSeriesNumberAmongStorageGroups());
- manager.setStorageGroup(new PartialPath("root.vehicle"));
- manager.createTimeseries(new PartialPath("root.vehicle.d1.s1"), TSDataType.INT32, TSEncoding.PLAIN,
- CompressionType.GZIP, null);
- assertEquals(2, manager.getMaximalSeriesNumberAmongStorageGroups());
-
- manager.deleteTimeseries(new PartialPath("root.laptop.d1.s1"));
- assertEquals(1, manager.getMaximalSeriesNumberAmongStorageGroups());
- manager.deleteTimeseries(new PartialPath("root.laptop.d1.s2"));
- assertEquals(1, manager.getMaximalSeriesNumberAmongStorageGroups());
- }
-
- @Test
public void testGetStorageGroupNameByAutoLevel() {
int level = IoTDBDescriptor.getInstance().getConfig().getDefaultStorageGroupLevel();
boolean caughtException;
diff --git a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
index a3f6f37..e867230 100644
--- a/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
+++ b/server/src/test/java/org/apache/iotdb/db/utils/EnvironmentUtils.java
@@ -201,7 +201,6 @@ public class EnvironmentUtils {
fail(e.getMessage());
}
- IoTDBDescriptor.getInstance().getConfig().setEnableActiveTimeseriesCounter(false);
createAllDir();
// disable the system monitor
config.setEnableStatMonitor(false);
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java
index 563adce..0283cfd 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/RecoverResourceFromReaderTest.java
@@ -27,7 +27,6 @@ import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.io.FileUtils;
import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
@@ -184,8 +183,6 @@ public class RecoverResourceFromReaderTest {
TsFileRecoverPerformer performer = new TsFileRecoverPerformer(logNodePrefix, versionController,
resource, false, false);
- ActiveTimeSeriesCounter.getInstance()
- .init(resource.getTsFile().getParentFile().getParentFile().getName());
performer.recover().close();
assertEquals(1, resource.getStartTime("root.sg.device99"));
assertEquals(300, resource.getEndTime("root.sg.device99"));
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
index fe1df10..aaa080c 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/SeqTsFileRecoverTest.java
@@ -31,7 +31,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.FileUtils;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
@@ -172,7 +171,6 @@ public class SeqTsFileRecoverTest {
public void testNonLastRecovery() throws StorageGroupProcessorException, IOException {
TsFileRecoverPerformer performer = new TsFileRecoverPerformer(logNodePrefix, versionController,
resource, false, false);
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
RestorableTsFileIOWriter writer = performer.recover();
assertFalse(writer.canWrite());
writer.close();
@@ -222,7 +220,6 @@ public class SeqTsFileRecoverTest {
public void testLastRecovery() throws StorageGroupProcessorException, IOException {
TsFileRecoverPerformer performer = new TsFileRecoverPerformer(logNodePrefix, versionController,
resource, false, true);
- ActiveTimeSeriesCounter.getInstance().init(storageGroup);
RestorableTsFileIOWriter writer = performer.recover();
writer.makeMetadataVisible();
diff --git a/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java b/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java
index d6d51fd..e9c411c 100644
--- a/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java
+++ b/server/src/test/java/org/apache/iotdb/db/writelog/recover/UnseqTsFileRecoverTest.java
@@ -26,7 +26,6 @@ import java.io.IOException;
import java.util.Collections;
import org.apache.commons.io.FileUtils;
import org.apache.iotdb.db.conf.IoTDBConstant;
-import org.apache.iotdb.db.conf.adapter.ActiveTimeSeriesCounter;
import org.apache.iotdb.db.constant.TestConstant;
import org.apache.iotdb.db.engine.fileSystem.SystemFileFactory;
import org.apache.iotdb.db.engine.storagegroup.TsFileResource;
@@ -181,8 +180,6 @@ public class UnseqTsFileRecoverTest {
public void test() throws StorageGroupProcessorException, IOException {
TsFileRecoverPerformer performer = new TsFileRecoverPerformer(logNodePrefix,
versionController, resource, false, false);
- ActiveTimeSeriesCounter.getInstance()
- .init(resource.getTsFile().getParentFile().getParentFile().getName());
performer.recover().close();
assertEquals(1, resource.getStartTime("root.sg.device99"));