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

Add zipped structural encoding to v2.1 #2861

Open
Tracked by #2856
westonpace opened this issue Sep 11, 2024 · 0 comments
Open
Tracked by #2856

Add zipped structural encoding to v2.1 #2861

westonpace opened this issue Sep 11, 2024 · 0 comments

Comments

@westonpace
Copy link
Contributor

The zipped structural encoding is similar to the mini-block structural encoding in that we must first calculate the repetition and definition levels. However, the zipped structural encoding should be used when the data is wide (e.g. vector embeddings, non-trivial strings). In this case the number of values per mini block will be small (or less than 1 even) and the overhead of mini block encoding will be considerable.

Instead, we can take the repetition and definition information and convert it into a control word (1-2 bytes) that is attached at the beginning of each value (this is similar to the zip operation in python/rust). The limit between narrow and wide will need to be figured out but it is probably somewhere greater than 16 bytes per value and less than or equal to 128 bytes per value.

Zipped encodings will need to be dense and cannot be opaque. If a data type is wide then we should not apply any compressive encodings that will make it opaque (e.g. don't apply delta encoding to vector embeddings).

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

No branches or pull requests

1 participant