All MicroEvals
No tools. Three replicas A,B,C initially store (tag=0,value=...
Create MicroEval
Header image for No tools. Three replicas A,B,C initially store (tag=0,value=...

No tools. Three replicas A,B,C initially store (tag=0,value=...

Prompt

No tools. Three replicas A,B,C initially store (tag=0,value=Z). Each PUT blindly replaces local state, even with a lower tag; its ACK names that PUT. A write completes after ACKs from any two distinct replicas. A read queries two replicas and returns their stored value with greatest tag. Execute exactly: 1. PUT(1,X) reaches A,B; both ACK; write 1 completes. 2. Only afterward, PUT(2,Y) reaches B,C; both ACK; write 2 completes. 3. A delayed duplicate PUT(1,X) reaches B, which applies it. 4. After step 3, a read queries A,B. No other events occur. Tags are globally unique and increase with write invocation order. Linearizability means completed writes preceding a read must be respected. Output exactly five lines: STATE=<A tag>,<B tag>,<C tag> READ=<value> LINEARIZABLE=<YES or NO> QUORUM_INTERSECTION=<YES or NO> REPAIR=<MAXTAG or MORE_ACKS> MAXTAG means replicas retain the greatest-tag pair ever received. MORE_ACKS means writes require three ACKs but replicas still blindly overwrite. Select the rule that prevents lower-tag messages from erasing acknowledged higher-tag state.

Drag to resize
Drag to resize
Drag to resize