|
1 |
| -$Header: /cvsroot/pgsql/src/backend/storage/lmgr/README,v 1.2 1998/01/28 02:29:26 momjian Exp $ |
| 1 | +$Header: /cvsroot/pgsql/src/backend/storage/lmgr/README,v 1.3 1998/07/06 18:16:07 momjian Exp $ |
2 | 2 |
|
3 |
| -This file is an attempt to save me (and future code maintainers) some |
4 |
| -time and a lot of headaches. The existing lock manager code at the time |
5 |
| -of this writing (June 16 1992) can best be described as confusing. The |
6 |
| -complexity seems inherent in lock manager functionality, but variable |
7 |
| -names chosen in the current implementation really confuse me everytime |
8 |
| -I have to track down a bug. Also, what gets done where and by whom isn't |
9 |
| -always clear.... |
| 3 | +There are two fundemental lock structures. Lock methods describe the |
| 4 | +locking behavior. We currently only support multi-level locking. Lock |
| 5 | +modes describe the mode of the lock(read/write or shared/exclusive). |
| 6 | +See src/tools/backend/index.html and src/include/storage/lock.h for more |
| 7 | +details. |
10 | 8 |
|
11 |
| -Starting with the data structures the lock manager relies upon... |
12 |
| - |
13 |
| -(NOTE - these will undoubtedly change over time and it is likely |
14 |
| -that this file won't always be updated along with the structs.) |
| 9 | +--------------------------------------------------------------------------- |
15 | 10 |
|
16 | 11 | The lock manager's LOCK:
|
17 | 12 |
|
@@ -90,10 +85,3 @@ activeHolders -
|
90 | 85 |
|
91 | 86 | ---------------------------------------------------------------------------
|
92 | 87 |
|
93 |
| -Locks are accessed in two ways. Each PROC structure has a lockQueue, |
94 |
| -that is a circular linked list of LOCK pointers that this process holds |
95 |
| -or is waiting on. |
96 |
| - |
97 |
| -Second, there is a hash table that can do a lookup by combined LOCK |
98 |
| -address and transaction id(xid) which allows a process to see what |
99 |
| -type of locks it holds on that table. |
0 commit comments