Skip to content

Commit b2c39aa

Browse files
committed
Remove old java 8 implementation and reintroduce jctools for 1.8
1 parent d2399e2 commit b2c39aa

File tree

41 files changed

+488
-1922
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+488
-1922
lines changed

dd-java-agent/agent-builder/gradle.lockfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ org.jacoco:org.jacoco.agent:0.8.14=jacocoAgent,jacocoAnt
109109
org.jacoco:org.jacoco.ant:0.8.14=jacocoAnt
110110
org.jacoco:org.jacoco.core:0.8.14=jacocoAnt
111111
org.jacoco:org.jacoco.report:0.8.14=jacocoAnt
112+
org.jctools:jctools-core:3.3.0=runtimeClasspath,testRuntimeClasspath
112113
org.junit.jupiter:junit-jupiter-api:5.12.2=testCompileClasspath,testRuntimeClasspath
113114
org.junit.jupiter:junit-jupiter-engine:5.12.2=testRuntimeClasspath
114115
org.junit.jupiter:junit-jupiter-params:5.12.2=testCompileClasspath,testRuntimeClasspath

dd-java-agent/agent-debugger/gradle.lockfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ org.jacoco:org.jacoco.agent:0.8.14=jacocoAgent,jacocoAnt
123123
org.jacoco:org.jacoco.ant:0.8.14=jacocoAnt
124124
org.jacoco:org.jacoco.core:0.8.14=jacocoAnt
125125
org.jacoco:org.jacoco.report:0.8.14=jacocoAnt
126+
org.jctools:jctools-core:3.3.0=testRuntimeClasspath
126127
org.jetbrains.intellij.deps:trove4j:1.0.20200330=testRuntimeClasspath
127128
org.jetbrains.kotlin:kotlin-compiler-embeddable:2.1.21=testCompileClasspath,testRuntimeClasspath
128129
org.jetbrains.kotlin:kotlin-daemon-embeddable:2.1.21=testRuntimeClasspath

dd-java-agent/agent-llmobs/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ minimumInstructionCoverage = 0.0
1212

1313
dependencies {
1414
api libs.slf4j
15+
implementation libs.jctools
1516

1617
implementation project(':communication')
1718
implementation project(':components:json')

dd-java-agent/agent-llmobs/src/main/java/datadog/trace/llmobs/EvalProcessingWorker.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import datadog.communication.http.OkHttpUtils;
1313
import datadog.trace.api.Config;
1414
import datadog.trace.llmobs.domain.LLMObsEval;
15-
import datadog.trace.util.queue.BaseQueue;
15+
import datadog.trace.util.queue.BlockingConsumerNonBlockingQueue;
1616
import datadog.trace.util.queue.Queues;
1717
import java.util.ArrayList;
1818
import java.util.List;
@@ -35,7 +35,7 @@ public class EvalProcessingWorker implements AutoCloseable {
3535

3636
private static final Logger log = LoggerFactory.getLogger(EvalProcessingWorker.class);
3737

38-
private final BaseQueue<LLMObsEval> queue;
38+
private final BlockingConsumerNonBlockingQueue<LLMObsEval> queue;
3939
private final Thread serializerThread;
4040

4141
public EvalProcessingWorker(
@@ -44,7 +44,7 @@ public EvalProcessingWorker(
4444
final TimeUnit timeUnit,
4545
final SharedCommunicationObjects sco,
4646
Config config) {
47-
this.queue = Queues.mpscArrayQueue(capacity);
47+
this.queue = Queues.mpscBlockingConsumerArrayQueue(capacity);
4848

4949
boolean isAgentless = config.isLlmObsAgentlessEnabled();
5050
if (isAgentless && (config.getApiKey() == null || config.getApiKey().isEmpty())) {
@@ -99,7 +99,7 @@ public static class EvalSerializingHandler implements Runnable {
9999
private static final Logger log = LoggerFactory.getLogger(EvalSerializingHandler.class);
100100
private static final int FLUSH_THRESHOLD = 50;
101101

102-
private final BaseQueue<LLMObsEval> queue;
102+
private final BlockingConsumerNonBlockingQueue<LLMObsEval> queue;
103103
private final long ticksRequiredToFlush;
104104
private long lastTicks;
105105

@@ -112,7 +112,7 @@ public static class EvalSerializingHandler implements Runnable {
112112
private final List<LLMObsEval> buffer = new ArrayList<>();
113113

114114
public EvalSerializingHandler(
115-
final BaseQueue<LLMObsEval> queue,
115+
final BlockingConsumerNonBlockingQueue<LLMObsEval> queue,
116116
final long flushInterval,
117117
final TimeUnit timeUnit,
118118
final HttpUrl submissionUrl,

dd-java-agent/agent-profiling/profiling-controller-jfr/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ testJvmConstraints {
1414
dependencies {
1515
api project(':dd-java-agent:agent-profiling:profiling-controller')
1616

17+
implementation libs.jctools
1718
implementation libs.slf4j
1819

1920
annotationProcessor libs.autoservice.processor

dd-java-agent/instrumentation/graal/native-image/src/main/java/datadog/trace/instrumentation/graal/nativeimage/AnnotationSubstitutionProcessorInstrumentation.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public void methodAdvice(MethodTransformer transformer) {
3737
public String[] helperClassNames() {
3838
return new String[] {
3939
packageName + ".Target_com_datadog_profiling_agent_ProcessContext",
40+
packageName + ".Target_datadog_jctools_util_UnsafeRefArrayAccess",
4041
packageName + ".Target_org_datadog_jmxfetch_App",
4142
packageName + ".Target_org_datadog_jmxfetch_Status",
4243
packageName + ".Target_org_datadog_jmxfetch_reporter_JsonReporter",
@@ -51,6 +52,7 @@ public String[] muzzleIgnoredClassNames() {
5152
"jdk.vm.ci.meta.ResolvedJavaField",
5253
// ignore helper class names as usual
5354
packageName + ".Target_com_datadog_profiling_agent_ProcessContext",
55+
packageName + ".Target_datadog_jctools_util_UnsafeRefArrayAccess",
5456
packageName + ".Target_org_datadog_jmxfetch_App",
5557
packageName + ".Target_org_datadog_jmxfetch_Status",
5658
packageName + ".Target_org_datadog_jmxfetch_reporter_JsonReporter",
@@ -61,6 +63,7 @@ public static class FindTargetClassesAdvice {
6163
@Advice.OnMethodExit(suppress = Throwable.class)
6264
public static void onExit(@Advice.Return(readOnly = false) List<Class<?>> result) {
6365
result.add(Target_com_datadog_profiling_agent_ProcessContext.class);
66+
result.add(Target_datadog_jctools_util_UnsafeRefArrayAccess.class);
6467
result.add(Target_org_datadog_jmxfetch_App.class);
6568
result.add(Target_org_datadog_jmxfetch_Status.class);
6669
result.add(Target_org_datadog_jmxfetch_reporter_JsonReporter.class);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package datadog.trace.instrumentation.graal.nativeimage;
2+
3+
import com.oracle.svm.core.annotate.Alias;
4+
import com.oracle.svm.core.annotate.RecomputeFieldValue;
5+
import com.oracle.svm.core.annotate.TargetClass;
6+
7+
@TargetClass(className = "datadog.jctools.util.UnsafeRefArrayAccess")
8+
public final class Target_datadog_jctools_util_UnsafeRefArrayAccess {
9+
@Alias
10+
@RecomputeFieldValue(kind = RecomputeFieldValue.Kind.ArrayIndexShift, declClass = Object[].class)
11+
public static int REF_ELEMENT_SHIFT;
12+
}

dd-trace-core/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ dependencies {
7575

7676
implementation libs.slf4j
7777
implementation libs.moshi
78+
implementation libs.jctools
7879

7980
implementation group: 'com.datadoghq', name: 'sketches-java', version: '0.8.3'
8081

dd-trace-core/src/main/java/datadog/trace/common/metrics/Aggregator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import datadog.trace.common.metrics.SignalItem.StopSignal;
66
import datadog.trace.core.util.LRUCache;
7-
import datadog.trace.util.queue.BaseQueue;
7+
import datadog.trace.util.queue.NonBlockingQueue;
88
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
99
import java.util.Iterator;
1010
import java.util.Map;
@@ -23,7 +23,7 @@ final class Aggregator implements Runnable {
2323
private static final Logger log = LoggerFactory.getLogger(Aggregator.class);
2424

2525
private final Queue<Batch> batchPool;
26-
private final BaseQueue<InboxItem> inbox;
26+
private final NonBlockingQueue<InboxItem> inbox;
2727
private final LRUCache<MetricKey, AggregateMetric> aggregates;
2828
private final ConcurrentMap<MetricKey, Batch> pending;
2929
private final Set<MetricKey> commonKeys;
@@ -43,7 +43,7 @@ final class Aggregator implements Runnable {
4343
Aggregator(
4444
MetricWriter writer,
4545
Queue<Batch> batchPool,
46-
BaseQueue<InboxItem> inbox,
46+
NonBlockingQueue<InboxItem> inbox,
4747
ConcurrentMap<MetricKey, Batch> pending,
4848
final Set<MetricKey> commonKeys,
4949
int maxAggregates,
@@ -64,7 +64,7 @@ final class Aggregator implements Runnable {
6464
Aggregator(
6565
MetricWriter writer,
6666
Queue<Batch> batchPool,
67-
BaseQueue<InboxItem> inbox,
67+
NonBlockingQueue<InboxItem> inbox,
6868
ConcurrentMap<MetricKey, Batch> pending,
6969
final Set<MetricKey> commonKeys,
7070
int maxAggregates,

dd-trace-core/src/main/java/datadog/trace/common/metrics/ConflatingMetricsAggregator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
import datadog.trace.core.DDTraceCoreInfo;
3434
import datadog.trace.core.monitor.HealthMetrics;
3535
import datadog.trace.util.AgentTaskScheduler;
36-
import datadog.trace.util.queue.BaseQueue;
36+
import datadog.trace.util.queue.NonBlockingQueue;
3737
import datadog.trace.util.queue.Queues;
3838
import java.util.ArrayList;
3939
import java.util.Arrays;
@@ -94,7 +94,7 @@ public final class ConflatingMetricsAggregator implements MetricsAggregator, Eve
9494
private final ConcurrentHashMap<MetricKey, Batch> pending;
9595
private final ConcurrentHashMap<MetricKey, MetricKey> keys;
9696
private final Thread thread;
97-
private final BaseQueue<InboxItem> inbox;
97+
private final NonBlockingQueue<InboxItem> inbox;
9898
private final Sink sink;
9999
private final Aggregator aggregator;
100100
private final long reportingInterval;

0 commit comments

Comments
 (0)