-
Notifications
You must be signed in to change notification settings - Fork 577
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
feat: Scalable Compactor #2466
feat: Scalable Compactor #2466
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not made it through every line of this PR, but I was able to get it running on a local cluster.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for looking at my comments and addressing them (when they were valid 😆) and obviously bringing compaction 🚀
LGTM
This PR introduces a scalable compactor component that can split and merge Pyroscope blocks to improve performance and deduplicate replication factor.
This is heavily inspired by Mimir compactor but adapted for Pyroscope. One of the main difference for instance is that Pyroscope maxT are inclusive.
The design and behaviour is documented here https://grafana.com/docs/mimir/latest/references/architecture/components/compactor/
Splitting is optional and only required for large tenants where output blocks would be too big.
Remaining tasks:
Previous related PR:
Testing Result
See how block were before level 1 not aligned, now you can see the 8h range being compacted.
![image](https://private-user-images.githubusercontent.com/1053421/274630432-03666574-b824-4ef0-8747-46e9f6f37cb4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjA3MjUyNjksIm5iZiI6MTcyMDcyNDk2OSwicGF0aCI6Ii8xMDUzNDIxLzI3NDYzMDQzMi0wMzY2NjU3NC1iODI0LTRlZjAtODc0Ny00NmU5ZjZmMzdjYjQucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDcxMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA3MTFUMTkwOTI5WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZjNlYmFlYzk0MTcxMTcxMWY5Mjk1NWFlNGQ5ZTkxZWIyN2I5N2E1ZGYzY2NmYjcxMGIwZmNkYTljM2RiNjUyOSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.ULam_dvL1DOnWoOhbmxdJCcS4lsSS6HewN1TOzrM4kU)