Skip to content

Commit f54075a

Browse files
authored
Revert "reporter: Make stacktrace IDs dict encoded in v2"
1 parent 779e852 commit f54075a

3 files changed

Lines changed: 7 additions & 56 deletions

File tree

reporter/arrow_v2.go

Lines changed: 3 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,9 @@ var (
145145
Type: arrow.RunEndEncodedOf(arrow.PrimitiveTypes.Int32, arrow.PrimitiveTypes.Uint64),
146146
}
147147

148-
StacktraceIDDictTypeV2 = &arrow.DictionaryType{
149-
IndexType: arrow.PrimitiveTypes.Uint32,
150-
ValueType: extensions.NewUUIDType(),
151-
}
152-
153148
StacktraceIDFieldV2 = arrow.Field{
154149
Name: "stacktrace_id",
155-
Type: StacktraceIDDictTypeV2,
150+
Type: extensions.NewUUIDType(),
156151
}
157152

158153
labelArrowTypeV2 = arrow.RunEndEncodedOf(
@@ -501,50 +496,6 @@ func (b *StacktraceDictBuilderV2) Release() {
501496
b.funcDict.Release()
502497
}
503498

504-
// StacktraceIDDictBuilderV2 deduplicates stacktrace IDs using a map.
505-
// Structure: Dictionary[Uint32, UUID]
506-
type StacktraceIDDictBuilderV2 struct {
507-
index map[[16]byte]uint32
508-
indices *array.Uint32Builder
509-
values *extensions.UUIDBuilder
510-
}
511-
512-
// NewStacktraceIDDictBuilderV2 creates a new StacktraceIDDictBuilderV2.
513-
func NewStacktraceIDDictBuilderV2(mem memory.Allocator) *StacktraceIDDictBuilderV2 {
514-
return &StacktraceIDDictBuilderV2{
515-
index: make(map[[16]byte]uint32),
516-
indices: array.NewUint32Builder(mem),
517-
values: extensions.NewUUIDBuilder(mem),
518-
}
519-
}
520-
521-
// Append adds a stacktrace ID, deduplicating by value.
522-
func (b *StacktraceIDDictBuilderV2) Append(v [16]byte) {
523-
if idx, ok := b.index[v]; ok {
524-
b.indices.Append(idx)
525-
return
526-
}
527-
idx := uint32(len(b.index))
528-
b.index[v] = idx
529-
b.indices.Append(idx)
530-
b.values.AppendBytes(v)
531-
}
532-
533-
// NewArray builds and returns the Dictionary[Uint32, UUID] array.
534-
func (b *StacktraceIDDictBuilderV2) NewArray() arrow.Array {
535-
indices := b.indices.NewArray()
536-
defer indices.Release()
537-
values := b.values.NewArray()
538-
defer values.Release()
539-
return array.NewDictionaryArray(StacktraceIDDictTypeV2, indices, values)
540-
}
541-
542-
// Release releases all builder resources.
543-
func (b *StacktraceIDDictBuilderV2) Release() {
544-
b.indices.Release()
545-
b.values.Release()
546-
}
547-
548499
// SampleWriterV2 writes samples with inline stacktraces using the v2 schema.
549500
type SampleWriterV2 struct {
550501
mem memory.Allocator
@@ -553,7 +504,7 @@ type SampleWriterV2 struct {
553504

554505
// Stacktrace with deduplication
555506
Stacktrace *StacktraceDictBuilderV2
556-
StacktraceID *StacktraceIDDictBuilderV2
507+
StacktraceID *extensions.UUIDBuilder
557508

558509
// Sample data fields (same as v1)
559510
Value *array.Int64Builder
@@ -574,7 +525,7 @@ func NewSampleWriterV2(mem memory.Allocator) *SampleWriterV2 {
574525
mem: mem,
575526
labelBuilders: make(map[string]*BinaryDictionaryRunEndBuilder),
576527
Stacktrace: NewStacktraceDictBuilderV2(mem),
577-
StacktraceID: NewStacktraceIDDictBuilderV2(mem),
528+
StacktraceID: extensions.NewUUIDBuilder(mem),
578529
Value: array.NewInt64Builder(mem),
579530
Producer: stringRunEndBuilder(array.NewBuilder(mem, ProducerFieldV2.Type)),
580531
SampleType: stringRunEndBuilder(array.NewBuilder(mem, SampleTypeFieldV2.Type)),

reporter/arrow_v2_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ func TestSampleWriterV2_Basic(t *testing.T) {
225225

226226
// Add sample data
227227
writer.Stacktrace.AppendStacktrace(hash, frames, appendLocation)
228-
writer.StacktraceID.Append([16]byte(hash.Bytes()))
228+
writer.StacktraceID.AppendBytes([16]byte(hash.Bytes()))
229229
writer.Value.Append(1)
230230
writer.Producer.AppendString("parca_agent")
231231
writer.SampleType.AppendString("samples")
@@ -271,7 +271,7 @@ func TestSampleWriterV2_MultipleFrameTypes(t *testing.T) {
271271
nativeHash := libpf.NewTraceHash(1, 1)
272272

273273
writer.Stacktrace.AppendStacktrace(nativeHash, nativeFrames, appendLocation)
274-
writer.StacktraceID.Append([16]byte(nativeHash.Bytes()))
274+
writer.StacktraceID.AppendBytes([16]byte(nativeHash.Bytes()))
275275
writer.Value.Append(1)
276276
writer.Producer.AppendString("parca_agent")
277277
writer.SampleType.AppendString("samples")
@@ -295,7 +295,7 @@ func TestSampleWriterV2_MultipleFrameTypes(t *testing.T) {
295295
kernelHash := libpf.NewTraceHash(2, 2)
296296

297297
writer.Stacktrace.AppendStacktrace(kernelHash, kernelFrames, appendLocation)
298-
writer.StacktraceID.Append([16]byte(kernelHash.Bytes()))
298+
writer.StacktraceID.AppendBytes([16]byte(kernelHash.Bytes()))
299299
writer.Value.Append(1)
300300
writer.Producer.AppendString("parca_agent")
301301
writer.SampleType.AppendString("samples")

reporter/parca_reporter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,7 @@ func (r *ParcaReporter) writeSampleV2(
379379
}
380380

381381
r.sampleWriterV2.Stacktrace.AppendStacktrace(trace.Hash, trace.Frames, r.appendLocationV2)
382-
r.sampleWriterV2.StacktraceID.Append([16]byte(trace.Hash.Bytes()))
382+
r.sampleWriterV2.StacktraceID.AppendBytes([16]byte(trace.Hash.Bytes()))
383383

384384
r.sampleWriterV2.Timestamp.Append(arrow.Timestamp(int64(meta.Timestamp)))
385385
r.sampleWriterV2.Value.Append(value)

0 commit comments

Comments
 (0)