/** * @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; }
/** * Discovery event callback, executed from discovery thread. * * @param type Event type. * @param node Event node. * @param topVer Topology version. */ public void onDiscoveryEvent(int type, ClusterNode node, AffinityTopologyVersion topVer) { if (type == EVT_NODE_JOINED && !ctx.isDaemon()) { for (CacheGroupDescriptor desc : registeredCacheGrps.values()) { if (node.id().equals(desc.receivedFrom())) desc.receivedFromStartVersion(topVer); } for (DynamicCacheDescriptor desc : registeredCaches.values()) { if (node.id().equals(desc.receivedFrom())) desc.receivedFromStartVersion(topVer); } for (DynamicCacheDescriptor desc : registeredTemplates.values()) { if (node.id().equals(desc.receivedFrom())) desc.receivedFromStartVersion(topVer); } if (node.id().equals(ctx.discovery().localNode().id())) { if (gridData == null) { // First node starts. assert joinDiscoData != null; initStartCachesForLocalJoin(true, false); } } } }
/** * @param joinedNodeId Joined node ID. * @return New caches received from joined node. */ List<DynamicCacheDescriptor> cachesReceivedFromJoin(UUID joinedNodeId) { assert joinedNodeId != null; List<DynamicCacheDescriptor> started = null; if (!ctx.isDaemon()) { for (DynamicCacheDescriptor desc : orderedCaches(CacheComparators.DIRECT)) { if (desc.staticallyConfigured()) { assert desc.receivedFrom() != null : desc; if (joinedNodeId.equals(desc.receivedFrom())) { if (started == null) started = new ArrayList<>(); started.add(desc); } } } } return started != null ? started : Collections.<DynamicCacheDescriptor>emptyList(); }
desc.groupDescriptor(), desc.template(), desc.receivedFrom(), desc.staticallyConfigured(), desc.sql(),
desc.deploymentId(), desc.schema(), desc.receivedFrom(), desc.staticallyConfigured(), desc.sql(), desc.deploymentId(), desc.schema(), desc.receivedFrom(), desc.staticallyConfigured(), false,
/** * Discovery event callback, executed from discovery thread. * * @param type Event type. * @param node Event node. * @param topVer Topology version. */ public void onDiscoveryEvent(int type, ClusterNode node, AffinityTopologyVersion topVer) { if (type == EVT_NODE_JOINED && !ctx.isDaemon()) { for (CacheGroupDescriptor desc : registeredCacheGrps.values()) { if (node.id().equals(desc.receivedFrom())) desc.receivedFromStartVersion(topVer); } for (DynamicCacheDescriptor desc : registeredCaches.values()) { if (node.id().equals(desc.receivedFrom())) desc.receivedFromStartVersion(topVer); } for (DynamicCacheDescriptor desc : registeredTemplates.values()) { if (node.id().equals(desc.receivedFrom())) desc.receivedFromStartVersion(topVer); } if (node.id().equals(ctx.discovery().localNode().id())) { if (gridData == null) { // First node starts. assert joinDiscoData != null; initStartCachesForLocalJoin(true, false); } } } }
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.groupDescriptor(), desc.template(), desc.receivedFrom(), desc.staticallyConfigured(), desc.sql(),
assertEquals(desc.receivedFrom(), desc0.receivedFrom()); assertEquals(desc.startTopologyVersion(), desc0.startTopologyVersion()); assertEquals(desc.cacheConfiguration().getName(), desc0.cacheConfiguration().getName());
/** * Finishes recovery for given cache context. * * @param cacheStartVer Cache join to topology version. * @param cacheContext Cache context. * @throws IgniteCheckedException If failed. */ private void finishRecovery( AffinityTopologyVersion cacheStartVer, GridCacheContext<?, ?> cacheContext ) throws IgniteCheckedException { CacheGroupContext groupContext = cacheContext.group(); // Take cluster-wide cache descriptor and try to update local cache and cache group parameters. DynamicCacheDescriptor updatedDescriptor = cacheDescriptor(cacheContext.cacheId()); groupContext.finishRecovery( cacheStartVer, updatedDescriptor.receivedFrom(), isLocalAffinity(updatedDescriptor.cacheConfiguration()) ); cacheContext.finishRecovery(cacheStartVer, updatedDescriptor); if (cacheContext.config().getAtomicityMode() == TRANSACTIONAL_SNAPSHOT) sharedCtx.coordinators().ensureStarted(); onKernalStart(cacheContext.cache()); if (log.isInfoEnabled()) log.info("Finished recovery for cache [cache=" + cacheContext.name() + ", grp=" + groupContext.cacheOrGroupName() + ", startVer=" + cacheStartVer + "]"); }
/** * @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; }
/** * @param joinedNodeId Joined node ID. * @return New caches received from joined node. */ List<DynamicCacheDescriptor> cachesReceivedFromJoin(UUID joinedNodeId) { assert joinedNodeId != null; List<DynamicCacheDescriptor> started = null; if (!ctx.isDaemon()) { for (DynamicCacheDescriptor desc : orderedCaches(CacheComparators.DIRECT)) { if (desc.staticallyConfigured()) { assert desc.receivedFrom() != null : desc; if (joinedNodeId.equals(desc.receivedFrom())) { if (started == null) started = new ArrayList<>(); started.add(desc); } } } } return started != null ? started : Collections.<DynamicCacheDescriptor>emptyList(); }
desc.deploymentId(), desc.schema(), desc.receivedFrom(), desc.staticallyConfigured(), desc.sql(), desc.deploymentId(), desc.schema(), desc.receivedFrom(), desc.staticallyConfigured(), false,
); if (fut.cacheAddedOnExchange(cacheDesc.cacheId(), cacheDesc.receivedFrom())) { if (fut.events().discoveryCache().cacheGroupAffinityNodes(cacheDesc.groupId()).isEmpty()) U.quietAndWarn(log, "No server nodes found for cache client: " + req.cacheName());