The motivations are: 1. The API uses a SINGLE predicate and adds that to many chunks. With `Arc<Vec<...>>` you gain nothing, with `Vec<Arc<...>>` the predicate is only stored once (in many vectors) 2. While we currently add predicates blindly to all chunks, we can be way smarter in the future and prune out tables, partitions or even single chunks (based on statistics). With that, it will be rare that many chunks share the exact same set of predicates. 3. It would be nice if we could de-duplicate predicates when writing them to the preserved catalog without needing to repeat the pruning discussed in point 2. This is way easier to implement whan chunks exists in `Arc`s. 4. As a side-note: the `Arc<Vec<...>>` wasn't really cloned around but instead was created many time. So the new version should be more memory efficient out of the box. |
||
---|---|---|
.. | ||
src | ||
Cargo.toml |