devanbenz commented on PR #10136: URL: https://github.com/apache/arrow-rs/pull/10136#issuecomment-5817973961
Okay so with the latest changes in #11203 which resolves the bug in our benchmarks the FSB bench cases are pretty much un-changed between main and this branch | Bench (filter context fsb) | baseline (ns) | this branch (ns) | Δ | |---|--:|--:|--:| | len 5, kept 1/2 | 56,420 ± 883 | 62,534 ± 591 | +10.8% | | len 5, kept 1023/1024 | 5,575 ± 59 | 5,567 ± 33 | −0.1% | | len 5, kept 1/1024 | 150 ± 1 | 160 ± 6 | +6.7% | | len 20, kept 1/2 | 56,519 ± 494 | 62,039 ± 1,836 | +9.8% | | len 20, kept 1023/1024 | 43,555 ± 613 | 43,669 ± 450 | +0.3% | | len 20, kept 1/1024 | 173 ± 2 | 182 ± 1 | +5.2% | | len 50, kept 1/2 | 92,216 ± 3,214 | 94,872 ± 2,613 | +2.9% | | len 50, kept 1023/1024 | 113,783 ± 2,088 | 117,316 ± 4,102 | +3.1% | | len 50, kept 1/1024 | 147 ± 1 | 156 ± 1 | +6.1% | Seems to be noise, I ran the first case a few times with main doing better and sometimes this branch doing better. Sorry to burst your performance bubble @alamb but the `filter context fsb with value length` cases don't seem to stress the `filter_bits` path at all. Ran the benches and logged out what `nulls` was for those benchmark cases: ``` nulls: None Testing filter context fsb with value length 5 (kept 1/2) Success Testing filter context fsb with value length 5 high selectivity (kept 1023/1024) Success Testing filter context fsb with value length 5 low selectivity (kept 1/1024) Success nulls: None Testing filter context fsb with value length 20 (kept 1/2) Success Testing filter context fsb with value length 20 high selectivity (kept 1023/1024) Success Testing filter context fsb with value length 20 low selectivity (kept 1/1024) Success nulls: None Testing filter context fsb with value length 50 (kept 1/2) Success Testing filter context fsb with value length 50 high selectivity (kept 1023/1024) Success Testing filter context fsb with value length 50 low selectivity (kept 1/1024) Success ``` nulls always look to be none so the `filter_nulls` path in `filter_fixed_size_binary` short circuits before this code: https://github.com/apache/arrow-rs/blob/b89e3020d9ad6c5fc5c9e9acafc83fb21866f536/arrow-select/src/filter.rs#L1018 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
