From 0f4c073d4adfb0fcb165da810e3125a15aa8cd33 Mon Sep 17 00:00:00 2001
From: "Peter J. Keleher" <keleher@cs.umd.edu>
Date: Thu, 9 Dec 2021 10:04:54 -0500
Subject: [PATCH] auto

---
 notes/hat.md | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/notes/hat.md b/notes/hat.md
index 702e3ce..b49a785 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:
-- 
GitLab