You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ak...@apache.org on 2018/02/21 04:21:11 UTC

ignite git commit: IGNITE-6094 Web Agent: Enabled persistent in demo mode.

Repository: ignite
Updated Branches:
  refs/heads/master 973541ff2 -> 3c359007c


IGNITE-6094 Web Agent: Enabled persistent in demo mode.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3c359007
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3c359007
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3c359007

Branch: refs/heads/master
Commit: 3c359007c9f1070d86b9ab65231df6b17d91c615
Parents: 973541f
Author: Vasiliy Sisko <vs...@gridgain.com>
Authored: Wed Feb 21 11:21:02 2018 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Wed Feb 21 11:21:02 2018 +0700

----------------------------------------------------------------------
 .../ignite/console/demo/AgentClusterDemo.java   | 87 ++++++++++++++++----
 1 file changed, 71 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3c359007/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
index 6bfc5bd..1fd286c 100644
--- a/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
+++ b/modules/web-console/web-agent/src/main/java/org/apache/ignite/console/demo/AgentClusterDemo.java
@@ -17,6 +17,8 @@
 
 package org.apache.ignite.console.demo;
 
+import java.io.File;
+import java.nio.file.Paths;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.concurrent.CountDownLatch;
@@ -24,9 +26,16 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicInteger;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteServices;
 import org.apache.ignite.Ignition;
+import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.configuration.DataRegionConfiguration;
 import org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
@@ -37,15 +46,14 @@ import org.apache.ignite.console.demo.service.DemoServiceClusterSingleton;
 import org.apache.ignite.console.demo.service.DemoServiceKeyAffinity;
 import org.apache.ignite.console.demo.service.DemoServiceMultipleInstances;
 import org.apache.ignite.console.demo.service.DemoServiceNodeSingleton;
-import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.processors.cache.persistence.filename.PdsConsistentIdProcessor;
 import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.logger.slf4j.Slf4jLogger;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
 import org.apache.ignite.spi.eventstorage.memory.MemoryEventStorageSpi;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_ATOMIC_CACHE_DELETE_HISTORY_SIZE;
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_JETTY_PORT;
@@ -54,11 +62,12 @@ import static org.apache.ignite.IgniteSystemProperties.IGNITE_PERFORMANCE_SUGGES
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_QUIET;
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_UPDATE_NOTIFIER;
 import static org.apache.ignite.configuration.DataStorageConfiguration.DFLT_DATA_REGION_INITIAL_SIZE;
+import static org.apache.ignite.configuration.WALMode.LOG_ONLY;
 import static org.apache.ignite.console.demo.AgentDemoUtils.newScheduledThreadPool;
 import static org.apache.ignite.events.EventType.EVTS_DISCOVERY;
-import static org.apache.ignite.internal.visor.util.VisorTaskUtils.VISOR_TASK_EVTS;
 import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_REST_JETTY_ADDRS;
 import static org.apache.ignite.internal.IgniteNodeAttributes.ATTR_REST_JETTY_PORT;
+import static org.apache.ignite.internal.visor.util.VisorTaskUtils.VISOR_TASK_EVTS;
 
 /**
  * Demo for cluster features like SQL and Monitoring.
@@ -73,27 +82,46 @@ public class AgentClusterDemo {
     private static final AtomicBoolean initGuard = new AtomicBoolean();
 
     /** */
-    private static CountDownLatch initLatch = new CountDownLatch(1);
+    private static final String SRV_NODE_NAME = "demo-server-";
 
     /** */
-    private static volatile String demoUrl;
+    private static final String CLN_NODE_NAME = "demo-client-";
 
     /** */
     private static final int NODE_CNT = 3;
 
+    /** */
+    private static final int WAL_SEGMENTS = 5;
+
+    /** WAL file segment size, 16MBytes. */
+    private static final int WAL_SEGMENT_SZ = 16 * 1024 * 1024;
+
+    /** */
+    private static CountDownLatch initLatch = new CountDownLatch(1);
+
+    /** */
+    private static volatile String demoUrl;
+
     /**
      * Configure node.
+     *
      * @param basePort Base port.
      * @param gridIdx Ignite instance name index.
      * @param client If {@code true} then start client node.
      * @return IgniteConfiguration
      */
-    private static IgniteConfiguration igniteConfiguration(int basePort, int gridIdx, boolean client) {
+    private static IgniteConfiguration igniteConfiguration(int basePort, int gridIdx, boolean client)
+        throws IgniteCheckedException {
         IgniteConfiguration cfg = new IgniteConfiguration();
 
-        cfg.setIgniteInstanceName((client ? "demo-client-" : "demo-server-" ) + gridIdx);
+        cfg.setIgniteInstanceName((client ? CLN_NODE_NAME : SRV_NODE_NAME) + gridIdx);
         cfg.setLocalHost("127.0.0.1");
         cfg.setEventStorageSpi(new MemoryEventStorageSpi());
+        cfg.setConsistentId(cfg.getIgniteInstanceName());
+
+        File workDir = new File(U.workDirectory(null, null), "demo-work");
+
+        cfg.setWorkDirectory(workDir.getAbsolutePath());
 
         int[] evts = new int[EVTS_DISCOVERY.length + VISOR_TASK_EVTS.length];
 
@@ -137,11 +165,18 @@ public class AgentClusterDemo {
         dataRegCfg.setName("demo");
         dataRegCfg.setMetricsEnabled(true);
         dataRegCfg.setMaxSize(DFLT_DATA_REGION_INITIAL_SIZE);
+        dataRegCfg.setPersistenceEnabled(true);
 
         DataStorageConfiguration dataStorageCfg = new DataStorageConfiguration();
+        dataStorageCfg.setMetricsEnabled(true);
+        dataStorageCfg.setStoragePath(PdsConsistentIdProcessor.DB_DEFAULT_FOLDER);
         dataStorageCfg.setDefaultDataRegionConfiguration(dataRegCfg);
         dataStorageCfg.setSystemRegionMaxSize(DFLT_DATA_REGION_INITIAL_SIZE);
 
+        dataStorageCfg.setWalMode(LOG_ONLY);
+        dataStorageCfg.setWalSegments(WAL_SEGMENTS);
+        dataStorageCfg.setWalSegmentSize(WAL_SEGMENT_SZ);
+
         cfg.setDataStorageConfiguration(dataStorageCfg);
 
         if (client)
@@ -197,23 +232,37 @@ public class AgentClusterDemo {
                     int idx = cnt.incrementAndGet();
                     int port = basePort.get();
 
-                    IgniteEx ignite = null;
+                    boolean first = idx == 0;
 
                     try {
-                        ignite = (IgniteEx)Ignition.start(igniteConfiguration(port, idx, false));
+                        IgniteConfiguration cfg = igniteConfiguration(port, idx, false);
 
-                        if (idx == 0) {
-                            Collection<String> jettyAddrs = ignite.localNode().attribute(ATTR_REST_JETTY_ADDRS);
+                        if (first) {
+                            U.delete(Paths.get(cfg.getWorkDirectory()));
+
+                            U.resolveWorkDirectory(
+                                cfg.getWorkDirectory(),
+                                cfg.getDataStorageConfiguration().getStoragePath(),
+                                true
+                            );
+                        }
+
+                        Ignite ignite = Ignition.start(cfg);
+
+                        if (first) {
+                            ClusterNode node = ignite.cluster().localNode();
+
+                            Collection<String> jettyAddrs = node.attribute(ATTR_REST_JETTY_ADDRS);
 
                             if (jettyAddrs == null) {
-                                ignite.cluster().stopNodes();
+                                Ignition.stopAll(true);
 
                                 throw new IgniteException("DEMO: Failed to start Jetty REST server on embedded node");
                             }
 
                             String jettyHost = jettyAddrs.iterator().next();
 
-                            Integer jettyPort = ignite.localNode().attribute(ATTR_REST_JETTY_PORT);
+                            Integer jettyPort = node.attribute(ATTR_REST_JETTY_PORT);
 
                             if (F.isEmpty(jettyHost) || jettyPort == null)
                                 throw new IgniteException("DEMO: Failed to start Jetty REST handler on embedded node");
@@ -226,7 +275,7 @@ public class AgentClusterDemo {
                         }
                     }
                     catch (Throwable e) {
-                        if (idx == 0) {
+                        if (first) {
                             basePort.getAndAdd(50);
 
                             log.warn("DEMO: Failed to start embedded node.", e);
@@ -236,7 +285,13 @@ public class AgentClusterDemo {
                     }
                     finally {
                         if (idx == NODE_CNT) {
-                            deployServices(ignite.services(ignite.cluster().forServers()));
+                            Ignite ignite = Ignition.ignite(SRV_NODE_NAME + 0);
+
+                            if (ignite != null) {
+                                ignite.cluster().active(true);
+
+                                deployServices(ignite.services(ignite.cluster().forServers()));
+                            }
 
                             log.info("DEMO: All embedded nodes for demo successfully started");