/** * @param key Key. * @return {@code True} if key is internal. */ protected boolean checkInternal(IgniteTxKey key) { if (key.key().internal()) { internal = true; return true; } return false; }
/** {@inheritDoc} */ @Override protected IgniteCacheExpiryPolicy accessPolicy(GridCacheContext cacheCtx, Collection<KeyCacheObject> keys) { assert optimistic(); if (accessMap != null) { for (Map.Entry<IgniteTxKey, IgniteCacheExpiryPolicy> e : accessMap.entrySet()) { if (e.getKey().cacheId() == cacheCtx.cacheId() && keys.contains(e.getKey().key())) return e.getValue(); } } return null; }
/** * Gets cache entry for given key and topology version. * * @param cacheCtx Cache context. * @param key Key. * @param topVer Topology version. * @return Cache entry. */ protected GridCacheEntryEx entryEx(GridCacheContext cacheCtx, IgniteTxKey key, AffinityTopologyVersion topVer) { return cacheCtx.cache().entryEx(key.key(), topVer); }
/** * Gets cache entry for given key. * * @param cacheCtx Cache context. * @param key Key. * @return Cache entry. */ protected GridCacheEntryEx entryEx(GridCacheContext cacheCtx, IgniteTxKey key) { return cacheCtx.cache().entryEx(key.key()); }
GridCacheContext cctx = ctx.cacheContext(txKey.cacheId()); Object val = txKey.key().value(cctx.cacheObjectContext(), true);
/** * */ void recheck() { for (Iterator<IgniteTxKey> it = pendingLocks.keySet().iterator(); it.hasNext(); ) { IgniteTxKey key = it.next(); GridCacheContext cacheCtx = cctx.cacheContext(key.cacheId()); GridCacheEntryEx entry = cacheCtx.cache().peekEx(key.key()); if (entry == null) it.remove(); else recheck(entry); } if (log.isDebugEnabled()) log.debug("After rechecking finished future: " + this); if (pendingLocks.isEmpty()) { if (exchLog.isDebugEnabled()) exchLog.debug("Finish lock future is done: " + this); onDone(); } }
/** * @param txKey Tx key. * @return Primary node ID. */ private UUID primary(IgniteTxKey txKey) { GridCacheContext ctx = cctx.cacheContext(txKey.cacheId()); ClusterNode node = ctx.affinity().primaryByKey(txKey.key(), topVer); assert node != null : topVer; return node.id(); }
keysByCacheId.put(key.cacheId(), set = new HashSet<>()); set.add(key.key());
/** {@inheritDoc} */ @Override public void finishUnmarshal(GridCacheSharedContext ctx, ClassLoader ldr) throws IgniteCheckedException { try { super.finishUnmarshal(ctx, ldr); if (nearTxKeysArr != null) { for (int i = 0; i < nearTxKeysArr.length; i++) { IgniteTxKey txKey = nearTxKeysArr[i]; txKey.key().finishUnmarshal(ctx.cacheObjectContext(txKey.cacheId()), ldr); txLocks().put(txKey, locksArr[i]); } nearTxKeysArr = null; locksArr = null; } if (txKeysArr != null) { txKeys = U.newHashSet(txKeysArr.length); for (IgniteTxKey txKey : txKeysArr) { txKey.key().finishUnmarshal(ctx.cacheObjectContext(txKey.cacheId()), ldr); txKeys.add(txKey); } txKeysArr = null; } } catch (Exception e) { throw new IgniteCheckedException(e); } }
/** {@inheritDoc} */ @Override protected GridCacheEntryEx entryEx( GridCacheContext cacheCtx, IgniteTxKey key, AffinityTopologyVersion topVer ) { if (cacheCtx.isColocated()) { IgniteTxEntry txEntry = entry(key); if (txEntry == null) return cacheCtx.colocated().entryExx(key.key(), topVer, true); GridCacheEntryEx cached = txEntry.cached(); assert cached != null; if (cached.detached()) return cached; if (cached.obsoleteVersion() != null) { cached = cacheCtx.colocated().entryExx(key.key(), topVer, true); txEntry.cached(cached); } return cached; } else return cacheCtx.cache().entryEx(key.key(), topVer); }
/** {@inheritDoc} */ @Override protected GridCacheEntryEx entryEx(GridCacheContext cacheCtx, IgniteTxKey key) { if (cacheCtx.isColocated()) { IgniteTxEntry txEntry = entry(key); if (txEntry == null) return cacheCtx.colocated().entryExx(key.key(), topologyVersion(), true); GridCacheEntryEx cached = txEntry.cached(); assert cached != null; if (cached.detached()) return cached; if (cached.obsoleteVersion() != null) { cached = cacheCtx.colocated().entryExx(key.key(), topologyVersion(), true); txEntry.cached(cached); } return cached; } else return cacheCtx.cache().entryEx(key.key()); }
return; GridDhtCacheEntry cached = cacheCtx.dht().entryExx(key.key(), topologyVersion());
/** * @param key Key. * @return {@code True} if key is internal. */ protected boolean checkInternal(IgniteTxKey key) { if (key.key().internal()) { internal = true; return true; } return false; }
/** {@inheritDoc} */ @Override protected IgniteCacheExpiryPolicy accessPolicy(GridCacheContext cacheCtx, Collection<KeyCacheObject> keys) { assert optimistic(); if (accessMap != null) { for (Map.Entry<IgniteTxKey, IgniteCacheExpiryPolicy> e : accessMap.entrySet()) { if (e.getKey().cacheId() == cacheCtx.cacheId() && keys.contains(e.getKey().key())) return e.getValue(); } } return null; }
/** * Gets cache entry for given key and topology version. * * @param cacheCtx Cache context. * @param key Key. * @param topVer Topology version. * @return Cache entry. */ protected GridCacheEntryEx entryEx(GridCacheContext cacheCtx, IgniteTxKey key, AffinityTopologyVersion topVer) { return cacheCtx.cache().entryEx(key.key(), topVer); }
/** * Gets cache entry for given key. * * @param cacheCtx Cache context. * @param key Key. * @return Cache entry. */ protected GridCacheEntryEx entryEx(GridCacheContext cacheCtx, IgniteTxKey key) { return cacheCtx.cache().entryEx(key.key()); }
/** * */ void recheck() { for (Iterator<IgniteTxKey> it = pendingLocks.keySet().iterator(); it.hasNext(); ) { IgniteTxKey key = it.next(); GridCacheContext cacheCtx = cctx.cacheContext(key.cacheId()); GridCacheEntryEx entry = cacheCtx.cache().peekEx(key.key()); if (entry == null) it.remove(); else recheck(entry); } if (log.isDebugEnabled()) log.debug("After rechecking finished future: " + this); if (pendingLocks.isEmpty()) { if (exchLog.isDebugEnabled()) exchLog.debug("Finish lock future is done: " + this); onDone(); } }
/** * @param txKey Tx key. * @return Primary node ID. */ private UUID primary(IgniteTxKey txKey) { GridCacheContext ctx = cctx.cacheContext(txKey.cacheId()); ClusterNode node = ctx.affinity().primaryByKey(txKey.key(), topVer); assert node != null : topVer; return node.id(); }
/** {@inheritDoc} */ @Override protected GridCacheEntryEx entryEx(GridCacheContext cacheCtx, IgniteTxKey key) { if (cacheCtx.isColocated()) { IgniteTxEntry txEntry = entry(key); if (txEntry == null) return cacheCtx.colocated().entryExx(key.key(), topologyVersion(), true); GridCacheEntryEx cached = txEntry.cached(); assert cached != null; if (cached.detached()) return cached; if (cached.obsoleteVersion() != null) { cached = cacheCtx.colocated().entryExx(key.key(), topologyVersion(), true); txEntry.cached(cached); } return cached; } else return cacheCtx.cache().entryEx(key.key()); }