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]>