Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: NpgsqlRest/NpgsqlRest
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: f350c7e
Choose a base ref
...
head repository: NpgsqlRest/NpgsqlRest
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: bc5ebe5
Choose a head ref
  • 1 commit
  • 14 files changed
  • 1 contributor

Commits on Jun 1, 2026

  1. feat: v3.16.1 — cache stampede protection for cached routine responses

    Make stampede protection actually fire for cached endpoints. The previous
    IRoutineCache probe model (Get/AddOrUpdate) could not carry SQL execution as
    the cache factory, so a burst of identical cold-cache requests executed the
    query N times and could exhaust the Postgres connection pool.
    
    - IRoutineCache.GetOrCreateAsync added as an additive default interface
      method, so existing custom backends keep working unchanged.
    - Memory and Redis backends coalesce concurrent factory invocations via an
      in-flight Lazy<Task>; HybridCache delegates to its built-in GetOrCreateAsync.
    - Scalar and passthrough proxy paths route through the factory, with the
      connection opened inside it so coalesced waiters never touch the DB.
    - Records/sets streaming path uses a per-key execution gate, since it streams
      rows and disables caching above MaxCacheableRows; the gate serializes the
      over-limit case instead of coalescing.
    - Tests assert execution counts on the memory backend (50->1, warm->+0,
      distinct keys, set within/over limit) against a live Postgres.
    
    See changelog/v3.16.1.md for honest test-coverage notes and known limitations.
    vbilopav committed Jun 1, 2026
    Configuration menu
    Copy the full SHA
    bc5ebe5 View commit details
    Browse the repository at this point in the history
Loading