The same kind of work can classify differently when the trace order changes.

highlighted = computed this step

Anomalies are interleaving-specific

Book Five made interleavings explicit. Here the same idea carries values: changing the order can change what reads observe and what anomaly is classified. Note: each side is compiled independently.

interleaving specific\text{interleaving specific}

Interleaved side

The interleaved side has 2 recomputed reads. Note: the label is caused by trace order.

interleaved reads=2\text{interleaved reads}=2

these traces model specific anomalies under a read-latest-write execution model; isolation levels (RC/RR/SI/serializable) and MVCC mechanism are modelled later - no product claims.

anomaly: lost_update; final: X=120; serial: X=120stepT1T20R(X)=1001R(X)=1002W(X,110)3W(X,120)

Serial side

The serial side has 2 recomputed reads. Note: the same classifier produces the rendered contrast.

serial reads=2\text{serial reads}=2

these traces model specific anomalies under a read-latest-write execution model; isolation levels (RC/RR/SI/serializable) and MVCC mechanism are modelled later - no product claims.

anomaly: no_anomaly; final: X=120; serial: X=120stepT1T20R(X)=1001W(X,110)2R(X)=1103W(X,120)

Side by side

Both traces are rendered together so the interleaving difference is visible. Note: serializability prevents these interleaving-specific value anomalies.

order matters\text{order matters}

these traces model specific anomalies under a read-latest-write execution model; isolation levels (RC/RR/SI/serializable) and MVCC mechanism are modelled later - no product claims.

anomaly: lost_update; final: X=120; serial: X=120stepT1T20R(X)=1001R(X)=1002W(X,110)3W(X,120)
anomaly: no_anomaly; final: X=120; serial: X=120stepT1T20R(X)=1001W(X,110)2R(X)=1103W(X,120)

Summary

An anomaly is not just a table fact; it is a trace fact. Note: isolation levels, serializable behavior, and MVCC mechanisms are deferred to later books.

trace fact\text{trace fact}