Commit 8c48a53
authored
Pluggable Compressor (#7018)
## Summary: Extensible and Pluggable Compressor
Tracking Issue: #7216
You can see a lot of the details in the tracking issue.
This is a major step in supporting extension types as a first-class
feature in Vortex. The entire compressor has been rewritten, see the
tracking issue for full design details and motivation.
The new `vortex-compressor` crate extracts the encoding-agnostic
compression framework from `vortex-btrblocks`, inverting the dependency
graph so that encoding crates can implement a single `Scheme` trait and
register themselves with the compressor. Additionally,
`vortex-btrblocks` remains the "batteries-included" default compressor,
and depends on `vortex-compressor`.
---
The compression benchmark comment is
[here](#7018 (comment)).
For reviewers: I would just look at the whole `vortex-compressor` and
`vortex-btrblocks` crates instead of the git diff since basically
everything has changed.
## Changes
- [x] Extract `vortex-compressor` crate with unified `Scheme` trait
- [x] Migrate `vortex-btrblocks` to depend on `vortex-compressor`
- [ ] Verify what APIs we want to preserve from `vortex-btrblocks`
(re-exports)
- [ ] Figure out why the `RunEndScheme` exclusion in `rle.rs` is broken
and re-enable it
## Testing
Existing tests pass, so that's a good sign. I added a few new tests that
check the newer parts of the compressor as well.
---------
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>1 parent 5e93e8e commit 8c48a53
52 files changed
Lines changed: 6165 additions & 4339 deletions
File tree
- fuzz/src/array
- vortex-array
- src
- vortex-btrblocks
- benches
- src
- compressor
- float
- integer
- schemes
- vortex-compressor
- src
- builtins
- dict
- stats
- vortex-file/src
- vortex-layout/src/layouts
- vortex
- src
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
264 | 265 | | |
265 | 266 | | |
266 | 267 | | |
| 268 | + | |
267 | 269 | | |
268 | 270 | | |
269 | 271 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
65 | | - | |
66 | | - | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
| |||
546 | 547 | | |
547 | 548 | | |
548 | 549 | | |
549 | | - | |
550 | | - | |
551 | | - | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
552 | 555 | | |
553 | 556 | | |
554 | 557 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24250 | 24250 | | |
24251 | 24251 | | |
24252 | 24252 | | |
| 24253 | + | |
| 24254 | + | |
| 24255 | + | |
| 24256 | + | |
| 24257 | + | |
| 24258 | + | |
| 24259 | + | |
| 24260 | + | |
24253 | 24261 | | |
24254 | 24262 | | |
24255 | 24263 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
193 | 194 | | |
194 | 195 | | |
195 | 196 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | 17 | | |
19 | 18 | | |
20 | 19 | | |
| |||
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
13 | 12 | | |
14 | 13 | | |
15 | 14 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
14 | 13 | | |
15 | 14 | | |
16 | 15 | | |
| |||
0 commit comments