>From Ritik Raj <[email protected]>:
Ritik Raj has uploaded this change for review. (
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19690 )
Change subject: debug lines in datasetLCManager and destroy components
......................................................................
debug lines in datasetLCManager and destroy components
Change-Id: Ie1fab48c7eb09151903b47296977dc644ae96e87
---
M
asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/AbstractLSMWithBloomFilterDiskComponent.java
M
hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMDiskComponent.java
3 files changed, 44 insertions(+), 2 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb
refs/changes/90/19690/1
diff --git
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
index 0128297..ba153cc 100644
---
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
+++
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java
@@ -148,6 +148,7 @@
}
ReentrantReadWriteLock resourceLock =
getResourceLock(resourcePath);
+ logLockAcquire('W', resourcePath, resourceLock,
"registerIfAbsent");
resourceLock.writeLock().lock();
try {
existingIndex = get(resourcePath);
@@ -170,6 +171,7 @@
datasetResource.register(resource, (ILSMIndex) index);
} finally {
+ logLockRelease('W', resourcePath, resourceLock,
"registerIfAbsent");
resourceLock.writeLock().unlock();
}
} finally {
@@ -251,8 +253,10 @@
ReentrantReadWriteLock partitionResourceLock =
getResourceLock(datasetPartitionPath);
ReentrantReadWriteLock resourceLock =
getResourceLock(resourcePath);
+ logLockAcquire('W', datasetPartitionPath, partitionResourceLock,
"unregister");
partitionResourceLock.writeLock().lock();
try {
+ logLockAcquire('W', resourcePath, resourceLock, "unregister");
resourceLock.writeLock().lock();
try {
int did = getDIDfromResourcePath(resourcePath);
@@ -296,9 +300,11 @@
}
}
} finally {
+ logLockRelease('W', resourcePath, resourceLock,
"unregister");
resourceLock.writeLock().unlock();
}
} finally {
+ logLockRelease('W', resourcePath, resourceLock, "unregister");
partitionResourceLock.writeLock().unlock();
}
} finally {
@@ -311,6 +317,7 @@
stopLock.readLock().lock();
try {
ReentrantReadWriteLock resourceLock =
getResourceLock(resourcePath);
+ logLockAcquire('W', resourcePath, resourceLock, "destroy");
resourceLock.writeLock().lock();
try {
LOGGER.info("Dropping index {} on node {}", resourcePath,
serviceCtx.getNodeId());
@@ -325,6 +332,7 @@
}
index.destroy();
} finally {
+ logLockRelease('W', resourcePath, resourceLock, "destroy");
resourceLock.writeLock().unlock();
}
} finally {
@@ -410,6 +418,7 @@
String indexRootRefPath =
StoragePathUtil.getDatasetPartitionPath(resourcePath);
ReentrantReadWriteLock resourceLock =
getResourceLock(indexRootRefPath);
FileReference indexRootRef =
serviceCtx.getIoManager().resolve(indexRootRefPath);
+ logLockRelease('W', indexRootRefPath, resourceLock,
"performLocalRecovery");
resourceLock.writeLock().lock();
try {
if (!shouldRecoverLazily(datasetResource, partition)) {
@@ -438,6 +447,7 @@
datasetResource.markRecovered(partition);
return true;
} finally {
+ logLockRelease('W', indexRootRefPath, resourceLock,
"performLocalRecovery");
resourceLock.writeLock().unlock();
}
}
@@ -547,6 +557,7 @@
// A resource lock may not be necessary if the unregister case
does not need handling.
ReentrantReadWriteLock resourceLock =
getResourceLock(resourcePath);
+ logLockAcquire('W', resourcePath, resourceLock, "close");
resourceLock.writeLock().lock();
try {
validateDatasetLifecycleManagerState();
@@ -574,6 +585,7 @@
if (dsr != null) {
dsr.untouch();
}
+ logLockRelease('W', resourcePath, resourceLock, "close");
resourceLock.writeLock().unlock();
}
} finally {
@@ -623,6 +635,7 @@
return opTracker;
}
ReentrantReadWriteLock resourceLock = getResourceLock(resourcePath);
+ logLockAcquire('W', resourcePath, resourceLock, "getOperationTracker");
resourceLock.writeLock().lock();
try {
opTracker = dataset.getOpTracker(partition);
@@ -633,6 +646,7 @@
opTracker = dataset.getOpTracker(partition);
return opTracker;
} finally {
+ logLockRelease('W', resourcePath, resourceLock,
"getOperationTracker");
resourceLock.writeLock().unlock();
}
}
@@ -645,6 +659,7 @@
return generator;
}
ReentrantReadWriteLock resourceLock = getResourceLock(path);
+ logLockAcquire('W', path, resourceLock, "getComponentIdGenerator");
resourceLock.writeLock().lock();
try {
generator = dataset.getComponentIdGenerator(partition);
@@ -655,6 +670,7 @@
generator = dataset.getComponentIdGenerator(partition);
return generator;
} finally {
+ logLockRelease('W', path, resourceLock, "getComponentIdGenerator");
resourceLock.writeLock().unlock();
}
}
@@ -968,6 +984,7 @@
try {
validateDatasetLifecycleManagerState();
ReentrantReadWriteLock resourceLock =
getResourceLock(resourcePath);
+ logLockAcquire('W', resourcePath, resourceLock, "closeIfOpen");
resourceLock.writeLock().lock();
try {
int did = getDIDfromResourcePath(resourcePath);
@@ -1004,6 +1021,7 @@
}
}
} finally {
+ logLockRelease('W', resourcePath, resourceLock, "closeIfOpen");
resourceLock.writeLock().unlock();
}
} finally {
@@ -1055,4 +1073,12 @@
public IIndexCheckpointManagerProvider getIndexCheckpointManagerProvider()
{
return indexCheckpointManagerProvider;
}
+
+ private void logLockAcquire(char type, String key, ReentrantReadWriteLock
rLock, String op) {
+ LOGGER.debug("acquired {} lock for op {} on {} {}", type, op, key,
rLock);
+ }
+
+ private void logLockRelease(char type, String key, ReentrantReadWriteLock
lock, String op) {
+ LOGGER.debug("released {} lock for op {} on {} {}", type, key, op,
lock);
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/AbstractLSMWithBloomFilterDiskComponent.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/AbstractLSMWithBloomFilterDiskComponent.java
index c77d7ff..a896378 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/AbstractLSMWithBloomFilterDiskComponent.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/api/AbstractLSMWithBloomFilterDiskComponent.java
@@ -67,6 +67,7 @@
@Override
public void destroy() throws HyracksDataException {
+ LOGGER.error("DESTROY DiskComponent {}", this);
super.destroy();
getBloomFilter().destroy();
}
@@ -102,4 +103,10 @@
}
return chainedBulkLoader;
}
+
+ @Override
+ public String toString() {
+ return "{\"id\": " + componentId + ", index:" + getIndex() + ",
bloomFilter: "
+ + getBloomFilter().getFileReference() + "}";
+ }
}
diff --git
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMDiskComponent.java
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMDiskComponent.java
index b6066fc..c1db6bf 100644
---
a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMDiskComponent.java
+++
b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-common/src/main/java/org/apache/hyracks/storage/am/lsm/common/impls/AbstractLSMDiskComponent.java
@@ -37,7 +37,7 @@
public abstract class AbstractLSMDiskComponent extends AbstractLSMComponent
implements ILSMDiskComponent {
- private static final Logger LOGGER = LogManager.getLogger();
+ protected static final Logger LOGGER = LogManager.getLogger();
private final DiskComponentMetadata metadata;
private final ArrayBackedValueStorage buffer = new
ArrayBackedValueStorage(Long.BYTES);
@@ -45,7 +45,7 @@
// a variable cache of componentId stored in metadata.
// since componentId is immutable, we do not want to read from metadata
every time the componentId
// is requested.
- private ILSMComponentId componentId;
+ protected ILSMComponentId componentId;
public AbstractLSMDiskComponent(AbstractLSMIndex lsmIndex,
IMetadataPageManager mdPageManager,
ILSMComponentFilter filter) {
--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19690
To unsubscribe, or for help writing mail filters, visit
https://asterix-gerrit.ics.uci.edu/settings
Gerrit-Project: asterixdb
Gerrit-Branch: ionic
Gerrit-Change-Id: Ie1fab48c7eb09151903b47296977dc644ae96e87
Gerrit-Change-Number: 19690
Gerrit-PatchSet: 1
Gerrit-Owner: Ritik Raj <[email protected]>
Gerrit-MessageType: newchange