@Override protected ContainsUniqueKeyBulkExecutorMessage clone() { return new ContainsUniqueKeyBulkExecutorMessage(this); }
@Override public final int getMessageProcessorType() { // Make this serial so that it will be processed in the p2p msg reader // which gives it better performance. // don't use SERIAL_EXECUTOR if we may have to wait for a pending TX // else if may deadlock as the p2p msg reader thread will be blocked // don't use SERIAL_EXECUTOR for RepeatableRead isolation level else // it can block P2P reader thread thus blocking any possible commits // which could have released the SH lock this thread is waiting on return this.pendingTXId == null && getLockingPolicy() == LockingPolicy.NONE ? DistributionManager.SERIAL_EXECUTOR : DistributionManager.PARTITIONED_REGION_EXECUTOR; }
protected String getID() { return getShortClassName(); }
boolean doLog = DistributionManager.VERBOSE | GemFireXDUtils.TraceQuery; final TXStateInterface tx = getTXState(); boolean containsKey; populateKeysForTheCurrentNode(this.bucketBitSet); final BulkKeyLookupResult oneResult = new BulkKeyLookupResult(key, containsKey); sendResult(oneResult); lastResult(finalResult);
/** * Set the keys for this member */ @Override protected void setArgsForMember(DistributedMember member, Set<DistributedMember> messageAwareMembers) { this.member = member; final BitSetSet bucketBitSet = (BitSetSet) membersToBucketIds .get(this.member); // bucketBitSet could be null in the case of self (message sending data // node) the list is populated in execute() in that case if (bucketBitSet != null) { this.populateKeysForTheCurrentNode(bucketBitSet); } }
@SuppressWarnings("unchecked") public ContainsUniqueKeyBulkExecutorMessage(final LocalRegion region, int[] referenceKeyColumnIndexes, Object[] keys, Object[] routingObjects, final TXStateInterface tx, final LanguageConnectionContext lcc) { super(new GfxdListResultCollector(null, true), region, new THashSet( Arrays.asList(routingObjects)) /*routingObjects*/, tx, getTimeStatsSettings(lcc)); this.inKeys = keys; this.referenceKeyColumnIndexes = referenceKeyColumnIndexes; this.inRoutingObjects = routingObjects; this.regionPath = region.getFullPath(); if (region.getPartitionAttributes() != null) { this.pr = (PartitionedRegion)region; this.prId = this.pr.getPRId(); } }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { ser_deser_time = this.timeStatsEnabled ? (ser_deser_time == 0 ? -1 /*record*/ : -2/*ignore nested call*/) : 0; super.fromData(in); // this.inKeys = InternalDataSerializer.readObject(in); this.referenceKeyColumnIndexes = DataSerializer.readIntArray(in); // this.inRoutingObjects = InternalDataSerializer.readObject(in); this.keysForTheCurrentNode = InternalDataSerializer.readObject(in); if ((flags & IS_PARTITIONED_TABLE) != 0) { this.prId = (int)InternalDataSerializer.readUnsignedVL(in); } else { this.regionPath = DataSerializer.readString(in); } if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }
boolean doLog = DistributionManager.VERBOSE | GemFireXDUtils.TraceQuery; final TXStateInterface tx = getTXState(); boolean containsKey; populateKeysForTheCurrentNode(this.bucketBitSet); final BulkKeyLookupResult oneResult = new BulkKeyLookupResult(key, containsKey); sendResult(oneResult); lastResult(finalResult);
/** * Set the keys for this member */ @Override protected void setArgsForMember(DistributedMember member, Set<DistributedMember> messageAwareMembers) { this.member = member; final BitSetSet bucketBitSet = (BitSetSet) membersToBucketIds .get(this.member); // bucketBitSet could be null in the case of self (message sending data // node) the list is populated in execute() in that case if (bucketBitSet != null) { this.populateKeysForTheCurrentNode(bucketBitSet); } }
@SuppressWarnings("unchecked") public ContainsUniqueKeyBulkExecutorMessage(final LocalRegion region, int[] referenceKeyColumnIndexes, Object[] keys, Object[] routingObjects, final TXStateInterface tx, final LanguageConnectionContext lcc) { super(new GfxdListResultCollector(null, true), region, new THashSet( Arrays.asList(routingObjects)) /*routingObjects*/, tx, getTimeStatsSettings(lcc), true); this.inKeys = keys; this.referenceKeyColumnIndexes = referenceKeyColumnIndexes; this.inRoutingObjects = routingObjects; this.regionPath = region.getFullPath(); if (region.getPartitionAttributes() != null) { this.pr = (PartitionedRegion)region; this.prId = this.pr.getPRId(); } }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { ser_deser_time = this.timeStatsEnabled ? (ser_deser_time == 0 ? -1 /*record*/ : -2/*ignore nested call*/) : 0; super.fromData(in); // this.inKeys = InternalDataSerializer.readObject(in); this.referenceKeyColumnIndexes = DataSerializer.readIntArray(in); // this.inRoutingObjects = InternalDataSerializer.readObject(in); this.keysForTheCurrentNode = InternalDataSerializer.readObject(in); if ((flags & IS_PARTITIONED_TABLE) != 0) { this.prId = (int)InternalDataSerializer.readUnsignedVL(in); } else { this.regionPath = DataSerializer.readString(in); } if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }
boolean doLog = DistributionManager.VERBOSE | GemFireXDUtils.TraceQuery; final TXStateInterface tx = getTXState(); boolean containsKey; populateKeysForTheCurrentNode(this.bucketBitSet); final BulkKeyLookupResult oneResult = new BulkKeyLookupResult(key, containsKey); sendResult(oneResult); lastResult(finalResult);
@Override public final int getMessageProcessorType() { // Make this serial so that it will be processed in the p2p msg reader // which gives it better performance. // don't use SERIAL_EXECUTOR if we may have to wait for a pending TX // else if may deadlock as the p2p msg reader thread will be blocked // don't use SERIAL_EXECUTOR for RepeatableRead isolation level else // it can block P2P reader thread thus blocking any possible commits // which could have released the SH lock this thread is waiting on return this.pendingTXId == null && getLockingPolicy() == LockingPolicy.NONE ? DistributionManager.SERIAL_EXECUTOR : DistributionManager.PARTITIONED_REGION_EXECUTOR; }
@Override protected ContainsUniqueKeyBulkExecutorMessage clone() { return new ContainsUniqueKeyBulkExecutorMessage(this); }
protected String getID() { return getShortClassName(); }
/** * Set the keys for this member */ @Override protected void setArgsForMember(DistributedMember member, Set<DistributedMember> messageAwareMembers) { this.member = member; final BitSetSet bucketBitSet = (BitSetSet) membersToBucketIds .get(this.member); // bucketBitSet could be null in the case of self (message sending data // node) the list is populated in execute() in that case if (bucketBitSet != null) { this.populateKeysForTheCurrentNode(bucketBitSet); } }
@SuppressWarnings("unchecked") public ContainsUniqueKeyBulkExecutorMessage(final LocalRegion region, int[] referenceKeyColumnIndexes, Object[] keys, Object[] routingObjects, final TXStateInterface tx, final LanguageConnectionContext lcc) { super(new GfxdListResultCollector(null, true), region, new THashSet( Arrays.asList(routingObjects)) /*routingObjects*/, tx, getTimeStatsSettings(lcc)); this.inKeys = keys; this.referenceKeyColumnIndexes = referenceKeyColumnIndexes; this.inRoutingObjects = routingObjects; this.regionPath = region.getFullPath(); if (region.getPartitionAttributes() != null) { this.pr = (PartitionedRegion)region; this.prId = this.pr.getPRId(); } }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { ser_deser_time = this.timeStatsEnabled ? (ser_deser_time == 0 ? -1 /*record*/ : -2/*ignore nested call*/) : 0; super.fromData(in); // this.inKeys = InternalDataSerializer.readObject(in); this.referenceKeyColumnIndexes = DataSerializer.readIntArray(in); // this.inRoutingObjects = InternalDataSerializer.readObject(in); this.keysForTheCurrentNode = InternalDataSerializer.readObject(in); if ((flags & IS_PARTITIONED_TABLE) != 0) { this.prId = (int)InternalDataSerializer.readUnsignedVL(in); } else { this.regionPath = DataSerializer.readString(in); } if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }
@Override public final int getMessageProcessorType() { // Make this serial so that it will be processed in the p2p msg reader // which gives it better performance. // don't use SERIAL_EXECUTOR if we may have to wait for a pending TX // else if may deadlock as the p2p msg reader thread will be blocked // don't use SERIAL_EXECUTOR for RepeatableRead isolation level else // it can block P2P reader thread thus blocking any possible commits // which could have released the SH lock this thread is waiting on return this.pendingTXId == null && getLockingPolicy() == LockingPolicy.NONE ? DistributionManager.SERIAL_EXECUTOR : DistributionManager.PARTITIONED_REGION_EXECUTOR; }
@Override protected ContainsUniqueKeyBulkExecutorMessage clone() { return new ContainsUniqueKeyBulkExecutorMessage(this); }