Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance Improvement: Don't marshal to proto before the WAL #658

Closed
joe-elliott opened this issue Apr 20, 2021 · 0 comments · Fixed by #694
Closed

Performance Improvement: Don't marshal to proto before the WAL #658

joe-elliott opened this issue Apr 20, 2021 · 0 comments · Fixed by #694

Comments

@joe-elliott
Copy link
Member

Describe the solution you'd like
Currently our biggest performance hit is repeatedly marshalling bytes <=> proto. There is technically no reason to unmarshal from bytes to proto before writing a trace to the WAL. We really would only need to do this if the trace were queried, but we do it to every single trace.

Let's remove this marshal/unmarshal for performance. I believe the complexity of this change will come from here:
https://github.com/grafana/tempo/blob/main/modules/ingester/trace.go#L14.

This is the object that we are currently writing and reading from the WAL. To do this we would need to write a different object that contained all of the unmarshalled byte slices.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant