On 02/04/2026 20:07, KAZAR Ayoub wrote:
On Tue, Mar 31, 2026 at 6:30 PM Nathan Bossart
<[email protected]> wrote:
On Fri, Mar 27, 2026 at 07:48:38PM +0100, KAZAR Ayoub wrote:
> I added a prescan loop inside the simd helpers trying to catch
special
> chars in sizeof(Vector8) characters, i measured how good is this at
> reducing the overhead of starting simd and exiting at first vector:
> the scalar loop is better than SIMD for one vector if it finds a
special
> character before 6th character, worst case is not a clean
vector, where the
> scalar loop needs 20 more cycles compared to SIMD.
> This helps mitigate the case of JSON(B) in CSV format, this is
why I only
> added this for CSV case only.
Interesting.
> In a benchmark with 10M early SIMD exit like the JSONB case, the
previous
> 3% regression is gone.
While these are nice results, I think it's best that we target v20
for this
patch so that we have more time to benchmark and explore edge cases.
Thanks for the review.
Fair enough, I'll try many more cases in the upcoming weeks to make
sure we're not missing anything.
--
nathan
Regards,
Ayoub
After looking into more test cases, the opportunity here isn't as big as
it was for COPY FROM in general cases, yet i have seen good performance
gains show up in most cases, and avoiding regressions elsewhere adds
some complexity, there's also the possibility to include the case of
TOASTed attributes here ; which i think is a win.
I’ve marked the Commitfest entry as Withdrawn. Thanks to everyone for
the reviews and feedback.
If anyone else think we can still push this patch more forward, i'll
take a look again.
Regards,
Ayoub