Pushdown for COUNT
We’re making rapid progress on our roadmap to fully push down aggregates to the BM25 index. The first aggregate we’ve pushed down
is COUNT
.
This feature is in beta. To test it, first enable the feature flag:
COUNT
queries over a single table (no JOIN
s yet) where @@@
is present will be pushed down:
Expected Output
Expected Output
SUM
, COUNT(DISTINCT)
, GROUP BY
, etc.) are on their way!
Background Merging
Prior to this release, the compaction, or merging, of the index LSM tree happened in the foreground, blockingINSERT
/UPDATE
transactions. While this is acceptable for smaller layers of the LSM tree, merging large layers can block transactions for
long period of time.
With this release, merging large layers happens in the background. This is configurable with the background_layer_sizes
index option
and delivers significant improvements to write throughput for update-heavy tables.
Non-Indexed Filter Pushdown
Prior to this release, ParadeDB could only efficiently evaluateWHERE
clauses if all the columns in those claused were present in the BM25 index.
If any clauses were not indexed, they would be applied as filters post index scan. Additionally, BM25 scoring and snippet
generation would be skipped if the WHERE
clauses included non-indexed columns.
With this release, ParadeDB can now push down filters on non-indexed columns directly into the custom scan. This means:
- Filtering happens earlier, improving performance
- Scores and snippets are now computed correctly, even if the query includes filters on non-indexed columns