>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

Reply via email to