@Override protected void appendFields(final StringBuilder sb) { super.appendFields(sb); sb.append(";startBy=").append(this.startBy).append(";increment=") .append(this.increment); } }
@Override public boolean containsRegionContentChange() { // for TX state flush but not for inline processing case since for that // case the operation will be received when endOperation has been invoked // and CreateRegionMessage was waiting on ops in progress return isTransactional() && this.processorId != 0 && canStartRemoteTransaction(); }
/** * @see AbstractOperationMessage#computeCompressedShort(short) */ @Override protected final short computeCompressedShort(short flags) { flags = super.computeCompressedShort(flags); if (this.hasProjection) { flags |= HAS_PROJECTION; } if (this.hasLoader) { flags |= HAS_LOADER; } if (this.canStartTX) { flags |= CAN_START_TX; } if (this.forUpdate) { flags |= FOR_UPDATE; } return flags; }
final DM dm = sys.getDistributionManager(); final InternalDistributedMember myId = cache.getMyId(); final String logName = getID(); final long beginMapTime = this.timeStatsEnabled ? XPLAINUtil.recordTiming(-1) : 0; RetryTimeKeeper retryTime = null; final boolean optimizeForWrite = optimizeForWrite() || region.isHDFSReadWriteRegion(); InternalDistributedMember member; createReplyProcessor(dm, member); setProcessor(processor); + ": executing region message " + toString() + " on node " + member); if (preferredIsSelf) { this.target = myId; executeOnMember(sys, dm, myId, true, enableStreaming); executeOnMember(sys, dm, member, false, enableStreaming); final Set<DistributedMember> targets = (Set)members; final GfxdFunctionReplyMessageProcessor<Object> processor = createReplyProcessor(dm, targets); setProcessor(processor); + ": executing region message " + toString() + " on nodes " + members);
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { super.fromData(in); ser_deser_time = this.timeStatsEnabled ? (ser_deser_time == 0 ? -1 /*record*/ : -2/*ignore nested call*/) : 0; this.referenceKeyColumnIndexes = DataSerializer.readIntArray(in); // recording end of de-serialization here instead of AbstractOperationMessage. if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }
@Override protected boolean requiresTXFlushAfterExecution() { // to flush any batched read locks return this.allCopies ? false : canStartRemoteTransaction(); }
@Override public Object executeFunction(boolean enableStreaming, boolean isPossibleDuplicate, AbstractGemFireResultSet rs, boolean orderedReplies, boolean getResult) throws StandardException, SQLException { // overridden for stats final CachePerfStats stats = this.region.getCachePerfStats(); final long start = stats.startGet(); Object result = null; try { result = super.executeFunction(enableStreaming, isPossibleDuplicate, rs, orderedReplies, getResult); } finally { // Fixes for Issue #48947 // If a SQL select on a PR table with primary key lookup is done it goes // by GetExecutorMessage to peer members. // As this message bypasses the Region.get() API and directly access // InternalDataView.getLocally() the "gets" stats are not getting updated. // We need to update the stats from outside to show correct stats. if (this.pr != null) { this.pr.prStats.endGet(start); } stats.endGet(start, result == null); } return result; }
final DM dm = sys.getDistributionManager(); final InternalDistributedMember myId = cache.getMyId(); final String logName = getID(); final long beginMapTime = this.timeStatsEnabled ? XPLAINUtil.recordTiming(-1) : 0; RetryTimeKeeper retryTime = null; final boolean optimizeForWrite = optimizeForWrite() || region.isHDFSReadWriteRegion(); InternalDistributedMember member; createReplyProcessor(dm, member); setProcessor(processor); + ": executing region message " + toString() + " on node " + member); if (preferredIsSelf) { this.target = myId; executeOnMember(sys, dm, myId, true, enableStreaming); executeOnMember(sys, dm, member, false, enableStreaming); final Set<DistributedMember> targets = (Set)members; final GfxdFunctionReplyMessageProcessor<Object> processor = createReplyProcessor(dm, targets); setProcessor(processor); + ": executing region message " + toString() + " on nodes " + members);
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { super.fromData(in); ser_deser_time = this.timeStatsEnabled ? (ser_deser_time == 0 ? -1 /*record*/ : -2/*ignore nested call*/) : 0; this.referenceKeyColumnIndexes = DataSerializer.readIntArray(in); // recording end of de-serialization here instead of AbstractOperationMessage. if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }
/** * @see TransactionMessage#useTransactionProxy() */ @Override public boolean useTransactionProxy() { // use TX proxy to enable batching of read locks but only if we did not // distribute to all copies (due to uninitialized member) return this.allCopies ? false : canStartRemoteTransaction(); }
@Override public Object executeFunction(boolean enableStreaming, boolean isPossibleDuplicate, AbstractGemFireResultSet rs, boolean orderedReplies, boolean getResult) throws StandardException, SQLException { // overridden for stats final CachePerfStats stats = this.region.getCachePerfStats(); final long start = stats.startGet(); Object result = null; try { result = super.executeFunction(enableStreaming, isPossibleDuplicate, rs, orderedReplies, getResult); } finally { // Fixes for Issue #48947 // If a SQL select on a PR table with primary key lookup is done it goes // by GetExecutorMessage to peer members. // As this message bypasses the Region.get() API and directly access // InternalDataView.getLocally() the "gets" stats are not getting updated. // We need to update the stats from outside to show correct stats. if (this.pr != null) { this.pr.prStats.endGet(start); } stats.endGet(start, result == null); } return result; }
final DM dm = sys.getDistributionManager(); final InternalDistributedMember myId = cache.getMyId(); final String logName = getID(); final long beginMapTime = this.timeStatsEnabled ? XPLAINUtil.recordTiming(-1) : 0; RetryTimeKeeper retryTime = null; final boolean optimizeForWrite = optimizeForWrite() || region.isHDFSReadWriteRegion(); InternalDistributedMember member; createReplyProcessor(dm, member); setProcessor(processor); + ": executing region message " + toString() + " on node " + member); if (preferredIsSelf) { this.target = myId; executeOnMember(sys, dm, myId, true, enableStreaming); executeOnMember(sys, dm, member, false, enableStreaming); final Set<DistributedMember> targets = (Set)members; final GfxdFunctionReplyMessageProcessor<Object> processor = createReplyProcessor(dm, targets); setProcessor(processor); + ": executing region message " + toString() + " on nodes " + members);
@Override public boolean containsRegionContentChange() { // for TX state flush but not for inline processing case since for that // case the operation will be received when endOperation has been invoked // and CreateRegionMessage was waiting on ops in progress return isTransactional() && this.processorId != 0 && canStartRemoteTransaction(); }
@Override public void fromData(DataInput in) throws IOException, ClassNotFoundException { super.fromData(in); ser_deser_time = this.timeStatsEnabled ? (ser_deser_time == 0 ? -1 /*record*/ : -2/*ignore nested call*/) : 0; this.referenceKeyColumnIndexes = DataSerializer.readIntArray(in); // recording end of de-serialization here instead of AbstractOperationMessage. if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }
@Override protected void appendFields(final StringBuilder sb) { super.appendFields(sb); sb.append(";startBy=").append(this.startBy).append(";increment=") .append(this.increment); } }
@Override protected boolean requiresTXFlushAfterExecution() { // to flush any batched read locks return this.allCopies ? false : canStartRemoteTransaction(); }
/** * @see AbstractOperationMessage#computeCompressedShort(short) */ @Override protected final short computeCompressedShort(short flags) { flags = super.computeCompressedShort(flags); if (this.hasProjection) { flags |= HAS_PROJECTION; } if (this.hasLoader) { flags |= HAS_LOADER; } if (this.canStartTX) { flags |= CAN_START_TX; } if (this.forUpdate) { flags |= FOR_UPDATE; } return flags; }
@Override public Object executeFunction(boolean enableStreaming, boolean isPossibleDuplicate, AbstractGemFireResultSet rs, boolean orderedReplies, boolean getResult) throws StandardException, SQLException { // overridden for stats final CachePerfStats stats = this.region.getCachePerfStats(); final long start = stats.startGet(); Object result = null; try { result = super.executeFunction(enableStreaming, isPossibleDuplicate, rs, orderedReplies, getResult); } finally { // Fixes for Issue #48947 // If a SQL select on a PR table with primary key lookup is done it goes // by GetExecutorMessage to peer members. // As this message bypasses the Region.get() API and directly access // InternalDataView.getLocally() the "gets" stats are not getting updated. // We need to update the stats from outside to show correct stats. if (this.pr != null) { this.pr.prStats.endGet(start); } stats.endGet(start, result == null); } return result; }
@Override public boolean containsRegionContentChange() { // for TX state flush but not for inline processing case since for that // case the operation will be received when endOperation has been invoked // and CreateRegionMessage was waiting on ops in progress return isTransactional() && this.processorId != 0 && canStartRemoteTransaction(); }
@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.startBy = InternalDataSerializer.readSignedVL(in); this.increment = InternalDataSerializer.readSignedVL(in); // recording end of de-serialization here instead of AbstractOperationMessage. if (this.timeStatsEnabled && ser_deser_time == -1) { this.ser_deser_time = XPLAINUtil.recordStdTiming(getTimestamp()); } }