/** * @param topVer Topology version. * @param desc Cache descriptor. * @return Cache holder. * @throws IgniteCheckedException If failed. */ private CacheGroupHolder groupHolder(AffinityTopologyVersion topVer, final CacheGroupDescriptor desc) throws IgniteCheckedException { CacheGroupHolder cacheGrp = grpHolders.get(desc.groupId()); if (cacheGrp != null) return cacheGrp; final CacheGroupContext grp = cctx.cache().cacheGroup(desc.groupId()); if (grp == null) { cctx.io().addCacheGroupHandler(desc.groupId(), GridDhtAffinityAssignmentResponse.class, new IgniteBiInClosure<UUID, GridDhtAffinityAssignmentResponse>() { @Override public void apply(UUID nodeId, GridDhtAffinityAssignmentResponse res) { processAffinityAssignmentResponse(nodeId, res); } } ); cacheGrp = CacheGroupHolder2.create(cctx, desc, topVer, null); } else cacheGrp = new CacheGroupHolder1(grp, null); CacheGroupHolder old = grpHolders.put(desc.groupId(), cacheGrp); assert old == null : old; return cacheGrp; }
grpHolder = CacheGroupHolder2.create(cctx, cachesRegistry.group(grpId), topVer,
/** * @param fut Exchange future. * @param grpDesc Cache group descriptor. * @throws IgniteCheckedException If failed. */ private void initStartedGroupOnCoordinator(GridDhtPartitionsExchangeFuture fut, final CacheGroupDescriptor grpDesc) throws IgniteCheckedException { assert grpDesc != null && grpDesc.groupId() != 0 : grpDesc; if (grpDesc.config().getCacheMode() == LOCAL) return; int grpId = grpDesc.groupId(); CacheGroupHolder grpHolder = grpHolders.get(grpId); CacheGroupContext grp = cctx.kernalContext().cache().cacheGroup(grpId); if (grpHolder == null) { grpHolder = grp != null ? new CacheGroupHolder1(grp, null) : CacheGroupHolder2.create(cctx, grpDesc, fut.initialVersion(), null); CacheGroupHolder old = grpHolders.put(grpId, grpHolder); assert old == null : old; calculateAndInit(fut.events(), grpHolder.affinity(), fut.initialVersion()); } else if (grpHolder.client() && grp != null) { assert grpHolder.affinity().idealAssignment() != null; grpHolder = new CacheGroupHolder1(grp, grpHolder.affinity()); grpHolders.put(grpId, grpHolder); } }
grpHolder = CacheGroupHolder2.create(cctx, cachesRegistry.group(grpId), topVer,
/** * @param topVer Topology version. * @param desc Cache descriptor. * @return Cache holder. * @throws IgniteCheckedException If failed. */ private CacheGroupHolder groupHolder(AffinityTopologyVersion topVer, final CacheGroupDescriptor desc) throws IgniteCheckedException { CacheGroupHolder cacheGrp = grpHolders.get(desc.groupId()); if (cacheGrp != null) return cacheGrp; final CacheGroupContext grp = cctx.cache().cacheGroup(desc.groupId()); if (grp == null) { cctx.io().addCacheGroupHandler(desc.groupId(), GridDhtAffinityAssignmentResponse.class, new IgniteBiInClosure<UUID, GridDhtAffinityAssignmentResponse>() { @Override public void apply(UUID nodeId, GridDhtAffinityAssignmentResponse res) { processAffinityAssignmentResponse(nodeId, res); } } ); cacheGrp = CacheGroupHolder2.create(cctx, desc, topVer, null); } else cacheGrp = new CacheGroupHolder1(grp, null); CacheGroupHolder old = grpHolders.put(desc.groupId(), cacheGrp); assert old == null : old; return cacheGrp; }
/** * @param fut Exchange future. * @param grpDesc Cache group descriptor. * @throws IgniteCheckedException If failed. */ private void initStartedGroupOnCoordinator(GridDhtPartitionsExchangeFuture fut, final CacheGroupDescriptor grpDesc) throws IgniteCheckedException { assert grpDesc != null && grpDesc.groupId() != 0 : grpDesc; if (grpDesc.config().getCacheMode() == LOCAL) return; int grpId = grpDesc.groupId(); CacheGroupHolder grpHolder = grpHolders.get(grpId); CacheGroupContext grp = cctx.kernalContext().cache().cacheGroup(grpId); if (grpHolder == null) { grpHolder = grp != null ? new CacheGroupHolder1(grp, null) : CacheGroupHolder2.create(cctx, grpDesc, fut.initialVersion(), null); CacheGroupHolder old = grpHolders.put(grpId, grpHolder); assert old == null : old; calculateAndInit(fut.events(), grpHolder.affinity(), fut.initialVersion()); } else if (grpHolder.client() && grp != null) { assert grpHolder.affinity().idealAssignment() != null; grpHolder = new CacheGroupHolder1(grp, grpHolder.affinity()); grpHolders.put(grpId, grpHolder); } }