if (firstNode && !joinDiscoData.caches().containsKey(desc.cacheName())) continue; CacheConfiguration<?, ?> cfg = desc.cacheConfiguration(); desc.cacheType(), desc.groupDescriptor(), desc.template(), desc.receivedFrom(), desc.staticallyConfigured(), desc.sql(), desc.deploymentId(), desc.schema().copy()); desc0.startTopologyVersion(desc.startTopologyVersion()); desc0.receivedFromStartVersion(desc.receivedFromStartVersion()); desc0.clientCacheStartVersion(desc.clientCacheStartVersion()); desc0.cacheConfiguration().setStatisticsEnabled(cfg.isStatisticsEnabled()); CU.affinityNode(ctx.discovery().localNode(), desc.groupDescriptor().config().getNodeFilter())) { if (active) locJoinStartCaches.add(new T2<>(desc, nearCfg)); else locCfgsForActivation.put(desc.cacheName(), new T2<>(desc.cacheConfiguration(), nearCfg));
CacheData cacheData = new CacheData(desc.cacheConfiguration(), desc.cacheId(), desc.groupId(), desc.cacheType(), desc.deploymentId(), desc.schema(), desc.receivedFrom(), desc.staticallyConfigured(), desc.sql(), false, 0); caches.put(desc.cacheName(), cacheData); CacheData cacheData = new CacheData(desc.cacheConfiguration(), 0, 0, desc.cacheType(), desc.deploymentId(), desc.schema(), desc.receivedFrom(), desc.staticallyConfigured(), false, true, 0); templates.put(desc.cacheName(), cacheData);
/** * @param joinedNodeId Joined node ID. * @return {@code True} if there are new caches received from joined node. */ boolean hasCachesReceivedFromJoin(UUID joinedNodeId) { for (DynamicCacheDescriptor desc : registeredCaches.values()) { if (desc.staticallyConfigured()) { assert desc.receivedFrom() != null : desc; if (joinedNodeId.equals(desc.receivedFrom())) return true; } } return false; }
/** * Constructor of not started cache context. * * @param cacheDesc Cache descriptor. */ public GridCacheContextInfo(DynamicCacheDescriptor cacheDesc) { config = cacheDesc.cacheConfiguration(); dynamicDeploymentId = cacheDesc.deploymentId(); groupId = cacheDesc.groupId(); cacheId = CU.cacheId(config.getName()); clientCache = true; }
cache -> createRow( ses, cache.cacheName(), cache.cacheId(), cache.cacheType(), cache.groupId(), cache.groupDescriptor().cacheOrGroupName(), cache.cacheConfiguration().getCacheMode(), cache.cacheConfiguration().getAtomicityMode(), cache.cacheConfiguration().isOnheapCacheEnabled(), cache.cacheConfiguration().isCopyOnRead(), cache.cacheConfiguration().isLoadPreviousValue(), cache.cacheConfiguration().isReadFromBackup(), cache.cacheConfiguration().getPartitionLossPolicy(), cache.cacheConfiguration().getNodeFilter(), cache.cacheConfiguration().getTopologyValidator(), cache.cacheConfiguration().isEagerTtl(), cache.cacheConfiguration().getWriteSynchronizationMode(), cache.cacheConfiguration().isInvalidate(), cache.cacheConfiguration().isEventsDisabled(), cache.cacheConfiguration().isStatisticsEnabled(), cache.cacheConfiguration().isManagementEnabled(), cache.cacheConfiguration().getBackups(), cache.cacheConfiguration().getAffinity(), cache.cacheConfiguration().getAffinityMapper(), cache.cacheConfiguration().getRebalanceMode(), cache.cacheConfiguration().getRebalanceBatchSize(), cache.cacheConfiguration().getRebalanceTimeout(), cache.cacheConfiguration().getRebalanceDelay(),
assert cctx.cacheContext(cacheDesc.cacheId()) == null : "Starting cache has not null context: " + cacheDesc.cacheName(); cacheDesc.groupDescriptor().config().getNodeFilter()); if (fut.cacheAddedOnExchange(info.getCacheDescriptor().cacheId(), info.getCacheDescriptor().receivedFrom())) { if (fut.events().discoveryCache().cacheGroupAffinityNodes(info.getCacheDescriptor().groupId()).isEmpty()) U.quietAndWarn(log, "No server nodes found for cache client: " + info.getCacheDescriptor().cacheName());
desc.startTopologyVersion(topVer); desc.cacheName(), msg.initiatorNodeId()); req.startCacheConfiguration(desc.cacheConfiguration()); req.cacheType(desc.cacheType()); T2<CacheConfiguration, NearCacheConfiguration> locCfg = locCfgsForActivation.get(desc.cacheName()); desc.cacheName(), desc.sql(), false); if (ctx.discovery().cacheClientNode(ctx.discovery().localNode(), desc.cacheName())) locCfgsForActivation.put(desc.cacheName(), new T2<>((CacheConfiguration)null, (NearCacheConfiguration)null));
if (!compiled.matcher(desc.cacheName()).find()) continue; ci.setCacheName(desc.cacheName()); ci.setCacheId(desc.cacheId()); ci.setGrpName(desc.groupDescriptor().groupName()); ci.setGrpId(desc.groupDescriptor().groupId()); ci.setPartitions(desc.cacheConfiguration().getAffinity().partitions()); ci.setBackupsCnt(desc.cacheConfiguration().getBackups()); ci.setAffinityClsName(desc.cacheConfiguration().getAffinity().getClass().getSimpleName()); ci.setMode(desc.cacheConfiguration().getCacheMode()); ci.setAtomicityMode(desc.cacheConfiguration().getAtomicityMode()); ci.setMapped(mapped(desc.cacheName()));
/** * Form a {@link StoredCacheData} with all data to correctly restore cache params when its configuration is read * from page store. Essentially, this method takes from {@link DynamicCacheDescriptor} all that's needed to start * cache correctly, leaving out everything else. */ public StoredCacheData toStoredData() { assert schema != null; StoredCacheData res = new StoredCacheData(cacheConfiguration()); res.queryEntities(schema().entities()); res.sql(sql()); return res; }
/** {@inheritDoc} */ @Override public Map<String, CacheConfiguration<?, ?>> startedCaches() { Map<Integer, DynamicCacheDescriptor> cachesMap = ctx.affinity().caches(); Map<String, CacheConfiguration<?, ?>> res = U.newHashMap(cachesMap.size()); for (DynamicCacheDescriptor desc : cachesMap.values()) { if (desc.cacheType().userCache()) res.put(desc.cacheName(), desc.cacheConfiguration()); } return res; }
assertEquals(desc.deploymentId(), desc0.deploymentId()); assertEquals(desc.receivedFrom(), desc0.receivedFrom()); assertEquals(desc.startTopologyVersion(), desc0.startTopologyVersion()); assertEquals(desc.cacheConfiguration().getName(), desc0.cacheConfiguration().getName()); assertEquals(desc.cacheConfiguration().getGroupName(), desc0.cacheConfiguration().getGroupName()); checkGroupDescriptorsData(desc.groupDescriptor(), desc0.groupDescriptor());
/** * @param desc Cache configuration for start. * @param reqNearCfg Near cache configuration for start. * @param exchTopVer Exchange topology version in which starting happened. * @param disabledAfterStart Disable started cache after start or not. */ public StartCacheInfo(DynamicCacheDescriptor desc, NearCacheConfiguration reqNearCfg, AffinityTopologyVersion exchTopVer, boolean disabledAfterStart) { this(desc.cacheConfiguration(), desc, reqNearCfg, exchTopVer, disabledAfterStart); }
/** */ private Set<Integer> getGroupIds() { Set<Integer> grpIds = new HashSet<>(); if (arg.getCaches() != null && !arg.getCaches().isEmpty()) { Set<String> missingCaches = new HashSet<>(); for (String cacheName : arg.getCaches()) { DynamicCacheDescriptor desc = ignite.context().cache().cacheDescriptor(cacheName); if (desc == null || !isCacheMatchFilter(cacheName)) { missingCaches.add(cacheName); continue; } grpIds.add(desc.groupId()); } handlingMissedCaches(missingCaches); } else if (onlySpecificCaches()) { for (DynamicCacheDescriptor desc : ignite.context().cache().cacheDescriptors().values()) { if (desc.cacheConfiguration().getCacheMode() != LOCAL && isCacheMatchFilter(desc.cacheName())) grpIds.add(desc.groupId()); } } else grpIds = getCacheGroupIds(); return grpIds; }
assertEquals(Integer.MAX_VALUE, cacheDesc.cacheConfiguration().getBackups()); else assertEquals(10, cacheDesc.cacheConfiguration().getBackups()); assertEquals(CacheAtomicityMode.ATOMIC, cacheDesc.cacheConfiguration().getAtomicityMode()); assertTrue(cacheDesc.sql()); assertEquals(cacheGrp, cacheDesc.groupDescriptor().groupName()); assertEquals(cacheMode, cacheDesc.cacheConfiguration().getCacheMode()); assertEquals(writeSyncMode, cacheDesc.cacheConfiguration().getWriteSynchronizationMode());
if (grpName != null) { return initializationProtector.protect( desc.groupId(), () -> findCacheGroup(grpName), () -> startCacheGroup( desc.groupDescriptor(), desc.cacheType(), affNode, cacheObjCtx, return startCacheGroup(desc.groupDescriptor(), desc.cacheType(), affNode, cacheObjCtx,
if (F.eq(ccfg.getName(), desc.cacheName())) continue; String descSchema = QueryUtils.normalizeSchemaName(desc.cacheName(), desc.cacheConfiguration().getSqlSchema()); for (QueryEntity e : desc.schema().entities()) { tblNames.add(e.getTableName());
/** * @param cacheNames Survived caches to clean. */ public void removeSurvivedCaches(Set<String> cacheNames) { Iterator<T2<DynamicCacheDescriptor, NearCacheConfiguration>> it = locJoinStartCaches.iterator(); for (; it.hasNext();) { T2<DynamicCacheDescriptor, NearCacheConfiguration> entry = it.next(); DynamicCacheDescriptor desc = entry.get1(); if (cacheNames.contains(desc.cacheName())) it.remove(); } Iterator<DynamicCacheDescriptor> iter = locJoinInitCaches.iterator(); for (; iter.hasNext(); ) { DynamicCacheDescriptor desc = iter.next(); if (cacheNames.contains(desc.cacheName())) iter.remove(); } }
/** * @param cacheName Cache name. */ private boolean isCacheMatchFilter(String cacheName) { if (arg instanceof VisorIdleVerifyDumpTaskArg) { DataStorageConfiguration dsCfg = ignite.context().config().getDataStorageConfiguration(); DynamicCacheDescriptor desc = ignite.context().cache().cacheDescriptor(cacheName); CacheConfiguration cc = desc.cacheConfiguration(); VisorIdleVerifyDumpTaskArg vdta = (VisorIdleVerifyDumpTaskArg)arg; switch (vdta.getCacheFilterEnum()) { case SYSTEM: return !desc.cacheType().userCache(); case NOT_PERSISTENT: return desc.cacheType().userCache() && !GridCacheUtils.isPersistentCache(cc, dsCfg); case PERSISTENT: return desc.cacheType().userCache() && GridCacheUtils.isPersistentCache(cc, dsCfg); case ALL: break; default: assert false : "Illegal cache filter: " + vdta.getCacheFilterEnum(); } } return true; }