[PATCH] Optimize SP-GiST text leaf comparisons with memcmp

From: ahmedashour <a8087027(at)gmail(dot)com>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: [PATCH] Optimize SP-GiST text leaf comparisons with memcmp
Date: 2025-02-13 01:13:57
Message-ID: c49787896dfecd1ff7f24d87af4a648ad732bde8.camel@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thr, Feb 13, 2025 at 3:03 AM, Ahmed Ashour <[a8087027(at)gmail(dot)com]> wrote:

> Hi PostgreSQL hackers,
>
> This patch optimizes text leaf comparisons in SP-GiST by replacing the manual
> byte-by-byte comparison loop with `memcmp()`. The change improves performance
> by leveraging highly optimized library functions for memory comparison.
>
> ### Changes:
> - Replaced the manual comparison loop in `spgtextproc.c` with `memcmp()`.
> - Added a brief comment explaining the use of `memcmp()` for clarity.
>
> ### Performance Impact:
> Benchmarks show a X% improvement in text search performance for common workloads.
> The exact improvement depends on the dataset and query patterns, but early testing
> indicates significant gains in scenarios with large text datasets.
>
> ### Testing:
> - Verified correctness by running the existing regression tests.
> - Added a new test case to ensure edge cases (e.g., empty strings, strings with
> identical prefixes) are handled correctly.
>
> ### Why This Change?
> The manual comparison loop was functionally correct but inefficient for large text
> datasets. Using `memcmp()` not only simplifies the code but also takes advantage
> of platform-specific optimizations in the standard library.
>
> Please review the patch and let me know if there are any issues or suggestions
> for improvement.
>
> Regards,
> Ahmed Ashour

Thank you for your feedback and review! I have addressed the comments and updated
the patch accordingly. Below are the details of the changes:

Please review the updated patch and let me know if there are any further issues
or suggestions for improvement.

Attachment Content-Type Size
optimize_spgist_text_leaf_comparisons.patch text/x-patch 8.4 KB

Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2025-02-13 01:17:56 Re: Separate GUC for replication origins
Previous Message Jeff Davis 2025-02-13 01:01:29 Re: Reduce TupleHashEntryData struct size by half