feat(chunkv5): Chunk V5 structure, encoding and decoding #14674
+999
−70
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add New Organized Chunk Format (V5)
Overview
This PR introduces a new chunk format (V5) for Loki that organizes log data into distinct sections: log lines, timestamps, and structured metadata. This organization enables more efficient querying by allowing selective decompression of only the required sections.
Changes
ChunkFormatV5
constantorganisedHeadBlock
for organizing data during writesorganizedBufferedIterator
for efficient reading of organized chunksCurrent Status
This PR focuses on the storage format implementation and core functionality. The following aspects will be addressed in subsequent PRs:
Coming in Future PRs
Query Path Implementation
Performance Benchmarking
Migration Support
Design Benefits
Testing
Current PR includes:
What this PR does / why we need it:
Which issue(s) this PR fixes:
https://github.com/grafana/loki-private/issues/1134
Special notes for your reviewer:
Checklist
CONTRIBUTING.md
guide (required)feat
PRs are unlikely to be accepted unless a case can be made for the feature actually being a bug fix to existing behavior.docs/sources/setup/upgrade/_index.md
deprecated-config.yaml
anddeleted-config.yaml
files respectively in thetools/deprecated-config-checker
directory. Example PR