if (o instanceof Conflatable) { Conflatable object = (Conflatable)o; if (object.shouldBeConflated()) { String rName = object.getRegionToConflate(); Object key = object.getKeyToConflate();
if (this.enableConflation && object.shouldBeConflated()) { if (isDebugEnabled) { logger.debug("{}: Conflating {} at queue index={} queue size={} head={} tail={}", String rName = object.getRegionToConflate(); Object key = object.getKeyToConflate(); Long previousIndex; if (previous != null) { logger.debug("{}: Removed {} and added {} for key={} head={} tail={} in queue for region={} old event={}", this, previous.getValueToConflate(), object.getValueToConflate(), key, this.headKey, tailKey, rName, previous);
private static boolean skipConflation(Conflatable current, Conflatable check) { return check.shouldBeConflated() && current.shouldBeMerged() == check.shouldBeMerged() && current.getClass().equals(check.getClass()) && ArrayUtils.objectEquals(current.getRegionToConflate(), check.getRegionToConflate()) && ArrayUtils.objectEquals(current.getKeyToConflate(), check.getKeyToConflate()); }
return ((Comparable<Object>)first).compareTo(second); int res = first.getRegionToConflate().compareTo( second.getRegionToConflate()); if (res != 0) { return res; res = GemFireXDUtils.compareKeys(first.getKeyToConflate(), second .getKeyToConflate()); if (res != 0) { return res; res = GemFireXDUtils.compareKeys(first.getValueToConflate(), second .getValueToConflate()); if (res != 0) { return res;
/** * Returns the previous counter if any for the Conflatable object * * @param event * Object to be conflated * @param newPosition * New Conflatable object's position * @return Long object denoting the position of the previous conflatable * object */ protected Long addToConflationMap(Conflatable event, Long newPosition) { String r = event.getRegionToConflate(); ConcurrentMap latestIndexesForRegion = (ConcurrentMap)this.indexes.get(r); if (latestIndexesForRegion == null) { synchronized (HARegionQueue.this) { if ((latestIndexesForRegion = (ConcurrentMap)this.indexes.get(r)) == null) { latestIndexesForRegion = createConcurrentMap(); Map newMap = new HashMap(this.indexes); newMap.put(r, latestIndexesForRegion); this.indexes = Collections.unmodifiableMap(newMap); } } } Object key = event.getKeyToConflate(); Long previousPosition = (Long)latestIndexesForRegion.put(key, newPosition); return previousPosition; }
EventID eventid = event.getEventId(); long sequenceId = eventid.getSequenceID(); ThreadIdentifier threadid = getThreadIdentifier(eventid); String r = null; if (shouldBeConflated(event)) { key = event.getKeyToConflate(); r = event.getRegionToConflate();
owningQueue.logger.info( LocalizedStrings.DEBUG, this.toString() + " eliding event with ID " + event.getEventId() + ", because it is not greater than the last sequence ID (" + this.lastSequenceIDPut + "). The rejected event has key <" + event.getKeyToConflate() + "> and value <" + event.getValueToConflate() + ">."); if (old != null) { ThreadIdentifier oldTi = HARegionQueue.getThreadIdentifier(old .getEventId()); DispatchedAndCurrentEvents oldDace = owningQueue.eventsMap.get(oldTi); if (oldDace != null) {
public void run() { PartitionedRegion prQ = null; GatewaySenderEventImpl event = (GatewaySenderEventImpl)conflatableObject; try { String regionPath = ColocationHelper.getLeaderRegion((PartitionedRegion)event.getRegion()).getFullPath(); prQ = userRegionNameToshadowPRMap.get(regionPath); destroyEventFromQueue(prQ, bucketId, previousTailKeyTobeRemoved); } catch (EntryNotFoundException e) { if (logger.isDebugEnabled()) { logger.debug("{}: Not conflating {} due to EntryNotFoundException", this, conflatableObject.getKeyToConflate()); } } if (logger.isDebugEnabled()) { logger.debug("{}: Conflated {} for key={} in queue for region={}", this, conflatableObject.getValueToConflate(), conflatableObject.getKeyToConflate(), prQ.getName()); } }
Collection<TValue> collection, boolean removeFromIndex, boolean skipExecuting) { if (confVal.shouldBeConflated()) { boolean result = applyConflate(confVal, confKey, confValEntry, removeList, null, collection, removeFromIndex, skipExecuting); else if (confVal.shouldBeMerged()) { final ArrayList<Map.Entry<Conflatable, TValue>> removeConflatables = new ArrayList<Map.Entry<Conflatable, TValue>>(); for (int index = 0; index < removeConflatables.size(); index++) { cEntry = removeConflatables.get(index); cEntry.getKey().merge(confVal); for (int index = removeConflatables.size() - 1; index >= 0; index--) { cEntry = removeConflatables.get(index); if (confVal.merge(cEntry.getKey())) { removeConflatables.remove(index); if (rremoveList != null) {
boolean conflationDone = false; String regionName = confVal.getRegionToConflate(); Conflatable sKey = new MinMaxConflatable(regionName, confKey, true); Conflatable eKey = new MinMaxConflatable(regionName, confKey, false);
mapEntry = (Map.Entry)iterator.next(); Conflatable val = (Conflatable)mapEntry.getValue(); if (val.getEventId() != null) { // bug #44959 null event ID caused NPE counterInRegion = ((Long)mapEntry.getKey()).intValue();
boolean retVal = event.shouldBeConflated();
if (obj instanceof HAEventWrapper) { Conflatable confObj = (Conflatable)obj; if ((HADispatcherDUnitTest.KEY1).equals(confObj.getKeyToConflate()) || (HADispatcherDUnitTest.KEY2).equals(confObj.getKeyToConflate())) { HADispatcherDUnitTest.isObjectPresent = true;
long seqId = event.getEventId().getSequenceID(); if (seqId > this.lastDispatchedSequenceId) { break; // we're done logger.debug("Reference count is already zero for event {}", event.getEventId()); Object key = event.getKeyToConflate(); String r = event.getRegionToConflate();
return ((Comparable<Object>)first).compareTo(second); int res = first.getRegionToConflate().compareTo( second.getRegionToConflate()); if (res != 0) { return res; res = GemFireXDUtils.compareKeys(first.getKeyToConflate(), second .getKeyToConflate()); if (res != 0) { return res; res = GemFireXDUtils.compareKeys(first.getValueToConflate(), second .getValueToConflate()); if (res != 0) { return res;
/** * Returns the previous counter if any for the Conflatable object * * @param event * Object to be conflated * @param newPosition * New Conflatable object's position * @return Long object denoting the position of the previous conflatable * object */ protected Long addToConflationMap(Conflatable event, Long newPosition) { String r = event.getRegionToConflate(); ConcurrentHashMap latestIndexesForRegion = (ConcurrentHashMap)this.indexes.get(r); if (latestIndexesForRegion == null) { synchronized (HARegionQueue.this) { if ((latestIndexesForRegion = (ConcurrentHashMap)this.indexes.get(r)) == null) { latestIndexesForRegion = createConcurrentMap(); Map newMap = new HashMap(this.indexes); newMap.put(r, latestIndexesForRegion); this.indexes = Collections.unmodifiableMap(newMap); } } } Object key = event.getKeyToConflate(); Long previousPosition = (Long)latestIndexesForRegion.put(key, newPosition); return previousPosition; }
logger.trace(LogMarker.BRIDGE_SERVER, "{} eliding event with ID {}, because it is not greater than the last sequence ID ({}). The rejected event has key <{}> and value <{}>", this, event.getEventId(), this.lastSequenceIDPut, event.getKeyToConflate(), event.getValueToConflate()); if (old != null) { ThreadIdentifier oldTi = HARegionQueue.getThreadIdentifier(old .getEventId()); DispatchedAndCurrentEvents oldDace = (DispatchedAndCurrentEvents)owningQueue.eventsMap .get(oldTi);
public void run() { PartitionedRegion prQ = null; GatewaySenderEventImpl event = (GatewaySenderEventImpl)conflatableObject; try { String regionPath = ColocationHelper.getLeaderRegion((PartitionedRegion)event.getRegion()).getFullPath(); prQ = userRegionNameToshadowPRMap.get(regionPath); destroyEventFromQueue(prQ, bucketId, previousTailKeyTobeRemoved); } catch (EntryNotFoundException e) { if (logger.fineEnabled()) { logger.fine(this + ": Not conflating " + conflatableObject.getKeyToConflate() + "due to EntryNotFoundException "); } } if (logger.fineEnabled()) { logger.fine(this + ": " + "Conflated " + conflatableObject.getValueToConflate() + " for key=" + conflatableObject.getKeyToConflate() + " in queue for region=" + prQ.getName()); } }
Collection<TValue> collection, boolean removeFromIndex, boolean skipExecuting) { if (confVal.shouldBeConflated()) { boolean result = applyConflate(confVal, confKey, confValEntry, removeList, null, collection, removeFromIndex, skipExecuting); else if (confVal.shouldBeMerged()) { final ArrayList<Map.Entry<Conflatable, TValue>> removeConflatables = new ArrayList<Map.Entry<Conflatable, TValue>>(); for (int index = 0; index < removeConflatables.size(); index++) { cEntry = removeConflatables.get(index); cEntry.getKey().merge(confVal); for (int index = removeConflatables.size() - 1; index >= 0; index--) { cEntry = removeConflatables.get(index); if (confVal.merge(cEntry.getKey())) { removeConflatables.remove(index); if (rremoveList != null) {
boolean conflationDone = false; String regionName = confVal.getRegionToConflate(); Conflatable sKey = new MinMaxConflatable(regionName, confKey, true); Conflatable eKey = new MinMaxConflatable(regionName, confKey, false);