• 
      

    Optimize search indexing for review requests.

    Review Request #13388 — Created Oct. 30, 2023 and submitted — Latest diff uploaded

    Information

    Review Board
    release-5.0.x

    Reviewers

    The indexing queryset for review requests was hitting the same issue we
    saw with datagrids and the API where a SELECT COUNT(*) would end up
    performing a very expensive nested query, due to the usage of
    DISTINCT. We have plans to remove DISTINCT after some further
    testing, but probably not until Review Board 7.

    However, we can now turn it off, if we don't mind the chance of
    duplicates. That is fine for search indexing, since any duplicates will
    just collapse into one entry.

    This change turns off distinct queries when indexing, and also adds
    another prefetch_related relation to pre-fetch diffsets. This reduces
    the overall number of queries when indexing a batch of review requests.

    Unit tests pass.

    Tested building a full search index and inspecting all the generated
    SQL queries, making sure we were performing simple queries and avoiding
    excess queries.

    Commits

    Files