Menu

#25 ⚡ Optimize search_decisions to avoid N+1 queries

open
nobody
None
6 days ago
6 days ago
Anonymous
No

Originally created by: sl4m3

This PR addresses the N+1 query issue in search_decisions where _resolve_to_truth was called for each candidate, triggering individual SQL queries.

Changes:

  1. Metadata Store: Added get_batch_by_fids method to retrieve multiple records in a single SQL query (WHERE fid IN (...)).
  2. Memory API:
    • Refactored _resolve_to_truth to use a local cache if provided.
    • In search_decisions, pre-fetched metadata for all initial candidates.
    • Implemented an iterative pre-fetch loop to retrieve superseded documents (up to 5 layers deep) to handle truth resolution efficiently.

This reduces the number of SQL queries from O(N) to O(1) (specifically, 1 initial batch + up to 5 recursive batches). Benchmarks showed correct behavior and slight performance improvement on the local SQLite setup.


PR created automatically by Jules for task 17776749640234411644 started by @sl4m3

Discussion

  • Anonymous

    Anonymous - 6 days ago

    Originally posted by: google-labs-jules[bot]

    👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

    When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

    I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

    For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

    New to Jules? Learn more at jules.google/docs.


    For security, I will only act on instructions from the user who triggered this task.

     
  • Anonymous

    Anonymous - 6 days ago

    Originally posted by: chatgpt-codex-connector[bot]

    You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

     

Log in to post a comment.

MongoDB Logo MongoDB