Murtadha Hubail has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2282

Change subject: [ASTERIXDB-2246][STO] WriteLock Source Dataset on Rebalance
......................................................................

[ASTERIXDB-2246][STO] WriteLock Source Dataset on Rebalance

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Upgrade lock to write lock on source dataset
  during metadata switch to allow on pending
  queries to finish.

Change-Id: I222be5d551a6dae66bf97c4bccf696f5b916d9b5
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
1 file changed, 4 insertions(+), 4 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/82/2282/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
index 1a14864..e68fd31 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/RebalanceUtil.java
@@ -153,7 +153,7 @@
             // Executes the 2nd Metadata transaction for switching the 
metadata entity.
             // It detaches the source dataset and attaches the target dataset 
to metadata's point of view.
             runMetadataTransaction(metadataProvider,
-                    () -> rebalanceSwitch(sourceDataset, targetDataset, 
metadataProvider, hcc));
+                    () -> rebalanceSwitch(sourceDataset, targetDataset, 
metadataProvider));
             // Executes the 3rd Metadata transaction to drop the source 
dataset files and the node group for
             // the source dataset.
             runMetadataTransaction(metadataProvider, () -> 
dropSourceDataset(sourceDataset, metadataProvider, hcc));
@@ -231,15 +231,15 @@
     }
 
     // Switches the metadata entity from the source dataset to the target 
dataset.
-    private static void rebalanceSwitch(Dataset source, Dataset target, 
MetadataProvider metadataProvider,
-            IHyracksClientConnection hcc) throws Exception {
+    private static void rebalanceSwitch(Dataset source, Dataset target, 
MetadataProvider metadataProvider)
+            throws AlgebricksException {
         MetadataTransactionContext mdTxnCtx = 
metadataProvider.getMetadataTxnContext();
         // upgrade lock
         ICcApplicationContext appCtx = 
metadataProvider.getApplicationContext();
         ActiveNotificationHandler activeNotificationHandler =
                 (ActiveNotificationHandler) 
appCtx.getActiveNotificationHandler();
         IMetadataLockManager lockManager = appCtx.getMetadataLockManager();
-        lockManager.upgradeDatasetLockToWrite(metadataProvider.getLocks(), 
DatasetUtil.getFullyQualifiedName(target));
+        lockManager.upgradeDatasetLockToWrite(metadataProvider.getLocks(), 
DatasetUtil.getFullyQualifiedName(source));
         try {
             // Updates the dataset entry in the metadata storage
             MetadataManager.INSTANCE.updateDataset(mdTxnCtx, target);

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2282
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I222be5d551a6dae66bf97c4bccf696f5b916d9b5
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Murtadha Hubail <[email protected]>

Reply via email to