Skip to content

Add support for swiss tables #2182

Open
@txabman42

Description

@txabman42

Since Go 1.24, the default hash table implementation is based on Abseil's "Swiss Table".

Currently, this project only supports the previous implementation by iterating over each bucket slots.

Although span context extraction from HTTP request headers is still possible using a workaround (#1636), this approach might not be viable for other use cases. Ultimately, there’s a limitation when it comes to extracting data from hash maps in Go versions >1.24.

For example, this issue (#1975) would benefit from supporting the new implementation. The custom probe initiative (#1105) would also likely be affected, as multiple probes could rely on hash map lookup.

I suggest the following:

  • Add support for Swiss Table-based hash map lookup.
  • Move hash map lookup functionality into go_types.h, since currently, key lookup logic is embedded directly in the probes, for example in the net/http server probe.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions