From b07109b4ac9351a16db9942fa7686a31ce013d3d Mon Sep 17 00:00:00 2001 From: "Peter J. Keleher" <keleher@cs.umd.edu> Date: Tue, 31 Oct 2023 11:19:44 -0400 Subject: [PATCH] auto --- notes/ram.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/notes/ram.md b/notes/ram.md index 4919bfd..5eb5b80 100644 --- a/notes/ram.md +++ b/notes/ram.md @@ -227,20 +227,20 @@ When received by server: - `prepare` (version/lock checks) - `decision` (this phase in background, client already notified) ("the transaction is effectively committed once a durable lock record has been written for each of the objects") + - **strict serializability** using **optimistic cc** - updates deferred until commit request - reads executed normally, *versions recorded* - writes on commit phase, possibly w/ expected version + - commit is two-phase - fail *if version-check fails, or locked by another transaction* + - **decision** RPCs in background - fast case - *single server* owns all objects in transaction - *read-only*, even in distributed case only a single round - on client crash, recovery coordinator finishes, hoping to abort unless already committed ## Issues -- worried that storing completion records will not scale well - - local operation - - either disk or (for RAMCloud) replicating elsewhere -- why optional version checking in transactions? (atomic operation primitive) +- background decision RPCs imply longer lock holding ## Questions/comments -- GitLab