Skip to content

Commit c9aaed8

Browse files
authored
[chore] Replace usage of puzpuzpuz/xsync with standard sync (#13165)
Signed-off-by: Bogdan Drutu <[email protected]>
1 parent 9a620a0 commit c9aaed8

File tree

22 files changed

+21
-52
lines changed

22 files changed

+21
-52
lines changed

cmd/otelcorecol/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ require (
7474
github.com/prometheus/client_model v0.6.2 // indirect
7575
github.com/prometheus/common v0.64.0 // indirect
7676
github.com/prometheus/procfs v0.16.1 // indirect
77-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
7877
github.com/rs/cors v1.11.1 // indirect
7978
github.com/shirou/gopsutil/v4 v4.25.5 // indirect
8079
github.com/spf13/cobra v1.9.1 // indirect

cmd/otelcorecol/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/debugexporter/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ require (
4040
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4141
github.com/modern-go/reflect2 v1.0.2 // indirect
4242
github.com/pmezard/go-difflib v1.0.0 // indirect
43-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
4443
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
4544
go.opentelemetry.io/collector/config/configretry v1.33.0 // indirect
4645
go.opentelemetry.io/collector/consumer/consumererror v0.127.0 // indirect

exporter/debugexporter/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/exporterhelper/internal/queuebatch/multi_batcher.go

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@ import (
66
"context"
77
"sync"
88

9-
"github.com/puzpuzpuz/xsync/v3"
10-
119
"go.opentelemetry.io/collector/component"
1210
"go.opentelemetry.io/collector/exporter/exporterhelper/internal/request"
1311
"go.opentelemetry.io/collector/exporter/exporterhelper/internal/sender"
@@ -23,14 +21,14 @@ type batcherSettings[T any] struct {
2321

2422
type multiBatcher struct {
2523
cfg BatchConfig
26-
workerPool chan struct{}
24+
wp chan struct{}
2725
sizerType request.SizerType
2826
sizer request.Sizer[request.Request]
2927
partitioner Partitioner[request.Request]
3028
consumeFunc sender.SendFunc[request.Request]
3129

3230
singleShard *shardBatcher
33-
shards *xsync.MapOf[string, *shardBatcher]
31+
shards sync.Map
3432
}
3533

3634
var _ Batcher[request.Request] = (*multiBatcher)(nil)
@@ -45,17 +43,15 @@ func newMultiBatcher(bCfg BatchConfig, bSet batcherSettings[request.Request]) *m
4543
}
4644
mb := &multiBatcher{
4745
cfg: bCfg,
48-
workerPool: workerPool,
46+
wp: workerPool,
4947
sizerType: bSet.sizerType,
5048
sizer: bSet.sizer,
5149
partitioner: bSet.partitioner,
5250
consumeFunc: bSet.next,
5351
}
5452

5553
if bSet.partitioner == nil {
56-
mb.singleShard = newShard(mb.cfg, mb.sizerType, mb.sizer, mb.workerPool, mb.consumeFunc)
57-
} else {
58-
mb.shards = xsync.NewMapOf[string, *shardBatcher]()
54+
mb.singleShard = newShard(mb.cfg, mb.sizerType, mb.sizer, mb.wp, mb.consumeFunc)
5955
}
6056
return mb
6157
}
@@ -66,12 +62,19 @@ func (mb *multiBatcher) getShard(ctx context.Context, req request.Request) *shar
6662
}
6763

6864
key := mb.partitioner.GetKey(ctx, req)
69-
result, _ := mb.shards.LoadOrCompute(key, func() *shardBatcher {
70-
s := newShard(mb.cfg, mb.sizerType, mb.sizer, mb.workerPool, mb.consumeFunc)
71-
s.start(ctx, nil)
72-
return s
73-
})
74-
return result
65+
// Fast path, shard already created.
66+
s, found := mb.shards.Load(key)
67+
if found {
68+
return s.(*shardBatcher)
69+
}
70+
newS := newShard(mb.cfg, mb.sizerType, mb.sizer, mb.wp, mb.consumeFunc)
71+
newS.start(ctx, nil)
72+
s, loaded := mb.shards.LoadOrStore(key, newS)
73+
// If not loaded, there was a race condition in adding the new shard. Shutdown the newly created shard.
74+
if loaded {
75+
newS.shutdown(ctx)
76+
}
77+
return s.(*shardBatcher)
7578
}
7679

7780
func (mb *multiBatcher) Start(ctx context.Context, host component.Host) error {
@@ -93,11 +96,11 @@ func (mb *multiBatcher) Shutdown(ctx context.Context) error {
9396
}
9497

9598
var wg sync.WaitGroup
96-
wg.Add(mb.shards.Size())
97-
mb.shards.Range(func(_ string, shard *shardBatcher) bool {
99+
mb.shards.Range(func(_ any, shard any) bool {
100+
wg.Add(1)
98101
go func() {
99-
shard.shutdown(ctx)
100-
wg.Done()
102+
defer wg.Done()
103+
shard.(*shardBatcher).shutdown(ctx)
101104
}()
102105
return true
103106
})

exporter/exporterhelper/xexporterhelper/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ require (
4343
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4444
github.com/modern-go/reflect2 v1.0.2 // indirect
4545
github.com/pmezard/go-difflib v1.0.0 // indirect
46-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
4746
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
4847
go.opentelemetry.io/collector/confmap v1.33.0 // indirect
4948
go.opentelemetry.io/collector/extension v1.33.0 // indirect

exporter/exporterhelper/xexporterhelper/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/exportertest/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ require (
3939
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
4040
github.com/modern-go/reflect2 v1.0.2 // indirect
4141
github.com/pmezard/go-difflib v1.0.0 // indirect
42-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
4342
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
4443
go.opentelemetry.io/collector/confmap v1.33.0 // indirect
4544
go.opentelemetry.io/collector/consumer/xconsumer v0.127.0 // indirect

exporter/exportertest/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.23.0
44

55
require (
66
github.com/cenkalti/backoff/v5 v5.0.2
7-
github.com/puzpuzpuz/xsync/v3 v3.5.1
87
github.com/stretchr/testify v1.10.0
98
go.opentelemetry.io/collector/client v1.33.0
109
go.opentelemetry.io/collector/component v1.33.0

exporter/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/nopexporter/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/otlpexporter/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ require (
5656
github.com/modern-go/reflect2 v1.0.2 // indirect
5757
github.com/mostynb/go-grpc-compression v1.2.3 // indirect
5858
github.com/pmezard/go-difflib v1.0.0 // indirect
59-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
6059
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
6160
go.opentelemetry.io/collector/client v1.33.0 // indirect
6261
go.opentelemetry.io/collector/config/configmiddleware v0.127.0 // indirect

exporter/otlpexporter/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/otlphttpexporter/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ require (
5555
github.com/modern-go/reflect2 v1.0.2 // indirect
5656
github.com/pierrec/lz4/v4 v4.1.22 // indirect
5757
github.com/pmezard/go-difflib v1.0.0 // indirect
58-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
5958
github.com/rs/cors v1.11.1 // indirect
6059
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
6160
go.opentelemetry.io/collector/client v1.33.0 // indirect

exporter/otlphttpexporter/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

exporter/xexporter/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/e2e/go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ require (
7878
github.com/prometheus/client_model v0.6.2 // indirect
7979
github.com/prometheus/common v0.64.0 // indirect
8080
github.com/prometheus/procfs v0.16.1 // indirect
81-
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
8281
github.com/rs/cors v1.11.1 // indirect
8382
github.com/shirou/gopsutil/v4 v4.25.5 // indirect
8483
github.com/tklauser/go-sysconf v0.3.12 // indirect

internal/e2e/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

otelcol/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

otelcol/otelcoltest/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

service/go.sum

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)