public GfxdFunctionOrderedReplyMessageProcessor(DM dm, Set<DistributedMember> members, GfxdFunctionMessage<T> msg) { super(dm, members, msg); this.pendingReplies = new THashMapWithCreate(); }
private void flushEntries(Collection<IndexData[]> allIndexes) { for (IndexData[] indexes : allIndexes) { for (IndexData indexData : indexes) { SortedIndexContainer index = indexData.index; THashMapWithCreate entryIdsPerIndexKey = indexData.indexEntryMap; if (entryIdsPerIndexKey != null && entryIdsPerIndexKey.size() > 0) { writeIRFRecords(index, entryIdsPerIndexKey, dos); entryIdsPerIndexKey.clear(); } } } }
/** * NOT THREAD-SAFE; ONLY FOR TESTS */ @SuppressWarnings("unchecked") public final Set<Object> getEntryKeys() { final THashSet keys = new THashSet(this.entryMods.size()); this.entryMods.forEachKey(new TObjectProcedure() { public final boolean execute(final Object obj) { if (obj instanceof RegionEntry) { keys.add(((RegionEntry)obj).getKeyCopy()); } else { keys.add(obj); } return true; } }); return keys; }
/** * NOT THREAD-SAFE. * This is called in case of hdfs enabled table to get newly * created entries in this tx. * As the iterator is on queue, this entry is not in the queue+hdfs. */ @SuppressWarnings("unchecked") public final Set<Object> getCreatedEntryKeys() { final THashSet keys = new THashSet(this.entryMods.size()); this.entryMods.forEachValue(new TObjectProcedure() { public final boolean execute(final Object obj) { if(obj instanceof TXEntryState) { if(((TXEntryState)obj).wasCreatedByTX()) { keys.add(((TXEntryState)obj).getUnderlyingRegionEntry()); } } return true; } }); return keys; }
final boolean isLastResult = responseCode.isGrant(); if (isLastResult || responseCode.isWaiting()) { final Object replies = this.pendingReplies.create(sender, pendingListCreator, null); if (replies != Token.DESTROYED) { + "unexpected responseCode=" + responseCode); this.pendingReplies.put(sender, Token.DESTROYED); if (this.latch == null) { addResult(sender, replyMsg.getException());
this.proxy.cleanupIndexEntry(txr, tx, op); if (lockedForRead) { Object oldEntryState = txr.getEntryMap().put(key, entry); if(oldEntryState instanceof TXEntryState) { ((TXEntryState)oldEntryState).release(); tx.removeFromList(this); Object currentEntryState = txr.getEntryMap().remove(key); assert tx == currentEntryState; if(currentEntryState instanceof TXEntryState) {
private void dumpOrLoadIndex(final IndexData indexData, final Object val, DiskEntry entry, final THashMapWithCreate.ValueCreator entryListCreator) { final SortedIndexContainer index = indexData.index; SortedIndexKey ikey = index.getIndexKey(val, entry); switch (indexData.action) { case IndexData.ONLY_LOAD: // submit insert into the index immediately indexData.indexJob.addJob(ikey, entry); break; case IndexData.BOTH_DUMP_AND_LOAD: // submit insert into the index immediately indexData.indexJob.addJob(ikey, entry); // fall-through deliberate case IndexData.ONLY_DUMP: THashMapWithCreate entryIdsPerIndexKey = indexData.indexEntryMap; TLongArrayList entryList = (TLongArrayList)entryIdsPerIndexKey .create(ikey, entryListCreator, null); entryList.add(Math.abs(entry.getDiskId().getKeyId())); break; default: Assert.fail("OplogIndex#writeIndexRecords: unexpected action=" + indexData.action); } }
public final TXEntryState createReadEntry(final Object entryKey, final RegionEntry re, final Object val, final boolean doFullValueFlush) { final TXEntryState result = createEntry(entryKey, re, val, doFullValueFlush); getEntryMap().put(entryKey, result); return result; }
final Set<?> recipients = finishRecipients.members.keySet(); .forEachEntry(new TObjectObjectProcedure() { @Override public final boolean execute(Object mbr, Object data) {
/** * Returns the total number of modifications made by this transaction to this * region's entry count. The result will have a 1 for every create, a 0 for * every destroy of entry created in TX itself and -1 for every other destroy. */ final int entryCountMod() { this.tmpEntryCount = 0; this.entryMods.forEachValue(new TObjectProcedure() { public final boolean execute(final Object txes) { if (txes instanceof TXEntryState) { tmpEntryCount += ((TXEntryState)txes).entryCountMod(); } return true; } }); return this.tmpEntryCount; }
/** * Register a new failed event at GemFireXD layer due to contraint violation in * a replicated table. This event will need to be skipped by all receivers of * the GII image. */ public final void registerFailedEvent(final EventID eventId) { if (!handleFailedEvents()) { return; } // we don't care much about perf of failed events but for correctness // hence a sync on the entire map synchronized (this.failedEvents) { this.failedEvents.forEachEntry(new TObjectObjectProcedure() { @Override public boolean execute(Object a, Object b) { @SuppressWarnings("unchecked") ArrayList<EventID> failures = (ArrayList<EventID>)b; synchronized (failures) { failures.add(eventId); } return true; } }); } }
/** * {@inheritDoc} */ @Override public void clearPendingTXRegionStates(boolean reset) { if (reset) { // in this case only reset the list else null it out final THashMapWithCreate txrs = this.pendingTXRegionStates; if (txrs != null) { txrs.clear(); } final TObjectIntHashMap txIds = this.finishedTXIdOrders; if (txIds != null) { txIds.clear(); } } else { this.pendingTXRegionStates = null; this.finishedTXIdOrders = null; } }
final boolean isLastResult = responseCode.isGrant(); if (isLastResult || responseCode.isWaiting()) { final Object replies = this.pendingReplies.create(sender, pendingListCreator, null); if (replies != Token.DESTROYED) { + "unexpected responseCode=" + responseCode); this.pendingReplies.put(sender, Token.DESTROYED); if (this.latch == null) { addResult(sender, replyMsg.getException());
final CacheProfile cp = (CacheProfile)profile; if (!cp.inRecovery && cp.cachedOrAllEventsWithListener()) { Object uninitializedRegions = recipients.members.create( cp.getDistributedMember(), recipients, cp); if (uninitializedRegions != null) {
protected void applyBatchOperationOnNewEntry(final TXState txState, final LockingPolicy lockPolicy, final TXRegionState txrs, final LocalRegion region, final LocalRegion dataRegion, final Object regionValue, final RegionEntry entry, final boolean lockedForRead, final boolean checkValid, final EntryEventImpl eventTemplate) { // this EntryState should go into the TXState list and TXRegionState mods if (lockedForRead) { // release the read lock since write lock has been acquired lockPolicy.releaseLock(entry, lockPolicy.getReadLockMode(), txState.txId, false, dataRegion); } final THashMapWithCreate entryMap = checkValid ? txrs.getEntryMap() : txrs .getInternalEntryMap(); entryMap.put(this.regionKey, this); if (isDirty()) { updateForCommit(txState); } }
else if (this.entryMods.size() > 0) { final LockMode readMode = lockPolicy.getReadLockMode(); this.numChanges = 0; this.entryMods.forEachValue(new TObjectProcedure() { public final boolean execute(final Object obj) { if (obj instanceof TXEntryState) {
int getChanges() { this.tmpEntryCount = 0; this.entryMods.forEachValue(new TObjectProcedure() { @Override public final boolean execute(final Object txes) { if (txes instanceof TXEntryState && ((TXEntryState)txes).isDirty()) { tmpEntryCount++; } return true; } }); /* if (this.uaMods != null) { changes += this.uaMods.size(); } */ return this.tmpEntryCount; }
finishRecipients.members.forEachEntry(new TObjectObjectProcedure() { @Override public final boolean execute(Object mbr, Object data) {
final boolean isLastResult = responseCode.isGrant(); if (isLastResult || responseCode.isWaiting()) { final Object replies = this.pendingReplies.create(sender, pendingListCreator, null); if (replies != Token.DESTROYED) { + "unexpected responseCode=" + responseCode); this.pendingReplies.put(sender, Token.DESTROYED); if (this.latch == null) { addResult(sender, replyMsg.getException());