-
-
Notifications
You must be signed in to change notification settings - Fork 711
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
prepare fastfield format for null index #1691
Conversation
2d728bb
to
0f9d764
Compare
I don't understand what this PR is about. Can you edit the description and the commit message? @PSeitz |
I modified the commit message |
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 don't think this is putting us on the right track for backward compatibility.
Here are the issue I have:
- The footer is constant length.
- It implements stuff for one future that is not there.
- The footer is 11 bytes long and replicated for every column. once we have sparse columns we may end up with a lot of columns. 11 bytes is a bit wasteful (not so terrible but well)
I think we could...
End the fastfield file by a codec version and a magic number.
A codec object would have a fn load(&self, data: OwnedBytes) -> Result<_, _>
instead of the load method in the fastfield_codecs crate.
In just describes the current state, which will be compatible with the future.
It's 18bytes, that's ~2kb for 100columns, I don't think this will ever be relevant. No problem to change it though.
I think that's a good idea in general and should be added. The downside to do that instead, is to introduce a new version and with it all the annoying version handling when one will be fine.
We already have that
|
Codecov Report
@@ Coverage Diff @@
## main #1691 +/- ##
==========================================
- Coverage 94.05% 94.05% -0.01%
==========================================
Files 256 258 +2
Lines 49253 49400 +147
==========================================
+ Hits 46324 46461 +137
- Misses 2929 2939 +10
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
self.cardinality.serialize(writer)?; | ||
self.null_index_codec.serialize(writer)?; | ||
VInt(self.null_index_byte_range.start).serialize(writer)?; | ||
VInt(self.null_index_byte_range.end).serialize(writer)?; |
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.
Can you switch to encoding end-start
instead of end
5b51a00
to
7ce6abe
Compare
* prepare fastfield format for null index * add format version for fastfield * Update fastfield_codecs/src/compact_space/mod.rs * switch to variable size footer * serialize delta of end
With the upcoming null handling/sparse data, the format will change for fast fields.
Serialize a null index footer that reflects a
Full
column, to avoid compatibility issues for the next tantivy version