@Override protected ContainsKeyBulkExecutorMessage clone() { return new ContainsKeyBulkExecutorMessage(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(); }
final TXStateInterface tx = getTXState(); Object key; int bucketId = 0; populateKeysToBucketIdsMap(this.bucketBitSet); final BulkKeyLookupResult oneResult = new BulkKeyLookupResult(key, containsKey); sendResult(oneResult); lastResult(finalResult);
Object[] regionKeysArray = this.regionKeysSet.toArray(); Object[] routingObjects = getRoutingObjectsForKeys(regionKeysArray); ContainsKeyBulkExecutorMessage msg = new ContainsKeyBulkExecutorMessage( this.baseRegion, regionKeysArray, routingObjects, this.txState, lcc); Object result = msg.executeFunction(); assert result instanceof GfxdListResultCollector; ArrayList<Object> resultList = ((GfxdListResultCollector) result)
/** * Set the keys to buckets ids 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 map is populated in execute() in that case if (bucketBitSet != null) { this.populateKeysToBucketIdsMap(bucketBitSet); } }
@SuppressWarnings("unchecked") public ContainsKeyBulkExecutorMessage(final LocalRegion region, 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.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.inRoutingObjects = InternalDataSerializer.readObject(in); this.keysToBucketIds = 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()); } }
final TXStateInterface tx = getTXState(); Object key; int bucketId = 0; populateKeysToBucketIdsMap(this.bucketBitSet); final BulkKeyLookupResult oneResult = new BulkKeyLookupResult(key, containsKey); sendResult(oneResult); lastResult(finalResult);
Object[] regionKeysArray = this.regionKeysSet.toArray(); Object[] routingObjects = getRoutingObjectsForKeys(regionKeysArray); ContainsKeyBulkExecutorMessage msg = new ContainsKeyBulkExecutorMessage( this.baseRegion, regionKeysArray, routingObjects, this.txState, lcc); Object result = msg.executeFunction(); assert result instanceof GfxdListResultCollector; ArrayList<Object> resultList = ((GfxdListResultCollector) result)
/** * Set the keys to buckets ids 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 map is populated in execute() in that case if (bucketBitSet != null) { this.populateKeysToBucketIdsMap(bucketBitSet); } }
@SuppressWarnings("unchecked") public ContainsKeyBulkExecutorMessage(final LocalRegion region, 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.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.inRoutingObjects = InternalDataSerializer.readObject(in); this.keysToBucketIds = 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()); } }
final TXStateInterface tx = getTXState(); Object key; int bucketId = 0; populateKeysToBucketIdsMap(this.bucketBitSet); final BulkKeyLookupResult oneResult = new BulkKeyLookupResult(key, containsKey); sendResult(oneResult); lastResult(finalResult);
Object[] regionKeysArray = this.regionKeysSet.toArray(); Object[] routingObjects = getRoutingObjectsForKeys(regionKeysArray); ContainsKeyBulkExecutorMessage msg = new ContainsKeyBulkExecutorMessage( this.baseRegion, regionKeysArray, routingObjects, this.txState, lcc); Object result = msg.executeFunction(); assert result instanceof GfxdListResultCollector; ArrayList<Object> resultList = ((GfxdListResultCollector) result)
@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 ContainsKeyBulkExecutorMessage clone() { return new ContainsKeyBulkExecutorMessage(this); }
protected String getID() { return getShortClassName(); }
/** * Set the keys to buckets ids 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 map is populated in execute() in that case if (bucketBitSet != null) { this.populateKeysToBucketIdsMap(bucketBitSet); } }
@SuppressWarnings("unchecked") public ContainsKeyBulkExecutorMessage(final LocalRegion region, 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.inRoutingObjects = routingObjects; this.regionPath = region.getFullPath(); if (region.getPartitionAttributes() != null) { this.pr = (PartitionedRegion)region; this.prId = this.pr.getPRId(); } }