|
1 Transactions on the Logical Database |
|
|
1 | (24) |
|
|
1 | (1) |
|
|
2 | (2) |
|
1.3 Integrity of the Logical Database |
|
|
4 | (1) |
|
|
5 | (2) |
|
|
7 | (3) |
|
1.6 ACID Properties of Transactions |
|
|
10 | (3) |
|
|
13 | (2) |
|
|
15 | (3) |
|
1.9 Savepoints and Partial Rollbacks |
|
|
18 | (2) |
|
1.10 Multiple Granularity |
|
|
20 | (5) |
|
|
20 | (3) |
|
|
23 | (2) |
|
2 Operations on the Physical Database |
|
|
25 | (20) |
|
2.1 Data Structures and Processes on the Server |
|
|
25 | (2) |
|
2.2 Database Pages and Files |
|
|
27 | (4) |
|
2.3 Buffering and Fixing of Database Pages |
|
|
31 | (2) |
|
|
33 | (1) |
|
2.5 Database Recovery and Checkpoints |
|
|
34 | (2) |
|
2.6 Integrity of the Physical Database |
|
|
36 | (1) |
|
2.7 Latching of Database Pages |
|
|
37 | (2) |
|
2.8 Modifications on the Physical Structure |
|
|
39 | (6) |
|
|
42 | (1) |
|
|
43 | (2) |
|
|
45 | (20) |
|
|
46 | (2) |
|
3.2 Physiological Logging |
|
|
48 | (2) |
|
3.3 Active-Transaction Table and Modified-Page Table |
|
|
50 | (2) |
|
3.4 Logging for the Read-Write and Key-Range Models |
|
|
52 | (3) |
|
3.5 Logging Structure Modifications |
|
|
55 | (2) |
|
|
57 | (1) |
|
|
58 | (1) |
|
|
59 | (1) |
|
3.9 The Steal-and-No-Force Buffering Policy |
|
|
60 | (1) |
|
3.10 Reducing Disk Access |
|
|
61 | (4) |
|
|
62 | (1) |
|
|
63 | (2) |
|
4 Transaction Rollback and Restart Recovery |
|
|
65 | (36) |
|
4.1 Transaction Aborts, Process Failures, and System Crashes |
|
|
66 | (1) |
|
4.2 Partial and Total Rollbacks |
|
|
67 | (2) |
|
4.3 Performing the Undo Actions |
|
|
69 | (3) |
|
|
72 | (1) |
|
4.5 Problems with Do-Undo-Redo Recovery |
|
|
73 | (2) |
|
4.6 The ARIES Do-Redo-Undo Recovery Algorithm |
|
|
75 | (2) |
|
4.7 Analysis Pass for Do-Redo-Undo Recovery |
|
|
77 | (5) |
|
4.8 Redo Pass for Do-Redo-Undo Recovery |
|
|
82 | (5) |
|
4.9 Undo Pass for Do-Redo-Undo Recovery |
|
|
87 | (5) |
|
4.10 Recovery from a Process Failure |
|
|
92 | (1) |
|
4.11 Recovering Structure Modifications |
|
|
93 | (8) |
|
|
96 | (2) |
|
|
98 | (3) |
|
5 Transactional Isolation |
|
|
101 | (24) |
|
5.1 Transaction Histories |
|
|
102 | (3) |
|
|
105 | (1) |
|
|
106 | (5) |
|
5.4 Isolation Anomalies and Database Integrity |
|
|
111 | (4) |
|
|
115 | (1) |
|
5.6 Isolation and Transaction Rollback |
|
|
116 | (2) |
|
5.7 Conflict-Serializability |
|
|
118 | (2) |
|
|
120 | (5) |
|
|
121 | (2) |
|
|
123 | (2) |
|
6 Lock-Based Concurrency Control |
|
|
125 | (34) |
|
6.1 Locks and the Lock Table |
|
|
126 | (2) |
|
6.2 Acquiring and Releasing Locks |
|
|
128 | (3) |
|
6.3 Locking Protocol for the Read-Write Model |
|
|
131 | (4) |
|
|
135 | (9) |
|
|
144 | (3) |
|
6.6 Conditional Lock Requests |
|
|
147 | (1) |
|
6.7 Algorithms for Read, Insert, and Delete Actions |
|
|
148 | (5) |
|
|
153 | (6) |
|
|
155 | (2) |
|
|
157 | (2) |
|
|
159 | (26) |
|
7.1 Sparse B-Tree Indexes |
|
|
160 | (2) |
|
|
162 | (3) |
|
7.3 Traversals for Read Actions |
|
|
165 | (5) |
|
7.4 Traversals for Insert Actions |
|
|
170 | (6) |
|
7.5 Traversals for Delete Actions |
|
|
176 | (4) |
|
7.6 Traversals for Undo Actions |
|
|
180 | (5) |
|
|
181 | (1) |
|
|
182 | (3) |
|
8 B-Tree Structure Modifications |
|
|
185 | (36) |
|
8.1 Top-Down Redo-Only Modifications |
|
|
186 | (2) |
|
8.2 Tree-Height Increase and Page Split |
|
|
188 | (3) |
|
8.3 Tree-Height Decrease, Page Merge, and Records Redistribute |
|
|
191 | (4) |
|
8.4 Sequences of Redo-Only Modifications |
|
|
195 | (9) |
|
8.5 Redoing B-Tree Structure Modifications |
|
|
204 | (3) |
|
8.6 Bottom-Up Structure Modifications |
|
|
207 | (5) |
|
|
212 | (1) |
|
|
213 | (8) |
|
|
215 | (2) |
|
|
217 | (4) |
|
9 Advanced Locking Protocols |
|
|
221 | (16) |
|
9.1 Key-Range Locking for Multiple Granules |
|
|
222 | (1) |
|
9.2 Intention Locks and Multi-Granular Locking |
|
|
223 | (4) |
|
9.3 Logical Locking vs. Physical Locking |
|
|
227 | (1) |
|
|
228 | (2) |
|
|
230 | (1) |
|
|
231 | (1) |
|
9.7 Recovery and Concurrent Transactions |
|
|
232 | (5) |
|
|
234 | (2) |
|
|
236 | (1) |
|
10 Bulk Operations on B-Trees |
|
|
237 | (22) |
|
10.1 Transactions with Bulk Actions |
|
|
238 | (3) |
|
10.2 Locking Range Partitions |
|
|
241 | (6) |
|
|
247 | (1) |
|
|
248 | (2) |
|
|
250 | (2) |
|
10.6 Logging and Undoing Bulk Actions |
|
|
252 | (1) |
|
10.7 Complexity of Scanning a Key Range |
|
|
253 | (6) |
|
|
256 | (1) |
|
|
257 | (2) |
|
11 Online Index Construction and Maintenance |
|
|
259 | (20) |
|
11.1 Secondary-Key-Based Actions |
|
|
260 | (2) |
|
11.2 Secondary B-Tree Indexes |
|
|
262 | (2) |
|
11.3 Index Construction Without Quiescing Updates |
|
|
264 | (2) |
|
11.4 Extraction of the Index Records |
|
|
266 | (1) |
|
11.5 Concurrent Updates by Transactions |
|
|
267 | (5) |
|
11.6 Populating the Index |
|
|
272 | (2) |
|
11.7 Restoration of Clustering |
|
|
274 | (5) |
|
|
276 | (1) |
|
|
277 | (2) |
|
12 Concurrency Control by Versioning |
|
|
279 | (20) |
|
12.1 Transaction-Time Databases |
|
|
279 | (2) |
|
12.2 Read-Only and Update Transactions |
|
|
281 | (3) |
|
12.3 Transaction-Level Read Consistency |
|
|
284 | (2) |
|
12.4 Statement-Level Read Consistency |
|
|
286 | (1) |
|
|
287 | (2) |
|
12.6 Enforcing the Disjoint-Write Property |
|
|
289 | (1) |
|
12.7 Version Management with B-Trees |
|
|
290 | (2) |
|
12.8 Update Transactions on Versioned B-Trees |
|
|
292 | (7) |
|
|
294 | (2) |
|
|
296 | (3) |
|
13 Distributed Transactions |
|
|
299 | (28) |
|
13.1 Distributed Databases |
|
|
300 | (1) |
|
13.2 Transactions on a Distributed Database |
|
|
301 | (5) |
|
|
306 | (1) |
|
13.4 Two-Phase Commit Protocol |
|
|
307 | (4) |
|
13.5 Recovering a Server from a Failure |
|
|
311 | (1) |
|
13.6 Isolation and Concurrency Control |
|
|
312 | (2) |
|
13.7 Replicated Databases |
|
|
314 | (2) |
|
13.8 Remote Backup Databases |
|
|
316 | (3) |
|
13.9 Transactions on Key-Value Stores |
|
|
319 | (8) |
|
|
321 | (3) |
|
|
324 | (3) |
|
14 Transactions in Page-Server Systems |
|
|
327 | (24) |
|
|
328 | (2) |
|
14.2 Page-Server Architecture |
|
|
330 | (1) |
|
14.3 Client Caching and Page-Server State |
|
|
331 | (3) |
|
|
334 | (1) |
|
|
335 | (3) |
|
|
338 | (3) |
|
14.7 Recovery from a Client Failure |
|
|
341 | (2) |
|
14.8 Recovery from a Server Failure |
|
|
343 | (2) |
|
|
345 | (1) |
|
14.10 Shared-Disks Systems |
|
|
346 | (5) |
|
|
347 | (2) |
|
|
349 | (2) |
|
15 Processing of Write-Intensive Transactions |
|
|
351 | (20) |
|
|
352 | (2) |
|
15.2 Online Page Relocation |
|
|
354 | (1) |
|
15.3 Write-Optimized B-Trees |
|
|
355 | (5) |
|
|
360 | (3) |
|
15.5 Log-Structured Databases |
|
|
363 | (1) |
|
15.6 Databases on Flash Memory |
|
|
364 | (7) |
|
|
367 | (1) |
|
|
368 | (3) |
References |
|
371 | (10) |
Index |
|
381 | |