|
|
1.1 root 1: .ds HE 'HOW TO INSTALL CONCURRENCY DEVICE''PAGE %'
2: .so nmacs
3: .ce
4: Instructions for installing the INGRES lock device in UNIX
5:
6: .ce
7: May 19, 1983
8: .sp 3
9: INGRES version 8.1 has a fully implemented concurrency control
10: mechanism.
11: The INGRES system sets and clears locks by writing to
12: a server named "ingreslock".
13: If the socket cannot be opened for writing, INGRES
14: runs without any concurrency control.
15:
16: Initially it is advisable to bring up INGRES without
17: the concurrency device.
18: If planned usage of the INGRES system requires concurrency
19: control then the server "ingreslock" must be installed
20: into your UNIX system.
21:
22: This document describes the procedure for installing
23: the UNIX server for
24: "ingreslock".
25:
26: .sh 1
27: Log in as root.
28: .sh 1
29: Compiling the concurrency device
30: .PS
31: .dn
32: change directory to ../source/support
33: .PS
34: The concurrency device consists of three
35: files: .../source/support/ildr.c
36: .../source/h/ildr.h
37: and .../source/support/init_socket.c
38:
39: compile the lock driver
40: .nf
41: make ingreslock
42:
43: .fi
44: .sh
45: Installation Parameters
46: .PS
47: There are several parameters in ildr.h that can be set by
48: the user. These include:
49:
50: .nf
51: NLOCKS - number of locks
52: PLOCKS - page locks
53: RLOCKS - relation locks
54: DLOCKS - data base locks
55:
56: .fi
57: NLOCKS is the maximum number of locks permissible.
58: It determines the size of the lock table.
59: PLOCKS is the maximum number of page, relation and data base
60: locks.
61: RLOCKS is the maximum number of relation and data base locks.
62: DLOCKS is the maximum number of data base locks. Only
63: DLOCKS INGRESes can be active at one time.
64:
65: The following conditions must hold to protect against
66: deadlock due to lock table overflow:
67:
68: .nf
69: NLOCKS > PLOCKS > RLOCKS > DLOCKS + 6
70:
71: .fi
72: The extra number of RLOCKS are required inorder
73: to be able to run 6-variable queries.
74: We recommend first setting DLOCKS and then setting the other parameters
75: as follows:
76:
77: .nf
78: RLOCKS = 2*DLOCKS + 6
79: PLOCKS = RLOCKS + 3
80: NLOCKS = PLOCKS + 1
81: .fi
82:
83: For example, to reduce the size of the lock table, one could set
84: DLOCKS = 2, RLOCKS = 10, PLOCKS = 13, NLOCKS = 14.
85: In this case, only 2 people could be running ingres at one time.
86:
87: As another example, to allow for more concurrent INGRESes, one could set
88: DLOCKS = 20, RLOCKS = 46, PLOCKS = 49, NLOCKS = 50.
89: This scenario would allow for twenty simultaneous INGRES users.
90:
91: .sh
92: Copy the server
93: .PS
94: Copy the lock server to where the servers
95: are kept on your system.
96:
97: .nf
98: cp ingreslock /etc/ingreslock
99:
100: .fi
101: .sh 1
102: Add the service to /etc/services
103: .PS
104: You should have an entry
105:
106: .nf
107:
108: ingreslock 1524/tcp # Ingres concurrency driver
109:
110: .fi
111:
112: .PS
113: In your /etc/services file. Note that the number (in this case 1524) need only
114: be unique among your servers, and does NOT have to be 1524 (we use it though).
115: .sh 1
116: Put lock server in /etc/rc.local thusly:
117:
118: .nf
119: /etc/ingreslock & echo -n ' ingreslock' > /dev/console
120: .fi
121:
122: .PS
123: This ensures that the lock server is always running when the system
124: is up.
125: .sh 1
126: Done.
127: .PS
128: INGRES will now use the "ingreslock" service for its
129: concurrency control.
130: A simple way to verify this is to try running
131: (for example) "purge" on a data base while
132: anyone is running "ingres" on the same data base.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.