>From Murtadha Hubail <[email protected]>: Attention is currently required from: Ritik Raj. Murtadha Hubail has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484 )
Change subject: [ASTERIXDB-3574][STO] Taking resource-level lock instead of global lock ...................................................................... Patch Set 9: (12 comments) File asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/RecoveryManager.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/fcd00a00_f376e60b PS9, Line 362: datasetLifecycleManager index = File asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetInfo.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/0a258504_18a03213 PS9, Line 205: // order of indexes does not matter. so it's fine. Remove File asterixdb/asterix-common/src/main/java/org/apache/asterix/common/context/DatasetLifecycleManager.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/50d3c425_fbec35e1 PS9, Line 317: LOGGER.log(Level.INFO, "Dropping index " + resourcePath + " on node " + serviceCtx.getNodeId()); use placeholders https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/471e425e_9f437848 PS9, Line 345: // Validate dataset lifecycle manager state before proceeding remove https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/b17b8539_450e0f37 PS9, Line 456: // no need to validate lifecycle manager state, as being called from the register() remove https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/ce4cba15_824e882a PS9, Line 532: // No need of synchronization as the "datasets" is concurrentHashMap remove or put it closest to its usage https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/5679a2ee_bf52257b PS9, Line 909: // the datasets view is weakly consistent. same as previous comment https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/9e49a12f_1f8c991d PS9, Line 922: // the datasets view is weakly consistent. : // but since called during startup, things can be considered fine. same File asterixdb/asterix-common/src/test/java/org/apache/asterix/common/context/DatasetLifecycleManagerConcurrentTest.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/92d38462_cafdd6c2 PS9, Line 96: remove File asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/resource/PersistentLocalResourceRepository.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/bc2d3387_16d4266f PS9, Line 142: beforeWriteAccess(); : try { : resource = resourceCache.getIfPresent(relativePath); : if (resource != null) { : return resource; : } : } finally { : afterWriteAccess(); : } maybe refactor this to something like getFromCache https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/d1154850_972e4380 PS9, Line 151: // since the resource was not present, take a write lock. : // as it involves disk or network I/O, should be done once. remove or reword File hyracks-fullstack/hyracks/hyracks-storage-am-common/src/main/java/org/apache/hyracks/storage/am/common/build/IndexBuilder.java: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484/comment/7fa7ca51_27dee02e PS9, Line 112: IIndex registeredIndex = lcManager.registerIfAbsent(resourceRelPath, index); : if (registeredIndex != index) { : // some other thread has registered the index : // indicating this is not the first time, the index is being created : throw new HyracksDataException("Index with resource ID " + resourceId + " already exists."); : } we probably should encapsulate this logic in IResourceLifecycleManager, but we can do this in subsequent patches -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19484 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: I9e3b931b363f082f0a7c69a0454adfd37937bb60 Gerrit-Change-Number: 19484 Gerrit-PatchSet: 9 Gerrit-Owner: Ritik Raj <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Ritik Raj <[email protected]> Gerrit-Attention: Ritik Raj <[email protected]> Gerrit-Comment-Date: Wed, 19 Mar 2025 12:51:05 +0000 Gerrit-HasComments: Yes Gerrit-Has-Labels: No Gerrit-MessageType: comment
