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

WIP: New definition of TxID ordered speculative linearizability #6185

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

Conversation

heidihoward
Copy link
Member

WIP, opened for CI

@heidihoward heidihoward added the tla TLA+ specifications label May 16, 2024

\* Ordering over txIDs, the form of which is <<view,seqnum>>
TxIDStrictlyLessThan(x, y) ==
\/ x[1] < y[1]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A less invasive refactoring than the introduction of records would be the addition of two definitions such as View==1 and SeqNum==2 to be able to write x[View] < y[View] ....

\* guarantee provided by CCF. Note that this invariant is stronger than traditional linearizability.
\* TxID ordered speculative linearizability means that once a rw transaction is committed, it is linearizable
\* and that the ordering of execution is consistent with the order of transaction IDs.
\* In CCF, a client receives a response before it learns that the transaction is committed, the speculative
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If this sentence is grammatically correct, I find it very hard to read.

\* Note that this invariant is only considers committed read-write transactions.
CommittedRwOrderedSerializableInv ==
\/ Len(CommittedRwResponses) < 2
\/ \A i \in 1..Len(CommittedRwResponses)-1:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The first disjunct is redundant because \A i \in 1..0: P is true.


\* If a transaction response is received (event i) before another transaction is requested (event j),
\* then tx_id of the first transaction is strictly less than the tx_id of the second transaction.
\* Note that this invariant is only considers committed read-write transactions.
Copy link
Collaborator

@lemmy lemmy May 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Superfluous "is".

\/ /\ x[1] = y[1]
/\ x[2] < y[2]

\* CommittedRwResponseSorted is a subset of history containing only the responses to committed rx transactions
Copy link
Collaborator

@lemmy lemmy May 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Dangling "Sorted" in "CommittedRwResponseSorted"?
  • "subsequence" instead of "subset"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tla TLA+ specifications
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants