From 14942b204ca36f4b4902a0975f5651d2e10003ae Mon Sep 17 00:00:00 2001
From: "Peter J. Keleher" <keleher@cs.umd.edu>
Date: Wed, 4 Dec 2019 13:24:27 -0500
Subject: [PATCH] auto

---
 README.md                                     | 12 ++-
 recoverytests-answers/recoverytest1_logfile   | 26 +++++
 recoverytests-answers/recoverytest1_relation  |  1 +
 recoverytests-answers/recoverytest2_logfile   | 27 ++++++
 recoverytests-answers/recoverytest2_relation  |  1 +
 recoverytests-answers/recoverytest3_logfile   | 94 +++++++++++++++++++
 recoverytests-answers/recoverytest3_relation  |  1 +
 recoverytests-original/recoverytest1_logfile  | 25 +++++
 recoverytests-original/recoverytest1_relation |  1 +
 recoverytests-original/recoverytest2_logfile  | 19 ++++
 recoverytests-original/recoverytest2_relation |  1 +
 recoverytests-original/recoverytest3_logfile  | 53 +++++++++++
 recoverytests-original/recoverytest3_relation |  1 +
 testingRecovery.py                            |  1 +
 transactions.py                               |  6 +-
 15 files changed, 266 insertions(+), 3 deletions(-)
 create mode 100644 recoverytests-answers/recoverytest1_logfile
 create mode 100644 recoverytests-answers/recoverytest1_relation
 create mode 100644 recoverytests-answers/recoverytest2_logfile
 create mode 100644 recoverytests-answers/recoverytest2_relation
 create mode 100644 recoverytests-answers/recoverytest3_logfile
 create mode 100644 recoverytests-answers/recoverytest3_relation
 create mode 100644 recoverytests-original/recoverytest1_logfile
 create mode 100644 recoverytests-original/recoverytest1_relation
 create mode 100644 recoverytests-original/recoverytest2_logfile
 create mode 100644 recoverytests-original/recoverytest2_relation
 create mode 100644 recoverytests-original/recoverytest3_logfile
 create mode 100644 recoverytests-original/recoverytest3_relation

diff --git a/README.md b/README.md
index 1f11bc0..2f6560b 100644
--- a/README.md
+++ b/README.md
@@ -72,7 +72,17 @@ have to change the `getXLockTuple()` function and also the `compatibility_list`
 * [20 points] Function `restartRecovery()` in `transaction.py`: This function is called if
   the log file indicates an inconsistency (i.e., if the logfile does not end with an empty
   CHECKPOINT record). If that's the case, then you must analyze the logfile and do a
-  recovery on that (see 16.4.2 for details).
+  recovery on that. See 16.4.2 for details, though:
+  * Our CLR records have a different format (see example logfiles for
+    details), and
+  * The book says to undo incomplete transactions in reverse order of their
+    start records. You should
+    undo tranactions *in the order they appear in the original log*, as shown
+    in the slides. The order that the transactions are undone does not matter,
+    as we have 2PL. There will never be more than a single incomplete
+    transaction that modifies a given record.
+	The individual operations of a single transaction, of course, are
+    a different matter.
 
 For the recovery, you will need to write the code for both `revertChanges` and `restartRecovery`. `revertChanges` works by writing a compensating log
 record (CLR) for each update that a failed transaction does, in the correct
diff --git a/recoverytests-answers/recoverytest1_logfile b/recoverytests-answers/recoverytest1_logfile
new file mode 100644
index 0000000..eb2688d
--- /dev/null
+++ b/recoverytests-answers/recoverytest1_logfile
@@ -0,0 +1,26 @@
+[1, "START"]
+[2, "START"]
+[3, "START"]
+[4, "START"]
+[5, "START"]
+[6, "START"]
+[5, "UPDATE", "recoverytest1_relation", "2", "A", "10", "7"]
+[5, "UPDATE", "recoverytest1_relation", "21", "A", "10", "13"]
+[4, "UPDATE", "recoverytest1_relation", "1", "A", "10", "7"]
+[4, "UPDATE", "recoverytest1_relation", "11", "A", "10", "13"]
+[6, "UPDATE", "recoverytest1_relation", "3", "A", "10", "7"]
+[6, "UPDATE", "recoverytest1_relation", "31", "A", "10", "13"]
+[5, "COMMIT"]
+[4, "CLR", "recoverytest1_relation", "11", "A", "10"]
+[6, "CLR", "recoverytest1_relation", "31", "A", "10"]
+[4, "CLR", "recoverytest1_relation", "1", "A", "10"]
+[4, "ABORT"]
+[6, "CLR", "recoverytest1_relation", "3", "A", "10"]
+[6, "ABORT"]
+[1, "UPDATE", "recoverytest1_relation", "0", "A", "10", "20"]
+[2, "UPDATE", "recoverytest1_relation", "10", "A", "10", "20"]
+[3, "UPDATE", "recoverytest1_relation", "20", "A", "10", "20"]
+[1, "COMMIT"]
+[2, "COMMIT"]
+[3, "COMMIT"]
+[-1, "CHECKPOINT", []]
diff --git a/recoverytests-answers/recoverytest1_relation b/recoverytests-answers/recoverytest1_relation
new file mode 100644
index 0000000..5f98751
--- /dev/null
+++ b/recoverytests-answers/recoverytest1_relation
@@ -0,0 +1 @@
+[["ID", "A"], 10, {"24": 3, "25": 3, "26": 3, "27": 3, "20": 3, "21": 3, "22": 3, "23": 3, "28": 3, "29": 3, "0": 1, "4": 1, "8": 1, "59": 6, "58": 6, "55": 6, "54": 6, "57": 6, "56": 6, "51": 6, "50": 6, "53": 6, "52": 6, "88": 9, "89": 9, "82": 9, "83": 9, "80": 9, "81": 9, "86": 9, "87": 9, "84": 9, "85": 9, "3": 1, "7": 1, "39": 4, "38": 4, "33": 4, "32": 4, "31": 4, "30": 4, "37": 4, "36": 4, "35": 4, "34": 4, "60": 7, "61": 7, "62": 7, "63": 7, "64": 7, "65": 7, "66": 7, "67": 7, "68": 7, "69": 7, "2": 1, "6": 1, "99": 10, "98": 10, "91": 10, "90": 10, "93": 10, "92": 10, "95": 10, "94": 10, "97": 10, "96": 10, "11": 2, "10": 2, "13": 2, "12": 2, "15": 2, "14": 2, "17": 2, "16": 2, "19": 2, "18": 2, "48": 5, "49": 5, "46": 5, "47": 5, "44": 5, "45": 5, "42": 5, "43": 5, "40": 5, "41": 5, "1": 1, "5": 1, "9": 1, "77": 8, "76": 8, "75": 8, "74": 8, "73": 8, "72": 8, "71": 8, "70": 8, "79": 8, "78": 8}]                                                                                                                                                                                                                                                                                         [["0", "20"], ["1", "10"], ["2", "7"], ["3", "10"], ["4", "10"], ["5", "10"], ["6", "10"], ["7", "10"], ["8", "10"], ["9", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               [["10", "20"], ["11", "10"], ["12", "10"], ["13", "10"], ["14", "10"], ["15", "10"], ["16", "10"], ["17", "10"], ["18", "10"], ["19", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["20", "20"], ["21", "13"], ["22", "10"], ["23", "10"], ["24", "10"], ["25", "10"], ["26", "10"], ["27", "10"], ["28", "10"], ["29", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["30", "10"], ["31", "10"], ["32", "10"], ["33", "10"], ["34", "10"], ["35", "10"], ["36", "10"], ["37", "10"], ["38", "10"], ["39", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["40", "10"], ["41", "10"], ["42", "10"], ["43", "10"], ["44", "10"], ["45", "10"], ["46", "10"], ["47", "10"], ["48", "10"], ["49", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["50", "10"], ["51", "10"], ["52", "10"], ["53", "10"], ["54", "10"], ["55", "10"], ["56", "10"], ["57", "10"], ["58", "10"], ["59", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["60", "10"], ["61", "10"], ["62", "10"], ["63", "10"], ["64", "10"], ["65", "10"], ["66", "10"], ["67", "10"], ["68", "10"], ["69", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["70", "10"], ["71", "10"], ["72", "10"], ["73", "10"], ["74", "10"], ["75", "10"], ["76", "10"], ["77", "10"], ["78", "10"], ["79", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["80", "10"], ["81", "10"], ["82", "10"], ["83", "10"], ["84", "10"], ["85", "10"], ["86", "10"], ["87", "10"], ["88", "10"], ["89", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["90", "10"], ["91", "10"], ["92", "10"], ["93", "10"], ["94", "10"], ["95", "10"], ["96", "10"], ["97", "10"], ["98", "10"], ["99", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
\ No newline at end of file
diff --git a/recoverytests-answers/recoverytest2_logfile b/recoverytests-answers/recoverytest2_logfile
new file mode 100644
index 0000000..81aad4d
--- /dev/null
+++ b/recoverytests-answers/recoverytest2_logfile
@@ -0,0 +1,27 @@
+[1, "START"]
+[2, "START"]
+[3, "START"]
+[4, "START"]
+[5, "START"]
+[6, "START"]
+[7, "START"]
+[6, "UPDATE", "recoverytest2_relation", "2", "A", "10", "0"]
+[7, "UPDATE", "recoverytest2_relation", "4", "A", "10", "0"]
+[4, "UPDATE", "recoverytest2_relation", "1", "A", "10", "7"]
+[5, "UPDATE", "recoverytest2_relation", "3", "A", "10", "7"]
+[4, "UPDATE", "recoverytest2_relation", "11", "A", "10", "13"]
+[5, "UPDATE", "recoverytest2_relation", "31", "A", "10", "13"]
+[5, "CLR", "recoverytest2_relation", "31", "A", "10"]
+[4, "CLR", "recoverytest2_relation", "11", "A", "10"]
+[5, "CLR", "recoverytest2_relation", "3", "A", "10"]
+[4, "CLR", "recoverytest2_relation", "1", "A", "10"]
+[5, "ABORT"]
+[4, "ABORT"]
+[1, "ABORT"]
+[2, "ABORT"]
+[3, "ABORT"]
+[6, "CLR", "recoverytest2_relation", "2", "A", "10"]
+[6, "ABORT"]
+[7, "CLR", "recoverytest2_relation", "4", "A", "10"]
+[7, "ABORT"]
+[-1, "CHECKPOINT", []]
diff --git a/recoverytests-answers/recoverytest2_relation b/recoverytests-answers/recoverytest2_relation
new file mode 100644
index 0000000..8613de8
--- /dev/null
+++ b/recoverytests-answers/recoverytest2_relation
@@ -0,0 +1 @@
+[["ID", "A"], 10, {"24": 3, "25": 3, "26": 3, "27": 3, "20": 3, "21": 3, "22": 3, "23": 3, "28": 3, "29": 3, "0": 1, "4": 1, "8": 1, "59": 6, "58": 6, "55": 6, "54": 6, "57": 6, "56": 6, "51": 6, "50": 6, "53": 6, "52": 6, "88": 9, "89": 9, "82": 9, "83": 9, "80": 9, "81": 9, "86": 9, "87": 9, "84": 9, "85": 9, "3": 1, "7": 1, "39": 4, "38": 4, "33": 4, "32": 4, "31": 4, "30": 4, "37": 4, "36": 4, "35": 4, "34": 4, "60": 7, "61": 7, "62": 7, "63": 7, "64": 7, "65": 7, "66": 7, "67": 7, "68": 7, "69": 7, "2": 1, "6": 1, "99": 10, "98": 10, "91": 10, "90": 10, "93": 10, "92": 10, "95": 10, "94": 10, "97": 10, "96": 10, "11": 2, "10": 2, "13": 2, "12": 2, "15": 2, "14": 2, "17": 2, "16": 2, "19": 2, "18": 2, "48": 5, "49": 5, "46": 5, "47": 5, "44": 5, "45": 5, "42": 5, "43": 5, "40": 5, "41": 5, "1": 1, "5": 1, "9": 1, "77": 8, "76": 8, "75": 8, "74": 8, "73": 8, "72": 8, "71": 8, "70": 8, "79": 8, "78": 8}]                                                                                                                                                                                                                                                                                         [["0", "10"], ["1", "10"], ["2", "10"], ["3", "10"], ["4", "10"], ["5", "10"], ["6", "10"], ["7", "10"], ["8", "10"], ["9", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [["10", "10"], ["11", "10"], ["12", "10"], ["13", "10"], ["14", "10"], ["15", "10"], ["16", "10"], ["17", "10"], ["18", "10"], ["19", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["20", "10"], ["21", "10"], ["22", "10"], ["23", "10"], ["24", "10"], ["25", "10"], ["26", "10"], ["27", "10"], ["28", "10"], ["29", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["30", "10"], ["31", "10"], ["32", "10"], ["33", "10"], ["34", "10"], ["35", "10"], ["36", "10"], ["37", "10"], ["38", "10"], ["39", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["40", "10"], ["41", "10"], ["42", "10"], ["43", "10"], ["44", "10"], ["45", "10"], ["46", "10"], ["47", "10"], ["48", "10"], ["49", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["50", "10"], ["51", "10"], ["52", "10"], ["53", "10"], ["54", "10"], ["55", "10"], ["56", "10"], ["57", "10"], ["58", "10"], ["59", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["60", "10"], ["61", "10"], ["62", "10"], ["63", "10"], ["64", "10"], ["65", "10"], ["66", "10"], ["67", "10"], ["68", "10"], ["69", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["70", "10"], ["71", "10"], ["72", "10"], ["73", "10"], ["74", "10"], ["75", "10"], ["76", "10"], ["77", "10"], ["78", "10"], ["79", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["80", "10"], ["81", "10"], ["82", "10"], ["83", "10"], ["84", "10"], ["85", "10"], ["86", "10"], ["87", "10"], ["88", "10"], ["89", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["90", "10"], ["91", "10"], ["92", "10"], ["93", "10"], ["94", "10"], ["95", "10"], ["96", "10"], ["97", "10"], ["98", "10"], ["99", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
\ No newline at end of file
diff --git a/recoverytests-answers/recoverytest3_logfile b/recoverytests-answers/recoverytest3_logfile
new file mode 100644
index 0000000..04935aa
--- /dev/null
+++ b/recoverytests-answers/recoverytest3_logfile
@@ -0,0 +1,94 @@
+[1, "START"]
+[2, "START"]
+[3, "START"]
+[4, "START"]
+[1, "UPDATE", "recoverytest3_relation", "0", "A", "10", "2"]
+[2, "UPDATE", "recoverytest3_relation", "1", "A", "10", "0"]
+[5, "START"]
+[6, "START"]
+[3, "UPDATE", "recoverytest3_relation", "2", "A", "10", "0"]
+[7, "START"]
+[3, "COMMIT"]
+[8, "START"]
+[4, "UPDATE", "recoverytest3_relation", "3", "A", "10", "5"]
+[5, "UPDATE", "recoverytest3_relation", "4", "A", "10", "10"]
+[4, "COMMIT"]
+[9, "START"]
+[6, "UPDATE", "recoverytest3_relation", "6", "A", "10", "10"]
+[5, "UPDATE", "recoverytest3_relation", "14", "A", "10", "2"]
+[10, "START"]
+[11, "START"]
+[12, "START"]
+[8, "UPDATE", "recoverytest3_relation", "7", "A", "10", "9"]
+[13, "START"]
+[7, "UPDATE", "recoverytest3_relation", "5", "A", "10", "3"]
+[9, "UPDATE", "recoverytest3_relation", "8", "A", "10", "6"]
+[10, "UPDATE", "recoverytest3_relation", "9", "A", "10", "5"]
+[14, "START"]
+[8, "UPDATE", "recoverytest3_relation", "17", "A", "10", "6"]
+[15, "START"]
+[16, "START"]
+[13, "UPDATE", "recoverytest3_relation", "2", "A", "0", "-1"]
+[17, "START"]
+[18, "START"]
+[14, "UPDATE", "recoverytest3_relation", "3", "A", "5", "4"]
+[19, "START"]
+[20, "START"]
+[6, "UPDATE", "recoverytest3_relation", "16", "A", "10", "3"]
+[5, "UPDATE", "recoverytest3_relation", "24", "A", "10", "8"]
+[7, "COMMIT"]
+[16, "UPDATE", "recoverytest3_relation", "5", "A", "3", "0"]
+[10, "CLR", "recoverytest3_relation", "9", "A", "10"]
+[9, "UPDATE", "recoverytest3_relation", "18", "A", "10", "0"]
+[10, "ABORT"]
+[20, "UPDATE", "recoverytest3_relation", "9", "A", "10", "2"]
+[1, "UPDATE", "recoverytest3_relation", "10", "A", "10", "5"]
+[8, "UPDATE", "recoverytest3_relation", "27", "A", "10", "6"]
+[16, "UPDATE", "recoverytest3_relation", "15", "A", "10", "2"]
+[14, "UPDATE", "recoverytest3_relation", "13", "A", "10", "6"]
+[2, "UPDATE", "recoverytest3_relation", "11", "A", "10", "4"]
+[13, "UPDATE", "recoverytest3_relation", "12", "A", "10", "1"]
+[5, "UPDATE", "recoverytest3_relation", "34", "A", "10", "7"]
+[16, "UPDATE", "recoverytest3_relation", "25", "A", "10", "7"]
+[16, "UPDATE", "recoverytest3_relation", "35", "A", "10", "0"]
+[1, "CLR", "recoverytest3_relation", "10", "A", "10"]
+[1, "CLR", "recoverytest3_relation", "0", "A", "10"]
+[1, "ABORT"]
+[2, "CLR", "recoverytest3_relation", "11", "A", "10"]
+[2, "CLR", "recoverytest3_relation", "1", "A", "10"]
+[2, "ABORT"]
+[5, "CLR", "recoverytest3_relation", "34", "A", "10"]
+[5, "CLR", "recoverytest3_relation", "24", "A", "10"]
+[5, "CLR", "recoverytest3_relation", "14", "A", "10"]
+[5, "CLR", "recoverytest3_relation", "4", "A", "10"]
+[5, "ABORT"]
+[6, "CLR", "recoverytest3_relation", "16", "A", "10"]
+[6, "CLR", "recoverytest3_relation", "6", "A", "10"]
+[6, "ABORT"]
+[8, "CLR", "recoverytest3_relation", "27", "A", "10"]
+[8, "CLR", "recoverytest3_relation", "17", "A", "10"]
+[8, "CLR", "recoverytest3_relation", "7", "A", "10"]
+[8, "ABORT"]
+[9, "CLR", "recoverytest3_relation", "18", "A", "10"]
+[9, "CLR", "recoverytest3_relation", "8", "A", "10"]
+[9, "ABORT"]
+[11, "ABORT"]
+[12, "ABORT"]
+[13, "CLR", "recoverytest3_relation", "12", "A", "10"]
+[13, "CLR", "recoverytest3_relation", "2", "A", "0"]
+[13, "ABORT"]
+[14, "CLR", "recoverytest3_relation", "13", "A", "10"]
+[14, "CLR", "recoverytest3_relation", "3", "A", "5"]
+[14, "ABORT"]
+[15, "ABORT"]
+[16, "CLR", "recoverytest3_relation", "35", "A", "10"]
+[16, "CLR", "recoverytest3_relation", "25", "A", "10"]
+[16, "CLR", "recoverytest3_relation", "15", "A", "10"]
+[16, "CLR", "recoverytest3_relation", "5", "A", "3"]
+[16, "ABORT"]
+[17, "ABORT"]
+[18, "ABORT"]
+[19, "ABORT"]
+[20, "CLR", "recoverytest3_relation", "9", "A", "10"]
+[20, "ABORT"]
+[-1, "CHECKPOINT", []]
diff --git a/recoverytests-answers/recoverytest3_relation b/recoverytests-answers/recoverytest3_relation
new file mode 100644
index 0000000..4ad2277
--- /dev/null
+++ b/recoverytests-answers/recoverytest3_relation
@@ -0,0 +1 @@
+[["ID", "A"], 10, {"24": 3, "25": 3, "26": 3, "27": 3, "20": 3, "21": 3, "22": 3, "23": 3, "28": 3, "29": 3, "0": 1, "4": 1, "8": 1, "59": 6, "58": 6, "55": 6, "54": 6, "57": 6, "56": 6, "51": 6, "50": 6, "53": 6, "52": 6, "88": 9, "89": 9, "82": 9, "83": 9, "80": 9, "81": 9, "86": 9, "87": 9, "84": 9, "85": 9, "3": 1, "7": 1, "39": 4, "38": 4, "33": 4, "32": 4, "31": 4, "30": 4, "37": 4, "36": 4, "35": 4, "34": 4, "60": 7, "61": 7, "62": 7, "63": 7, "64": 7, "65": 7, "66": 7, "67": 7, "68": 7, "69": 7, "2": 1, "6": 1, "99": 10, "98": 10, "91": 10, "90": 10, "93": 10, "92": 10, "95": 10, "94": 10, "97": 10, "96": 10, "11": 2, "10": 2, "13": 2, "12": 2, "15": 2, "14": 2, "17": 2, "16": 2, "19": 2, "18": 2, "48": 5, "49": 5, "46": 5, "47": 5, "44": 5, "45": 5, "42": 5, "43": 5, "40": 5, "41": 5, "1": 1, "5": 1, "9": 1, "77": 8, "76": 8, "75": 8, "74": 8, "73": 8, "72": 8, "71": 8, "70": 8, "79": 8, "78": 8}]                                                                                                                                                                                                                                                                                         [["0", "10"], ["1", "10"], ["2", "0"], ["3", "5"], ["4", "10"], ["5", "3"], ["6", "10"], ["7", "10"], ["8", "10"], ["9", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 [["10", "10"], ["11", "10"], ["12", "10"], ["13", "10"], ["14", "10"], ["15", "10"], ["16", "10"], ["17", "10"], ["18", "10"], ["19", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["20", "10"], ["21", "10"], ["22", "10"], ["23", "10"], ["24", "10"], ["25", "10"], ["26", "10"], ["27", "10"], ["28", "10"], ["29", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["30", "10"], ["31", "10"], ["32", "10"], ["33", "10"], ["34", "10"], ["35", "10"], ["36", "10"], ["37", "10"], ["38", "10"], ["39", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["40", "10"], ["41", "10"], ["42", "10"], ["43", "10"], ["44", "10"], ["45", "10"], ["46", "10"], ["47", "10"], ["48", "10"], ["49", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["50", "10"], ["51", "10"], ["52", "10"], ["53", "10"], ["54", "10"], ["55", "10"], ["56", "10"], ["57", "10"], ["58", "10"], ["59", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["60", "10"], ["61", "10"], ["62", "10"], ["63", "10"], ["64", "10"], ["65", "10"], ["66", "10"], ["67", "10"], ["68", "10"], ["69", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["70", "10"], ["71", "10"], ["72", "10"], ["73", "10"], ["74", "10"], ["75", "10"], ["76", "10"], ["77", "10"], ["78", "10"], ["79", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["80", "10"], ["81", "10"], ["82", "10"], ["83", "10"], ["84", "10"], ["85", "10"], ["86", "10"], ["87", "10"], ["88", "10"], ["89", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["90", "10"], ["91", "10"], ["92", "10"], ["93", "10"], ["94", "10"], ["95", "10"], ["96", "10"], ["97", "10"], ["98", "10"], ["99", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
\ No newline at end of file
diff --git a/recoverytests-original/recoverytest1_logfile b/recoverytests-original/recoverytest1_logfile
new file mode 100644
index 0000000..8a5ee84
--- /dev/null
+++ b/recoverytests-original/recoverytest1_logfile
@@ -0,0 +1,25 @@
+[1, "START"]
+[2, "START"]
+[3, "START"]
+[4, "START"]
+[5, "START"]
+[6, "START"]
+[5, "UPDATE", "recoverytest1_relation", "2", "A", "10", "7"]
+[5, "UPDATE", "recoverytest1_relation", "21", "A", "10", "13"]
+[4, "UPDATE", "recoverytest1_relation", "1", "A", "10", "7"]
+[4, "UPDATE", "recoverytest1_relation", "11", "A", "10", "13"]
+[6, "UPDATE", "recoverytest1_relation", "3", "A", "10", "7"]
+[6, "UPDATE", "recoverytest1_relation", "31", "A", "10", "13"]
+[5, "COMMIT"]
+[4, "CLR", "recoverytest1_relation", "11", "A", "10"]
+[6, "CLR", "recoverytest1_relation", "31", "A", "10"]
+[4, "CLR", "recoverytest1_relation", "1", "A", "10"]
+[4, "ABORT"]
+[6, "CLR", "recoverytest1_relation", "3", "A", "10"]
+[6, "ABORT"]
+[1, "UPDATE", "recoverytest1_relation", "0", "A", "10", "20"]
+[2, "UPDATE", "recoverytest1_relation", "10", "A", "10", "20"]
+[3, "UPDATE", "recoverytest1_relation", "20", "A", "10", "20"]
+[1, "COMMIT"]
+[2, "COMMIT"]
+[3, "COMMIT"]
diff --git a/recoverytests-original/recoverytest1_relation b/recoverytests-original/recoverytest1_relation
new file mode 100644
index 0000000..8613de8
--- /dev/null
+++ b/recoverytests-original/recoverytest1_relation
@@ -0,0 +1 @@
+[["ID", "A"], 10, {"24": 3, "25": 3, "26": 3, "27": 3, "20": 3, "21": 3, "22": 3, "23": 3, "28": 3, "29": 3, "0": 1, "4": 1, "8": 1, "59": 6, "58": 6, "55": 6, "54": 6, "57": 6, "56": 6, "51": 6, "50": 6, "53": 6, "52": 6, "88": 9, "89": 9, "82": 9, "83": 9, "80": 9, "81": 9, "86": 9, "87": 9, "84": 9, "85": 9, "3": 1, "7": 1, "39": 4, "38": 4, "33": 4, "32": 4, "31": 4, "30": 4, "37": 4, "36": 4, "35": 4, "34": 4, "60": 7, "61": 7, "62": 7, "63": 7, "64": 7, "65": 7, "66": 7, "67": 7, "68": 7, "69": 7, "2": 1, "6": 1, "99": 10, "98": 10, "91": 10, "90": 10, "93": 10, "92": 10, "95": 10, "94": 10, "97": 10, "96": 10, "11": 2, "10": 2, "13": 2, "12": 2, "15": 2, "14": 2, "17": 2, "16": 2, "19": 2, "18": 2, "48": 5, "49": 5, "46": 5, "47": 5, "44": 5, "45": 5, "42": 5, "43": 5, "40": 5, "41": 5, "1": 1, "5": 1, "9": 1, "77": 8, "76": 8, "75": 8, "74": 8, "73": 8, "72": 8, "71": 8, "70": 8, "79": 8, "78": 8}]                                                                                                                                                                                                                                                                                         [["0", "10"], ["1", "10"], ["2", "10"], ["3", "10"], ["4", "10"], ["5", "10"], ["6", "10"], ["7", "10"], ["8", "10"], ["9", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [["10", "10"], ["11", "10"], ["12", "10"], ["13", "10"], ["14", "10"], ["15", "10"], ["16", "10"], ["17", "10"], ["18", "10"], ["19", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["20", "10"], ["21", "10"], ["22", "10"], ["23", "10"], ["24", "10"], ["25", "10"], ["26", "10"], ["27", "10"], ["28", "10"], ["29", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["30", "10"], ["31", "10"], ["32", "10"], ["33", "10"], ["34", "10"], ["35", "10"], ["36", "10"], ["37", "10"], ["38", "10"], ["39", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["40", "10"], ["41", "10"], ["42", "10"], ["43", "10"], ["44", "10"], ["45", "10"], ["46", "10"], ["47", "10"], ["48", "10"], ["49", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["50", "10"], ["51", "10"], ["52", "10"], ["53", "10"], ["54", "10"], ["55", "10"], ["56", "10"], ["57", "10"], ["58", "10"], ["59", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["60", "10"], ["61", "10"], ["62", "10"], ["63", "10"], ["64", "10"], ["65", "10"], ["66", "10"], ["67", "10"], ["68", "10"], ["69", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["70", "10"], ["71", "10"], ["72", "10"], ["73", "10"], ["74", "10"], ["75", "10"], ["76", "10"], ["77", "10"], ["78", "10"], ["79", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["80", "10"], ["81", "10"], ["82", "10"], ["83", "10"], ["84", "10"], ["85", "10"], ["86", "10"], ["87", "10"], ["88", "10"], ["89", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["90", "10"], ["91", "10"], ["92", "10"], ["93", "10"], ["94", "10"], ["95", "10"], ["96", "10"], ["97", "10"], ["98", "10"], ["99", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
\ No newline at end of file
diff --git a/recoverytests-original/recoverytest2_logfile b/recoverytests-original/recoverytest2_logfile
new file mode 100644
index 0000000..cada5f0
--- /dev/null
+++ b/recoverytests-original/recoverytest2_logfile
@@ -0,0 +1,19 @@
+[1, "START"]
+[2, "START"]
+[3, "START"]
+[4, "START"]
+[5, "START"]
+[6, "START"]
+[7, "START"]
+[6, "UPDATE", "recoverytest2_relation", "2", "A", "10", "0"]
+[7, "UPDATE", "recoverytest2_relation", "4", "A", "10", "0"]
+[4, "UPDATE", "recoverytest2_relation", "1", "A", "10", "7"]
+[5, "UPDATE", "recoverytest2_relation", "3", "A", "10", "7"]
+[4, "UPDATE", "recoverytest2_relation", "11", "A", "10", "13"]
+[5, "UPDATE", "recoverytest2_relation", "31", "A", "10", "13"]
+[5, "CLR", "recoverytest2_relation", "31", "A", "10"]
+[4, "CLR", "recoverytest2_relation", "11", "A", "10"]
+[5, "CLR", "recoverytest2_relation", "3", "A", "10"]
+[4, "CLR", "recoverytest2_relation", "1", "A", "10"]
+[5, "ABORT"]
+[4, "ABORT"]
diff --git a/recoverytests-original/recoverytest2_relation b/recoverytests-original/recoverytest2_relation
new file mode 100644
index 0000000..8613de8
--- /dev/null
+++ b/recoverytests-original/recoverytest2_relation
@@ -0,0 +1 @@
+[["ID", "A"], 10, {"24": 3, "25": 3, "26": 3, "27": 3, "20": 3, "21": 3, "22": 3, "23": 3, "28": 3, "29": 3, "0": 1, "4": 1, "8": 1, "59": 6, "58": 6, "55": 6, "54": 6, "57": 6, "56": 6, "51": 6, "50": 6, "53": 6, "52": 6, "88": 9, "89": 9, "82": 9, "83": 9, "80": 9, "81": 9, "86": 9, "87": 9, "84": 9, "85": 9, "3": 1, "7": 1, "39": 4, "38": 4, "33": 4, "32": 4, "31": 4, "30": 4, "37": 4, "36": 4, "35": 4, "34": 4, "60": 7, "61": 7, "62": 7, "63": 7, "64": 7, "65": 7, "66": 7, "67": 7, "68": 7, "69": 7, "2": 1, "6": 1, "99": 10, "98": 10, "91": 10, "90": 10, "93": 10, "92": 10, "95": 10, "94": 10, "97": 10, "96": 10, "11": 2, "10": 2, "13": 2, "12": 2, "15": 2, "14": 2, "17": 2, "16": 2, "19": 2, "18": 2, "48": 5, "49": 5, "46": 5, "47": 5, "44": 5, "45": 5, "42": 5, "43": 5, "40": 5, "41": 5, "1": 1, "5": 1, "9": 1, "77": 8, "76": 8, "75": 8, "74": 8, "73": 8, "72": 8, "71": 8, "70": 8, "79": 8, "78": 8}]                                                                                                                                                                                                                                                                                         [["0", "10"], ["1", "10"], ["2", "10"], ["3", "10"], ["4", "10"], ["5", "10"], ["6", "10"], ["7", "10"], ["8", "10"], ["9", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [["10", "10"], ["11", "10"], ["12", "10"], ["13", "10"], ["14", "10"], ["15", "10"], ["16", "10"], ["17", "10"], ["18", "10"], ["19", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["20", "10"], ["21", "10"], ["22", "10"], ["23", "10"], ["24", "10"], ["25", "10"], ["26", "10"], ["27", "10"], ["28", "10"], ["29", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["30", "10"], ["31", "10"], ["32", "10"], ["33", "10"], ["34", "10"], ["35", "10"], ["36", "10"], ["37", "10"], ["38", "10"], ["39", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["40", "10"], ["41", "10"], ["42", "10"], ["43", "10"], ["44", "10"], ["45", "10"], ["46", "10"], ["47", "10"], ["48", "10"], ["49", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["50", "10"], ["51", "10"], ["52", "10"], ["53", "10"], ["54", "10"], ["55", "10"], ["56", "10"], ["57", "10"], ["58", "10"], ["59", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["60", "10"], ["61", "10"], ["62", "10"], ["63", "10"], ["64", "10"], ["65", "10"], ["66", "10"], ["67", "10"], ["68", "10"], ["69", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["70", "10"], ["71", "10"], ["72", "10"], ["73", "10"], ["74", "10"], ["75", "10"], ["76", "10"], ["77", "10"], ["78", "10"], ["79", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["80", "10"], ["81", "10"], ["82", "10"], ["83", "10"], ["84", "10"], ["85", "10"], ["86", "10"], ["87", "10"], ["88", "10"], ["89", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["90", "10"], ["91", "10"], ["92", "10"], ["93", "10"], ["94", "10"], ["95", "10"], ["96", "10"], ["97", "10"], ["98", "10"], ["99", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
\ No newline at end of file
diff --git a/recoverytests-original/recoverytest3_logfile b/recoverytests-original/recoverytest3_logfile
new file mode 100644
index 0000000..2563c84
--- /dev/null
+++ b/recoverytests-original/recoverytest3_logfile
@@ -0,0 +1,53 @@
+[1, "START"]
+[2, "START"]
+[3, "START"]
+[4, "START"]
+[1, "UPDATE", "recoverytest3_relation", "0", "A", "10", "2"]
+[2, "UPDATE", "recoverytest3_relation", "1", "A", "10", "0"]
+[5, "START"]
+[6, "START"]
+[3, "UPDATE", "recoverytest3_relation", "2", "A", "10", "0"]
+[7, "START"]
+[3, "COMMIT"]
+[8, "START"]
+[4, "UPDATE", "recoverytest3_relation", "3", "A", "10", "5"]
+[5, "UPDATE", "recoverytest3_relation", "4", "A", "10", "10"]
+[4, "COMMIT"]
+[9, "START"]
+[6, "UPDATE", "recoverytest3_relation", "6", "A", "10", "10"]
+[5, "UPDATE", "recoverytest3_relation", "14", "A", "10", "2"]
+[10, "START"]
+[11, "START"]
+[12, "START"]
+[8, "UPDATE", "recoverytest3_relation", "7", "A", "10", "9"]
+[13, "START"]
+[7, "UPDATE", "recoverytest3_relation", "5", "A", "10", "3"]
+[9, "UPDATE", "recoverytest3_relation", "8", "A", "10", "6"]
+[10, "UPDATE", "recoverytest3_relation", "9", "A", "10", "5"]
+[14, "START"]
+[8, "UPDATE", "recoverytest3_relation", "17", "A", "10", "6"]
+[15, "START"]
+[16, "START"]
+[13, "UPDATE", "recoverytest3_relation", "2", "A", "0", "-1"]
+[17, "START"]
+[18, "START"]
+[14, "UPDATE", "recoverytest3_relation", "3", "A", "5", "4"]
+[19, "START"]
+[20, "START"]
+[6, "UPDATE", "recoverytest3_relation", "16", "A", "10", "3"]
+[5, "UPDATE", "recoverytest3_relation", "24", "A", "10", "8"]
+[7, "COMMIT"]
+[16, "UPDATE", "recoverytest3_relation", "5", "A", "3", "0"]
+[10, "CLR", "recoverytest3_relation", "9", "A", "10"]
+[9, "UPDATE", "recoverytest3_relation", "18", "A", "10", "0"]
+[10, "ABORT"]
+[20, "UPDATE", "recoverytest3_relation", "9", "A", "10", "2"]
+[1, "UPDATE", "recoverytest3_relation", "10", "A", "10", "5"]
+[8, "UPDATE", "recoverytest3_relation", "27", "A", "10", "6"]
+[16, "UPDATE", "recoverytest3_relation", "15", "A", "10", "2"]
+[14, "UPDATE", "recoverytest3_relation", "13", "A", "10", "6"]
+[2, "UPDATE", "recoverytest3_relation", "11", "A", "10", "4"]
+[13, "UPDATE", "recoverytest3_relation", "12", "A", "10", "1"]
+[5, "UPDATE", "recoverytest3_relation", "34", "A", "10", "7"]
+[16, "UPDATE", "recoverytest3_relation", "25", "A", "10", "7"]
+[16, "UPDATE", "recoverytest3_relation", "35", "A", "10", "0"]
diff --git a/recoverytests-original/recoverytest3_relation b/recoverytests-original/recoverytest3_relation
new file mode 100644
index 0000000..8613de8
--- /dev/null
+++ b/recoverytests-original/recoverytest3_relation
@@ -0,0 +1 @@
+[["ID", "A"], 10, {"24": 3, "25": 3, "26": 3, "27": 3, "20": 3, "21": 3, "22": 3, "23": 3, "28": 3, "29": 3, "0": 1, "4": 1, "8": 1, "59": 6, "58": 6, "55": 6, "54": 6, "57": 6, "56": 6, "51": 6, "50": 6, "53": 6, "52": 6, "88": 9, "89": 9, "82": 9, "83": 9, "80": 9, "81": 9, "86": 9, "87": 9, "84": 9, "85": 9, "3": 1, "7": 1, "39": 4, "38": 4, "33": 4, "32": 4, "31": 4, "30": 4, "37": 4, "36": 4, "35": 4, "34": 4, "60": 7, "61": 7, "62": 7, "63": 7, "64": 7, "65": 7, "66": 7, "67": 7, "68": 7, "69": 7, "2": 1, "6": 1, "99": 10, "98": 10, "91": 10, "90": 10, "93": 10, "92": 10, "95": 10, "94": 10, "97": 10, "96": 10, "11": 2, "10": 2, "13": 2, "12": 2, "15": 2, "14": 2, "17": 2, "16": 2, "19": 2, "18": 2, "48": 5, "49": 5, "46": 5, "47": 5, "44": 5, "45": 5, "42": 5, "43": 5, "40": 5, "41": 5, "1": 1, "5": 1, "9": 1, "77": 8, "76": 8, "75": 8, "74": 8, "73": 8, "72": 8, "71": 8, "70": 8, "79": 8, "78": 8}]                                                                                                                                                                                                                                                                                         [["0", "10"], ["1", "10"], ["2", "10"], ["3", "10"], ["4", "10"], ["5", "10"], ["6", "10"], ["7", "10"], ["8", "10"], ["9", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              [["10", "10"], ["11", "10"], ["12", "10"], ["13", "10"], ["14", "10"], ["15", "10"], ["16", "10"], ["17", "10"], ["18", "10"], ["19", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["20", "10"], ["21", "10"], ["22", "10"], ["23", "10"], ["24", "10"], ["25", "10"], ["26", "10"], ["27", "10"], ["28", "10"], ["29", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["30", "10"], ["31", "10"], ["32", "10"], ["33", "10"], ["34", "10"], ["35", "10"], ["36", "10"], ["37", "10"], ["38", "10"], ["39", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["40", "10"], ["41", "10"], ["42", "10"], ["43", "10"], ["44", "10"], ["45", "10"], ["46", "10"], ["47", "10"], ["48", "10"], ["49", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["50", "10"], ["51", "10"], ["52", "10"], ["53", "10"], ["54", "10"], ["55", "10"], ["56", "10"], ["57", "10"], ["58", "10"], ["59", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["60", "10"], ["61", "10"], ["62", "10"], ["63", "10"], ["64", "10"], ["65", "10"], ["66", "10"], ["67", "10"], ["68", "10"], ["69", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["70", "10"], ["71", "10"], ["72", "10"], ["73", "10"], ["74", "10"], ["75", "10"], ["76", "10"], ["77", "10"], ["78", "10"], ["79", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["80", "10"], ["81", "10"], ["82", "10"], ["83", "10"], ["84", "10"], ["85", "10"], ["86", "10"], ["87", "10"], ["88", "10"], ["89", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    [["90", "10"], ["91", "10"], ["92", "10"], ["93", "10"], ["94", "10"], ["95", "10"], ["96", "10"], ["97", "10"], ["98", "10"], ["99", "10"]]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
\ No newline at end of file
diff --git a/testingRecovery.py b/testingRecovery.py
index dc521ac..cfbac47 100644
--- a/testingRecovery.py
+++ b/testingRecovery.py
@@ -10,6 +10,7 @@ from exampletransactions import *
 #####################################################################################################
 # Initial Setup
 
+print("Reading from '{}' and '{}\n".format("logfile", "relation1"))
 bpool = BufferPool()
 r = Relation('relation1')
 LogManager.setAndAnalyzeLogFile('logfile')
diff --git a/transactions.py b/transactions.py
index 1376c35..688159d 100644
--- a/transactions.py
+++ b/transactions.py
@@ -169,8 +169,10 @@ class LogManager:
         # - fix by:
         #   - reverting transactions that did not finish by calling `revertChanges` on them
         #   - redo transactions that did finish by calling `redoChanges`
-		#   - telling the buffer manager to write all changes to disk
-        # After the restart recovery is done,we can now write out a CHECKPOINT record to signify
+
+        # After the restart recovery is done (i.e., 'revertChanges' called on aborted or not finished transactions,
+        # 'redoChanges' called on 
+        # undone, and all the pages have been written to disk), we can now write out a CHECKPOINT record to signify
         # that the file contents are in a consistent state
         lr = LogRecord([-1, LogRecord.CHECKPOINT, list()])
         LogManager.writeLogRecord(lr)
-- 
GitLab