| 
Time	 | User Action			 | Transaction Logic						 | File System Changes	 | 
| 
12	 | transaction begin		 | transaction id ← 1239; start_time ← 12	 | create clone-1239  | 
| 13	 | touch a			 | commit_time[a] ← 13 (auto-commit)  |  | 
| 14	 | touch clone-1239/b		 | commit_time[b] ← 0 (pending commit)  |  | 
| 15	 | transaction begin		 | transaction id ← 1240; start_time ← 15  | create clone-1240  | 
| 16	 | transaction commit 1239	 | OK (commit_time[b] < start_time)				 | copy clone-1239/b b | 
 |  | commit_time[b] ← 16 				 | destroy clone-1239  | 
| 17	 | touch clone-1240/b		 | commit_time[b] = 16 (unchanged, pending commit)   | 
| 18	 | touch c			 | commit_time[c] ← 18 (auto-commit)  |  | 
| 19	 | transaction begin		 | transaction id ← 1241; start_time ← 19  | create clone-1241  | 
| 20	 | transaction commit 1240	 | Conflict (commit_time[b] > start_time)			 | destroy clone-1240  | 
| 21	 | touch clone-1241/c		 | commit_time[c] = 18 (unchanged, pending commit)   | 
| 22	 | transaction commit 1241	 | OK (commit_time[c] < start_time) 				 | copy clone-1241/c c | 
 |  | commit_time[c] ← 22 				 | destroy clone-1241  | 
| 23	 | transaction begin		 | transaction id ← 1242; start_time ← 23  | create clone-1242  | 
| 24	 | touch clone-1242/c		 | commit_time[c] = 22 (unchanged, pending commit)   | 
| 25	 | touch c			 | commit_time[c] ← 25 (auto-commit)  |  | 
| 26	 | transaction commit 1242	 | Conflict (commit_time[c] > start_time)			 | destroy clone-1242  | 
| 
 |