You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2024/06/20 17:05:28 UTC
Change in asterixdb[master]: [ASTERIXDB-3441][STO] Fix race condition in CloudColumnIndexDiskCache...
From Wail Alkowaileet <wa...@gmail.com>:
Wail Alkowaileet has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18393 )
Change subject: [ASTERIXDB-3441][STO] Fix race condition in CloudColumnIndexDiskCacheManager
......................................................................
[ASTERIXDB-3441][STO] Fix race condition in CloudColumnIndexDiskCacheManager
- user model changes: no
- storage format changes: no
- interface changes: no
Details
setIndexedColumns() and getIndexedColumnsCopy() could
interfer with each other. They both must be a sync. methods.
Change-Id: I52aa2f9c503a02bb177a2e163bdb0531fec9c70f
---
M hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/sweep/ColumnSweepPlanner.java
1 file changed, 27 insertions(+), 9 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/93/18393/1
diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/sweep/ColumnSweepPlanner.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/sweep/ColumnSweepPlanner.java
index 9d52603..e67ed00 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/sweep/ColumnSweepPlanner.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-btree-column/src/main/java/org/apache/hyracks/storage/am/lsm/btree/column/cloud/sweep/ColumnSweepPlanner.java
@@ -19,6 +19,12 @@
package org.apache.hyracks.storage.am.lsm.btree.column.cloud.sweep;
import static org.apache.hyracks.storage.am.lsm.common.util.LSMComponentIdUtils.isMergedComponent;
+import it.unimi.dsi.fastutil.ints.IntArrays;
+import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
+import it.unimi.dsi.fastutil.ints.IntSet;
+import it.unimi.dsi.fastutil.longs.LongArrays;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
import java.util.BitSet;
import java.util.List;
@@ -34,13 +40,6 @@
import org.apache.hyracks.storage.common.buffercache.IBufferCache;
import org.apache.hyracks.storage.common.buffercache.ICachedPage;
import org.apache.hyracks.storage.common.file.BufferedFileHandle;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import it.unimi.dsi.fastutil.ints.IntArrays;
-import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
-import it.unimi.dsi.fastutil.ints.IntSet;
-import it.unimi.dsi.fastutil.longs.LongArrays;
public final class ColumnSweepPlanner {
private static final Logger LOGGER = LogManager.getLogger();
@@ -94,9 +93,11 @@
resizeStatsArrays(numberOfColumns);
setInitialSizes(diskComponents, sweepProjector, bufferCache);
active.set(true);
+ // Initialize access time to the time of activating the index
+ lastAccess = System.currentTimeMillis();
}
- public void setIndexedColumns(IColumnProjectionInfo projectionInfo) {
+ public synchronized void setIndexedColumns(IColumnProjectionInfo projectionInfo) {
indexedColumns.clear();
for (int i = 0; i < projectionInfo.getNumberOfProjectedColumns(); i++) {
int columnIndex = projectionInfo.getColumnIndex(i);
@@ -104,7 +105,7 @@
}
}
- public IntSet getIndexedColumnsCopy() {
+ public synchronized IntSet getIndexedColumnsCopy() {
return new IntOpenHashSet(indexedColumns);
}
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18393
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I52aa2f9c503a02bb177a2e163bdb0531fec9c70f
Gerrit-Change-Number: 18393
Gerrit-PatchSet: 1
Gerrit-Owner: Wail Alkowaileet <wa...@gmail.com>
Gerrit-MessageType: newchange