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

Reply via email to