-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
TSI Proposal #7174
TSI Proposal #7174
Conversation
|
||
### Series Blocks | ||
|
||
Series blocks contain a `uint32` block ID followed by a list of `uint32` local series IDs. Combining the block id and local series ID provides a globally addressable `uint64` series ID: `(blockID,seriesID)` |
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.
Is the local series ID
the index position within the list? For example, if you had block ID 1
, and ten series within the block, The global series ID would be (1,0), (1,1), (1,2), ... (1,9)? Then if you had series ID (1,4), you could go directly to block 1
in the file and then use 4
as the index into the KEYPOS list to find the offset in the block for that key?
I'm assuming this is the case, but it would be good to explain how this works in more detail.
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.
Yes, that's correct. I can add more detail.
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.
Detail added in 008dc1e.
I think this is a good start and we should keep iterating on this. Some diagrams like these would really help to visualize the format of the file IMO. |
@benbjohnson gets to use Monodraw! |
|
||
### Tag Value Blocks | ||
|
||
Tag value blocks contain a sorted list of tag values. |
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 think we could consider storing the maximum and minimum tag value in the block. We could store them in the header, or we could avoid needing to them if we could easily jump to the first and last values in the block.
I would imagine if the tag values were container IDs for example, we could have millions of them, and a binary search for a value outside of [min, max] would be wasteful.
|
Proposal for implementing #7151.
/cc @jwilder @pauldix @e-dard