/** * @return DHT cache. */ private GridDhtTransactionalCacheAdapter<?, ?> dht() { return cctx.nearTx().dht(); }
validateCacheKeys(keys); return asyncOp(tx, new AsyncOp<Map<K, V>>(keys) { @Override public IgniteInternalFuture<Map<K, V>> op(GridNearTxLocal tx, AffinityTopologyVersion readyTopVer) { return tx.getAllAsync(ctx, return loadAsync(null, ctx.cacheKeysView(keys), forcePrimary,
/** * @param nodeId Node ID. * @param req Request. */ private void processDhtUnlockRequest(UUID nodeId, GridDhtUnlockRequest req) { clearLocks(nodeId, req); if (isNearEnabled(cacheCfg)) near().clearLocks(nodeId, req); }
case TRANSACTIONAL: case TRANSACTIONAL_SNAPSHOT: { cache = new GridNearTransactionalCache(cacheCtx); near.dht(dhtCache);
GridDistributedCacheEntry entry = peekExx(key); evictNearEntry(entry, obsoleteVer, topVer);
GridDistributedCacheEntry entry = peekExx(key);
/** * @param key Key * @param ver Version. * @throws IgniteCheckedException If invalidate failed. */ private void invalidateNearEntry(KeyCacheObject key, GridCacheVersion ver) throws IgniteCheckedException { GridCacheEntryEx nearEntry = near().peekEx(key); if (nearEntry != null) nearEntry.invalidate(ver); }
entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer)); else if (!cacheCtx.isLocal()) entry.cached(cacheCtx.colocated().entryExx(entry.key(), topVer, true));
/** * * @param e Entry to evict if it qualifies for eviction. * @param obsoleteVer Obsolete version. * @param topVer Topology version. * @return {@code True} if attempt was made to evict the entry. */ protected boolean evictNearEntry(GridCacheEntryEx e, GridCacheVersion obsoleteVer, AffinityTopologyVersion topVer) { assert e != null; assert obsoleteVer != null; if (isNearLocallyMapped(e, topVer)) { if (log.isDebugEnabled()) log.debug("Evicting dht-local entry from near cache [entry=" + e + ", tx=" + this + ']'); if (e.markObsolete(obsoleteVer)) return true; } return false; }
case TRANSACTIONAL: case TRANSACTIONAL_SNAPSHOT: { cache = new GridNearTransactionalCache(cacheCtx); near.dht(dhtCache);
GridDistributedCacheEntry entry = peekExx(key); evictNearEntry(entry, obsoleteVer, topVer);
KeyCacheObject cacheKey = ctx.toCacheKeyObject(key); GridDistributedCacheEntry entry = peekExx(cacheKey);
/** * @param key Key */ private void obsoleteNearEntry(KeyCacheObject key) { GridCacheEntryEx nearEntry = near().peekEx(key); if (nearEntry != null) nearEntry.markObsolete(ctx.versions().next()); }
entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer)); else if (!cacheCtx.isLocal()) entry.cached(cacheCtx.colocated().entryExx(entry.key(), topVer, true));
/** * * @param e Entry to evict if it qualifies for eviction. * @param obsoleteVer Obsolete version. * @param topVer Topology version. * @return {@code True} if attempt was made to evict the entry. */ protected boolean evictNearEntry(GridCacheEntryEx e, GridCacheVersion obsoleteVer, AffinityTopologyVersion topVer) { assert e != null; assert obsoleteVer != null; if (isNearLocallyMapped(e, topVer)) { if (log.isDebugEnabled()) log.debug("Evicting dht-local entry from near cache [entry=" + e + ", tx=" + this + ']'); if (e.markObsolete(obsoleteVer)) return true; } return false; }
/** * Clones entries so that tx entries with initialized near entries are not passed to DHT transaction. * Used only when local part of prepare is invoked. * * @param c Collection of entries to clone. * @return Cloned collection. */ private Collection<IgniteTxEntry> cloneEntries(Collection<IgniteTxEntry> c) { if (F.isEmpty(c)) return c; Collection<IgniteTxEntry> cp = new ArrayList<>(c.size()); for (IgniteTxEntry e : c) { GridCacheContext cacheCtx = e.context(); // Clone only if it is a near cache. if (cacheCtx.isNear()) cp.add(e.cleanCopy(cacheCtx.nearTx().dht().context())); else cp.add(e); } return cp; }
validateCacheKeys(keys); return asyncOp(tx, new AsyncOp<Map<K, V>>(keys) { @Override public IgniteInternalFuture<Map<K, V>> op(GridNearTxLocal tx, AffinityTopologyVersion readyTopVer) { return tx.getAllAsync(ctx, return loadAsync(null, ctx.cacheKeysView(keys), forcePrimary,
entry = peekExx(key);
/** * @param key Key * @param ver Version. * @throws IgniteCheckedException If invalidate failed. */ private void invalidateNearEntry(KeyCacheObject key, GridCacheVersion ver) throws IgniteCheckedException { GridCacheEntryEx nearEntry = near().peekEx(key); if (nearEntry != null) nearEntry.invalidate(ver); }
entry.cached(cacheCtx.nearTx().entryExx(entry.key(), topVer)); else if (!cacheCtx.isLocal()) entry.cached(cacheCtx.colocated().entryExx(entry.key(), topVer, true));