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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

Milan/cache attempt 2 #1911

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

Milan/cache attempt 2 #1911

wants to merge 11 commits into from

Conversation

MellowYarker
Copy link
Contributor

attempting to salvage what we can from the actor cache PR 馃檭

@MellowYarker MellowYarker force-pushed the milan/cache-attempt-2 branch 13 times, most recently from 4eaf8b0 to 6afab2f Compare March 28, 2024 02:04
MellowYarker and others added 3 commits March 27, 2024 22:05
Reading actor cache isn't easy, and if things are immutable then we
should convey that in the code.
This allows us to mutate from UNKNOWN to PRESENT or ABSENT but permit no other transition.
MellowYarker and others added 5 commits March 27, 2024 22:21
This commit introduces `addToCleanList()` and `addToDirtyList()` to make
it obvious when we're actually transitioning between lists.
This helps make it a bit more obvious that we don't want to touch
`syncStatus` directly.
This commit does a few notable things:
- Counted deletes now use the lastFlush promise instead of their own fulfillers. This does mean that counted delete promises will resolve later in some rare cases like a counted delete and a delete all being requested within the same scheduled flush or a counted delete being issued as part of a transaction. The goal here is to get to a point where *all* operations just have to wait for the flush promise after they are scheduled.
- Counted deletes now maintain their own list of participating entries (somewhat like delete all). This means that we no longer have to "inherit" counted deletes when entries are overridden or do iterator tracking when building their flush batches.
@MellowYarker MellowYarker force-pushed the milan/cache-attempt-2 branch 2 times, most recently from 55709ed to f8ee87b Compare March 28, 2024 03:16
bcaimano and others added 3 commits March 27, 2024 23:37
Makes removeEntry() the only way we remove from lists.
Adds/corrects some comments
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`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants