Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ActorCache Read Coalesce #1916

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from
Draft

ActorCache Read Coalesce #1916

wants to merge 6 commits into from

Commits on May 23, 2024

  1. Coalesce reads via flush

    bcaimano authored and MellowYarker committed May 23, 2024
    Configuration menu
    Copy the full SHA
    3a92e3a View commit details
    Browse the repository at this point in the history
  2. Cancel syncGets() when ActorCache destroyed

    This commit attempts to provide a mechanism to cancel the promise
    that waits for the read batches to complete in syncGets(). This is
    needed for when the `ActorCache` is destroyed, since we need to destroy
    all `Entry`s before we destroy the `SharedLru`.
    MellowYarker committed May 23, 2024
    Configuration menu
    Copy the full SHA
    82ee954 View commit details
    Browse the repository at this point in the history
  3. Reads shouldn't break output gate

    Prior to this commit, coalescing reads meant that exceptions on reads
    would be subject to flushImpl()s exception handling. In the retriable
    case, this meant up to 4 retries. Otherwise, this meant breaking the
    output gate.
    
    Prior to coalescing reads, a get() would never break the output gate,
    and would only be subject to a single retry.
    
    This commit gets us a bit closer to how things used to be in that reads
    will not break the output gate, but we do not guarantee at least one
    retry upon DISCONNECT.
    MellowYarker committed May 23, 2024
    Configuration menu
    Copy the full SHA
    4381fae View commit details
    Browse the repository at this point in the history
  4. Cancel gets if GetWaiter dropped

    If we drop all our GetWaiters, we might as well not do the read since it
    could evict another Entry from cache (and no one is waiting for the
    result anyways).
    MellowYarker committed May 23, 2024
    Configuration menu
    Copy the full SHA
    fbcbcee View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    250f310 View commit details
    Browse the repository at this point in the history
  6. Handle failed getMultiple() calls

    The test is still failing because we're throwing a fatal somewhere in
    ActorCache (which isn't being caught). I'm not really sure where this is
    happening just yet.
    MellowYarker committed May 23, 2024
    Configuration menu
    Copy the full SHA
    7f5b18f View commit details
    Browse the repository at this point in the history