[NO ISSUE][MD] Remove Legacy Metadata Latch
- user model changes: no
- storage format changes: no
- interface changes: yes
Details:
- Remove legacy metadata latch that was used before
the metadata entity locking was introduced.
Change-Id: I5b6b7153c8bc7bb6b489242c5d651879a09b57e0
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2556
Sonar-Qube: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Michael Blow <mblow@apache.org>
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
index a6a708f..4474684 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/MetadataManager.java
@@ -97,7 +97,6 @@
private final MetadataCache cache = new MetadataCache();
protected final Collection<IAsterixStateProxy> proxies;
protected IMetadataNode metadataNode;
- private final ReadWriteLock metadataLatch;
protected boolean rebindMetadataNode = false;
// TODO(mblow): replace references of this (non-constant) field with a method,
@@ -117,7 +116,6 @@
throw new IllegalArgumentException("Null / empty list of proxies given to MetadataManager");
}
this.proxies = proxies;
- this.metadataLatch = new ReentrantReadWriteLock(true);
}
protected abstract TxnId createTxnId();
@@ -725,26 +723,6 @@
}
@Override
- public void acquireWriteLatch() {
- metadataLatch.writeLock().lock();
- }
-
- @Override
- public void releaseWriteLatch() {
- metadataLatch.writeLock().unlock();
- }
-
- @Override
- public void acquireReadLatch() {
- metadataLatch.readLock().lock();
- }
-
- @Override
- public void releaseReadLatch() {
- metadataLatch.readLock().unlock();
- }
-
- @Override
public FeedPolicyEntity getFeedPolicy(MetadataTransactionContext ctx, String dataverse, String policyName)
throws AlgebricksException {
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
index 966792e..a646893 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/api/IMetadataManager.java
@@ -519,14 +519,6 @@
int getMostRecentDatasetId() throws AlgebricksException;
- void acquireWriteLatch();
-
- void releaseWriteLatch();
-
- void acquireReadLatch();
-
- void releaseReadLatch();
-
/**
* Removes a library , acquiring local locks on behalf of the given transaction
* id.
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
index 980d36d..d110644 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
@@ -66,7 +66,6 @@
import org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexOperationTrackerFactory;
import org.apache.asterix.transaction.management.opcallbacks.SecondaryIndexOperationTrackerFactory;
import org.apache.asterix.transaction.management.resource.DatasetLocalResourceFactory;
-import org.apache.asterix.transaction.management.service.transaction.TransactionManagementConstants.LockManagerConstants.LockMode;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.application.INCServiceContext;
import org.apache.hyracks.api.dataflow.value.IBinaryComparatorFactory;
@@ -375,35 +374,23 @@
// as traversing all records from DATAVERSE_DATASET to DATASET_DATASET, and then
// to INDEX_DATASET.
MetadataTransactionContext mdTxnCtx = null;
- MetadataManager.INSTANCE.acquireWriteLatch();
- if (LOGGER.isInfoEnabled()) {
- LOGGER.info("Starting DDL recovery ...");
- }
-
+ LOGGER.info("Starting DDL recovery ...");
try {
mdTxnCtx = MetadataManager.INSTANCE.beginTransaction();
List<Dataverse> dataverses = MetadataManager.INSTANCE.getDataverses(mdTxnCtx);
for (Dataverse dataverse : dataverses) {
recoverDataverse(mdTxnCtx, dataverse);
}
- // the commit wasn't there before. yet, everything was working
- // correctly!!!!!!!!!!!
MetadataManager.INSTANCE.commitTransaction(mdTxnCtx);
- if (LOGGER.isInfoEnabled()) {
- LOGGER.info("Completed DDL recovery.");
- }
+ LOGGER.info("Completed DDL recovery.");
} catch (Exception e) {
try {
- if (IS_DEBUG_MODE) {
- LOGGER.log(Level.ERROR, "Failure during DDL recovery", e);
- }
+ LOGGER.error("Failure during DDL recovery", e);
MetadataManager.INSTANCE.abortTransaction(mdTxnCtx);
} catch (Exception e2) {
e.addSuppressed(e2);
}
- throw new MetadataException(e);
- } finally {
- MetadataManager.INSTANCE.releaseWriteLatch();
+ throw MetadataException.create(e);
}
}
diff --git a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java
index 8a0cf84..3ae0fec 100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/feeds/FeedMetadataUtil.java
@@ -296,7 +296,6 @@
}
MetadataTransactionContext ctx = null;
- MetadataManager.INSTANCE.acquireReadLatch();
try {
ctx = MetadataManager.INSTANCE.beginTransaction();
Datatype t = MetadataManager.INSTANCE.getDatatype(ctx, dataverseName, datatypeName);
@@ -314,8 +313,6 @@
}
throw new MetadataException(ErrorCode.FEED_CREATE_FEED_DATATYPE_ERROR, e, datatypeName);
}
- } finally {
- MetadataManager.INSTANCE.releaseReadLatch();
}
return outputType;
}