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");