Skip to content

fix optimistic-lock conflicts in update/delete and make fjall cas atomic#87

Merged
fabracht merged 2 commits into
mainfrom
fix-optimistic-locking-cas
May 29, 2026
Merged

fix optimistic-lock conflicts in update/delete and make fjall cas atomic#87
fabracht merged 2 commits into
mainfrom
fix-optimistic-locking-cas

Conversation

@fabracht

Copy link
Copy Markdown
Contributor

Summary

  • update/delete now retry on optimistic-lock conflict, converging to field-level last-writer-wins; the typed Error::Conflict remains the backstop after a bounded number of attempts.
  • Fix a non-atomic CAS in the fjall backend (check-then-act → silent lost update under concurrency). The commit's precondition check and apply are now serialized; fsync stays outside the lock.
  • Version bumps: mqdb-core 0.7.3, mqdb-agent 0.8.8, mqdb-cli 0.8.9.

Test plan

  • cargo make dev (format + clippy-pedantic + full suite) green
  • new concurrency tests: update convergence and delete/index consistency
  • before/after bench (--durability none, concurrency=1): no write-throughput regression

@fabracht fabracht merged commit 95c138c into main May 29, 2026
5 checks passed
@fabracht fabracht deleted the fix-optimistic-locking-cas branch May 29, 2026 19:01
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.

1 participant