>From Michael Blow <[email protected]>:

Michael Blow has uploaded this change for review. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17694 )


Change subject: [NO ISSUE][MISC] Minor refactoring of controller bootstrap
......................................................................

[NO ISSUE][MISC] Minor refactoring of controller bootstrap

Change-Id: I511fbbee5a3f49695451011e7b13afeb12e593a8
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
3 files changed, 39 insertions(+), 16 deletions(-)



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

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
index 3e2feb9..b815b68 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/NCAppRuntimeContext.java
@@ -21,6 +21,7 @@
 import java.io.IOException;
 import java.rmi.RemoteException;
 import java.rmi.server.UnicastRemoteObject;
+import java.util.Collection;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
@@ -444,6 +445,17 @@
         MetadataNode.INSTANCE.initialize(this, 
ncExtensionManager.getMetadataTupleTranslatorProvider(),
                 ncExtensionManager.getMetadataExtensions(), partitionId);

+        // This is a special case, we just give the metadataNode directly.
+        // This way we can delay the registration of the metadataNode until
+        // it is completely initialized.
+        MetadataManager.initialize(getAsterixStateProxies(), 
MetadataNode.INSTANCE);
+        MetadataBootstrap.startUniverse(getServiceContext(), newUniverse);
+        MetadataBootstrap.startDDLRecovery();
+        ncExtensionManager.initializeMetadata(getServiceContext());
+        LOGGER.info("Metadata node bound");
+    }
+
+    protected Collection<IAsterixStateProxy> getAsterixStateProxies() {
         //noinspection unchecked
         ConcurrentHashMap<CcId, IAsterixStateProxy> proxyMap =
                 (ConcurrentHashMap<CcId, IAsterixStateProxy>) 
getServiceContext().getDistributedState();
@@ -451,14 +463,7 @@
             throw new IllegalStateException("Metadata node cannot access 
distributed state");
         }

-        // This is a special case, we just give the metadataNode directly.
-        // This way we can delay the registration of the metadataNode until
-        // it is completely initialized.
-        MetadataManager.initialize(proxyMap.values(), MetadataNode.INSTANCE);
-        MetadataBootstrap.startUniverse(getServiceContext(), newUniverse);
-        MetadataBootstrap.startDDLRecovery();
-        ncExtensionManager.initializeMetadata(getServiceContext());
-        LOGGER.info("Metadata node bound");
+        return proxyMap.values();
     }

     @Override
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
index 2a66cfd..084334f 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/CCApplication.java
@@ -27,6 +27,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.nio.charset.Charset;
+import java.rmi.RemoteException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -120,7 +121,7 @@
 public class CCApplication extends BaseCCApplication {

     private static final Logger LOGGER = LogManager.getLogger();
-    private static IAsterixStateProxy proxy;
+    private IAsterixStateProxy proxy;
     protected CCExtensionManager ccExtensionManager;
     protected IStorageComponentProvider componentProvider;
     protected WebManager webManager;
@@ -166,8 +167,7 @@
         }
         MetadataProperties metadataProperties = appCtx.getMetadataProperties();

-        
setAsterixStateProxy(AsterixStateProxy.registerRemoteObject(controllerService.getNetworkSecurityManager(),
-                metadataProperties.getMetadataCallbackPort()));
+        proxy = getAsterixStateProxy(controllerService, metadataProperties);
         ccServiceCtx.setDistributedState(proxy);
         MetadataManager.initialize(proxy, metadataProperties, appCtx);
         
ccServiceCtx.addJobLifecycleListener(appCtx.getActiveNotificationHandler());
@@ -184,6 +184,12 @@
         jobCapacityController = new 
JobCapacityController(controllerService.getResourceManager());
     }

+    protected IAsterixStateProxy getAsterixStateProxy(ClusterControllerService 
controllerService,
+            MetadataProperties metadataProperties) throws RemoteException {
+        return 
AsterixStateProxy.registerRemoteObject(controllerService.getNetworkSecurityManager(),
+                metadataProperties.getMetadataCallbackPort());
+    }
+
     private Map<String, String> parseCredentialMap(String credPath) {
         File credentialFile = new File(credPath);
         Map<String, String> storedCredentials = new HashMap<>();
@@ -362,10 +368,6 @@
         ApplicationConfigurator.registerConfigOptions(configManager);
     }

-    public static synchronized void setAsterixStateProxy(IAsterixStateProxy 
proxy) {
-        CCApplication.proxy = proxy;
-    }
-
     @Override
     public ICcApplicationContext getApplicationContext() {
         return appCtx;
diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
index f60349f..a223e0d 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/hyracks/bootstrap/NCApplication.java
@@ -88,6 +88,7 @@
 import org.apache.commons.csv.CSVParser;
 import org.apache.commons.csv.CSVRecord;
 import org.apache.hyracks.algebricks.common.utils.Pair;
+import org.apache.hyracks.api.application.INCServiceContext;
 import org.apache.hyracks.api.application.IServiceContext;
 import org.apache.hyracks.api.client.NodeStatus;
 import org.apache.hyracks.api.config.IConfigManager;
@@ -154,7 +155,7 @@
         MetadataBuiltinFunctions.init();

         ncExtensionManager = new NCExtensionManager(new 
ArrayList<>(getExtensions()));
-        runtimeContext = new NCAppRuntimeContext(ncServiceCtx, 
ncExtensionManager, getPropertiesFactory());
+        runtimeContext = createNCApplicationContext(ncServiceCtx, 
ncExtensionManager, getPropertiesFactory());
         MetadataProperties metadataProperties = 
runtimeContext.getMetadataProperties();
         if 
(!metadataProperties.getNodeNames().contains(this.ncServiceCtx.getNodeId())) {
             if (LOGGER.isInfoEnabled()) {
@@ -186,6 +187,12 @@
         performLocalCleanUp();
     }

+    protected INcApplicationContext 
createNCApplicationContext(INCServiceContext ncServiceCtx,
+            NCExtensionManager ncExtensionManager, IPropertiesFactory 
propertiesFactory)
+            throws IOException, AsterixException {
+        return new NCAppRuntimeContext(ncServiceCtx, ncExtensionManager, 
propertiesFactory);
+    }
+
     protected IRecoveryManagerFactory getRecoveryManagerFactory() {
         return RecoveryManager::new;
     }

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17694
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: neo
Gerrit-Change-Id: I511fbbee5a3f49695451011e7b13afeb12e593a8
Gerrit-Change-Number: 17694
Gerrit-PatchSet: 1
Gerrit-Owner: Michael Blow <[email protected]>
Gerrit-MessageType: newchange

Reply via email to