diff --git a/notes/hat.md b/notes/hat.md index 702e3ce7a5832924f56d6fae865d1854f03e56cf..b49a785472753e9c59a9d4ba48946e6a086c21d1 100644 --- a/notes/hat.md +++ b/notes/hat.md @@ -81,7 +81,7 @@ guarantees. Assume invariant *x == y*: Both preserve consistency in isolation, but not w/ this schedule and dirty writes. -## Isolation guarantees: +## Isolation guarantee definitions: "**read uncommitted**" (PL-1) - writes to each obj totally ordered (prohibits dirty writes) @@ -92,10 +92,17 @@ Both preserve consistency in isolation, but not w/ this schedule and dirty write - no dirty writes, reads - implement w/ buffers (though doesn't guarantee recency) -"**repeatable read**" (cut (*snapshot*) isolation) -- item cut iso (multiple different values): buffer reads -- predicate cut iso (cut over "SELECT ..WHERE....") -- impl both w/ buffering +"**repeatable read**" +- **cut** (*snapshot*) **isolation** + - single piece of data + - this is the usual meaning of RR + - implement by buffering read values +- **item cut isolation** + - multiple different values + - implement by buffering reads +- **predicate cut isolation* + - cut over "SELECT ..WHERE....") (phantom anomalies) + - implement by caching entire logical ranges ---- ### Unachievable isolation levels with partitions: