Skip to content

Commit ee39ee1

Browse files
committed
deving
1 parent 029fbed commit ee39ee1

File tree

2 files changed

+36
-2
lines changed

2 files changed

+36
-2
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/DataRegion.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2751,8 +2751,8 @@ public void deleteByTable(RelationalDeleteDataNode node) throws IOException {
27512751
if (deleted) {
27522752
return;
27532753
}
2754-
TableDeviceSchemaCache.getInstance()
2755-
.invalidateLastCache(getDatabaseName(), modEntries.get(0).getTableName());
2754+
String tableName = modEntries.get(0).getTableName();
2755+
TableDeviceSchemaCache.getInstance().invalidateLastCache(getDatabaseName(), tableName);
27562756
List<WALFlushListener> walListeners = logDeletionInWAL(node);
27572757

27582758
for (WALFlushListener walFlushListener : walListeners) {
@@ -2762,6 +2762,10 @@ public void deleteByTable(RelationalDeleteDataNode node) throws IOException {
27622762
}
27632763
}
27642764

2765+
if (TierManager.getInstance().checkObjectPathExist(dataRegionIdString, tableName)) {
2766+
deleteObjectFiles(tableName, modEntries);
2767+
}
2768+
27652769
List<List<TsFileResource>> sealedTsFileResourceLists = new ArrayList<>(modEntries.size());
27662770
for (TableDeletionEntry modEntry : modEntries) {
27672771
List<TsFileResource> sealedTsFileResource = new ArrayList<>();
@@ -2930,6 +2934,12 @@ private List<WALFlushListener> logDeletionInWAL(
29302934
return walFlushListeners;
29312935
}
29322936

2937+
private void deleteObjectFiles(String tableName, List<TableDeletionEntry> modEntries) {
2938+
for (TableDeletionEntry modEntry : modEntries) {
2939+
2940+
}
2941+
}
2942+
29332943
/**
29342944
* For IoTConsensus sync. See <a href="https://github.com/apache/iotdb/pull/12955">github pull
29352945
* request</a> for details.

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/rescon/disk/TierManager.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.apache.iotdb.db.storageengine.rescon.disk.strategy.RandomOnDiskUsableSpaceStrategy;
2929
import org.apache.iotdb.metrics.utils.FileStoreUtils;
3030

31+
import com.google.common.io.BaseEncoding;
3132
import org.apache.tsfile.fileSystem.FSFactoryProducer;
3233
import org.apache.tsfile.fileSystem.FSType;
3334
import org.apache.tsfile.utils.FSUtils;
@@ -36,6 +37,7 @@
3637

3738
import java.io.File;
3839
import java.io.IOException;
40+
import java.nio.charset.StandardCharsets;
3941
import java.nio.file.FileStore;
4042
import java.nio.file.Path;
4143
import java.util.ArrayList;
@@ -272,6 +274,28 @@ public Optional<File> getAbsoluteObjectFilePath(String filePath, boolean needTem
272274
return Optional.empty();
273275
}
274276

277+
public boolean checkObjectPathExist(String regionIdStr, String... path) {
278+
StringBuilder objectPath = new StringBuilder();
279+
objectPath.append(regionIdStr);
280+
for (String str : path) {
281+
objectPath
282+
.append(File.separator)
283+
.append(
284+
config.getRestrictObjectLimit()
285+
? str
286+
: BaseEncoding.base32()
287+
.omitPadding()
288+
.encode(str.getBytes(StandardCharsets.UTF_8)));
289+
}
290+
for (String objectDir : objectDirs) {
291+
File objectFilePath = FSFactoryProducer.getFSFactory().getFile(objectDir, objectPath.toString());
292+
if (objectFilePath.exists()) {
293+
return true;
294+
}
295+
}
296+
return false;
297+
}
298+
275299
public int getTiersNum() {
276300
return seqTiers.size();
277301
}

0 commit comments

Comments
 (0)