/** {@inheritDoc} */ @Override public synchronized void addEntry(IgniteTxEntry entry) { txMap.put(entry.txKey(), entry); }
/** {@inheritDoc} */ @Override public Set<IgniteTxKey> writeSet() { return entry != null ? Collections.singleton(entry.txKey()) : Collections.<IgniteTxKey>emptySet(); }
/** {@inheritDoc} */ @Override public Set<IgniteTxKey> writeSet() { if (entry != null) { Set<IgniteTxKey> set = new HashSet<>(3, 0.75f); set.add(entry.get(0).txKey()); return set; } else return Collections.<IgniteTxKey>emptySet(); }
/** * @param keys Keys to evict readers for. * @param entries Entries to check. */ private void evictReaders(Collection<IgniteTxKey> keys, @Nullable Collection<IgniteTxEntry> entries) { if (entries == null || entries.isEmpty()) return; for (Iterator<IgniteTxEntry> it = entries.iterator(); it.hasNext();) { IgniteTxEntry entry = it.next(); if (keys.contains(entry.txKey())) it.remove(); } }
/** {@inheritDoc} */ @Override public IgniteTxEntry entry(IgniteTxKey key) { if (entry != null && entry.get(0).txKey().equals(key)) return entry.get(0); return null; }
/** {@inheritDoc} */ @Override public void clearEntry(IgniteTxKey key) { if (entry != null && entry.txKey().equals(key)) entry = null; }
/** {@inheritDoc} */ @Override public Map<IgniteTxKey, IgniteTxEntry> writeMap() { return entry != null ? F.asMap(entry.get(0).txKey(), entry.get(0)) : Collections.<IgniteTxKey, IgniteTxEntry>emptyMap(); }
/** {@inheritDoc} */ @Override public IgniteTxEntry entry(IgniteTxKey key) { if (entry != null && entry.txKey().equals(key)) return entry; return null; }
/** {@inheritDoc} */ @Override public Map<IgniteTxKey, IgniteTxEntry> writeMap() { return entry != null ? F.asMap(entry.txKey(), entry) : Collections.<IgniteTxKey, IgniteTxEntry>emptyMap(); }
/** {@inheritDoc} */ @Override public boolean hasWriteKey(IgniteTxKey key) { return entry != null && entry.txKey().equals(key); }
/** {@inheritDoc} */ @Override public boolean hasWriteKey(IgniteTxKey key) { return entry != null && entry.get(0).txKey().equals(key); }
nearWritesCacheMissed = new ArrayList<>(); nearWritesCacheMissed.add(e.txKey());
/** * @return Keys for which {@code MiniFuture} isn't completed. */ public Set<IgniteTxKey> requestedKeys() { synchronized (this) { int size = futuresCountNoLock(); for (int i = 0; i < size; i++) { IgniteInternalFuture fut = future(i); if (isMini(fut) && !fut.isDone()) { MiniFuture miniFut = (MiniFuture)fut; Collection<IgniteTxEntry> entries = miniFut.mapping().entries(); Set<IgniteTxKey> keys = U.newHashSet(entries.size()); for (IgniteTxEntry entry : entries) keys.add(entry.txKey()); return keys; } } } return null; }
/** * @param entry Write entry. * @param ldr Class loader. * @throws IgniteCheckedException If failed. */ public void addWrite(IgniteTxEntry entry, ClassLoader ldr) throws IgniteCheckedException { entry.unmarshal(cctx, false, ldr); GridCacheContext cacheCtx = entry.context(); try { GridDhtCacheEntry cached = cacheCtx.dht().entryExx(entry.key(), topologyVersion()); checkInternal(entry.txKey()); // Initialize cache entry. entry.cached(cached); txState.addWriteEntry(entry.txKey(), entry); addExplicit(entry); } catch (GridDhtInvalidPartitionException e) { addInvalidPartition(cacheCtx, e.partition()); } }
keys.add(txEntry.txKey());
keys.add(entry.txKey());
req.addDhtVersion(txEntry.txKey(), null);
lockKeys.add(txEntry.txKey());
req.addDhtVersion(txEntry.txKey(), null);