Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
import org.apache.ignite.internal.client.GridClientConfiguration;
import org.apache.ignite.internal.client.GridClientNode;
import org.apache.ignite.internal.commandline.argument.CommandArgUtils;
import org.apache.ignite.internal.commandline.cache.argument.TracingConfigurationCommandArg;
import org.apache.ignite.internal.commandline.tracing.configuration.TracingConfigurationArguments;
import org.apache.ignite.internal.commandline.tracing.configuration.TracingConfigurationCommandArg;
import org.apache.ignite.internal.commandline.tracing.configuration.TracingConfigurationSubcommand;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.internal.visor.tracing.configuration.VisorTracingConfigurationTask;
import org.apache.ignite.internal.visor.tracing.configuration.VisorTracingConfigurationTaskArg;
import org.apache.ignite.internal.visor.tracing.configuration.VisorTracingConfigurationTaskResult;
import org.apache.ignite.spi.tracing.Scope;

import static org.apache.ignite.IgniteSystemProperties.IGNITE_ENABLE_EXPERIMENTAL_COMMAND;
import static org.apache.ignite.internal.commandline.CommandHandler.UTILITY_NAME;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@

import java.util.Collections;
import java.util.Set;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.internal.processors.tracing.Span;
import org.apache.ignite.internal.visor.tracing.configuration.VisorTracingConfigurationItem;
import org.apache.ignite.spi.tracing.Scope;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@
* limitations under the License.
*/

package org.apache.ignite.internal.commandline.cache.argument;
package org.apache.ignite.internal.commandline.tracing.configuration;

import org.apache.ignite.internal.commandline.CommandList;
import org.apache.ignite.internal.commandline.argument.CommandArg;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.internal.processors.tracing.Span;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.ignite.internal.commandline.CommandList;
import org.apache.ignite.internal.commandline.argument.CommandArg;
import org.apache.ignite.internal.processors.tracing.Span;
import org.apache.ignite.spi.tracing.Scope;

/**
* {@link CommandList#TRACING_CONFIGURATION} command arguments.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,12 @@
import org.apache.ignite.internal.commandline.cache.CacheValidateIndexes;
import org.apache.ignite.internal.commandline.cache.FindAndDeleteGarbage;
import org.apache.ignite.internal.commandline.cache.argument.FindAndDeleteGarbageArg;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.internal.util.typedef.T2;
import org.apache.ignite.internal.visor.tx.VisorTxOperation;
import org.apache.ignite.internal.visor.tx.VisorTxProjection;
import org.apache.ignite.internal.visor.tx.VisorTxSortOrder;
import org.apache.ignite.internal.visor.tx.VisorTxTaskArg;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.testframework.junits.SystemPropertiesRule;
import org.apache.ignite.testframework.junits.WithSystemProperty;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import org.apache.ignite.util.GridCommandHandlerMetadataTest;
import org.apache.ignite.util.GridCommandHandlerSslTest;
import org.apache.ignite.util.GridCommandHandlerTest;
import org.apache.ignite.util.GridCommandHandlerTracingConfigurationTest;
import org.apache.ignite.util.GridCommandHandlerWithSSLTest;
import org.apache.ignite.util.KillCommandsCommandShTest;
import org.junit.runner.RunWith;
Expand Down Expand Up @@ -61,6 +62,8 @@
GridCommandHandlerMetadataTest.class,

KillCommandsCommandShTest.class,

GridCommandHandlerTracingConfigurationTest.class,
})
public class IgniteControlUtilityTestSuite {
}
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@
import static org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_UNEXPECTED_ERROR;
import static org.apache.ignite.internal.commandline.CommandHandler.UTILITY_NAME;
import static org.apache.ignite.internal.commandline.CommandList.BASELINE;
import static org.apache.ignite.internal.commandline.CommandList.TRACING_CONFIGURATION;
import static org.apache.ignite.internal.commandline.CommandList.METADATA;
import static org.apache.ignite.internal.commandline.CommandList.TRACING_CONFIGURATION;
import static org.apache.ignite.internal.commandline.CommandList.WAL;
import static org.apache.ignite.internal.commandline.CommonArgParser.CMD_VERBOSE;
import static org.apache.ignite.internal.commandline.OutputFormat.MULTI_LINE;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
import java.util.Map;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.commandline.CommandHandler;
import org.apache.ignite.internal.commandline.TracingConfigurationCommand;
import org.apache.ignite.internal.visor.tracing.configuration.VisorTracingConfigurationTaskResult;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.spi.tracing.TracingConfigurationCoordinates;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.apache.ignite.spi.tracing.TracingConfigurationParameters;
import org.apache.ignite.internal.commandline.TracingConfigurationCommand;
import org.apache.ignite.internal.visor.tracing.configuration.VisorTracingConfigurationTaskResult;
import org.junit.Test;

import static org.apache.ignite.internal.commandline.CommandHandler.EXIT_CODE_OK;
Expand Down
6 changes: 3 additions & 3 deletions modules/core/src/main/java/org/apache/ignite/Ignite.java
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@
import org.apache.ignite.configuration.DataStorageConfiguration;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.configuration.NearCacheConfiguration;
import org.apache.ignite.lang.IgniteExperimental;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.apache.ignite.internal.util.typedef.G;
import org.apache.ignite.lang.IgniteExperimental;
import org.apache.ignite.lang.IgniteProductVersion;
import org.apache.ignite.plugin.IgnitePlugin;
import org.apache.ignite.plugin.PluginNotFoundException;
import org.jetbrains.annotations.Nullable;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

/**
* Main entry-point for all Ignite APIs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,4 +124,11 @@ public Transaction txStart(TransactionConcurrency concurrency, TransactionIsolat
* @throws NullPointerException if label is null.
*/
public IgniteTransactions withLabel(String lb);

/**
* Returns an instance of {@code IgniteTransactions} tran will trace every transaction.
*
* @return Trace-enabled transactions intance.
*/
public IgniteTransactions withTracing();
}
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,6 @@
import org.apache.ignite.internal.processors.subscription.GridInternalSubscriptionProcessor;
import org.apache.ignite.internal.processors.task.GridTaskProcessor;
import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.apache.ignite.internal.suggestions.GridPerformanceSuggestions;
import org.apache.ignite.internal.suggestions.JvmConfigurationSuggestions;
import org.apache.ignite.internal.suggestions.OsConfigurationSuggestions;
Expand Down Expand Up @@ -233,6 +232,7 @@
import org.apache.ignite.spi.IgniteSpiVersionCheckException;
import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.apache.ignite.thread.IgniteStripedThreadPoolExecutor;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,32 +27,32 @@
import org.apache.ignite.internal.processors.tracing.DeferredSpan;
import org.apache.ignite.internal.processors.tracing.NoopSpan;
import org.apache.ignite.internal.processors.tracing.NoopTracing;
import org.apache.ignite.internal.processors.tracing.SpanImpl;
import org.apache.ignite.internal.processors.tracing.configuration.GridTracingConfigurationManager;
import org.apache.ignite.spi.tracing.NoopTracingSpi;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.internal.processors.tracing.Span;
import org.apache.ignite.internal.processors.tracing.SpanImpl;
import org.apache.ignite.internal.processors.tracing.SpanTags;
import org.apache.ignite.internal.processors.tracing.SpanType;
import org.apache.ignite.internal.processors.tracing.Tracing;
import org.apache.ignite.spi.tracing.SpiSpecificSpan;
import org.apache.ignite.spi.tracing.TracingConfigurationCoordinates;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.apache.ignite.spi.tracing.TracingSpi;
import org.apache.ignite.spi.tracing.TracingConfigurationParameters;
import org.apache.ignite.internal.processors.tracing.configuration.GridTracingConfigurationManager;
import org.apache.ignite.internal.processors.tracing.messages.TraceableMessagesHandler;
import org.apache.ignite.internal.util.typedef.internal.LT;
import org.apache.ignite.logger.NullLogger;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.tracing.NoopTracingSpi;
import org.apache.ignite.spi.tracing.Scope;
import org.apache.ignite.spi.tracing.SpiSpecificSpan;
import org.apache.ignite.spi.tracing.TracingConfigurationCoordinates;
import org.apache.ignite.spi.tracing.TracingConfigurationManager;
import org.apache.ignite.spi.tracing.TracingConfigurationParameters;
import org.apache.ignite.spi.tracing.TracingSpi;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

import static org.apache.ignite.internal.processors.tracing.SpanTags.NODE;
import static org.apache.ignite.spi.tracing.TracingConfigurationParameters.SAMPLING_RATE_NEVER;
import static org.apache.ignite.internal.util.GridClientByteUtils.bytesToInt;
import static org.apache.ignite.internal.util.GridClientByteUtils.bytesToShort;
import static org.apache.ignite.internal.util.GridClientByteUtils.intToBytes;
import static org.apache.ignite.internal.util.GridClientByteUtils.shortToBytes;
import static org.apache.ignite.spi.tracing.TracingConfigurationParameters.SAMPLING_RATE_NEVER;

/**
* Tracing Manager.
Expand Down Expand Up @@ -531,4 +531,4 @@ private boolean shouldSample(double samlingRate) {

return Math.random() <= samlingRate;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4363,7 +4363,8 @@ public void awaitLastFut() {
!ctx.skipStore(),
ctx.mvccEnabled(),
0,
null
null,
false
);

assert tx != null;
Expand Down Expand Up @@ -4481,7 +4482,8 @@ private <T> IgniteInternalFuture<T> asyncOp(final AsyncOp<T> op) {
!skipStore,
ctx.mvccEnabled(),
0,
null);
null,
false);

return asyncOp(tx, op, opCtx, /*retry*/false);
}
Expand Down Expand Up @@ -5493,7 +5495,8 @@ public void execute(boolean retry) {
opCtx == null || !opCtx.skipStore(),
ctx.mvccEnabled(),
0,
null);
null,
false);

IgniteInternalFuture<T> fut = asyncOp(tx, op, opCtx, retry);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,7 @@ private void cleanup(CacheConfiguration cfg, @Nullable Object rsrc, boolean near

locCfgMgr = new GridLocalConfigManager(this, ctx);

transactions = new IgniteTransactionsImpl(sharedCtx, null);
transactions = new IgniteTransactionsImpl(sharedCtx, null, false);

// Start shared managers.
for (GridCacheSharedManager mgr : sharedCtx.managers())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@
import org.apache.ignite.internal.processors.cache.version.GridCacheVersion;
import org.apache.ignite.internal.processors.dr.GridDrType;
import org.apache.ignite.internal.processors.timeout.GridTimeoutObjectAdapter;
import org.apache.ignite.internal.processors.tracing.MTC;
import org.apache.ignite.internal.processors.tracing.Span;
import org.apache.ignite.internal.util.future.GridFutureAdapter;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.tostring.GridToStringInclude;
Expand All @@ -82,6 +84,8 @@
import static org.apache.ignite.events.EventType.EVT_CACHE_REBALANCE_OBJECT_LOADED;
import static org.apache.ignite.internal.processors.dr.GridDrType.DR_NONE;
import static org.apache.ignite.internal.processors.dr.GridDrType.DR_PRELOAD;
import static org.apache.ignite.internal.processors.tracing.MTC.TraceSurroundings;
import static org.apache.ignite.internal.processors.tracing.SpanType.TX_DHT_LOCK_MAP;

/**
* Cache lock future.
Expand All @@ -91,6 +95,9 @@ public final class GridDhtLockFuture extends GridCacheCompoundIdentityFuture<Boo
/** */
private static final long serialVersionUID = 0L;

/** Tracing span. */
private Span span;

/** Logger reference. */
private static final AtomicReference<IgniteLogger> logRef = new AtomicReference<>();

Expand Down Expand Up @@ -729,30 +736,32 @@ private synchronized boolean checkLocks() {

/** {@inheritDoc} */
@Override public boolean onDone(@Nullable Boolean success, @Nullable Throwable err) {
// Protect against NPE.
if (success == null) {
assert err != null;
try (TraceSurroundings ignored = MTC.support(span)) {
// Protect against NPE.
if (success == null) {
assert err != null;

success = false;
}
success = false;
}

assert err == null || !success;
assert !success || (initialized() && !hasPending()) : "Invalid done callback [success=" + success +
", fut=" + this + ']';
assert err == null || !success;
assert !success || (initialized() && !hasPending()) : "Invalid done callback [success=" + success +
", fut=" + this + ']';

if (log.isDebugEnabled())
log.debug("Received onDone(..) callback [success=" + success + ", err=" + err + ", fut=" + this + ']');
if (log.isDebugEnabled())
log.debug("Received onDone(..) callback [success=" + success + ", err=" + err + ", fut=" + this + ']');

// If locks were not acquired yet, delay completion.
if (isDone() || (err == null && success && !checkLocks()))
return false;
// If locks were not acquired yet, delay completion.
if (isDone() || (err == null && success && !checkLocks()))
return false;

synchronized (this) {
if (this.err == null)
this.err = err;
}
synchronized (this) {
if (this.err == null)
this.err = err;
}

return onComplete(success, err instanceof NodeStoppingException, true);
return onComplete(success, err instanceof NodeStoppingException, true);
}
}

/**
Expand Down Expand Up @@ -810,18 +819,21 @@ private synchronized boolean onComplete(boolean success, boolean stopping, boole
*
*/
public void map() {
if (F.isEmpty(entries)) {
onComplete(true, false, true);
try (TraceSurroundings ignored =
MTC.supportContinual(span = cctx.kernalContext().tracing().create(TX_DHT_LOCK_MAP, MTC.span()))) {
if (F.isEmpty(entries)) {
onComplete(true, false, true);

return;
}
return;
}

readyLocks();
readyLocks();

if (timeout > 0 && !isDone()) { // Prevent memory leak if future is completed by call to readyLocks.
timeoutObj = new LockTimeoutObject();
if (timeout > 0 && !isDone()) { // Prevent memory leak if future is completed by call to readyLocks.
timeoutObj = new LockTimeoutObject();

cctx.time().addTimeoutObject(timeoutObj);
cctx.time().addTimeoutObject(timeoutObj);
}
}
}

Expand Down Expand Up @@ -898,7 +910,8 @@ private void map(Iterable<GridDhtCacheEntry> entries) {
return;

if (log.isDebugEnabled())
log.debug("Mapped DHT lock future [dhtMap=" + F.nodeIds(dhtMap.keySet()) + ", dhtLockFut=" + this + ']');
log.debug("Mapped DHT lock future [dhtMap=" + F.nodeIds(dhtMap.keySet()) +
", dhtLockFut=" + this + ']');

long timeout = inTx() ? tx.remainingTime() : this.timeout;

Expand Down
Loading