/** @throws Exception If failed. */ public void testRemoteIfDataCacheNameEquals() throws Exception { GridConfiguration g2Cfg = getConfiguration("g2"); GridGgfsConfiguration g2GgfsCfg1 = new GridGgfsConfiguration(g1GgfsCfg1); GridGgfsConfiguration g2GgfsCfg2 = new GridGgfsConfiguration(g1GgfsCfg2); g2GgfsCfg1.setName("g2GgfsCfg1"); g2GgfsCfg2.setName("g2GgfsCfg2"); g2GgfsCfg1.setMetaCacheName("g2MetaCache1"); g2GgfsCfg2.setMetaCacheName("g2MetaCache2"); g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g2Cfg.setCacheConfiguration( concat( dataCaches(1024), metaCaches("g2MetaCache1", "g2MetaCache2"), GridCacheConfiguration.class)); g2Cfg.setGgfsConfiguration(g2GgfsCfg1, g2GgfsCfg2); G.start(g1Cfg); checkGridStartFails( g2Cfg, "Data cache names should be different for different GGFS instances", false); }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); GridTcpDiscoverySpi disco = new GridTcpDiscoverySpi(); disco.setMaxMissedHeartbeats(Integer.MAX_VALUE); disco.setIpFinder(IP_FINDER); cfg.setDiscoverySpi(disco); if (gridName.endsWith("1")) cfg.setCacheConfiguration(); // Empty cache configuration. else { assert gridName.endsWith("2"); GridCacheConfiguration cacheCfg = defaultCacheConfiguration(); cacheCfg.setCacheMode(PARTITIONED); cacheCfg.setBackups(1); cfg.setCacheConfiguration(cacheCfg); } return cfg; }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); cfg.setCacheConfiguration( cacheConfiguration(META_CACHE_NAME), cacheConfiguration(DATA_CACHE_NAME)); GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi(); discoSpi.setIpFinder(IP_FINDER); cfg.setDiscoverySpi(discoSpi); GridGgfsConfiguration ggfsCfg = new GridGgfsConfiguration(); ggfsCfg.setMetaCacheName(META_CACHE_NAME); ggfsCfg.setDataCacheName(DATA_CACHE_NAME); ggfsCfg.setName("ggfs"); ggfsCfg.setBlockSize(CFG_BLOCK_SIZE); ggfsCfg.setFragmentizerEnabled(true); cfg.setGgfsConfiguration(ggfsCfg); return cfg; }
/** * Resolves host for REST TCP server using grid configuration. * * @param cfg Grid configuration. * @return REST host. * @throws IOException If failed to resolve REST host. */ private InetAddress resolveRestTcpHost(GridConfiguration cfg) throws IOException { String host = cfg.getRestTcpHost(); if (host == null) host = cfg.getLocalHost(); return U.resolveLocalHost(host); }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration c = super.getConfiguration(gridName); c.setPeerClassLoadingEnabled(false); return c; }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); cfg.setDeploymentMode(GridDeploymentMode.SHARED); return cfg; }
/** * Creates grid configuration. * * @param gridName Grid name. * @return Grid configuration. * @throws Exception If error occurred. */ private static GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = new GridConfiguration(); cfg.setGridName(gridName); cfg.setGridLogger(new GridLog4jLogger()); cfg.setRestEnabled(false); return cfg; }
/** @throws Exception If failed. */ public void testLocalIfAffinityMapperIsWrongClass() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); for (GridCacheConfiguration cc : g1Cfg.getCacheConfiguration()) cc.setAffinityMapper(new GridCacheDefaultAffinityKeyMapper()); checkGridStartFails( g1Cfg, "Invalid GGFS data cache configuration (key affinity mapper class should be", true); }
/** @throws Exception If failed. */ public void testLocalIfBackupsEnabled() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); for (GridCacheConfiguration cc : g1Cfg.getCacheConfiguration()) { cc.setCacheMode(PARTITIONED); cc.setBackups(1); } checkGridStartFails(g1Cfg, "GGFS data cache cannot be used with backups", true); }
/** @throws Exception If failed. */ public void testLocalIfOffheapIsEnabledAndMaxSpaceSizeIsGreater() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); for (GridCacheConfiguration cc : g1Cfg.getCacheConfiguration()) cc.setOffHeapMaxMemory(1000000); g1GgfsCfg2.setMaxSpaceSize(999999999999999999L); checkGridStartFails( g1Cfg, "Maximum GGFS space size cannot be greater than size of available heap memory and offheap storage", true); }
/** @throws Exception If failed. */ public void testRemoteIfAffinityMapperGroupSizeDiffers() throws Exception { GridConfiguration g2Cfg = getConfiguration("g2"); g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g2Cfg.setCacheConfiguration( concat(dataCaches(4021), metaCaches(), GridCacheConfiguration.class)); G.start(g1Cfg); checkGridStartFails( g2Cfg, "Affinity mapper group size should be the same on all nodes in grid for GGFS", false); }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); GridCacheConfiguration ccfg = cacheConfiguration(); cfg.setCacheConfiguration(ccfg); GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi(); discoSpi.setIpFinder(IP_FINDER); cfg.setDiscoverySpi(discoSpi); return cfg; }
/** * Starts new grid node. * * @param gridName name of new node. * @param springCfg file with spring configuration to use for this node. * @return a grid instance local to new node {@link GridGain#start(GridConfiguration)}. * @throws Exception if node run failed. */ protected Grid startNode(String gridName, File springCfg) throws Exception { assert springCfg != null; ListableBeanFactory springCtx = new FileSystemXmlApplicationContext("file:///" + springCfg.getAbsolutePath()); Map cfgMap = springCtx.getBeansOfType(GridConfiguration.class); assert cfgMap != null; assert !cfgMap.isEmpty(); GridConfiguration cfg = (GridConfiguration) cfgMap.values().iterator().next(); cfg.setGridName(gridName + "-" + getNextNodeNum()); return G.start(cfg); }
/** * Tries to start server with given parameters. * * @param hostAddr Host on which server should be bound. * @param port Port on which server should be bound. * @param lsnr Server message listener. * @param parser Server message parser. * @param sslCtx SSL context in case if SSL is enabled. * @param cfg Configuration for other parameters. * @return {@code True} if server successfully started, {@code false} if port is used and server * was unable to start. */ private boolean startTcpServer( InetAddress hostAddr, int port, GridNioServerListener<GridClientMessage> lsnr, GridNioParser parser, @Nullable SSLContext sslCtx, GridConfiguration cfg) { try { GridNioFilter codec = new GridNioCodecFilter(parser, log, false); GridNioFilter[] filters; if (sslCtx != null) { GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx, log); boolean auth = cfg.isRestTcpSslClientAuth(); sslFilter.wantClientAuth(auth); sslFilter.needClientAuth(auth); filters = new GridNioFilter[] {codec, sslFilter}; } else filters = new GridNioFilter[] {codec}; srv = GridNioServer.<GridClientMessage>builder() .address(hostAddr) .port(port) .listener(lsnr) .logger(log) .selectorCount(cfg.getRestTcpSelectorCount()) .gridName(ctx.gridName()) .tcpNoDelay(cfg.isRestTcpNoDelay()) .directBuffer(cfg.isRestTcpDirectBuffer()) .byteOrder(ByteOrder.nativeOrder()) .socketSendBufferSize(cfg.getRestTcpSendBufferSize()) .socketReceiveBufferSize(cfg.getRestTcpReceiveBufferSize()) .sendQueueLimit(cfg.getRestTcpSendQueueLimit()) .filters(filters) .build(); srv.idleTimeout(cfg.getRestIdleTimeout()); srv.start(); ctx.ports().registerPort(port, GridPortProtocol.TCP, getClass()); return true; } catch (GridException e) { if (log.isDebugEnabled()) log.debug( "Failed to start " + name() + " protocol on port " + port + ": " + e.getMessage()); return false; } }
/** @throws Exception If failed. */ public void testLocalIfOffheapIsDisabledAndMaxSpaceSizeIsGreater() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g1GgfsCfg2.setMaxSpaceSize(999999999999999999L); checkGridStartFails( g1Cfg, "Maximum GGFS space size cannot be greater that size of available heap", true); }
/** @throws Exception If failed. */ @SuppressWarnings("NullableProblems") public void testLocalNullGgfsNameIsSupported() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g1GgfsCfg1.setName(null); assertFalse(G.start(g1Cfg).nodes().isEmpty()); }
/** @throws Exception If failed. */ public void testLocalIfQueryIndexingEnabledForDataCache() throws Exception { GridCacheConfiguration[] dataCaches = dataCaches(1024); dataCaches[0].setQueryIndexEnabled(true); g1Cfg.setCacheConfiguration(concat(dataCaches, metaCaches(), GridCacheConfiguration.class)); checkGridStartFails(g1Cfg, "GGFS data cache cannot start with enabled query indexing", true); }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); GridCacheConfiguration cache = new GridCacheConfiguration(); cache.setName(DATA_CACHE_NAME); cfg.setCacheConfiguration(cache); GridTcpDiscoverySpi disco = new GridTcpDiscoverySpi(); disco.setIpFinder(IP_FINDER); cfg.setDiscoverySpi(disco); return cfg; }
/** @throws Exception If failed. */ public void testLocalIfNoMetadataCacheIsConfigured() throws Exception { GridCacheConfiguration cc = defaultCacheConfiguration(); cc.setQueryIndexEnabled(false); cc.setName(dataCache1Name); g1Cfg.setCacheConfiguration(cc); checkGridStartFails(g1Cfg, "Metadata cache is not configured locally for GGFS", true); }
/** @throws Exception If failed. */ public void testRemoteIfDataBlockSizeDiffers() throws Exception { GridConfiguration g2Cfg = getConfiguration("g2"); g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g2Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); GridGgfsConfiguration g2GgfsCfg1 = new GridGgfsConfiguration(g1GgfsCfg1); g2GgfsCfg1.setBlockSize(g2GgfsCfg1.getBlockSize() + 100); g2Cfg.setGgfsConfiguration(g2GgfsCfg1, g1GgfsCfg2); G.start(g1Cfg); checkGridStartFails( g2Cfg, "Data block size should be same on all nodes in grid for GGFS", false); }
/** @throws Exception If failed. */ public void testLocalIfNonPrimaryModeAndHadoopFileSystemConfigPathIsNull() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g1GgfsCfg2.setDefaultMode(PROXY); g1GgfsCfg2.setSecondaryHadoopFileSystemUri("/"); checkGridStartFails( g1Cfg, "secondaryHadoopFileSystemConfigPath cannot be null when mode is SECONDARY", true); }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi(); discoSpi.setIpFinder(ipFinder); cfg.setDiscoverySpi(discoSpi); cfg.setCommunicationSpi(new CommunicationSpi()); cfg.setMarshaller(new GridOptimizedMarshaller(false)); GridCacheConfiguration ccfg = defaultCacheConfiguration(); ccfg.setCacheMode(PARTITIONED); cfg.setCacheConfiguration(ccfg); return cfg; }
/** {@inheritDoc} */ @SuppressWarnings("deprecation") @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); cfg.setNodeId(null); cfg.setFailoverSpi( new GridAlwaysFailoverSpi() { /** {@inheritDoc} */ @Override public GridNode failover(GridFailoverContext ctx, List<GridNode> top) { failCnt.incrementAndGet(); return super.failover(ctx, top); } }); return cfg; }
/** @throws Exception If failed. */ public void testLocalIfHadoopFileSystemUriIsNullAndConfigPathIsNot() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g1GgfsCfg2.setSecondaryHadoopFileSystemConfigPath("/"); checkGridStartFails( g1Cfg, "secondaryHadoopFileSystemUri cannot be null when secondaryHadoopFileSystemConfigPath is set", true); }
/** @throws Exception If failed. */ public void testRemoteIfPathModeDiffers() throws Exception { GridConfiguration g2Cfg = getConfiguration("g2"); GridGgfsConfiguration g2GgfsCfg1 = new GridGgfsConfiguration(g1GgfsCfg1); GridGgfsConfiguration g2GgfsCfg2 = new GridGgfsConfiguration(g1GgfsCfg2); g2GgfsCfg1.setPathModes(ImmutableMap.of("/somePath", DUAL_SYNC)); g2GgfsCfg2.setPathModes(ImmutableMap.of("/somePath", DUAL_SYNC)); g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g2Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); g2Cfg.setGgfsConfiguration(g2GgfsCfg1, g2GgfsCfg2); G.start(g1Cfg); checkGridStartFails( g2Cfg, "Path modes should be the same on all nodes in grid for GGFS", false); }
/** @throws Exception If failed. */ public void testLocalIfGgfsConfigsHaveDifferentNames() throws Exception { g1Cfg.setCacheConfiguration( concat(dataCaches(1024), metaCaches(), GridCacheConfiguration.class)); String ggfsCfgName = "ggfs-cfg"; g1GgfsCfg1.setName(ggfsCfgName); g1GgfsCfg2.setName(ggfsCfgName); checkGridStartFails( g1Cfg, "Duplicate GGFS name found (check configuration and assign unique name", true); }
/** * Create Grid configuration with configured checkpoints. * * @return Grid configuration. * @throws GridException If configuration creation failed. */ public static GridConfiguration configuration() throws GridException { GridConfiguration cfg = new GridConfiguration(); cfg.setLocalHost("127.0.0.1"); cfg.setPeerClassLoadingEnabled(true); GridOptimizedMarshaller marsh = new GridOptimizedMarshaller(); marsh.setRequireSerializable(false); cfg.setMarshaller(marsh); cfg.setDeploymentSpi(new GridUriDeploymentSpi()); GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi(); GridTcpDiscoveryVmIpFinder ipFinder = new GridTcpDiscoveryVmIpFinder(); ipFinder.setAddresses(Collections.singletonList("127.0.0.1:47500..47509")); discoSpi.setIpFinder(ipFinder); cfg.setDiscoverySpi(discoSpi); return cfg; }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration c = super.getConfiguration(gridName); GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi(); discoSpi.setIpFinder(new GridTcpDiscoveryVmIpFinder(true)); c.setDiscoverySpi(discoSpi); c.setExecutorService( new ThreadPoolExecutor( SPLIT_COUNT, SPLIT_COUNT, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>())); c.setExecutorServiceShutdown(true); return c; }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration() throws Exception { GridConfiguration c = super.getConfiguration(); GridTcpDiscoverySpi disco = new GridTcpDiscoverySpi(); disco.setIpFinder(new GridTcpDiscoveryVmIpFinder(true)); c.setDiscoverySpi(disco); GridCacheConfiguration cc = defaultCacheConfiguration(); cc.setCacheMode(LOCAL); cc.setTxSerializableEnabled(true); cc.setDefaultTxTimeout(50); c.setCacheConfiguration(cc); c.setNetworkTimeout(1000); return c; }
/** {@inheritDoc} */ @Override protected GridConfiguration getConfiguration(String gridName) throws Exception { GridConfiguration cfg = super.getConfiguration(gridName); if (cache) { GridCacheConfiguration cacheCfg = defaultCacheConfiguration(); cacheCfg.setCacheMode(PARTITIONED); cacheCfg.setBackups(1); cacheCfg.setDistributionMode(nearOnly ? NEAR_ONLY : NEAR_PARTITIONED); cacheCfg.setPreloadMode(SYNC); cacheCfg.setAtomicityMode(TRANSACTIONAL); cfg.setCacheConfiguration(cacheCfg); } GridTcpDiscoverySpi discoSpi = new GridTcpDiscoverySpi(); discoSpi.setIpFinder(IP_FINDER); cfg.setDiscoverySpi(discoSpi); return cfg; }