Add license file to binary image
[platform/upstream/krb5.git] / src / plugins / kdb / db2 / libdb2 / man / db.man.ps
1 %!PS-Adobe-3.0
2 %%Creator: groff version 1.08
3 %%DocumentNeededResources: font Times-Roman
4 %%+ font Times-Bold
5 %%+ font Times-Italic
6 %%DocumentSuppliedResources: procset grops 1.08 0
7 %%Pages: 28
8 %%PageOrder: Ascend
9 %%Orientation: Portrait
10 %%EndComments
11 %%BeginProlog
12 %%BeginResource: procset grops 1.08 0
13 /setpacking where{
14 pop
15 currentpacking
16 true setpacking
17 }if
18 /grops 120 dict dup begin
19 /SC 32 def
20 /A/show load def
21 /B{0 SC 3 -1 roll widthshow}bind def
22 /C{0 exch ashow}bind def
23 /D{0 exch 0 SC 5 2 roll awidthshow}bind def
24 /E{0 rmoveto show}bind def
25 /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
26 /G{0 rmoveto 0 exch ashow}bind def
27 /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
28 /I{0 exch rmoveto show}bind def
29 /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
30 /K{0 exch rmoveto 0 exch ashow}bind def
31 /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
32 /M{rmoveto show}bind def
33 /N{rmoveto 0 SC 3 -1 roll widthshow}bind def
34 /O{rmoveto 0 exch ashow}bind def
35 /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
36 /Q{moveto show}bind def
37 /R{moveto 0 SC 3 -1 roll widthshow}bind def
38 /S{moveto 0 exch ashow}bind def
39 /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
40 /SF{
41 findfont exch
42 [exch dup 0 exch 0 exch neg 0 0]makefont
43 dup setfont
44 [exch/setfont cvx]cvx bind def
45 }bind def
46 /MF{
47 findfont
48 [5 2 roll
49 0 3 1 roll 
50 neg 0 0]makefont
51 dup setfont
52 [exch/setfont cvx]cvx bind def
53 }bind def
54 /level0 0 def
55 /RES 0 def
56 /PL 0 def
57 /LS 0 def
58 /PLG{
59 gsave newpath clippath pathbbox grestore
60 exch pop add exch pop
61 }bind def
62 /BP{
63 /level0 save def
64 1 setlinecap
65 1 setlinejoin
66 72 RES div dup scale
67 LS{
68 90 rotate
69 }{
70 0 PL translate
71 }ifelse
72 1 -1 scale
73 }bind def
74 /EP{
75 level0 restore
76 showpage
77 }bind def
78 /DA{
79 newpath arcn stroke
80 }bind def
81 /SN{
82 transform
83 .25 sub exch .25 sub exch
84 round .25 add exch round .25 add exch
85 itransform
86 }bind def
87 /DL{
88 SN
89 moveto
90 SN
91 lineto stroke
92 }bind def
93 /DC{
94 newpath 0 360 arc closepath
95 }bind def
96 /TM matrix def
97 /DE{
98 TM currentmatrix pop
99 translate scale newpath 0 0 .5 0 360 arc closepath
100 TM setmatrix
101 }bind def
102 /RC/rcurveto load def
103 /RL/rlineto load def
104 /ST/stroke load def
105 /MT/moveto load def
106 /CL/closepath load def
107 /FL{
108 currentgray exch setgray fill setgray
109 }bind def
110 /BL/fill load def
111 /LW/setlinewidth load def
112 /RE{
113 findfont
114 dup maxlength 1 index/FontName known not{1 add}if dict begin
115 {
116 1 index/FID ne{def}{pop pop}ifelse
117 }forall
118 /Encoding exch def
119 dup/FontName exch def
120 currentdict end definefont pop
121 }bind def
122 /DEFS 0 def
123 /EBEGIN{
124 moveto
125 DEFS begin
126 }bind def
127 /EEND/end load def
128 /CNT 0 def
129 /level1 0 def
130 /PBEGIN{
131 /level1 save def
132 translate
133 div 3 1 roll div exch scale
134 neg exch neg exch translate
135 0 setgray
136 0 setlinecap
137 1 setlinewidth
138 0 setlinejoin
139 10 setmiterlimit
140 []0 setdash
141 /setstrokeadjust where{
142 pop
143 false setstrokeadjust
144 }if
145 /setoverprint where{
146 pop
147 false setoverprint
148 }if
149 newpath
150 /CNT countdictstack def
151 userdict begin
152 /showpage{}def
153 }bind def
154 /PEND{
155 clear
156 countdictstack CNT sub{end}repeat
157 level1 restore
158 }bind def
159 end def
160 /setpacking where{
161 pop
162 setpacking
163 }if
164 %%EndResource
165 %%IncludeResource: font Times-Roman
166 %%IncludeResource: font Times-Bold
167 %%IncludeResource: font Times-Italic
168 grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 def/PL
169 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron/scaron/zcaron
170 /Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef/.notdef/.notdef
171 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
172 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/space
173 /exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft
174 /parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four
175 /five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C
176 /D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash
177 /bracketright/circumflex/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q
178 /r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase
179 /guillemotleft/guillemotright/bullet/florin/fraction/perthousand/dagger
180 /daggerdbl/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
181 /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
182 /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen/brokenbar
183 /section/dieresis/copyright/ordfeminine/guilsinglleft/logicalnot/minus
184 /registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu
185 /paragraph/periodcentered/cedilla/onesuperior/ordmasculine/guilsinglright
186 /onequarter/onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde
187 /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute
188 /Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
189 /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls
190 /agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla/egrave/eacute
191 /ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis/eth/ntilde/ograve
192 /oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex
193 /udieresis/yacute/thorn/ydieresis]def/Times-Italic@0 ENC0/Times-Italic RE
194 /Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
195 %%EndProlog
196 %%Page: 1 1
197 %%BeginPageSetup
198 BP
199 %%EndPageSetup
200 /F0 10/Times-Roman@0 SF 113.45(DB_BTREE\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
201 (sM)-.55 G 113.45(anual DB_BTREE\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)
202 72 84 S(ME).18 E F0(db_btree \255 btree database access method)108 96 Q F1
203 (DESCRIPTION)72 112.8 Q F0 .486(The DB library is a f)108 124.8 R .485
204 (amily of groups of functions that pro)-.1 F .485
205 (vides a modular programming interf)-.15 F .485(ace to trans-)-.1 F .822
206 (actions and record-oriented \214le access.)108 136.8 R .822
207 (The library includes support for transaction, locking, logging and)5.822 F
208 .258(\214le b)108 148.8 R(uf)-.2 E .258(fering functionality)-.25 F 2.758(,a)
209 -.65 G 2.758(sw)223.214 148.8 S .258(ell as v)237.082 148.8 R .258(arious inde)
210 -.25 F -.15(xe)-.15 G 2.758(da).15 G .258(ccess methods.)331.434 148.8 R(Man)
211 5.258 E 2.758(yo)-.15 G 2.758(ft)427.878 148.8 S .258
212 (he functional groups \(e.g.)436.746 148.8 R .528(the memory pool functions\) \
213 are useful independently of the rest of the DB functions, although some func-)
214 108 160.8 R .306(tional groups are e)108 172.8 R .306
215 (xplicitly based on other functional groups \(e.g.)-.15 F .306
216 (transactions and logging\).)5.306 F -.15(Fo)5.306 G 2.806(rag).15 G(eneral)
217 515.57 172.8 Q .245(description of transactions, see)108 184.8 R/F2 10
218 /Times-Italic@0 SF(db_txn)2.745 E F0 2.745(\(3\). F).24 F .245
219 (or a general description of the access methods, see)-.15 F F2(db_open)2.745 E
220 F0(\(3\)).24 E .308(and then the indi)108 196.8 R .308
221 (vidual access method manual pages:)-.25 F F2(db_btr)2.807 E(ee)-.37 E F0
222 (\(3\),).18 E F2(db_hash)2.807 E F0(\(3\),).28 E F2(db_lo)2.807 E(g)-.1 E F0
223 .307(\(3\) and).22 F F2(db_r)2.807 E(ecno)-.37 E F0(\(3\).).18 E -.15(Fo)108
224 208.8 S 3.635(rag).15 G 1.135(eneral description of the lock manager)138.45
225 208.8 R 3.635(,s)-.4 G(ee)307.32 208.8 Q F2(db_loc)3.635 E(k)-.2 E F0 3.635
226 (\(3\). F).67 F 1.135(or a general description of the memory)-.15 F
227 (pool manager)108 220.8 Q 2.5(,s)-.4 G(ee)171.2 220.8 Q F2(db_mpool)2.5 E F0
228 (\(3\).).51 E
229 (This manual page describes speci\214c details of the btree access method.)108
230 237.6 Q 1.518(The btree data structure is a sorted, balanced tree structure st\
231 oring associated k)108 254.4 R -.15(ey)-.1 G 1.517(/data pairs.).15 F
232 (Searches,)6.517 E .598(insertions, and deletions in the btree will all comple\
233 te in O lg base N where base is the a)108 266.4 R -.15(ve)-.2 G .598
234 (rage \214ll f).15 F(actor)-.1 E(.)-.55 E .306
235 (Often, inserting ordered data into btrees results in a lo)108 278.4 R 2.806
236 <778c>-.25 G .305(ll f)341.61 278.4 R(actor)-.1 E 5.305(.T)-.55 G .305
237 (his implementation has been modi\214ed)386.56 278.4 R(to mak)108 290.4 Q 2.5
238 (eo)-.1 G(rdered insertion the best case, resulting in a much better than norm\
239 al page \214ll f)147.34 290.4 Q(actor)-.1 E(.)-.55 E F1 -.495(AC)72 307.2 S
240 (CESS METHOD SPECIFIC INFORMA).495 E(TION)-.855 E F0 .175
241 (The btree access method speci\214c data structure pro)108 319.2 R .176
242 (vided to)-.15 F F2(db_open)2.676 E F0 .176(is typedef)2.676 F 1.176 -.5('d a)
243 .55 H .176(nd named BTREEINFO.).5 F 2.638(AB)108 331.2 S .138
244 (TREEINFO structure has at least the follo)124.528 331.2 R .137
245 (wing \214elds, which may be initialized before calling)-.25 F F2(db_open)2.637
246 E F0(:).24 E(u_int cachesize;)108 348 Q 3.743(As)133 360 S 1.243
247 (uggested maximum size \(in bytes\) of the memory cache.)147.853 360 R 1.243
248 (This v)6.243 F 1.243(alue is)-.25 F/F3 10/Times-Bold@0 SF(only)3.743 E F0
249 (advisory)3.743 E 3.744(,a)-.65 G 1.244(nd the)514.036 360 R .017
250 (access method will allocate more memory rather than f)133 372 R 2.517
251 (ail. Since)-.1 F -2.15 -.25(ev e)2.517 H .016(ry search e).25 F .016
252 (xamines the root page)-.15 F 1.319
253 (of the tree, caching the most recently used pages substantially impro)133 384
254 R -.15(ve)-.15 G 3.82(sa).15 G 1.32(ccess time.)441.05 384 R 1.32(In addition,)
255 6.32 F(ph)133 396 Q .911(ysical writes are delayed as long as possible, so a m\
256 oderate cache can reduce the number of I/O)-.05 F 1.497
257 (operations signi\214cantly)133 408 R 6.497(.O)-.65 G -.15(bv)243.674 408 S
258 (iously).15 E 3.997(,u)-.65 G 1.497(sing a cache increases \(b)288.821 408 R
259 1.498(ut only increases\) the lik)-.2 F 1.498(elihood of)-.1 F .336(corruption\
260  or lost data if the system crashes while a tree is being modi\214ed.)133 420 R
261 (If)5.336 E F2(cac)2.836 E(hesize)-.15 E F0 .335(is 0 \(no size)2.835 F
262 (is speci\214ed\) a def)133 432 Q(ault cache is used.)-.1 E
263 (int \(*compare\)\(const DBT *, const DBT *\);)108 448.8 Q .194
264 (Compare is the k)133 460.8 R .494 -.15(ey c)-.1 H .194(omparison function.).15
265 F .194(It must return an inte)5.194 F .194
266 (ger less than, equal to, or greater than)-.15 F .656(zero if the \214rst k)133
267 472.8 R .956 -.15(ey a)-.1 H -.18(rg).15 G .656
268 (ument is considered to be respecti).18 F -.15(ve)-.25 G .655
269 (ly less than, equal to, or greater than the).15 F .798(second k)133 484.8 R
270 1.098 -.15(ey a)-.1 H -.18(rg).15 G 3.298(ument. The).18 F .798
271 (same comparison function must be used on a gi)3.298 F -.15(ve)-.25 G 3.298(nt)
272 .15 G .799(ree e)462.774 484.8 R -.15(ve)-.25 G .799(ry time it is).15 F 2.79
273 (opened. If)133 496.8 R F2(compar)2.79 E(e)-.37 E F0 .29
274 (is NULL \(no comparison function is speci\214ed\), the k)2.79 F -.15(ey)-.1 G
275 2.79(sa).15 G .29(re compared le)451.08 496.8 R(xically)-.15 E(,)-.65 E
276 (with shorter k)133 508.8 Q -.15(ey)-.1 G 2.5(sc).15 G
277 (onsidered less than longer k)208.57 508.8 Q -.15(ey)-.1 G(s.).15 E
278 (u_long \215ags;)108 525.6 Q(The \215ag v)133 537.6 Q(alue is speci\214ed by)
279 -.25 E F2(or)2.5 E F0('ing an).73 E 2.5(yo)-.15 G 2.5(ft)302.2 537.6 S
280 (he follo)310.81 537.6 Q(wing v)-.25 E(alues:)-.25 E(R_DUP)133 554.4 Q .354
281 (Permit duplicate k)158 566.4 R -.15(ey)-.1 G 2.854(si).15 G 2.854(nt)250.752
282 566.4 S .355(he tree, i.e. permit insertion if the k)261.386 566.4 R .655 -.15
283 (ey t)-.1 H 2.855(ob).15 G 2.855(ei)432.64 566.4 S .355(nserted already e)
284 442.715 566.4 R .355(xists in)-.15 F 1.65(the tree.)158 578.4 R 1.65(The def)
285 6.65 F 1.65(ault beha)-.1 F(vior)-.2 E 4.149(,a)-.4 G 4.149(sd)295.509 578.4 S
286 1.649(escribed in)308.548 578.4 R F2(db_open)4.149 E F0 1.649(\(3\), is to o)
287 .24 F -.15(ve)-.15 G 1.649(rwrite a matching k).15 F -.15(ey)-.1 G .783
288 (when inserting a ne)158 590.4 R 3.283(wk)-.25 G 1.083 -.15(ey o)253.542 590.4
289 T 3.283(rt).15 G 3.283(of)280.508 590.4 S .783(ail if the R_NOO)292.021 590.4 R
290 (VER)-.5 E .784(WRITE \215ag is speci\214ed.)-.55 F .784(The R_DUP)5.784 F .129
291 (\215ag is o)158 602.4 R -.15(ve)-.15 G .129(rridden by the R_NOO).15 F(VER)-.5
292 E .128(WRITE \215ag, and if the R_NOO)-.55 F(VER)-.5 E .128
293 (WRITE \215ag is spec-)-.55 F(i\214ed, attempts to insert duplicate k)158 614.4
294 Q -.15(ey)-.1 G 2.5(si).15 G(nto the tree will f)314.69 614.4 Q(ail.)-.1 E .835
295 (If the database contains duplicate k)158 631.2 R -.15(ey)-.1 G .835
296 (s, the order of retrie).15 F -.25(va)-.25 G 3.335(lo).25 G 3.336(fk)414.7
297 631.2 S -.15(ey)426.266 631.2 S .836(/data pairs is unde\214ned if).15 F(the)
298 158 643.2 Q F2 -.1(ge)3.003 G(t).1 E F0 .503(function is used, ho)3.003 F(we)
299 -.25 E -.15(ve)-.25 G -.4(r,).15 G F2(seq)3.403 E F0 .502
300 (function calls with the R_CURSOR \215ag set will al)3.003 F -.1(wa)-.1 G(ys).1
301 E(return the logical `)158 655.2 Q(`\214rst')-.74 E 2.5('o)-.74 G 2.5(fa)263.72
302 655.2 S .3 -.15(ny g)273.99 655.2 T(roup of duplicate k).15 E -.15(ey)-.1 G(s.)
303 .15 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315
304 (ution August)-.2 F(1, 1995)2.5 E(1)535 732 Q EP
305 %%Page: 2 2
306 %%BeginPageSetup
307 BP
308 %%EndPageSetup
309 /F0 10/Times-Roman@0 SF 113.45(DB_BTREE\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
310 (sM)-.55 G 113.45(anual DB_BTREE\(3\))340.17 48 R(int lorder;)108 84 Q .65
311 (The byte order for inte)133 96 R .65(gers in the stored database metadata.)
312 -.15 F .65(The number should represent the order)5.65 F .749(as an inte)133 108
313 R .749(ger; for e)-.15 F .749(xample, big endian order w)-.15 F .749
314 (ould be the number 4,321.)-.1 F(If)5.749 E/F1 10/Times-Italic@0 SF(lor)3.249 E
315 (der)-.37 E F0 .749(is 0 \(no order is)3.249 F
316 (speci\214ed\) the current host order is used.)133 120 Q(int maxk)108 136.8 Q
317 -.15(ey)-.1 G(page;).15 E .073(The maximum number of k)133 148.8 R -.15(ey)-.1
318 G 2.573(sw).15 G .073(hich will be stored on an)266.155 148.8 R 2.574(ys)-.15 G
319 .074(ingle page.)376.436 148.8 R .074(This functionality is not cur)5.074 F(-)
320 -.2 E(rently implemented.)133 160.8 Q(int mink)108 177.6 Q -.15(ey)-.1 G(page;)
321 .15 E .532(The minimum number of k)133 189.6 R -.15(ey)-.1 G 3.031(sw).15 G
322 .531(hich will be stored on an)266.787 189.6 R 3.031(ys)-.15 G .531
323 (ingle page.)379.813 189.6 R .531(This v)5.531 F .531(alue is used to deter)
324 -.25 F(-)-.2 E .558(mine which k)133 201.6 R -.15(ey)-.1 G 3.058(sw).15 G .558
325 (ill be stored on o)211.914 201.6 R -.15(ve)-.15 G(r\215o).15 E 3.058(wp)-.25 G
326 .558(ages, i.e. if a k)319.424 201.6 R .859 -.15(ey o)-.1 H 3.059(rd).15 G .559
327 (ata item is longer than the page-)408.336 201.6 R .063(size di)133 213.6 R
328 .063(vided by the mink)-.25 F -.15(ey)-.1 G .063(page v).15 F .063
329 (alue, it will be stored on o)-.25 F -.15(ve)-.15 G(r\215o).15 E 2.563(wp)-.25
330 G .062(ages instead of in the page itself.)408.816 213.6 R(If)133 225.6 Q F1
331 (mink)2.5 E -.3(ey)-.1 G(pa).3 E -.1(ge)-.1 G F0(is 0 \(no minimum number of k)
332 2.6 E -.15(ey)-.1 G 2.5(si).15 G 2.5(ss)332.96 225.6 S(peci\214ed\) a v)343.24
333 225.6 Q(alue of 2 is used.)-.25 E
334 (size_t \(*pre\214x\)\(const DBT *, const DBT *\);)108 242.4 Q .691
335 (Pre\214x is the pre\214x comparison function.)133 254.4 R .692
336 (If speci\214ed, this function must return the number of bytes)5.691 F .195
337 (of the second k)133 266.4 R .495 -.15(ey a)-.1 H -.18(rg).15 G .195
338 (ument which are necessary to determine that it is greater than the \214rst k)
339 .18 F .495 -.15(ey a)-.1 H -.18(rg).15 G(u-).18 E 2.994(ment. If)133 278.4 R
340 .494(the k)2.994 F -.15(ey)-.1 G 2.994(sa).15 G .494(re equal, the k)211.376
341 278.4 R .794 -.15(ey l)-.1 H .494(ength should be returned.).15 F .494
342 (Note, the usefulness of this function)5.494 F .327(is v)133 290.4 R .327
343 (ery data dependent, b)-.15 F .326(ut, in some data sets can produce signi\214\
344 cantly reduced tree sizes and search)-.2 F 2.789(times. If)133 302.4 R F1(pr)
345 2.789 E(e\214x)-.37 E F0 .289(is NULL \(no pre\214x function is speci\214ed\),)
346 2.789 F/F2 10/Times-Bold@0 SF(and)2.789 E F0 .29
347 (no comparison function is speci\214ed, a)2.79 F(def)133 314.4 Q .902(ault le)
348 -.1 F .902(xical comparison function is used.)-.15 F(If)5.901 E F1(pr)3.401 E
349 (e\214x)-.37 E F0 .901(is NULL and a comparison function is speci-)3.401 F
350 (\214ed, no pre\214x comparison is done.)133 326.4 Q(u_int psize;)108 343.2 Q
351 -.15(Pa)133 355.2 S .118
352 (ge size is the size \(in bytes\) of the pages used for nodes in the tree.).15
353 F .119(The minimum page size is 512)5.119 F .377
354 (bytes and the maximum page size is 64K.)133 367.2 R(If)5.376 E F1(psize)2.876
355 E F0 .376(is 0 \(no page size is speci\214ed\) a page size is cho-)2.876 F
356 (sen based on the underlying \214le system I/O block size.)133 379.2 Q .79
357 (If the \214le already e)108 396 R .79(xists \(and the O_TR)-.15 F .79
358 (UNC \215ag is not speci\214ed\), the v)-.4 F .79
359 (alues speci\214ed for the parameters)-.25 F
360 (\215ags, lorder and psize are ignored in f)108 408 Q -.2(avo)-.1 G 2.5(ro).2 G
361 2.5(ft)284.4 408 S(he v)293.01 408 Q(alues used when the tree w)-.25 E
362 (as created.)-.1 E/F3 9/Times-Bold@0 SF(DB OPERA)72 424.8 Q(TIONS)-.855 E F0
363 1.037(The functions returned by)108 436.8 R F1(db_open)3.537 E F0 1.036
364 (for the btree access method are as described in)3.536 F F1(db_open)3.536 E F0
365 1.036(\(3\), with the).24 F(follo)108 448.8 Q(wing e)-.25 E
366 (xceptions and additions:)-.15 E 5.28(type The)108 465.6 R(type is DB_BTREE.)
367 2.5 E 10.28(del Space)108 482.4 R 1.681(freed up by deleting k)4.181 F -.15(ey)
368 -.1 G 1.681(/data pairs from the tree is ne).15 F -.15(ve)-.25 G 4.181(rr).15 G
369 1.682(eclaimed, although it is reused)411.342 482.4 R .734(where possible.)133
370 494.4 R .734(This means that the btree storage structure is gro)5.734 F(w-only)
371 -.25 E 5.734(.T)-.65 G .734(he only solutions are to)443.734 494.4 R -.2(avo)
372 133 506.4 S(id e).2 E(xcessi)-.15 E .3 -.15(ve d)-.25 H
373 (eletions, or to create a fresh tree periodically from a scan of an e).15 E
374 (xisting one.)-.15 E 9.72(put The)108 523.2 R F1(put)2.5 E F0(function tak)2.5
375 E(es the follo)-.1 E(wing additional \215ags:)-.25 E(R_SETCURSOR)133 540 Q
376 (Store the k)158 552 Q -.15(ey)-.1 G(/data pair).15 E 2.5(,s)-.4 G
377 (etting or initializing the position of the cursor to reference it.)256.5 552 Q
378 9.17(seq F)108 568.8 R(orw)-.15 E
379 (ard sequential scans of a tree are from the least k)-.1 E .3 -.15(ey t)-.1 H
380 2.5(ot).15 G(he greatest.)373.55 568.8 Q .892(The returned k)133 585.6 R 1.192
381 -.15(ey f)-.1 H .892(or the).15 F F1(seq)3.393 E F0 .893
382 (function is not necessarily an e)3.393 F .893
383 (xact match for the speci\214ed k)-.15 F 1.193 -.15(ey i)-.1 H 3.393(nt).15 G
384 (he)530.56 585.6 Q .5(btree access method.)133 597.6 R .5(The returned k)5.5 F
385 .8 -.15(ey i)-.1 H 3(st).15 G .499(he smallest k)307.04 597.6 R .799 -.15(ey g)
386 -.1 H .499(reater than or equal to the speci\214ed k).15 F -.15(ey)-.1 G(,)-.5
387 E(permitting partial k)133 609.6 Q .3 -.15(ey m)-.1 H
388 (atches and range searches.).15 E(The)133 626.4 Q F1(seq)2.5 E F0(function tak)
389 2.5 E(es the follo)-.1 E(wing additional \215ags:)-.25 E(R_LAST)133 643.2 Q .04
390 (The last k)158 655.2 R -.15(ey)-.1 G .04(/data pair of the database is return\
391 ed, and the cursor is set or initialized to reference).15 F(it.)158 667.2 Q
392 (4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315
393 (ution August)-.2 F(1, 1995)2.5 E(2)535 732 Q EP
394 %%Page: 3 3
395 %%BeginPageSetup
396 BP
397 %%EndPageSetup
398 /F0 10/Times-Roman@0 SF 113.45(DB_BTREE\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
399 (sM)-.55 G 113.45(anual DB_BTREE\(3\))340.17 48 R(R_PREV)133 84 Q(Retrie)158 96
400 Q .59 -.15(ve t)-.25 H .29(he k).15 F -.15(ey)-.1 G .29
401 (/data pair immediately before the cursor).15 F 5.29(.I)-.55 G 2.79(ft)395.73
402 96 S .29(he cursor is not yet set, this is the)404.63 96 R
403 (same as the R_LAST \215ag.)158 108 Q/F1 9/Times-Bold@0 SF(ERR)72 124.8 Q(ORS)
404 -.27 E F0(The)108 136.8 Q/F2 10/Times-Italic@0 SF(btr)2.541 E(ee)-.37 E F0 .041
405 (access method functions may f)2.541 F .041(ail and set)-.1 F F2(errno)2.541 E
406 F0 .041(for an)2.541 F 2.541(yo)-.15 G 2.541(ft)376.152 136.8 S .041
407 (he errors speci\214ed for the library func-)384.803 136.8 R(tion)108 148.8 Q
408 F2(db_open)2.5 E F0(\(3\).).24 E F1(SEE ALSO)72 165.6 Q F2(db_hash)108 177.6 Q
409 F0(\(3\),).28 E F2(db_loc)2.5 E(k)-.2 E F0(\(3\),).67 E F2(db_lo)2.5 E(g)-.1 E
410 F0(\(3\),).22 E F2(db_mpool)2.5 E F0(\(3\),).51 E F2(db_open)2.5 E F0(\(3\),)
411 .24 E F2(db_r)2.5 E(ecno)-.37 E F0(\(3\),).18 E F2(db_txn)2.5 E F0(\(3\)).24 E
412 F2(The Ubiquitous B-tr)108 201.6 Q(ee)-.37 E F0 2.5(,D).18 G(ouglas Comer)
413 209.47 201.6 Q 2.5(,A)-.4 G(CM Comput. Surv)276.72 201.6 Q 2.5(.1)-.65 G
414 (1, 2 \(June 1979\), 121-138.)360.25 201.6 Q F2(Pr)108 225.6 Q 1.588
415 (e\214x B-tr)-.37 F(ees)-.37 E F0 4.088(,B).27 G 1.587(ayer and Unterauer)
416 177.636 225.6 R 4.087(,A)-.4 G 1.587(CM T)270.447 225.6 R 1.587
417 (ransactions on Database Systems, V)-.35 F 1.587(ol. 2, 1 \(March 1977\),)-1.29
418 F(11-26.)108 237.6 Q F2(The Art of Computer Pr)108 261.6 Q -.1(og)-.45 G -.15
419 (ra).1 G(mming V).15 E(ol. 3: Sorting and Sear)-1.11 E -.15(ch)-.37 G(ing).15 E
420 F0 2.5(,D).22 G(.E. Knuth, 1968, pp 471-480.)382 261.6 Q(4.4 Berk)72 732 Q(ele)
421 -.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E
422 (3)535 732 Q EP
423 %%Page: 1 4
424 %%BeginPageSetup
425 BP
426 %%EndPageSetup
427 /F0 10/Times-Roman@0 SF 117.9(DB_HASH\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
428 (sM)-.55 G 117.9(anual DB_HASH\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)72
429 84 S(ME).18 E F0(db_hash \255 hash database access method)108 96 Q F1
430 (DESCRIPTION)72 112.8 Q F0 .485(The DB library is a f)108 124.8 R .485
431 (amily of groups of functions that pro)-.1 F .486
432 (vides a modular programming interf)-.15 F .486(ace to trans-)-.1 F .823
433 (actions and record-oriented \214le access.)108 136.8 R .822
434 (The library includes support for transaction, locking, logging and)5.822 F
435 .258(\214le b)108 148.8 R(uf)-.2 E .258(fering functionality)-.25 F 2.758(,a)
436 -.65 G 2.758(sw)223.214 148.8 S .258(ell as v)237.082 148.8 R .258(arious inde)
437 -.25 F -.15(xe)-.15 G 2.758(da).15 G .258(ccess methods.)331.434 148.8 R(Man)
438 5.258 E 2.758(yo)-.15 G 2.758(ft)427.878 148.8 S .258
439 (he functional groups \(e.g.)436.746 148.8 R .528(the memory pool functions\) \
440 are useful independently of the rest of the DB functions, although some func-)
441 108 160.8 R .306(tional groups are e)108 172.8 R .306
442 (xplicitly based on other functional groups \(e.g.)-.15 F .306
443 (transactions and logging\).)5.306 F -.15(Fo)5.306 G 2.806(rag).15 G(eneral)
444 515.57 172.8 Q .245(description of transactions, see)108 184.8 R/F2 10
445 /Times-Italic@0 SF(db_txn)2.745 E F0 2.745(\(3\). F).24 F .245
446 (or a general description of the access methods, see)-.15 F F2(db_open)2.745 E
447 F0(\(3\)).24 E .307(and then the indi)108 196.8 R .307
448 (vidual access method manual pages:)-.25 F F2(db_btr)2.808 E(ee)-.37 E F0
449 (\(3\),).18 E F2(db_hash)2.808 E F0(\(3\),).28 E F2(db_lo)2.808 E(g)-.1 E F0
450 .308(\(3\) and).22 F F2(db_r)2.808 E(ecno)-.37 E F0(\(3\).).18 E -.15(Fo)108
451 208.8 S 3.635(rag).15 G 1.135(eneral description of the lock manager)138.45
452 208.8 R 3.635(,s)-.4 G(ee)307.32 208.8 Q F2(db_loc)3.635 E(k)-.2 E F0 3.635
453 (\(3\). F).67 F 1.135(or a general description of the memory)-.15 F
454 (pool manager)108 220.8 Q 2.5(,s)-.4 G(ee)171.2 220.8 Q F2(db_mpool)2.5 E F0
455 (\(3\).).51 E
456 (This manual page describes speci\214c details of the hashing access method.)
457 108 237.6 Q .59(The hash data structure is an e)108 254.4 R .591
458 (xtensible, dynamic hashing scheme.)-.15 F(Backw)5.591 E .591
459 (ard compatible interf)-.1 F .591(aces to the)-.1 F .209
460 (functions described in)108 266.4 R F2(dbm)2.709 E F0 .209(\(3\), and).32 F F2
461 (ndbm)2.709 E F0 .209(\(3\) are pro).32 F .209(vided, ho)-.15 F(we)-.25 E -.15
462 (ve)-.25 G 2.708(rt).15 G .208(hese interf)382.71 266.4 R .208
463 (aces are not compatible with)-.1 F(pre)108 278.4 Q(vious \214le formats.)-.25
464 E F1 -.495(AC)72 295.2 S(CESS METHOD SPECIFIC INFORMA).495 E(TION)-.855 E F0
465 .612(The hash access method speci\214c data structure pro)108 307.2 R .612
466 (vided to)-.15 F F2(db_open)3.112 E F0 .612(is typedef)3.112 F 1.612 -.5('d a)
467 .55 H .613(nd named HASHINFO.).5 F 2.5(AH)108 319.2 S
468 (ASHINFO structure has at least the follo)124.94 319.2 Q
469 (wing \214elds, which may be initialized before calling)-.25 E F2(db_open)2.5 E
470 F0(:).24 E(u_int bsize;)108 336 Q F2(Bsize)133 348 Q F0 2.041
471 (de\214nes the hash table b)4.541 F(uck)-.2 E 2.041(et size, and is, by def)-.1
472 F 2.04(ault, 256 bytes.)-.1 F 2.04(It may be preferable to)7.04 F
473 (increase the page size for disk-resident tables and tables with lar)133 360 Q
474 (ge data items.)-.18 E(u_int cachesize;)108 376.8 Q 3.846(As)133 388.8 S 1.347
475 (uggested maximum size, in bytes, of the memory cache.)147.956 388.8 R 1.347
476 (This v)6.347 F 1.347(alue is)-.25 F/F3 10/Times-Bold@0 SF(only)3.847 E F0
477 (advisory)3.847 E 3.847(,a)-.65 G 1.347(nd the)513.933 388.8 R
478 (access method will allocate more memory rather than f)133 400.8 Q(ail.)-.1 E
479 (u_int f)108 417.6 Q -.1(fa)-.25 G(ctor;).1 E F2(Ffactor)133 429.6 Q F0 1.17
480 (indicates a desired density within the hash table.)3.67 F 1.169
481 (It is an approximation of the number of)6.169 F -.1(ke)133 441.6 S 1.162
482 (ys allo)-.05 F 1.162(wed to accumulate in an)-.25 F 3.662(yo)-.15 G 1.162
483 (ne b)284.852 441.6 R(uck)-.2 E 1.162(et, determining when the hash table gro)
484 -.1 F 1.162(ws or shrinks.)-.25 F(The def)133 453.6 Q(ault v)-.1 E(alue is 8.)
485 -.25 E(u_int32_t \(*hash\)\(const v)108 470.4 Q(oid *, size_t\);)-.2 E F2(Hash)
486 133 482.4 Q F0 .788(is a user de\214ned hash function.)3.288 F .787
487 (Since no hash function performs equally well on all possible)5.788 F .017
488 (data, the user may \214nd that the b)133 494.4 R .018
489 (uilt-in hash function does poorly on a particular data set.)-.2 F .018
490 (User speci-)5.018 F 1.154(\214ed hash functions must tak)133 506.4 R 3.654(et)
491 -.1 G 1.354 -.1(wo a)260.61 506.4 T -.18(rg).1 G 1.154
492 (uments \(a pointer to a byte string and a length\) and return a).18 F
493 (32-bit quantity to be used as the hash v)133 518.4 Q(alue.)-.25 E .665
494 (If a hash function is speci\214ed,)133 535.2 R F2(hash_open)3.165 E F0 .666
495 (will attempt to determine if the hash function speci\214ed is)3.166 F
496 (the same as the one with which the database w)133 547.2 Q
497 (as created, and will f)-.1 E(ail if it is not.)-.1 E(int lorder;)108 564 Q .65
498 (The byte order for inte)133 576 R .65(gers in the stored database metadata.)
499 -.15 F .65(The number should represent the order)5.65 F .748(as an inte)133 588
500 R .749(ger; for e)-.15 F .749(xample, big endian order w)-.15 F .749
501 (ould be the number 4,321.)-.1 F(If)5.749 E F2(lor)3.249 E(der)-.37 E F0 .749
502 (is 0 \(no order is)3.249 F .456(speci\214ed\) the current host order is used.)
503 133 600 R .456(If the)5.456 F .456(\214le already e)5.456 F .456
504 (xists, the speci\214ed v)-.15 F .455(alue is ignored and)-.25 F(the v)133 612
505 Q(alue speci\214ed when the tree w)-.25 E(as created is used.)-.1 E
506 (u_int nelem;)108 628.8 Q F2(Nelem)133 640.8 Q F0 1.225
507 (is an estimate of the \214nal size of the hash table.)3.724 F 1.225
508 (If not set or set too lo)6.225 F 2.525 -.65(w, h)-.25 H 1.225(ash tables will)
509 .65 F -.15(ex)133 652.8 S 1.294(pand gracefully as k).15 F -.15(ey)-.1 G 3.794
510 (sa).15 G 1.294(re entered, although a slight performance de)248.296 652.8 R
511 1.293(gradation may be noticed.)-.15 F(The def)133 664.8 Q(ault v)-.1 E
512 (alue is 1.)-.25 E .79(If the \214le already e)108 681.6 R .79
513 (xists \(and the O_TR)-.15 F .79(UNC \215ag is not speci\214ed\), the v)-.4 F
514 .79(alues speci\214ed for the parameters)-.25 F(bsize, f)108 693.6 Q -.1(fa)
515 -.25 G(ctor).1 E 2.5(,l)-.4 G(order and nelem are ignored and the v)167.23
516 693.6 Q(alues speci\214ed when the tree w)-.25 E(as created are used.)-.1 E
517 (4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315
518 (ution August)-.2 F(1, 1995)2.5 E(1)535 732 Q EP
519 %%Page: 2 5
520 %%BeginPageSetup
521 BP
522 %%EndPageSetup
523 /F0 10/Times-Roman@0 SF 117.9(DB_HASH\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
524 (sM)-.55 G 117.9(anual DB_HASH\(3\))340.17 48 R/F1 9/Times-Bold@0 SF(DB OPERA)
525 72 84 Q(TIONS)-.855 E F0(The functions returned by)108 96 Q/F2 10
526 /Times-Italic@0 SF(db_open)2.5 E F0
527 (for the hash access method are as described in)2.5 E F2(db_open)2.5 E F0
528 (\(3\).).24 E F1(ERR)72 112.8 Q(ORS)-.27 E F0(The)108 124.8 Q F2(hash)2.609 E
529 F0 .109(access method functions may f)2.609 F .109(ail and set)-.1 F F2(errno)
530 2.609 E F0 .109(for an)2.609 F 2.609(yo)-.15 G 2.609(ft)375.678 124.8 S .109
531 (he errors speci\214ed for the library func-)384.397 124.8 R(tion)108 136.8 Q
532 F2(db_open)2.5 E F0(\(3\).).24 E F1(SEE ALSO)72 153.6 Q F2(db_btr)108 165.6 Q
533 (ee)-.37 E F0(\(3\),).18 E F2(db_loc)2.5 E(k)-.2 E F0(\(3\),).67 E F2(db_lo)2.5
534 E(g)-.1 E F0(\(3\),).22 E F2(db_mpool)2.5 E F0(\(3\),).51 E F2(db_open)2.5 E F0
535 (\(3\),).24 E F2(db_r)2.5 E(ecno)-.37 E F0(\(3\),).18 E F2(db_txn)2.5 E F0
536 (\(3\)).24 E F2(Dynamic Hash T)108 189.6 Q(ables)-.92 E F0 2.5(,P).27 G(er)
537 206.79 189.6 Q(-Ak)-.2 E 2.5(eL)-.1 G(arson, Communications of the A)242.86
538 189.6 Q(CM, April 1988.)-.4 E F2 2.5(AN)108 213.6 S .3 -.15(ew H)123.28 213.6 T
539 (ash P).15 E(ac)-.8 E(ka)-.2 E .2 -.1(ge f)-.1 H(or UNIX).1 E F0 2.5(,M).94 G
540 (ar)248.41 213.6 Q(go Seltzer)-.18 E 2.5(,U)-.4 G(SENIX Proceedings, W)308.09
541 213.6 Q(inter 1991.)-.4 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)
542 132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(2)535 732 Q EP
543 %%Page: 1 6
544 %%BeginPageSetup
545 BP
546 %%EndPageSetup
547 /F0 10/Times-Roman@0 SF 117.9(DB_LOCK\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
548 (sM)-.55 G 117.9(anual DB_LOCK\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)72
549 84 S(ME).18 E F0(db_lock \255 general purpose lock manager)108 96 Q F1
550 (SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(#include <db_lock.h>)108 124.8 Q
551 (int)108 148.8 Q(lock_cr)108 160.8 Q(eate\(const char *path, mode_t mode,)-.18
552 E(int lock_modes, const int8_t con\215icts[][], u_int maxlocks\);)158 172.8 Q
553 (LOCK_T)108 196.8 Q(ABLE_T *)-.9 E(lock_open\(const char *path\);)108 208.8 Q
554 (int)108 232.8 Q(lock_v)108 244.8 Q(ec\(LOCK_T)-.1 E(ABLE_T *lt, DBT *lock)-.9
555 E(er)-.1 E 2.5(,s)-.92 G(truct timespec *timeout,)308.21 244.8 Q
556 (LOCK_REQ_T list[], int nlist, LOCK_REQ_T **elistp, DBT *con\215ict\);)158
557 256.8 Q(int)108 280.8 Q(lock_get\(LOCK_T)108 292.8 Q
558 (ABLE_T *lt, const DBT *lock)-.9 E(er)-.1 E(,)-.92 E
559 (const DBT *obj, const lock_mode_t lock_mode, LOCK_T **lockp\);)158 304.8 Q
560 (int)108 328.8 Q(lock_put\(LOCK_T *lockp\);)108 340.8 Q(int)108 364.8 Q
561 (lock_close\(LOCK_T)108 376.8 Q(ABLE_T *lt\);)-.9 E(int)108 400.8 Q
562 (lock_unlink\(const char *path, int f)108 412.8 Q(or)-.25 E(ce\);)-.18 E F1
563 (DESCRIPTION)72 429.6 Q F0 .485(The DB library is a f)108 441.6 R .485
564 (amily of groups of functions that pro)-.1 F .486
565 (vides a modular programming interf)-.15 F .486(ace to trans-)-.1 F .823
566 (actions and record-oriented \214le access.)108 453.6 R .822
567 (The library includes support for transaction, locking, logging and)5.822 F
568 .258(\214le b)108 465.6 R(uf)-.2 E .258(fering functionality)-.25 F 2.758(,a)
569 -.65 G 2.758(sw)223.214 465.6 S .258(ell as v)237.082 465.6 R .258(arious inde)
570 -.25 F -.15(xe)-.15 G 2.758(da).15 G .258(ccess methods.)331.434 465.6 R(Man)
571 5.258 E 2.758(yo)-.15 G 2.758(ft)427.878 465.6 S .258
572 (he functional groups \(e.g.)436.746 465.6 R .528(the memory pool functions\) \
573 are useful independently of the rest of the DB functions, although some func-)
574 108 477.6 R .306(tional groups are e)108 489.6 R .306
575 (xplicitly based on other functional groups \(e.g.)-.15 F .306
576 (transactions and logging\).)5.306 F -.15(Fo)5.306 G 2.806(rag).15 G(eneral)
577 515.57 489.6 Q .245(description of transactions, see)108 501.6 R/F3 10
578 /Times-Italic@0 SF(db_txn)2.745 E F0 2.745(\(3\). F).24 F .245
579 (or a general description of the access methods, see)-.15 F F3(db_open)2.745 E
580 F0(\(3\)).24 E .307(and then the indi)108 513.6 R .307
581 (vidual access method manual pages:)-.25 F F3(db_btr)2.808 E(ee)-.37 E F0
582 (\(3\),).18 E F3(db_hash)2.808 E F0(\(3\),).28 E F3(db_lo)2.808 E(g)-.1 E F0
583 .308(\(3\) and).22 F F3(db_r)2.808 E(ecno)-.37 E F0(\(3\).).18 E -.15(Fo)108
584 525.6 S 3.635(rag).15 G 1.135(eneral description of the lock manager)138.45
585 525.6 R 3.635(,s)-.4 G(ee)307.32 525.6 Q F3(db_loc)3.635 E(k)-.2 E F0 3.635
586 (\(3\). F).67 F 1.135(or a general description of the memory)-.15 F
587 (pool manager)108 537.6 Q 2.5(,s)-.4 G(ee)171.2 537.6 Q F3(db_mpool)2.5 E F0
588 (\(3\).).51 E
589 (This manual page describes speci\214c details of the locking interf)108 554.4
590 Q(ace.)-.1 E F3(Db_loc)108 571.2 Q(k)-.2 E F0 .346(is the library interf)2.846
591 F .346(ace intended to pro)-.1 F .346(vide general-purpose locking.)-.15 F .347
592 (While designed to w)5.347 F .347(ork with)-.1 F .946(the other DB functions, \
593 these functions are also useful for more general locking purposes.)108 583.2 R
594 .946(Locks can be)5.946 F(shared between processes.)108 595.2 Q .682
595 (The function)108 612 R F3(loc)3.182 E(k_cr)-.2 E(eate)-.37 E F0 .683
596 (creates and initializes the lock table identi\214ed by the)3.182 F F3(path)
597 3.183 E F0(directory)3.183 E 5.683(.T)-.65 G .683(his direc-)501.827 612 R .565
598 (tory must already e)108 624 R .565(xist when)-.15 F F3(loc)3.065 E(k_cr)-.2 E
599 (eate)-.37 E F0 .565(is called.)3.065 F .565(If the lock table identi\214ed by)
600 5.565 F F3(path)3.064 E F0 .564(already e)3.064 F .564(xists, then)-.15 F F3
601 (loc)108 636 Q(k_cr)-.2 E(eate)-.37 E F0 .974
602 (returns success without further action.)3.474 F .974
603 (The \214les associated with the lock table are created in)5.974 F 2.017
604 (the directory speci\214ed by)108 648 R F3(path)4.517 E F0 7.017(.\().28 G
605 2.017(The group of the created \214les is based on the system and directory)
606 250.846 648 R(def)108 660 Q .076(aults, and is not further speci\214ed by)-.1 F
607 F3(loc)2.576 E(k_cr)-.2 E(eate)-.37 E F0 2.576(.\) All).18 F .076
608 (\214les created by)2.576 F F3(loc)2.576 E(k_cr)-.2 E(eate)-.37 E F0 .077
609 (are created with mode)2.577 F F3(mode)108 672 Q F0(\(as described in)2.5 E F3
610 -.15(ch)2.5 G(mod).15 E F0(\(2\)\) and modi\214ed by the process' umask v).77 E
611 (alue \(see)-.25 E F3(umask)2.5 E F0(\(2\)\).).67 E .739(The parameter)108
612 688.8 R F3(loc)3.239 E(k_modes)-.2 E F0 .739(is the number of lock modes to be\
613  recognized by the lock table \(including the)3.239 F(4.4 Berk)72 732 Q(ele)-.1
614 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(1)
615 535 732 Q EP
616 %%Page: 2 7
617 %%BeginPageSetup
618 BP
619 %%EndPageSetup
620 /F0 10/Times-Roman@0 SF 117.9(DB_LOCK\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
621 (sM)-.55 G 117.9(anual DB_LOCK\(3\))340.17 48 R -.74(``)108 84 S(not-granted')
622 .74 E 2.5('m)-.74 G 2.5(ode\). The)176.22 84 R(parameter)2.5 E/F1 10
623 /Times-Italic@0 SF(con\215icts)2.5 E F0(is an)2.5 E F1(loc)2.5 E(k_modes)-.2 E
624 F0(by)2.5 E F1(loc)2.5 E(k_modes)-.2 E F0(array)2.5 E 5(.A)-.65 G(non-0 v)
625 467.59 84 Q(alue for:)-.25 E(con\215icts[requested_mode][held_mode])158 108 Q
626 .174(indicates that)108 132 R F1 -.37(re)2.674 G(quested_mode).37 E F0(and)
627 2.674 E F1(held_mode)2.674 E F0 2.675(con\215ict. The)2.674 F -.74(``)2.675 G
628 (not-granted').74 E 2.675('m)-.74 G .175(ode must be represented by 0.)419.705
629 132 R(The include \214le <db_lock.h> declares tw)108 148.8 Q 2.5(oc)-.1 G
630 (ommonly used con\215ict arrays:)283.87 148.8 Q(int lock_sx_n;)108 165.6 Q
631 (const int8_t lock_sx_c[lock_sx_n][lock_sx_n];)108 177.6 Q(These v)133 189.6 Q
632 (ariables specify a con\215ict array for a simple scheme using shared and e)
633 -.25 E(xclusi)-.15 E .3 -.15(ve l)-.25 H(ock modes.).15 E(int lock_g_n;)108
634 206.4 Q(const int8_t lock_g_c[lock_g_n][lock_g_n];)108 218.4 Q 1.071(These v)
635 133 230.4 R 1.071(ariables specify a con\215ict array that in)-.25 F -.2(vo)-.4
636 G(lv).2 E 1.071(es v)-.15 F 1.07
637 (arious intent lock modes \(e.g. intent shared\))-.25 F
638 (that are used for multigranularity locking.)133 242.4 Q 1.53
639 (In addition, <db_lock.h> de\214nes the follo)108 259.2 R 1.531
640 (wing macros that name lock modes for use with the standard)-.25 F(tables abo)
641 108 271.2 Q -.15(ve)-.15 G(:).15 E(LOCK_IS)144 288 Q(intent shared)169 300 Q
642 (LOCK_IX)144 312 Q(intent e)169 324 Q(xclusi)-.15 E -.15(ve)-.25 G(LOCK_NG)144
643 336 Q(not granted \(al)169 348 Q -.1(wa)-.1 G(ys 0\)).1 E(LOCK_S)144 360 Q
644 (shared)169 372 Q(LOCK_SIX)144 384 Q(shared/intent e)169 396 Q(xclusi)-.15 E
645 -.15(ve)-.25 G(LOCK_X)144 408 Q -.15(ex)169 420 S(clusi).15 E -.15(ve)-.25 G F1
646 (Maxloc)108 436.8 Q(ks)-.2 E F0 .442(is the maximum number of locks to be held\
647  or requested in the table, and is used by)2.942 F F1(loc)2.941 E(k_cr)-.2 E
648 (eate)-.37 E F0(to estimate ho)108 448.8 Q 2.5(wm)-.25 G
649 (uch space to allocate for v)181.36 448.8 Q(arious lock-table data structures.)
650 -.25 E(The function)108 465.6 Q F1(loc)2.5 E(k_cr)-.2 E(eate)-.37 E F0
651 (returns -1 on f)2.5 E(ailure, setting)-.1 E F1(errno)2.5 E F0 2.5(,a).18 G
652 (nd 0 on success.)356.07 465.6 Q .202(The function)108 482.4 R F1(loc)2.703 E
653 (k_open)-.2 E F0 .203(returns a pointer to the lock table identi\214ed by)2.703
654 F F1(path)2.703 E F0 2.703(,w).28 G .203(hich must ha)425.678 482.4 R .503 -.15
655 (ve a)-.2 H .203(lready been).15 F 1.162(created by a call to)108 494.4 R F1
656 (loc)3.661 E(k_cr)-.2 E(eate)-.37 E F0 6.161(.T).18 G 1.161(he process must ha)
657 252.869 494.4 R 1.461 -.15(ve p)-.2 H 1.161
658 (ermission to read and write \214les with o).15 F(wners,)-.25 E .06
659 (groups and permissions as described for)108 506.4 R F1(loc)2.56 E(k_cr)-.2 E
660 (eate)-.37 E F0 5.06(.T).18 G(he)331.04 506.4 Q F1(loc)2.56 E(k_open)-.2 E F0
661 .06(function returns NULL on f)2.56 F .06(ailure, set-)-.1 F(ting)108 518.4 Q
662 F1(errno)2.5 E F0(.).18 E .986(The function)108 535.2 R F1(loc)3.486 E(k_vec)
663 -.2 E F0 .986
664 (atomically obtains and releases one or more locks from the designated table.)
665 3.486 F(The)5.986 E(function)108 547.2 Q F1(loc)4.52 E(k_vec)-.2 E F0 2.02(is \
666 intended to support acquisition or trading of multiple locks under one lock ta\
667 ble)4.52 F(semaphore, as is needed for lock coupling or in multigranularity lo\
668 cking for lock escalation.)108 559.2 Q .746(If an)108 576 R 3.246(yo)-.15 G
669 3.246(ft)140.442 576 S .746(he requested locks cannot be acquired or an)149.798
670 576 R 3.246(yo)-.15 G 3.246(ft)342.786 576 S .746
671 (he locks to be released cannot be released, no)352.142 576 R .117
672 (locks are acquired and no locks are released, and)108 588 R F1(loc)2.617 E
673 (k_vec)-.2 E F0 .117(returns an error)2.617 F 5.117(.T)-.55 G .117(he function)
674 419.211 588 R F1(loc)2.617 E(k_vec)-.2 E F0 .118(returns 0)2.617 F 1.143
675 (on success.)108 600 R 1.143(If an error occurs,)6.143 F F1(loc)3.642 E(k_vec)
676 -.2 E F0 1.142(returns one of the follo)3.642 F 1.142(wing v)-.25 F 3.642
677 (alues. In)-.25 F 1.142(addition, if)3.642 F F1(elistp)3.642 E F0 1.142(is not)
678 3.642 F(NULL, it is set to point to the LOCK_REQ_T entry which w)108 612 Q
679 (as being processed when the error occurred.)-.1 E(LOCK_GET_DEADLOCK)108 628.8
680 Q .431(The speci\214ed)133 640.8 R F1(loc)2.931 E -.1(ke)-.2 G(r).1 E F0 -.1
681 (wa)2.931 G 2.931(ss).1 G .431(elected as a victim in order to resolv)239.854
682 640.8 R 2.932(ead)-.15 G 2.932(eadlock. In)407.718 640.8 R .432
683 (this case, if the)2.932 F F1(con-)2.932 E(\215ict)133 652.8 Q F0(ar)2.901 E
684 .401(gument is non-NULL, it is set to reference the identity of a lock)-.18 F
685 .4(er holding the lock referenced)-.1 F(by)133 664.8 Q F1(elistp)2.585 E F0
686 .085(at the time the request w)2.585 F .085(as denied.)-.1 F .086
687 (\(This identity resides in static memory and may be o)5.086 F -.15(ve)-.15 G
688 -.2(r-).15 G(written by subsequent calls to)133 676.8 Q F1(loc)2.5 E(k_vec)-.2
689 E F0(\).).31 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q
690 99.315(ution August)-.2 F(1, 1995)2.5 E(2)535 732 Q EP
691 %%Page: 3 8
692 %%BeginPageSetup
693 BP
694 %%EndPageSetup
695 /F0 10/Times-Roman@0 SF 117.9(DB_LOCK\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
696 (sM)-.55 G 117.9(anual DB_LOCK\(3\))340.17 48 R(LOCK_GET_ERR)108 84 Q(OR)-.4 E
697 (An error occurred and the e)133 96 Q(xternal v)-.15 E(ariable)-.25 E/F1 10
698 /Times-Italic@0 SF(errno)2.5 E F0(has been set to indicate the error)2.5 E(.)
699 -.55 E(LOCK_GET_NO)108 112.8 Q(THELD)-.4 E
700 (The lock cannot be released, as it w)133 124.8 Q(as not held by the)-.1 E F1
701 (loc)2.5 E -.1(ke)-.2 G(r).1 E F0(.).73 E(LOCK_GET_RESOURCE)108 141.6 Q 2.311(\
702 The lock manager is unable to grant the requested locks because of limited int\
703 ernal resources.)133 153.6 R(\(Releasing locks may allo)133 165.6 Q 2.5(wf)-.25
704 G(uture calls to)249.4 165.6 Q F1(loc)2.5 E(k_vec)-.2 E F0(to succeed.\))2.5 E
705 (LOCK_GET_TIMEOUT)108 182.4 Q 3.204(At)133 194.4 S .704(imeout ar)146.204 194.4
706 R .704(gument w)-.18 F .705(as speci\214ed, and the requested locks were not a)
707 -.1 F -.25(va)-.2 G .705(ilable soon enough.).25 F .705(In this)5.705 F .625
708 (case, if the)133 206.4 R F1(con\215ict)3.125 E F0(ar)3.125 E .624
709 (gument is non-NULL, it is set to reference the identity of a lock)-.18 F .624
710 (er holding the)-.1 F .551(lock referenced by)133 218.4 R F1(elistp)3.052 E F0
711 .552(at the time the request w)3.052 F .552(as denied.)-.1 F .552
712 (\(This identity resides in static memory)5.552 F(and may be o)133 230.4 Q -.15
713 (ve)-.15 G(rwritten by subsequent calls to).15 E F1(loc)2.5 E(k_vec)-.2 E F0
714 (\).).31 E(The)108 247.2 Q F1(loc)3.005 E -.1(ke)-.2 G(r).1 E F0(ar)3.005 E
715 .504(gument speci\214ed to)-.18 F F1(loc)3.004 E(k_vec)-.2 E F0 .504
716 (is a pointer to an untyped byte string which identi\214es the entity)3.004 F
717 (requesting or releasing the lock.)108 259.2 Q(If)5 E F1(loc)2.5 E -.1(ke)-.2 G
718 (r).1 E F0(is NULL, the calling process' pid is used instead.)2.5 E(The)108 276
719 Q F1(timeout)4.628 E F0(ar)4.628 E 2.128(gument pro)-.18 F 2.128(vided to)-.15
720 F F1(loc)4.628 E(k_vec)-.2 E F0 2.128(speci\214es a maximum interv)4.628 F
721 2.128(al to w)-.25 F 2.128(ait for the locks to be)-.1 F 2.642(granted. If)108
722 288 R F1(timeout)2.642 E F0 .142(is NULL, it is ignored, and)2.642 F F1(loc)
723 2.642 E(k_vec)-.2 E F0 .141
724 (will not return until all of the locks are acquired or)2.642 F
725 (an error has occurred.)108 300 Q(The)108 316.8 Q F1(list)4.263 E F0 1.764
726 (array pro)4.263 F 1.764(vided to)-.15 F F1(loc)4.264 E(k_vec)-.2 E F0 1.764
727 (is typedef)4.264 F 2.764 -.5('d i).55 H 4.264(n<).5 G 1.764
728 (db_lock.h> as LOCK_REQ_T)331.114 316.8 R 6.764(.A)-.74 G(LOCK_REQ_T)476.67
729 316.8 Q(structure has at least the follo)108 328.8 Q
730 (wing \214elds, which must be initialized before calling)-.25 E F1(loc)2.5 E
731 (k_vec)-.2 E F0(:).31 E(enum lock)108 345.6 Q(op op;)-.1 E
732 (The operation to be performed, which must be set to one of the follo)133 357.6
733 Q(wing v)-.25 E(alues:)-.25 E(LOCK_GET)133 374.4 Q .201
734 (Get a lock, as de\214ned by the v)158 386.4 R .201(alues of)-.25 F F1(loc)
735 2.701 E -.1(ke)-.2 G(r).1 E F0(,).73 E F1(obj)2.701 E F0(and)2.7 E F1(loc)2.7 E
736 (k_mode)-.2 E F0 5.2(.U).18 G .2(pon return from)435.99 386.4 R F1(loc)2.7 E
737 (k_vec)-.2 E F0(,).31 E .161(if the)158 398.4 R F1(loc)2.661 E(kp)-.2 E F0 .162
738 (\214eld is non-NULL, a reference to the acquired lock is stored there.)2.662 F
739 .162(\(This reference)5.162 F(is in)158 410.4 Q -.25(va)-.4 G(lidated by an).25
740 E 2.5(yc)-.15 G(all to)247.19 410.4 Q F1(loc)2.5 E(k_vec)-.2 E F0(or)2.5 E F1
741 (loc)2.5 E(k_put)-.2 E F0(which releases the lock.\))2.5 E(LOCK_PUT)133 427.2 Q
742 (The lock referenced by the contents of the)158 439.2 Q F1(loc)2.5 E(kp)-.2 E
743 F0(\214eld is released.)2.5 E(LOCK_PUT_ALL)133 456 Q .759
744 (All locks held by the)158 468 R F1(loc)3.259 E -.1(ke)-.2 G(r).1 E F0 .759
745 (are released.)3.259 F(\(An)5.759 E 3.259(yl)-.15 G .759
746 (ocks acquired as a part of the current call to)358.501 468 R F1(loc)158 480 Q
747 (k_vec)-.2 E F0(are not considered for this operation\).)2.5 E(LOCK_PUT_OBJ)133
748 496.8 Q 1.409(All locks held by the)158 508.8 R F1(loc)3.909 E -.1(ke)-.2 G(r)
749 .1 E F0 3.909(,o).73 G 3.909(nt)287.704 508.8 S 1.409(he object)299.393 508.8 R
750 F1(obj)3.909 E F0 3.909(,w).48 G 1.41(ith the mode speci\214ed by)367.98 508.8
751 R F1(loc)3.91 E(k_mode)-.2 E F0 3.91(,a).18 G(re)532.23 508.8 Q 2.802
752 (released. A)158 520.8 R F1(loc)2.802 E(k_mode)-.2 E F0 .301
753 (of LOCK_NG indicates that all locks on the object should be released.)2.802 F
754 (\(An)158 532.8 Q 3.053(yl)-.15 G .553
755 (ocks acquired as a part of the current call to)184.233 532.8 R F1(loc)3.054 E
756 (k_vec)-.2 E F0 .554(are not considered for this opera-)3.054 F(tion\).)158
757 544.8 Q(const DBT obj;)108 561.6 Q
758 (An untyped byte string which speci\214es the object to be lock)133 573.6 Q
759 (ed or released.)-.1 E(const lock_mode_t lock_mode;)108 590.4 Q
760 (The lock mode, used as an inde)133 602.4 Q 2.5(xi)-.15 G(nto)268.94 602.4 Q F1
761 (lt)2.5 E F0 1.1 -.55('s c).68 H(on\215ict array).55 E(.)-.65 E
762 (LOCK_T **lockp;)108 619.2 Q 2.5(Ap)133 631.2 S
763 (ointer to a pointer to a lock reference.)147.72 631.2 Q(The)108 648 Q F1
764 (nlist)2.5 E F0(ar)2.5 E(gument speci\214es the number of elements in the)-.18
765 E F1(list)2.5 E F0(array)2.5 E(.)-.65 E 1.229(The function)108 664.8 R F1(loc)
766 3.729 E(k_g)-.2 E(et)-.1 E F0 1.228(is a simple interf)3.728 F 1.228
767 (ace to the)-.1 F F1(loc)3.728 E(k_vec)-.2 E F0(functionality)3.728 E 3.728(,a)
768 -.65 G 1.228(nd is equi)416.31 664.8 R -.25(va)-.25 G 1.228
769 (lent to calling the).25 F F1(loc)108 676.8 Q(k_vec)-.2 E F0 .123
770 (function with the)2.623 F F1(lt)2.623 E F0(and)2.623 E F1(loc)2.623 E -.1(ke)
771 -.2 G(r).1 E F0(ar)2.623 E .123(guments, NULL)-.18 F F1(timeout)2.623 E F0(,)
772 .68 E F1(elistp)2.623 E F0(and)2.623 E F1(con\215ict)2.623 E F0(ar)2.623 E .124
773 (guments, and a sin-)-.18 F .944(gle element)108 688.8 R F1(list)3.444 E F0
774 (array)3.444 E 3.444(,f)-.65 G .944(or which the)203.606 688.8 R F1(op)3.444 E
775 F0 .944(\214eld is LOCK_GET)3.444 F 3.444(,a)-.74 G .944(nd the)365.014 688.8 R
776 F1(obj)3.444 E F0(,).48 E F1(loc)3.444 E(k_mode)-.2 E F0(and)3.444 E F1(loc)
777 3.444 E(kp)-.2 E F0 .943(\214elds are)3.443 F(4.4 Berk)72 732 Q(ele)-.1 E 2.5
778 (yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(3)535
779 732 Q EP
780 %%Page: 4 9
781 %%BeginPageSetup
782 BP
783 %%EndPageSetup
784 /F0 10/Times-Roman@0 SF 117.9(DB_LOCK\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
785 (sM)-.55 G 117.9(anual DB_LOCK\(3\))340.17 48 R .509(represented by the ar)108
786 84 R .509(guments of the same name.)-.18 F .51(Note that the type of the)5.509
787 F/F1 10/Times-Italic@0 SF(obj)3.01 E F0(ar)3.01 E .51(gument to)-.18 F F1(loc)
788 3.01 E(k_g)-.2 E(et)-.1 E F0 .51(is dif-)3.01 F .765(ferent from the)108 96 R
789 F1(obj)3.265 E F0 .765(element found in the LOCK_REQ_T structure.)3.265 F(The)
790 5.765 E F1(loc)3.265 E(k_g)-.2 E(et)-.1 E F0 .765(function returns success)
791 3.265 F(and f)108 108 Q(ailure as described for the)-.1 E F1(loc)2.5 E(k_vec)
792 -.2 E F0(function.)2.5 E 1.186(The function)108 124.8 R F1(loc)3.686 E(k_put)
793 -.2 E F0 1.187(is a simple interf)3.687 F 1.187(ace to the)-.1 F F1(loc)3.687 E
794 (k_vec)-.2 E F0(functionality)3.687 E 3.687(,a)-.65 G 1.187(nd is equi)416.515
795 124.8 R -.25(va)-.25 G 1.187(lent to calling the).25 F F1(loc)108 136.8 Q
796 (k_vec)-.2 E F0 .374(function with a single element)2.874 F F1(list)2.874 E F0
797 (array)2.873 E 2.873(,f)-.65 G .373(or which the)314.82 136.8 R F1(op)2.873 E
798 F0 .373(\214eld is LOCK_PUT and the)2.873 F F1(loc)2.873 E(kp)-.2 E F0(\214eld)
799 2.873 E .631(is represented by the ar)108 148.8 R .631
800 (gument of the same name.)-.18 F .632(Note that the type of the)5.632 F F1(loc)
801 3.132 E(kp)-.2 E F0(ar)3.132 E .632(gument to)-.18 F F1(loc)3.132 E(k_put)-.2 E
802 F0(is)3.132 E(dif)108 160.8 Q .275(ferent from the)-.25 F F1(loc)2.775 E(kp)-.2
803 E F0 .274(element found in the LOCK_REQ_T structure.)2.775 F(The)5.274 E F1
804 (loc)2.774 E(k_put)-.2 E F0 .274(function returns suc-)2.774 F(cess and f)108
805 172.8 Q(ailure as described for the)-.1 E F1(loc)2.5 E(k_vec)-.2 E F0
806 (function.)2.5 E .013(The function)108 189.6 R F1(loc)2.513 E(k_close)-.2 E F0
807 .013(disassociates the calling process from the lock table)2.513 F F1(lt)2.513
808 E F0 2.513(,a).68 G .013(fter releasing all locks held)431.636 189.6 R .228
809 (or requested by that process.)108 201.6 R .228(The function)5.228 F F1(loc)
810 2.728 E(k_close)-.2 E F0 .228(returns -1 on f)2.728 F .227(ailure, setting)-.1
811 F F1(errno)2.727 E F0 2.727(,a).18 G .227(nd 0 on success.)474.329 201.6 R .433
812 (The function)108 218.4 R F1(loc)2.933 E(k_unlink)-.2 E F0(destro)2.933 E .433
813 (ys the lock table identi\214ed by the directory)-.1 F F1(path)2.933 E F0 2.933
814 (,r).28 G(emo)440.636 218.4 Q .433(ving all \214les used to)-.15 F 1.005
815 (implement the lock table.)108 230.4 R 1.005(\(The directory)6.005 F F1(path)
816 3.505 E F0 1.005(is not remo)3.505 F -.15(ve)-.15 G 3.505(d.\) If).15 F 1.005
817 (there are processes which ha)3.505 F 1.305 -.15(ve c)-.2 H(alled).15 E F1(loc)
818 108 242.4 Q(k_open)-.2 E F0 .869(without calling)3.369 F F1(loc)3.369 E
819 (k_close)-.2 E F0 .869
820 (\(i.e., there are processes currently using the lock table\),)3.369 F F1(loc)
821 3.37 E(k_unlink)-.2 E F0 .409(will f)108 254.4 R .408
822 (ail without further action, unless the force \215ag is set, in which case)-.1
823 F F1(loc)2.908 E(k_unlink)-.2 E F0 .408(will attempt to delete)2.908 F .807
824 (the lock table \214les re)108 266.4 R -.05(ga)-.15 G .808(rdless of an).05 F
825 3.308(yp)-.15 G .808(rocesses still using the lock table.)264.662 266.4 R(An)
826 5.808 E 3.308(ya)-.15 G .808(ccesses to a remo)433.208 266.4 R -.15(ve)-.15 G
827 3.308(dl).15 G(ock)525.56 266.4 Q .046(table will lik)108 278.4 R .046
828 (ely result in une)-.1 F .045(xpected beha)-.15 F(vior)-.2 E 5.045(.T)-.55 G
829 .045(he function)304.24 278.4 R F1(loc)2.545 E(k_unlink)-.2 E F0 .045
830 (returns -1 on f)2.545 F .045(ailure, setting)-.1 F F1(errno)2.545 E F0(,).18 E
831 (and 0 on success.)108 290.4 Q .798(In the case of catastrophic or system f)108
832 307.2 R .798(ailure, it is possible to clean up a lock table by remo)-.1 F .799
833 (ving all of the)-.15 F .38(\214les in the directory speci\214ed to the)108
834 319.2 R F1(loc)2.88 E(k_cr)-.2 E(eate)-.37 E F0 .379
835 (function, as lock table \214les are ne)2.88 F -.15(ve)-.25 G 2.879(rc).15 G
836 .379(reated in an)461.543 319.2 R 2.879(yd)-.15 G(irec-)521.68 319.2 Q
837 (tory other than the one speci\214ed to)108 331.2 Q F1(loc)2.5 E(k_cr)-.2 E
838 (eate)-.37 E F0(.).18 E/F2 9/Times-Bold@0 SF(ERR)72 348 Q(ORS)-.27 E F0(The)108
839 360 Q F1(loc)4.158 E(k_cr)-.2 E(eate)-.37 E F0 1.658(function may f)4.158 F
840 1.658(ail and set)-.1 F F1(errno)4.158 E F0 1.658(for an)4.158 F 4.158(yo)-.15
841 G 4.158(ft)353.71 360 S 1.659(he errors speci\214ed for the library routines)
842 363.978 360 R F1(mmap)108 372 Q F0(\(2\),).19 E F1(open)2.5 E F0(\(2\) and).24
843 E F1(malloc)2.5 E F0(\(3\).).31 E(The)108 388.8 Q F1(loc)4.692 E(k_open)-.2 E
844 F0 2.192(function may f)4.692 F 2.192(ail and set)-.1 F F1(errno)4.692 E F0
845 2.192(for an)4.692 F 4.692(yo)-.15 G 4.692(ft)353.87 388.8 S 2.191
846 (he errors speci\214ed for the library routine)364.672 388.8 R F1(mmap)108
847 400.8 Q F0(\(2\) and).19 E F1(open)2.5 E F0(\(2\).).24 E(The)108 417.6 Q F1
848 (loc)2.57 E(k_close)-.2 E F0 .07(function may f)2.57 F .07(ail and set)-.1 F F1
849 (errno)2.57 E F0 .07(for an)2.57 F 2.57(yo)-.15 G 2.57(ft)333.76 417.6 S .07
850 (he errors speci\214ed for the library routine)342.44 417.6 R F1(close)2.57 E
851 F0(\(2\)).18 E(and)108 429.6 Q F1(munmap)2.5 E F0(\(2\).).19 E(The)108 446.4 Q
852 F1(loc)4.071 E(k_unlink)-.2 E F0 1.571(function may f)4.071 F 1.571
853 (ail and set)-.1 F F1(errno)4.071 E F0 1.571(for an)4.071 F 4.071(yo)-.15 G
854 4.07(ft)353.22 446.4 S 1.57(he errors speci\214ed for the library function)
855 363.4 446.4 R F1(unlink)108 458.4 Q F0(\(2\) or the follo).67 E(wing:)-.25 E
856 ([EB)108 475.2 Q(USY])-.1 E(The lock table w)133 487.2 Q
857 (as in use and the force \215ag w)-.1 E(as not set.)-.1 E F2(SEE ALSO)72 504 Q
858 F1(db_btr)108 516 Q(ee)-.37 E F0(\(3\),).18 E F1(db_hash)2.5 E F0(\(3\),).28 E
859 F1(db_lo)2.5 E(g)-.1 E F0(\(3\),).22 E F1(db_mpool)2.5 E F0(\(3\),).51 E F1
860 (db_open)2.5 E F0(\(3\),).24 E F1(db_r)2.5 E(ecno)-.37 E F0(\(3\),).18 E F1
861 (db_txn)2.5 E F0(\(3\)).24 E F2 -.09(BU)72 532.8 S(GS).09 E F0(The)108 544.8 Q
862 F1(maxloc)2.656 E(ks)-.2 E F0 .156
863 (parameter is a kluge, and should be deleted in f)2.656 F -.2(avo)-.1 G 2.657
864 (ro).2 G 2.657(fd)381.055 544.8 S .157(ynamically e)392.042 544.8 R .157
865 (xpanding the lock table.)-.15 F(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G
866 (istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(4)535 732 Q EP
867 %%Page: 1 10
868 %%BeginPageSetup
869 BP
870 %%EndPageSetup
871 /F0 10/Times-Roman@0 SF 124.57(DB_LOG\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
872 (sM)-.55 G 124.57(anual DB_LOG\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)72
873 84 S(ME).18 E F0(db_log \255 log-manager access method)108 96 Q F1(DESCRIPTION)
874 72 112.8 Q F0 .486(The DB library is a f)108 124.8 R .485
875 (amily of groups of functions that pro)-.1 F .485
876 (vides a modular programming interf)-.15 F .485(ace to trans-)-.1 F .822
877 (actions and record-oriented \214le access.)108 136.8 R .822
878 (The library includes support for transaction, locking, logging and)5.822 F
879 .258(\214le b)108 148.8 R(uf)-.2 E .258(fering functionality)-.25 F 2.758(,a)
880 -.65 G 2.758(sw)223.214 148.8 S .258(ell as v)237.082 148.8 R .258(arious inde)
881 -.25 F -.15(xe)-.15 G 2.758(da).15 G .258(ccess methods.)331.434 148.8 R(Man)
882 5.258 E 2.758(yo)-.15 G 2.758(ft)427.878 148.8 S .258
883 (he functional groups \(e.g.)436.746 148.8 R .528(the memory pool functions\) \
884 are useful independently of the rest of the DB functions, although some func-)
885 108 160.8 R .306(tional groups are e)108 172.8 R .306
886 (xplicitly based on other functional groups \(e.g.)-.15 F .306
887 (transactions and logging\).)5.306 F -.15(Fo)5.306 G 2.806(rag).15 G(eneral)
888 515.57 172.8 Q .245(description of transactions, see)108 184.8 R/F2 10
889 /Times-Italic@0 SF(db_txn)2.745 E F0 2.745(\(3\). F).24 F .245
890 (or a general description of the access methods, see)-.15 F F2(db_open)2.745 E
891 F0(\(3\)).24 E .308(and then the indi)108 196.8 R .308
892 (vidual access method manual pages:)-.25 F F2(db_btr)2.807 E(ee)-.37 E F0
893 (\(3\),).18 E F2(db_hash)2.807 E F0(\(3\),).28 E F2(db_lo)2.807 E(g)-.1 E F0
894 .307(\(3\) and).22 F F2(db_r)2.807 E(ecno)-.37 E F0(\(3\).).18 E -.15(Fo)108
895 208.8 S 3.635(rag).15 G 1.135(eneral description of the lock manager)138.45
896 208.8 R 3.635(,s)-.4 G(ee)307.32 208.8 Q F2(db_loc)3.635 E(k)-.2 E F0 3.635
897 (\(3\). F).67 F 1.135(or a general description of the memory)-.15 F
898 (pool manager)108 220.8 Q 2.5(,s)-.4 G(ee)171.2 220.8 Q F2(db_mpool)2.5 E F0
899 (\(3\).).51 E
900 (This manual page describes speci\214c details of the logging access method.)
901 108 237.6 Q .03(These functions pro)108 254.4 R .03
902 (vide a general-purpose logging f)-.15 F .03(acility suf)-.1 F .03
903 (\214cient for transaction management.)-.25 F .03(Logs can)5.03 F
904 (be shared by multiple processes.)108 266.4 Q 3.717(Al)108 283.2 S 1.217
905 (og is represented by the directory)121.717 283.2 R(,)-.65 E F2 1.217
906 (not the \214le)3.717 F F0 3.717(,n).18 G 1.217(amed by the \214rst ar)323
907 283.2 R 1.218(gument to)-.18 F F2(db_open)3.718 E F0 3.718(\(3\). The).24 F
908 (\214rst)3.718 E(ar)108 295.2 Q .26
909 (gument must be non-NULL, and the directory must already e)-.18 F(xist)-.15 E
910 F2(db_open)2.76 E F0 .26(is called.)2.76 F .26(In that directory)5.26 F 2.76
911 (,t)-.65 G(he)530.56 295.2 Q 3.448
912 (log is stored in one or more \214les named in the format `)108 307.2 R
913 (`log.YYYY)-.74 E(.MM.DD.HH.MM.SS')-1.29 E 3.448(', where)-.74 F -.74(``)108
914 319.2 S(YYYY).74 E(.MM.DD.HH.SS')-1.29 E 2.507('i)-.74 G 2.507(st)220.497 319.2
915 S .007(he approximate creation time of the log \214le, and is guaranteed to be\
916  unique in)229.674 319.2 R(the directory)108 331.2 Q(.)-.65 E .465
917 (The group of the created \214les is based on the system and directory def)108
918 348 R .466(aults, and is not further speci\214ed by)-.1 F .073
919 (the log access method.)108 360 R .072(All \214les are created with the)5.073 F
920 F2(mode)2.572 E F0 .072(speci\214ed to)2.572 F F2(db_open)2.572 E F0 2.572(,\()
921 .24 G .072(as described in)435.584 360 R F2 -.15(ch)2.572 G(mod).15 E F0
922 (\(2\)\)).77 E(and modi\214ed by the process' umask v)108 372 Q(alue \(see)-.25
923 E F2(umask)2.5 E F0(\(2\)\).).67 E(The)108 388.8 Q F2<8d61>2.5 E(gs)-.1 E F0
924 (ar)2.5 E(gument to)-.18 E F2(db_open)2.5 E F0(must be 0 for the)2.5 E F2
925 (db_lo)2.5 E(g)-.1 E F0(access method.)2.5 E F1 -.495(AC)72 405.6 S
926 (CESS METHOD SPECIFIC INFORMA).495 E(TION)-.855 E F0 .571
927 (The log access method speci\214c data structure pro)108 417.6 R .571(vided to)
928 -.15 F F2(db_open)3.071 E F0 .572(is typedef)3.071 F 1.572 -.5('d a).55 H .572
929 (nd named LOGINFO.).5 F(A)5.572 E(LOGINFO structure has at least the follo)108
930 429.6 Q(wing \214elds, which may be initialized before calling)-.25 E F2
931 (db_open)2.5 E F0(:).24 E(of)108 446.4 Q(f_t max_\214le_size;)-.25 E 1.585
932 (The maximum size of a single \214le in the log.)133 458.4 R 1.584
933 (If not speci\214ed, the maximum size def)6.584 F 1.584(aults to an)-.1 F
934 (implementation-speci\214c v)133 470.4 Q(alue.)-.25 E(int lorder;)108 487.2 Q
935 .65(The byte order for inte)133 499.2 R .65
936 (gers in the stored database metadata.)-.15 F .65
937 (The number should represent the order)5.65 F .749(as an inte)133 511.2 R .749
938 (ger; for e)-.15 F .749(xample, big endian order w)-.15 F .749
939 (ould be the number 4,321.)-.1 F(If)5.749 E F2(lor)3.249 E(der)-.37 E F0 .749
940 (is 0 \(no order is)3.249 F(speci\214ed\) the current host order is used.)133
941 523.2 Q 1.284(If the log already e)108 540 R 1.284(xists, the v)-.15 F 1.285(a\
942 lues speci\214ed for the parameters max_\214le_size and lorder are ignored in)
943 -.25 F -.1(fa)108 552 S -.2(vo)-.1 G 2.5(ro).2 G 2.5(ft)136.1 552 S(he v)144.71
944 552 Q(alues used when the log w)-.25 E(as created.)-.1 E F1(DB OPERA)72 568.8 Q
945 (TIONS)-.855 E F0 .687(The data part of the k)108 580.8 R -.15(ey)-.1 G .686(/\
946 data pair used by the log access method is the same as for other access method\
947 s.).15 F .837(The k)108 592.8 R 1.137 -.15(ey i)-.1 H 3.337(sd).15 G(if)159.421
948 592.8 Q 3.337(ferent. Each)-.25 F .837(log record is identi\214ed by a log seq\
949 uence number \(LSN\), which is stored in a)3.337 F(DBT)108 604.8 Q 2.702(,a)
950 -.74 G .202(nd which is used as the)136.902 604.8 R F2 -.1(ke)2.702 G(y)-.2 E
951 F0 .202(for all log functions that tak)2.702 F(e)-.1 E F2 -.1(ke)2.701 G(y)-.2
952 E F0(ar)2.701 E 2.701(guments. Applications)-.18 F .201(cannot create)2.701 F
953 (LSN')108 616.8 Q .539(s, and all LSN')-.55 F 3.039(sp)-.55 G(ro)203.216 616.8
954 Q .539(vided to functions as ar)-.15 F .539(guments must \214rst be retrie)-.18
955 F -.15(ve)-.25 G 3.04(du).15 G .54(sing the)440.37 616.8 R F2(put)3.04 E F0(or)
956 3.04 E F2(seq)3.04 E F0(func-)3.04 E 2.783(tions. T)108 628.8 R 2.783(op)-.8 G
957 (ro)153.326 628.8 Q .283(vide a distinguished v)-.15 F .282
958 (alue for applications, it is guaranteed that no v)-.25 F .282(alid LSN will e)
959 -.25 F -.15(ve)-.25 G 2.782(rh).15 G -2.25 -.2(av e)519.248 628.8 T(a)2.982 E
960 (size of 0.)108 640.8 Q(Applications can compare LSN')108 657.6 Q 2.5(su)-.55 G
961 (sing the)247.98 657.6 Q F2(lo)2.5 E(g_lsn_compar)-.1 E(e)-.37 E F0
962 (function \(see belo)2.5 E(w\).)-.25 E .429(Applications can associate LSN')108
963 674.4 R 2.929(sw)-.55 G .429(ith speci\214c log \214les.)253.586 674.4 R .429
964 (The function)5.429 F F2(lo)2.929 E(g_lsn_\214le)-.1 E F0 .43(\(see belo)2.93 F
965 .43(w\), returns the)-.25 F .214
966 (name of the log \214le containing the record with a speci\214ed LSN.)108 686.4
967 R .214(\(The mapping of LSN to \214le is needed for)5.214 F(4.4 Berk)72 732 Q
968 (ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(3, 1995)
969 2.5 E(1)535 732 Q EP
970 %%Page: 2 11
971 %%BeginPageSetup
972 BP
973 %%EndPageSetup
974 /F0 10/Times-Roman@0 SF 124.57(DB_LOG\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
975 (sM)-.55 G 124.57(anual DB_LOG\(3\))340.17 48 R .397(database administration.)
976 108 84 R -.15(Fo)5.397 G 2.897(re).15 G .398
977 (xample, a transaction manager typically records the earliest LSN needed for)
978 231.931 84 R .519(restart, and the database administrator may w)108 96 R .519
979 (ant to archi)-.1 F .819 -.15(ve l)-.25 H .519(og \214les to tape when the).15
980 F 3.018(yc)-.15 G .518(ontain only LSN')465.624 96 R(s)-.55 E
981 (before the earliest one needed for restart.\))108 108 Q
982 (Applications can truncate the log \214le up to a speci\214c LSN using the)108
983 124.8 Q/F1 10/Times-Italic@0 SF(lo)2.5 E(g_trunc)-.1 E F0(function \(see belo)
984 2.5 E(w\).)-.25 E .221(The functions returned by)108 141.6 R F1(db_open)2.721 E
985 F0 .221(for the log access method are as described in)2.721 F F1(db_open)2.721
986 E F0 2.722(,w).24 G .222(ith the follo)482.586 141.6 R(w-)-.25 E(ing e)108
987 153.6 Q(xceptions and additions:)-.15 E 5.28(type The)108 170.4 R
988 (type is DB_LOG.)2.5 E 10.28(del The)108 187.2 R F1(del)3.505 E F0 1.005
989 (function al)3.505 F -.1(wa)-.1 G 1.005
990 (ys returns an error for the log-manager access method, setting).1 F F1(errno)
991 3.504 E F0 1.004(to EIN-)3.504 F -1.35(VA)133 199.2 S(L.)1.35 E
992 (int \(*log_\215ush\)\(const DB *db, const DBT *lsn\);)108 216 Q(The)133 228 Q
993 F1(lo)2.866 E(g_\215ush)-.1 E F0 .367
994 (function \215ushes the log up to and including the log record)2.866 F F1(lsn)
995 2.867 E F0 5.367(.T).24 G .367(he function)454.926 228 R F1(lo)2.867 E
996 (g_\215ush)-.1 E F0(returns -1 on f)133 240 Q(ailure, setting)-.1 E F1(errno)
997 2.5 E F0 2.5(,a).18 G(nd 0 on success.)278.61 240 Q
998 (int \(*log_lsn_compare\)\(const DB *,)108 256.8 Q .255
999 (const DBT *lsn1, const DBT *lsn2\); A pointer to a function which is pro)183
1000 268.8 R .255(vided to permit)-.15 F .312(applications to compare LSN')133 280.8
1001 R 2.812(s. The)-.55 F F1(lo)2.812 E(g_lsn_compar)-.1 E(e)-.37 E F0 .312
1002 (function returns an inte)2.812 F .313(ger less than, equal to,)-.15 F .058
1003 (or greater than zero if the \214rst LSN is considered to be respecti)133 292.8
1004 R -.15(ve)-.25 G .058(ly less than, equal to, or greater than).15 F
1005 (the second LSN.)133 304.8 Q(int \(*log_lsn_\214le\)\(const DB *db,)108 321.6 Q
1006 (const DBT *lsn, char *name\);)183 333.6 Q(The)133 345.6 Q F1(lo)3.21 E
1007 (g_lsn_\214le)-.1 E F0 .71
1008 (function stores a pointer to the name of the \214le containing)3.21 F F1(lsn)
1009 3.211 E F0 .711(in the address refer)3.211 F(-)-.2 E .293(enced by)133 357.6 R
1010 F1(name)2.793 E(.)-.15 E F0 .293(This pointer is to an internal static object,\
1011  and subsequent calls to the same function)5.293 F
1012 (will modify the same object.)133 369.6 Q(The function)133 386.4 Q F1(lo)2.5 E
1013 (g_lsn_\214le)-.1 E F0(returns -1 on f)2.5 E(ailure, setting)-.1 E F1(errno)2.5
1014 E F0 2.5(,a).18 G(nd 0 on success.)381.56 386.4 Q
1015 (int \(*log_unlink\)\(const char *path, int force\);)108 403.2 Q(The)133 415.2
1016 Q F1(lo)3.275 E(g_unlink)-.1 E F0 .775(function destro)3.275 F .775
1017 (ys the log represented by)-.1 F F1(path)3.275 E F0 5.775(.I).28 G 3.275(ft)
1018 394.745 415.2 S(he)404.13 415.2 Q F1(for)3.275 E(ce)-.37 E F0 .776
1019 (parameter is not set to 1)3.275 F .725
1020 (and there are other processes using the log, then)133 427.2 R F1(lo)3.224 E
1021 (g_unlink)-.1 E F0 .724(will return -1, setting)3.224 F F1(errno)3.224 E F0
1022 .724(to EB)3.224 F(USY)-.1 E(.)-1.29 E(If)133 439.2 Q F1(for)2.831 E .331
1023 (ce is not set or ther)-.37 F 2.831(ea)-.37 G 1.071 -.37(re n)244.287 439.2 T
1024 2.831(op).37 G -.45(ro)272.909 439.2 S .331(cesses using the lo).45 F .532 -.1
1025 (g, t)-.1 H .332(hen all \214les).1 F F0 .332(used by the log are destro)2.832
1026 F(yed.)-.1 E F1(lo)133 451.2 Q(g_unlink)-.1 E F0(will return -1 on f)2.5 E
1027 (ailure, setting)-.1 E F1(errno)2.5 E F0 2.5(,a).18 G(nd 0 on success.)337.96
1028 451.2 Q(int \(*log_trunc\)\(const DB *db, const DBT *lsn\);)108 468 Q(The)133
1029 480 Q F1(lo)2.601 E(g_trunc)-.1 E F0 .101
1030 (function truncates the log up to an LSN which is less than)2.601 F F1(lsn)2.6
1031 E F0 5.1(.T).24 G .1(he function)453.24 480 R F1(lo)2.6 E(g_trunc)-.1 E F0
1032 (returns -1 on f)133 492 Q(ailure, setting)-.1 E F1(errno)2.5 E F0 2.5(,a).18 G
1033 (nd 0 on success.)278.61 492 Q 9.72(put A)108 508.8 R .339
1034 (log record containing)2.839 F F1(data)2.839 E F0 .339(is appended to the log.)
1035 2.839 F(Unlik)5.339 E 2.84(et)-.1 G(he)382.44 508.8 Q F1(put)2.84 E F0 .34
1036 (functions for other access meth-)2.84 F .789(ods, the k)133 520.8 R 1.089 -.15
1037 (ey p)-.1 H .788(arameter is not initialized by the application, instead, the \
1038 LSN assigned to the data is).15 F(returned in the)133 532.8 Q F1 -.1(ke)2.5 G
1039 (y)-.2 E F0(parameter)2.5 E(.)-.55 E 1.157(The caller is responsible for pro)
1040 133 549.6 R 1.157(viding an)-.15 F 3.657(yn)-.15 G 1.157(ecessary structure to)
1041 318.267 549.6 R F1 1.157(data .)3.657 F F0(\(F)6.157 E 1.157(or e)-.15 F 1.157
1042 (xample, in a write-)-.15 F .267
1043 (ahead logging protocol, the application must understand what part of)133 561.6
1044 R F1(data)2.767 E F0 .266(is an operation code, what)2.766 F .622
1045 (part is redo information, and what part is undo information.)133 573.6 R .622
1046 (In addition, most transaction managers)5.622 F .985(will store in)133 585.6 R
1047 F1(data)3.485 E F0 .985(the LSN of the pre)3.485 F .984
1048 (vious log record for the same transaction, to support chaining)-.25 F
1049 (back through the transaction')133 597.6 Q 2.5(sl)-.55 G
1050 (og records during undo.\))258.54 597.6 Q(The parameter)133 614.4 Q F1<8d61>2.5
1051 E(g)-.1 E F0(must be set to 0 or e)2.5 E(xactly one of the follo)-.15 E(wing v)
1052 -.25 E(alues:)-.25 E(R_CHECKPOINT)133 631.2 Q .5(Specify the k)158 643.2 R -.15
1053 (ey)-.1 G .5(/data pair of the current call as the one to be returned when the)
1054 .15 F F1(seq)3 E F0 .5(function is)3 F(ne)158 655.2 Q
1055 (xt called with the R_CHECKPOINT \215ag.)-.15 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5
1056 (yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(3, 1995)2.5 E(2)535
1057 732 Q EP
1058 %%Page: 3 12
1059 %%BeginPageSetup
1060 BP
1061 %%EndPageSetup
1062 /F0 10/Times-Roman@0 SF 124.57(DB_LOG\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1063 (sM)-.55 G 124.57(anual DB_LOG\(3\))340.17 48 R(R_FLUSH)133 84 Q
1064 (Flush immediately \(ignoring an)158 96 Q 2.5(yp)-.15 G
1065 (ossibility for group commit\).)296.74 96 Q 9.17(seq The)108 112.8 R/F1 10
1066 /Times-Italic@0 SF(seq)2.5 E F0(function tak)2.5 E(es the follo)-.1 E
1067 (wing additional \215ag:)-.25 E(R_CHECKPOINT)133 129.6 Q .184(The last k)158
1068 141.6 R -.15(ey)-.1 G .184(/data pair stored by the).15 F F1(put)2.684 E F0
1069 .183(function \(using the R_CHECKPOINT \215ag\) is returned,)2.684 F .216
1070 (and the cursor is set or initialized to reference it.)158 153.6 R .216(The e)
1071 5.216 F .216(xpected use of this \215ag is during restart)-.15 F .801
1072 (and to determine what part of the log must be a)158 165.6 R -.25(va)-.2 G .801
1073 (ilable for restart.).25 F .801(Therefore, the log record)5.801 F(retrie)158
1074 177.6 Q -.15(ve)-.25 G 3.352(dw).15 G .853
1075 (ith R_CHECKPOINT should contain all the information that the transaction man-)
1076 203.712 177.6 R(ager will need for this purpose.)158 189.6 Q 4.17(sync The)108
1077 206.4 R F1(sync)3.135 E F0 .635(function al)3.135 F -.1(wa)-.1 G .635
1078 (ys returns an error for the log-manager access method, setting).1 F F1(errno)
1079 3.134 E F0 .634(to EIN-)3.134 F -1.35(VA)133 218.4 S(L.)1.35 E/F2 9
1080 /Times-Bold@0 SF(SEE ALSO)72 235.2 Q F1(db_btr)108 247.2 Q(ee)-.37 E F0(\(3\),)
1081 .18 E F1(db_hash)2.5 E F0(\(3\),).28 E F1(db_loc)2.5 E(k)-.2 E F0(\(3\),).67 E
1082 F1(db_mpool)2.5 E F0(\(3\),).51 E F1(db_open)2.5 E F0(\(3\),).24 E F1(db_r)2.5
1083 E(ecno)-.37 E F0(\(3\),).18 E F1(db_txn)2.5 E F0(\(3\)).24 E(4.4 Berk)72 732 Q
1084 (ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(3, 1995)
1085 2.5 E(3)535 732 Q EP
1086 %%Page: 1 13
1087 %%BeginPageSetup
1088 BP
1089 %%EndPageSetup
1090 /F0 10/Times-Roman@0 SF 110.12(DB_MPOOL\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1091 (sM)-.55 G 110.12(anual DB_MPOOL\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)
1092 72 84 S(ME).18 E F0(db_mpool \255 general purpose shared memory b)108 96 Q(uf)
1093 -.2 E(fer pool)-.25 E F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF
1094 (#include <db)108 124.8 Q(.h>)-.4 E(#include <mpool.h>)108 136.8 Q(int)108
1095 160.8 Q(mpool_cr)108 172.8 Q
1096 (eate\(char *path, mode_t mode, size_t cachesize, u_long \215ags\);)-.18 E
1097 (MPOOL *)108 196.8 Q(mpool_open\(char *path\);)108 208.8 Q(int)108 232.8 Q
1098 (mpool_close\(MPOOL *mp\);)108 244.8 Q(MPOOLFILE *)108 268.8 Q(mpool_f)108
1099 280.8 Q(open\(MPOOL *mp, char *path, size_t pagesize, v)-.25 E(oid *pgcookie,)
1100 -.1 E(int \(*pgin\)\(MPOOLFILE *mpf)158 292.8 Q(,)-.15 E(pgno_t pgno, v)188
1101 304.8 Q(oid *pgaddr)-.1 E 2.5(,v)-.92 G(oid *pgcookie\),)311.91 304.8 Q
1102 (int \(*pgout\)\(MPOOLFILE *mpf)158 316.8 Q(,)-.15 E(pgno_t pgno, v)188 328.8 Q
1103 (oid *pgaddr)-.1 E 2.5(,v)-.92 G(oid *pgcookie\);)311.91 328.8 Q(int)108 352.8
1104 Q(mpool_fclose\(MPOOLFILE *mpf\);)108 364.8 Q -.1(vo)108 388.8 S(id *).1 E
1105 (mpool_get\(MPOOLFILE *mpf)108 400.8 Q 2.5(,p)-.15 G(gno_t *pgnoaddr)252.02
1106 400.8 Q 2.5(,u)-.92 G(_long \215ags,)334.73 400.8 Q
1107 (int \(*callback\)\(MPOOLFILE *mpf)158 412.8 Q 2.5(,p)-.15 G(gno_t pgno\)\);)
1108 318.97 412.8 Q(int)108 436.8 Q(mpool_put\(MPOOLFILE *mpf)108 448.8 Q 2.5(,v)
1109 -.15 G(oid *pgaddr)253.04 448.8 Q 2.5(,u)-.92 G(_long \215ags\);)314.64 448.8 Q
1110 (int)108 472.8 Q(mpool_sync\(MPOOLFILE *mpf\);)108 484.8 Q(int)108 508.8 Q
1111 (mpool_unlink\(const char *path, int f)108 520.8 Q(or)-.25 E(ce\);)-.18 E -.1
1112 (vo)108 544.8 S(id).1 E(mpool_stat\(MPOOL *mp, FILE *fp\);)108 556.8 Q F1
1113 (DESCRIPTION)72 573.6 Q F0 .485(The DB library is a f)108 585.6 R .485
1114 (amily of groups of functions that pro)-.1 F .486
1115 (vides a modular programming interf)-.15 F .486(ace to trans-)-.1 F .823
1116 (actions and record-oriented \214le access.)108 597.6 R .822
1117 (The library includes support for transaction, locking, logging and)5.822 F
1118 .258(\214le b)108 609.6 R(uf)-.2 E .258(fering functionality)-.25 F 2.758(,a)
1119 -.65 G 2.758(sw)223.214 609.6 S .258(ell as v)237.082 609.6 R .258(arious inde)
1120 -.25 F -.15(xe)-.15 G 2.758(da).15 G .258(ccess methods.)331.434 609.6 R(Man)
1121 5.258 E 2.758(yo)-.15 G 2.758(ft)427.878 609.6 S .258
1122 (he functional groups \(e.g.)436.746 609.6 R .528(the memory pool functions\) \
1123 are useful independently of the rest of the DB functions, although some func-)
1124 108 621.6 R .306(tional groups are e)108 633.6 R .306
1125 (xplicitly based on other functional groups \(e.g.)-.15 F .306
1126 (transactions and logging\).)5.306 F -.15(Fo)5.306 G 2.806(rag).15 G(eneral)
1127 515.57 633.6 Q .245(description of transactions, see)108 645.6 R/F3 10
1128 /Times-Italic@0 SF(db_txn)2.745 E F0 2.745(\(3\). F).24 F .245
1129 (or a general description of the access methods, see)-.15 F F3(db_open)2.745 E
1130 F0(\(3\)).24 E .307(and then the indi)108 657.6 R .307
1131 (vidual access method manual pages:)-.25 F F3(db_btr)2.808 E(ee)-.37 E F0
1132 (\(3\),).18 E F3(db_hash)2.808 E F0(\(3\),).28 E F3(db_lo)2.808 E(g)-.1 E F0
1133 .308(\(3\) and).22 F F3(db_r)2.808 E(ecno)-.37 E F0(\(3\).).18 E -.15(Fo)108
1134 669.6 S 3.635(rag).15 G 1.135(eneral description of the lock manager)138.45
1135 669.6 R 3.635(,s)-.4 G(ee)307.32 669.6 Q F3(db_loc)3.635 E(k)-.2 E F0 3.635
1136 (\(3\). F).67 F 1.135(or a general description of the memory)-.15 F
1137 (pool manager)108 681.6 Q 2.5(,s)-.4 G(ee)171.2 681.6 Q F3(db_mpool)2.5 E F0
1138 (\(3\).).51 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q
1139 99.315(ution August)-.2 F(1, 1995)2.5 E(1)535 732 Q EP
1140 %%Page: 2 14
1141 %%BeginPageSetup
1142 BP
1143 %%EndPageSetup
1144 /F0 10/Times-Roman@0 SF 110.12(DB_MPOOL\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1145 (sM)-.55 G 110.12(anual DB_MPOOL\(3\))340.17 48 R
1146 (This manual page describes speci\214c details of the memory pool interf)108 84
1147 Q(ace.)-.1 E(The)108 100.8 Q/F1 10/Times-Italic@0 SF(db_mpool)3.682 E F0 1.182
1148 (function is the library interf)3.682 F 1.183(ace intended to pro)-.1 F 1.183
1149 (vide general-purpose, page-oriented b)-.15 F(uf)-.2 E(fer)-.25 E .16
1150 (management of one or more \214les.)108 112.8 R .16(While designed to w)5.16 F
1151 .16(ork with the other DB functions, these functions are)-.1 F .604
1152 (also useful for more general purposes.)108 124.8 R .604
1153 (The memory pools \(MPOOL)5.604 F -.55('s)-.92 G 3.104(\)a).55 G .605
1154 (re referred to in this document as)404.18 124.8 R .985(simply `)108 136.8 R
1155 (`pools')-.74 E 3.485('. Pools)-.74 F .985(may be shared between processes.)
1156 3.485 F .985(Pools are usually \214lled by pages from one or)5.985 F .673
1157 (more \214les \(MPOOLFILE')108 148.8 R 3.173(s\). P)-.55 F .674
1158 (ages in the pool are replaced in LR)-.15 F 3.174(U\()-.4 G .674
1159 (least-recently-used\) order)392.318 148.8 R 3.174(,w)-.4 G .674(ith each)
1160 507.946 148.8 R(ne)108 160.8 Q 4.243(wp)-.25 G 1.743
1161 (age replacing the page which has been unused the longest.)133.653 160.8 R -.15
1162 (Pa)6.742 G 1.742(ges retrie).15 F -.15(ve)-.25 G 4.242(df).15 G 1.742
1163 (rom the pool using)459.494 160.8 R F1(mpool_g)108 172.8 Q(et)-.1 E F0 1.255
1164 (are `)3.755 F(`pinned')-.74 E 3.755('i)-.74 G 3.755(nm)215.435 172.8 S(emory)
1165 231.97 172.8 Q 3.755(,b)-.65 G 3.755(yd)268.125 172.8 S(ef)281.88 172.8 Q 1.256
1166 (ault, until the)-.1 F 3.756(ya)-.15 G 1.256(re returned to the pool using the)
1167 358.168 172.8 R F1(mpool_put)3.756 E F0(function.)108 184.8 Q .934
1168 (The function)108 201.6 R F1(mpool_cr)3.434 E(eate)-.37 E F0 .934
1169 (creates and initializes the memory pool identi\214ed by the)3.434 F F1(path)
1170 3.433 E F0(directory)3.433 E 5.933(.T)-.65 G(his)528.33 201.6 Q .931
1171 (directory must already e)108 213.6 R .931(xist when)-.15 F F1(mpool_cr)3.431 E
1172 (eate)-.37 E F0 .931(is called.)3.431 F .932
1173 (If the memory pool identi\214ed by)5.931 F F1(path)3.432 E F0(already)3.432 E
1174 -.15(ex)108 225.6 S .045(ists, then).15 F F1(mpool_cr)2.545 E(eate)-.37 E F0
1175 .045(returns success without further action.)2.545 F .045
1176 (The \214les associated with the memory pool)5.045 F .87
1177 (are created in the directory speci\214ed by)108 237.6 R F1(path)3.37 E F0 5.87
1178 (.\().28 G .87(The group of the created \214les is based on the system and)
1179 304.08 237.6 R .258(directory def)108 249.6 R .258
1180 (aults, and is not further speci\214ed by)-.1 F F1(mpool_cr)2.758 E(eate)-.37 E
1181 F0 2.758(.\) All).18 F .258(\214les created by)2.758 F F1(mpool_cr)2.758 E
1182 (eate)-.37 E F0 .258(are cre-)2.758 F .048(ated with mode)108 261.6 R F1(mode)
1183 2.548 E F0 .049(\(as described in)2.548 F F1 -.15(ch)2.549 G(mod).15 E F0 .049
1184 (\(2\)\) and modi\214ed by the process' umask v).77 F .049(alue \(see)-.25 F F1
1185 (umask)2.549 E F0(\(2\)\).).67 E(The)108 278.4 Q F1(cac)2.544 E(hesize)-.15 E
1186 F0(ar)2.544 E .044(gument speci\214es the size of the pool in bytes, and shoul\
1187 d be the size of the normal w)-.18 F(orking)-.1 E .509(set of the application \
1188 with some small amount of additional memory for unusual situations.)108 290.4 R
1189 .509(If the number)5.509 F .362(of bytes currently `)108 302.4 R(`pinned')-.74
1190 E 2.862('i)-.74 G 2.862(nm)226.828 302.4 S .362(emory e)242.47 302.4 R(xceeds)
1191 -.15 E F1(cac)2.861 E(hesize)-.15 E F0 2.861(,t).18 G(he)351.734 302.4 Q F1
1192 (db_mpool)2.861 E F0 .361(functions will attempt to allocate)2.861 F
1193 (more memory and do not necessarily f)108 314.4 Q(ail, although the)-.1 E 2.5
1194 (ym)-.15 G(ay suf)341.61 314.4 Q(fer performance de)-.25 E(gradation.)-.15 E
1195 (The)108 331.2 Q F1<8d61>2.5 E(gs)-.1 E F0(ar)2.5 E(gument is set by)-.18 E F1
1196 (or)2.5 E F0('ing an).73 E 2.5(yo)-.15 G 2.5(ft)272.73 331.2 S(he follo)281.34
1197 331.2 Q(wing v)-.25 E(alues:)-.25 E(MPOOL_PRIV)108 348 Q -1.11(AT)-1.35 G(E)
1198 1.11 E(The pool is not shared by other processes or threads, so no locking of \
1199 pool resources is required.)144 360 Q .115(The function)108 376.8 R F1
1200 (mpool_open)2.615 E F0 .115
1201 (returns a pointer to the memory pool identi\214ed by)2.615 F F1(path)2.615 E
1202 F0 2.615(,w).28 G .115(hich must ha)447.525 376.8 R .415 -.15(ve a)-.2 H
1203 (lready).15 E .036(been created by a call to)108 388.8 R F1(mpool_cr)2.536 E
1204 (eate)-.37 E F0 5.036(.T).18 G .036(he process must ha)276.074 388.8 R .336
1205 -.15(ve p)-.2 H .036(ermission to read and write \214les with o).15 F(wn-)-.25
1206 E 1.157(ers, groups and permissions as described for)108 400.8 R F1(mpool_cr)
1207 3.657 E(eate)-.37 E F0 6.157(.T).18 G(he)365.075 400.8 Q F1(mpool_open)3.657 E
1208 F0 1.157(function returns NULL on)3.657 F -.1(fa)108 412.8 S(ilure, setting).1
1209 E F1(errno)2.5 E F0(.).18 E(The)108 429.6 Q F1(mpool_close)6.383 E F0 3.883
1210 (function closes the pool indicated by the MPOOL pointer)6.383 F F1(mp)6.383 E
1211 F0 6.383(,a).19 G 6.382(sr)480.026 429.6 S 3.882(eturned by)493.628 429.6 R F1
1212 (mpool_open)108 441.6 Q F0 5.047(.T).24 G .047(his function does)171.337 441.6
1213 R/F2 10/Times-Bold@0 SF(not)2.547 E F0 .047(imply a call to)2.547 F F1
1214 (mpool_sync)2.547 E F0 .047(\(or to)2.547 F F1(mpool_fclose)2.547 E F0 2.547
1215 (\)i).18 G .047(.e. no pages are writ-)455.951 441.6 R .404
1216 (ten to the source \214le as as a result of calling)108 453.6 R F1(mpool_close)
1217 2.904 E F0 5.404(.T).18 G .404(he function)354.658 453.6 R F1(mpool_close)2.904
1218 E F0 .403(returns -1 on f)2.904 F(ailure,)-.1 E(setting)108 465.6 Q F1(errno)
1219 2.5 E F0 2.5(,a).18 G(nd 0 on success.)169.01 465.6 Q .827(The function)108
1220 482.4 R F1(mpool_fopen)3.327 E F0 .827(opens a \214le for b)3.327 F(uf)-.2 E
1221 .828(fering in the pool speci\214ed by the MPOOL ar)-.25 F 3.328(gument. The)
1222 -.18 F F1(path)108 494.4 Q F0(ar)2.85 E .349
1223 (gument is the name of the \214le to be opened.)-.18 F(The)5.349 E F1(pa)2.849
1224 E -.1(ge)-.1 G(size).1 E F0(ar)2.849 E .349
1225 (gument is the size, in bytes, of the unit)-.18 F .738(of transfer between the\
1226  application and the pool, although not necessarily the unit of transfer betwe\
1227 en the)108 506.4 R .12(pool and the source \214le.)108 518.4 R .12
1228 (Applications not kno)5.12 F .12
1229 (wing the page size of the source \214le should retrie)-.25 F .42 -.15(ve t)
1230 -.25 H .12(he meta-).15 F .234(data from the \214le using a page size that is \
1231 correct for the metadata, then close and reopen the \214le, or)108 530.4 R
1232 2.735(,o)-.4 G(ther)521.32 530.4 Q(-)-.2 E
1233 (wise determine the page size before calling)108 542.4 Q F1(mpool_fopen)2.5 E
1234 F0(.).24 E .416(If the)108 559.2 R F1(pgin)2.916 E F0 .416(function is speci\
1235 \214ed, it is called each time a page is read into the memory pool from the so\
1236 urce)2.916 F 2.835(\214le. If)108 571.2 R(the)2.835 E F1(pgout)2.835 E F0 .336
1237 (function is speci\214ed, it is called each time a page is written to the sour\
1238 ce \214le.)2.835 F .336(Both func-)5.336 F .834
1239 (tions are called with the MPOOLFILE pointer returned from)108 583.2 R F1
1240 (mpool_fopen)3.333 E F0 3.333(,t).24 G .833(he page number)421.815 583.2 R
1241 3.333(,ap)-.4 G .833(ointer to)505.557 583.2 R .014
1242 (the page being read or written, and the ar)108 595.2 R(gument)-.18 E F1
1243 (pgcookie)2.515 E F0 5.015(.I).18 G 2.515(fe)351.695 595.2 S .015
1244 (ither function f)361.98 595.2 R .015(ails, it should return non-zero)-.1 F
1245 (and set)108 607.2 Q F1(errno)2.5 E F0 2.5(,i).18 G 2.5(nw)168.73 607.2 S
1246 (hich case the)183.45 607.2 Q F1(db_mpool)2.5 E F0
1247 (function calling it will also f)2.5 E(ail, lea)-.1 E(ving)-.2 E F1(errno)2.5 E
1248 F0(intact.)2.5 E(The)108 624 Q F1(mpool_fclose)2.705 E F0 .204
1249 (function closes the source \214le indicated by the MPOOLFILE pointer)2.705 F
1250 F1(mpf)2.704 E F0 5.204(.T)1.96 G .204(his function)492.296 624 R(does)108 636
1251 Q F2(not)3.615 E F0 1.115(imply a call to)3.615 F F1(mpool_sync)3.615 E F0
1252 3.615(,i).31 G 1.115
1253 (.e. no pages are written to the source \214le as as a result of calling)
1254 268.885 636 R F1(mpool_fclose)108 648 Q F0 5(.T).18 G(he function)175.12 648 Q
1255 F1(mpool_fclose)2.5 E F0(returns -1 on f)2.5 E(ailure, setting)-.1 E F1(errno)
1256 2.5 E F0 2.5(,a).18 G(nd 0 on success.)424.33 648 Q .019(The function)108 664.8
1257 R F1(mpool_g)2.519 E(et)-.1 E F0 .019
1258 (returns a pointer to the page with the page number speci\214ed by)2.519 F F1
1259 (pgnoaddr)2.518 E F0 2.518(,f).73 G .018(rom the)509.152 664.8 R .986
1260 (source \214le speci\214ed by the MPOOLFILE pointer)108 676.8 R F1(mpf)3.486 E
1261 F0 5.986(.I)1.96 G 3.486(ft)342.268 676.8 S .987(he page does not e)351.864
1262 676.8 R .987(xist or cannot be retrie)-.15 F -.15(ve)-.25 G(d,).15 E F1
1263 (mpool_g)108 688.8 Q(et)-.1 E F0(returns NULL and sets errno.)2.5 E(4.4 Berk)72
1264 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F
1265 (1, 1995)2.5 E(2)535 732 Q EP
1266 %%Page: 3 15
1267 %%BeginPageSetup
1268 BP
1269 %%EndPageSetup
1270 /F0 10/Times-Roman@0 SF 110.12(DB_MPOOL\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1271 (sM)-.55 G 110.12(anual DB_MPOOL\(3\))340.17 48 R(The)108 84 Q/F1 10
1272 /Times-Italic@0 SF<8d61>2.5 E(gs)-.1 E F0(ar)2.5 E(gument is set by)-.18 E F1
1273 (or)2.5 E F0('ing an).73 E 2.5(yo)-.15 G 2.5(ft)272.73 84 S(he follo)281.34 84
1274 Q(wing v)-.25 E(alues:)-.25 E(MPOOL_CALLB)108 100.8 Q -.4(AC)-.35 G(K).4 E 1.04
1275 (After the page number has been determined, b)133 112.8 R 1.04(ut before an)-.2
1276 F 3.54(yo)-.15 G 1.04(ther process or thread can access the)388.26 112.8 R .471
1277 (page, the function speci\214ed by the)133 124.8 R F1(callbac)2.971 E(k)-.2 E
1278 F0(ar)2.971 E .471(gument is called.)-.18 F .471(If the function f)5.471 F .472
1279 (ails, it should return)-.1 F 1.11(non-zero and set)133 136.8 R F1(errno)3.61 E
1280 F0 3.61(,i).18 G 3.61(nw)236.21 136.8 S 1.11(hich case)252.04 136.8 R F1
1281 (mpool_g)3.61 E(et)-.1 E F0 1.11(will also f)3.61 F 1.11(ail, lea)-.1 F(ving)
1282 -.2 E F1(errno)3.61 E F0 3.61(intact. The)3.61 F F1(callbac)3.61 E(k)-.2 E F0
1283 1.012(function is called with the MPOOLFILE pointer returned from)133 148.8 R
1284 F1(mpool_fopen)3.512 E F0 1.013(and the page number)3.513 F(.)-.55 E .228
1285 (This functionality is commonly used when page locking is required, b)133 160.8
1286 R .227(ut the page number of the page)-.2 F(being retrie)133 172.8 Q -.15(ve)
1287 -.25 G 2.5(di).15 G 2.5(sn)198.14 172.8 S(ot kno)209.53 172.8 Q(wn.)-.25 E
1288 (MPOOL_CREA)108 189.6 Q(TE)-1.11 E(If the speci\214ed page does not e)133 201.6
1289 Q(xist, create it.)-.15 E(MPOOL_LAST)108 218.4 Q 2.105
1290 (Return the last page of the source \214le and cop)133 230.4 R 4.605(yi)-.1 G
1291 2.106(ts page number to the location referenced by)347.25 230.4 R F1(pgnoaddr)
1292 133 242.4 Q F0(.).73 E(MPOOL_NEW)108 259.2 Q(Create a ne)133 271.2 Q 2.5(wp)
1293 -.25 G(age in the \214le and cop)192.45 271.2 Q 2.5(yi)-.1 G
1294 (ts page number to the location referenced by)290.67 271.2 Q F1(pgnoaddr)2.5 E
1295 F0(.).73 E(MPOOL_NOPIN)108 288 Q(Don')133 300 Q 2.918(tp)-.18 G .418
1296 (in the page into memory)164.068 300 R 5.418(.\()-.65 G .417
1297 (This \215ag is intended for deb)274.108 300 R .417(ugging purposes, when it')
1298 -.2 F 2.917(so)-.55 G .417(ften use-)504.873 300 R .972(ful to e)133 312 R .972
1299 (xamine pages which are currently held by other parts of the application.)-.15
1300 F -.15(Pa)5.973 G .973(ges retrie).15 F -.15(ve)-.25 G 3.473(di).15 G(n)535 312
1301 Q .529(this manner don')133 324 R 3.029(tn)-.18 G .528
1302 (eed to be returned to the memory pool, i.e. the)212.457 324 R 3.028(ys)-.15 G
1303 (hould)413.95 324 Q/F2 10/Times-Bold@0 SF(not)3.028 E F0 .528
1304 (be speci\214ed as ar)3.028 F(gu-)-.18 E(ments to the)133 336 Q F1(mpool_put)
1305 2.5 E F0(routine.\))2.5 E(Created pages ha)108 352.8 Q .3 -.15(ve a)-.2 H
1306 (ll their bytes set to 0.).15 E 2.078(All pages returned by)108 369.6 R F1
1307 (mpool_g)4.578 E(et)-.1 E F0 2.079
1308 (\(unless the MPOOL_NOPIN \215ag is speci\214ed\), will be retained \(i.e.)
1309 4.578 F -.74(``)108 381.6 S(pinned').74 E
1310 ('\) in the pool until a subsequent call to)-.74 E F1(mpool_put)2.5 E F0(.).68
1311 E .077(The function)108 398.4 R F1(mpool_put)2.577 E F0 .076
1312 (indicates that the page referenced by)2.577 F F1(pgaddr)2.576 E F0 .076
1313 (can be e)2.576 F .076(victed from the pool.)-.25 F F1(Pgaddr)5.076 E F0
1314 (must be an address pre)108 410.4 Q(viously returned by)-.25 E F1(mpool_g)2.5 E
1315 (et)-.1 E F0(.).68 E(The \215ag v)108 427.2 Q(alue is speci\214ed by)-.25 E F1
1316 (or)2.5 E F0('ing an).73 E 2.5(yo)-.15 G 2.5(ft)277.2 427.2 S(he follo)285.81
1317 427.2 Q(wing v)-.25 E(alues:)-.25 E(MPOOL_DIR)108 444 Q(TY)-.6 E .052(The page\
1318  has been modi\214ed and must be written to the source \214le before being e)
1319 133 456 R .052(victed from the pool.)-.25 F(MPOOL_DISCARD)108 472.8 Q .145
1320 (The page is unlik)133 484.8 R .144(ely to be useful in the near future, and s\
1321 hould be discarded before other pages in the)-.1 F(pool.)133 496.8 Q
1322 (The function)108 513.6 Q F1(mpool_put)2.5 E F0(returns -1 on f)2.5 E
1323 (ailure, setting)-.1 E F1(errno)2.5 E F0 2.5(,a).18 G(nd 0 on success.)352.77
1324 513.6 Q .027(The function)108 530.4 R F1(mpool_sync)2.527 E F0 .028
1325 (writes all pages associated with the MPOOLFILE pointer)2.528 F F1(mpf)2.528 E
1326 F0 2.528(,w)1.96 G .028(hich were speci-)474.414 530.4 R .431(\214ed as ar)108
1327 542.4 R .431(guments to the)-.18 F F1(mpool_put)2.931 E F0 .431
1328 (function with an associated \215ag of MPOOL_DIR)2.931 F(TY)-.6 E 2.93(,t)-1.29
1329 G 2.93(ot)472.61 542.4 S .43(he source \214le.)483.32 542.4 R(The function)108
1330 554.4 Q F1(mpool_sync)2.5 E F0(returns -1 on f)2.5 E(ailure, setting)-.1 E F1
1331 (errno)2.5 E F0 2.5(,a).18 G(nd 0 on success.)357.76 554.4 Q 1.075
1332 (The function)108 571.2 R F1(mpool_unlink)3.575 E F0(destro)3.575 E 1.075
1333 (ys the memory pool identi\214ed by the directory)-.1 F F1(path)3.575 E F0
1334 3.575(,r).28 G(emo)471.33 571.2 Q 1.075(ving all \214les)-.15 F 1.121
1335 (used to implement the memory pool.)108 583.2 R 1.121(\(The directory)6.121 F
1336 F1(path)3.621 E F0 1.121(is not remo)3.621 F -.15(ve)-.15 G 3.62(d.\) If).15 F
1337 1.12(there are processes which)3.62 F(ha)108 595.2 Q .871 -.15(ve c)-.2 H
1338 (alled).15 E F1(mpool_open)3.071 E F0 .571(without calling)3.071 F F1
1339 (mpool_close)3.071 E F0 .572
1340 (\(i.e., there are processes currently using the memory)3.071 F(pool\),)108
1341 607.2 Q F1(mpool_unlink)2.652 E F0 .152(will f)2.652 F .151
1342 (ail without further action, unless the force \215ag is set, in which case)-.1
1343 F F1(mpool_unlink)2.651 E F0 .524
1344 (will attempt to delete the memory pool \214les re)108 619.2 R -.05(ga)-.15 G
1345 .525(rdless of an).05 F 3.025(yp)-.15 G .525
1346 (rocesses still using the memory pool.)366.45 619.2 R(An)5.525 E(y)-.15 E .598
1347 (accesses to a remo)108 631.2 R -.15(ve)-.15 G 3.097(dm).15 G .597
1348 (emory pool will lik)208.95 631.2 R .597(ely result in une)-.1 F .597
1349 (xpected beha)-.15 F(vior)-.2 E 5.597(.T)-.55 G .597(he function)436.036 631.2
1350 R F1(mpool_unlink)3.097 E F0(returns -1 on f)108 643.2 Q(ailure, setting)-.1 E
1351 F1(errno)2.5 E F0 2.5(,a).18 G(nd 0 on success.)253.61 643.2 Q .11
1352 (In the case of catastrophic or system f)108 660 R .11
1353 (ailure, it is possible to clean up a memory pool by remo)-.1 F .11
1354 (ving all of the)-.15 F .569(\214les in the directory speci\214ed to the)108
1355 672 R F1(mpool_cr)3.068 E(eate)-.37 E F0 .568
1356 (function, as memory pool \214les are ne)3.068 F -.15(ve)-.25 G 3.068(rc).15 G
1357 .568(reated in an)487.364 672 R(y)-.15 E
1358 (directory other than the one speci\214ed to)108 684 Q F1(mpool_cr)2.5 E(eate)
1359 -.37 E F0(.).18 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q
1360 99.315(ution August)-.2 F(1, 1995)2.5 E(3)535 732 Q EP
1361 %%Page: 4 16
1362 %%BeginPageSetup
1363 BP
1364 %%EndPageSetup
1365 /F0 10/Times-Roman@0 SF 110.12(DB_MPOOL\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1366 (sM)-.55 G 110.12(anual DB_MPOOL\(3\))340.17 48 R .025(The function)108 84 R/F1
1367 10/Times-Italic@0 SF(mpool_stat)2.525 E F0 .026
1368 (writes statistics for the memory pool)2.526 F F1(mp)2.526 E F0 .026
1369 (to the \214le speci\214ed by)2.526 F F1(fp)2.526 E F0 5.026(.T).19 G .026
1370 (hese statistics)485.254 84 R .829
1371 (include the number of \214les participating in the pool, the acti)108 96 R
1372 1.129 -.15(ve p)-.25 H .829(ages in the pool, and numbers as to ho).15 F(w)-.25
1373 E(ef)108 108 Q(fecti)-.25 E .3 -.15(ve t)-.25 H(he cache has been.).15 E/F2 9
1374 /Times-Bold@0 SF(ERR)72 124.8 Q(ORS)-.27 E F0(The)108 136.8 Q F1(mpool_cr)3.852
1375 E(eate)-.37 E F0(,).18 E F1(mpool_open)3.852 E F0(and)3.852 E F1(mpool_fopen)
1376 3.852 E F0 1.353(functions may f)3.852 F 1.353(ail and set)-.1 F F1(errno)3.853
1377 E F0 1.353(for an)3.853 F 3.853(yo)-.15 G 3.853(ft)493.424 136.8 S 1.353
1378 (he errors)503.387 136.8 R(speci\214ed for the library functions)108 148.8 Q F1
1379 (open)2.5 E F0(\(2\),).24 E F1 -.37(re)2.5 G(ad).37 E F0(\(2\), and).77 E F1
1380 (malloc)2.5 E F0(\(3\).).31 E(The)108 165.6 Q F1(mpool_close)3.144 E F0(and)
1381 3.144 E F1(mpool_fclose)3.144 E F0 .644(functions may f)3.144 F .644
1382 (ail and set)-.1 F F1(errno)3.144 E F0 .643(for an)3.143 F 3.143(yo)-.15 G
1383 3.143(ft)425.985 165.6 S .643(he errors speci\214ed for the)435.238 165.6 R
1384 (library functions)108 177.6 Q F1(close)2.5 E F0(\(2\) and).18 E F1(fr)2.5 E
1385 (ee)-.37 E F0(\(3\).).18 E(The)108 194.4 Q F1(mpool_g)4.097 E(et)-.1 E F0 1.597
1386 (function may f)4.097 F 1.597(ail and set)-.1 F F1(errno)4.097 E F0 1.597
1387 (for an)4.097 F 4.097(yo)-.15 G 4.097(ft)349.14 194.4 S 1.597
1388 (he errors speci\214ed for the library functions)359.347 194.4 R F1 -.37(re)108
1389 206.4 S(ad).37 E F0(\(2\),).77 E F1(write)2.5 E F0(\(2\), and).18 E F1(malloc)
1390 2.5 E F0(\(3\) or the follo).31 E(wing:)-.25 E([EINV)108 223.2 Q(AL])-1.35 E
1391 (The requested page does not e)133 235.2 Q(xist and MPOOL_CREA)-.15 E(TE w)
1392 -1.11 E(as not set.)-.1 E(The)108 252 Q F1(mpool_put)4.288 E F0 1.787
1393 (function may f)4.287 F 1.787(ail and set)-.1 F F1(errno)4.287 E F0 1.787
1394 (for an)4.287 F 4.287(yo)-.15 G 4.287(ft)351.701 252 S 1.787
1395 (he errors speci\214ed for the library function)362.098 252 R F1(write)108 264
1396 Q F0(\(2\) or the follo).18 E(wing:)-.25 E([EA)108 280.8 Q(CCES])-.4 E
1397 (The source \214le w)133 292.8 Q(as not opened for writing.)-.1 E(The)108 309.6
1398 Q F1(mpool_sync)3.993 E F0 1.493(function may f)3.993 F 1.493(ail and set)-.1 F
1399 F1(errno)3.993 E F0 1.494(for an)3.993 F 3.994(yo)-.15 G 3.994(ft)353.752 309.6
1400 S 1.494(he errors speci\214ed for the library function)363.856 309.6 R F1
1401 (write)108 321.6 Q F0(\(2\).).18 E(The)108 338.4 Q F1(mpool_unlink)3.569 E F0
1402 1.069(function may f)3.569 F 1.068(ail and set)-.1 F F1(errno)3.568 E F0 1.068
1403 (for an)3.568 F 3.568(yo)-.15 G 3.568(ft)356.734 338.4 S 1.068
1404 (he errors speci\214ed for the library function)366.412 338.4 R F1(unlink)108
1405 350.4 Q F0(\(2\) or the follo).67 E(wing:)-.25 E([EB)108 367.2 Q(USY])-.1 E
1406 (The memory pool w)133 379.2 Q(as in use and the force \215ag w)-.1 E
1407 (as not set.)-.1 E F2(SEE ALSO)72 396 Q F1(db_btr)108 408 Q(ee)-.37 E F0
1408 (\(3\),).18 E F1(db_hash)2.5 E F0(\(3\),).28 E F1(db_loc)2.5 E(k)-.2 E F0
1409 (\(3\),).67 E F1(db_lo)2.5 E(g)-.1 E F0(\(3\),).22 E F1(db_open)2.5 E F0
1410 (\(3\),).24 E F1(db_r)2.5 E(ecno)-.37 E F0(\(3\),).18 E F1(db_txn)2.5 E F0
1411 (\(3\)).24 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q
1412 99.315(ution August)-.2 F(1, 1995)2.5 E(4)535 732 Q EP
1413 %%Page: 1 17
1414 %%BeginPageSetup
1415 BP
1416 %%EndPageSetup
1417 /F0 10/Times-Roman@0 SF 119.01(DB_OPEN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1418 (sM)-.55 G 119.01(anual DB_OPEN\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)
1419 72 84 S(ME).18 E F0(db_open \255 database access methods)108 96 Q F1(SYNOPSIS)
1420 72 112.8 Q/F2 10/Times-Bold@0 SF(#include <db)108 124.8 Q(.h>)-.4 E(DB *)108
1421 148.8 Q(db_open\(const char *\214le, int \215ags, int mode,)108 160.8 Q
1422 (DBTYPE type, DBINFO *dbinf)158 172.8 Q(o, const v)-.25 E(oid *openinf)-.1 E
1423 (o\);)-.25 E F1(DESCRIPTION)72 189.6 Q F0 .485(The DB library is a f)108 201.6
1424 R .485(amily of groups of functions that pro)-.1 F .486
1425 (vides a modular programming interf)-.15 F .486(ace to trans-)-.1 F .823
1426 (actions and record-oriented \214le access.)108 213.6 R .822
1427 (The library includes support for transaction, locking, logging and)5.822 F
1428 .258(\214le b)108 225.6 R(uf)-.2 E .258(fering functionality)-.25 F 2.758(,a)
1429 -.65 G 2.758(sw)223.214 225.6 S .258(ell as v)237.082 225.6 R .258(arious inde)
1430 -.25 F -.15(xe)-.15 G 2.758(da).15 G .258(ccess methods.)331.434 225.6 R(Man)
1431 5.258 E 2.758(yo)-.15 G 2.758(ft)427.878 225.6 S .258
1432 (he functional groups \(e.g.)436.746 225.6 R .528(the memory pool functions\) \
1433 are useful independently of the rest of the DB functions, although some func-)
1434 108 237.6 R .306(tional groups are e)108 249.6 R .306
1435 (xplicitly based on other functional groups \(e.g.)-.15 F .306
1436 (transactions and logging\).)5.306 F -.15(Fo)5.306 G 2.806(rag).15 G(eneral)
1437 515.57 249.6 Q .245(description of transactions, see)108 261.6 R/F3 10
1438 /Times-Italic@0 SF(db_txn)2.745 E F0 2.745(\(3\). F).24 F .245
1439 (or a general description of the access methods, see)-.15 F F3(db_open)2.745 E
1440 F0(\(3\)).24 E .307(and then the indi)108 273.6 R .307
1441 (vidual access method manual pages:)-.25 F F3(db_btr)2.808 E(ee)-.37 E F0
1442 (\(3\),).18 E F3(db_hash)2.808 E F0(\(3\),).28 E F3(db_lo)2.808 E(g)-.1 E F0
1443 .308(\(3\) and).22 F F3(db_r)2.808 E(ecno)-.37 E F0(\(3\).).18 E -.15(Fo)108
1444 285.6 S 3.635(rag).15 G 1.135(eneral description of the lock manager)138.45
1445 285.6 R 3.635(,s)-.4 G(ee)307.32 285.6 Q F3(db_loc)3.635 E(k)-.2 E F0 3.635
1446 (\(3\). F).67 F 1.135(or a general description of the memory)-.15 F
1447 (pool manager)108 297.6 Q 2.5(,s)-.4 G(ee)171.2 297.6 Q F3(db_mpool)2.5 E F0
1448 (\(3\).).51 E(This manual page describes the o)108 314.4 Q -.15(ve)-.15 G
1449 (rall structure of the a).15 E -.25(va)-.2 G(ilable access methods.).25 E .457
1450 (The currently supported \214le formats are btree, hashed, log and recno \(i.e\
1451 . \215at-\214le oriented\).)108 331.2 R .457(The btree for)5.457 F(-)-.2 E .974
1452 (mat is a representation of a sorted, balanced tree structure.)108 343.2 R .973
1453 (The hashed format is an e)5.974 F .973(xtensible, dynamic)-.15 F .801
1454 (hashing scheme.)108 355.2 R .802
1455 (The log format is a general-purpose logging f)5.801 F(acility)-.1 E 5.802(.T)
1456 -.65 G .802(he recno format is a byte stream)406.888 355.2 R .415
1457 (\214le with \214x)108 367.2 R .415(ed or v)-.15 F .415
1458 (ariable length records.)-.25 F .415(The formats and other)5.415 F 2.914(,f)-.4
1459 G .414(ormat speci\214c information are described)376.714 367.2 R
1460 (in detail in their respecti)108 379.2 Q .3 -.15(ve m)-.25 H(anual pages:).15 E
1461 F3(db_btr)2.5 E(ee)-.37 E F0(\(3\),).18 E F3(db_hash)2.5 E F0(\(3\),).28 E F3
1462 (db_lo)2.5 E(g)-.1 E F0(\(3\), and).22 E F3(db_r)2.5 E(ecno)-.37 E F0(\(3\).)
1463 .18 E .138(Db_open opens)108 396 R F3(\214le)2.638 E F0 .139
1464 (for reading and/or writing.)2.638 F .139(Files ne)5.139 F -.15(ve)-.25 G 2.639
1465 (ri).15 G .139(ntended to be preserv)349.088 396 R .139
1466 (ed on disk may be created)-.15 F .423
1467 (by setting the \214le parameter to NULL.)108 408 R .423
1468 (\(Note, while most of the access methods use)5.423 F F3(\214le)2.923 E F0 .423
1469 (as the name of an)2.923 F .429
1470 (underlying \214le on disk, this is not guaranteed.)108 420 R .43
1471 (See the manual pages for the indi)5.429 F .43(vidual access methods for)-.25 F
1472 (more information.\))108 432 Q(The)108 448.8 Q F3<8d61>4.328 E(gs)-.1 E F0(and)
1473 4.328 E F3 1.828(mode ar)4.328 F(guments)-.37 E F0 1.828
1474 (are as speci\214ed to the)4.328 F F3(open)4.328 E F0 1.828(\(2\) function, ho)
1475 .24 F(we)-.25 E -.15(ve)-.25 G 2.628 -.4(r, o).15 H 1.828(nly the O_CREA).4 F
1476 -.74(T,)-1.11 G .127(O_EXCL, O_EXLOCK, O_NONBLOCK, O_RDONL)108 460.8 R 2.708
1477 -1.29(Y, O)-1 H(_RD)1.29 E .128(WR, O_SHLOCK and O_TR)-.3 F .128
1478 (UNC \215ags are)-.4 F 2.5(meaningful. \(Note,)108 472.8 R
1479 (opening a database \214le O_WR)2.5 E(ONL)-.4 E 2.5(Yi)-1 G 2.5(sn)342.67 472.8
1480 S(ot possible.\))354.06 472.8 Q(The)108 489.6 Q F3(type)5.338 E F0(ar)5.338 E
1481 2.837(gument is of type DBTYPE \(as de\214ned in the <db)-.18 F 2.837
1482 (.h> include \214le\) and may be set to)-.4 F
1483 (DB_BTREE, DB_HASH, DB_LOG or DB_RECNO.)108 501.6 Q(The)108 518.4 Q F3(dbinfo)
1484 3.279 E F0(ar)3.279 E .779(gument is a pointer to a structure containing refer\
1485 ences to locking, logging, transaction, and)-.18 F 1.242(shared-memory b)108
1486 530.4 R(uf)-.2 E 1.242(fer pool information.)-.25 F(If)6.242 E F3(dbinfo)3.742
1487 E F0 1.241(is NULL, then the access method may still use these)3.741 F .667
1488 (subsystems, b)108 542.4 R .667(ut the usage will be pri)-.2 F -.25(va)-.25 G
1489 .668(te to the application and managed by DB.).25 F(If)5.668 E F3(dbinfo)3.168
1490 E F0 .668(is non-NULL,)3.168 F .481(then the module referenced by each of the \
1491 non-NULL \214elds is used by DB as necessary)108 554.4 R 5.48(.T)-.65 G .48
1492 (he \214elds of the)479.4 554.4 R(DBINFO structure are de\214ned as follo)108
1493 566.4 Q(ws:)-.25 E(const char *errpfx;)108 583.2 Q 2.5(Ap)133 595.2 S
1494 (re\214x to prepend to error messages; used only if)147.72 595.2 Q F3
1495 (err\214le)2.5 E F0(is non-NULL.)2.5 E(FILE *err\214le;)108 612 Q(The)133 624 Q
1496 F3(stdio)2.5 E F0(\(3\) \214le stream to which error messages are logged.).18 E
1497 .147(When an)133 648 R 2.647(ye)-.15 G .147(rror occurs in the)180.904 648 R F3
1498 (db_open)2.648 E F0 .148(function, or in an)2.648 F 2.648(yf)-.15 G .148
1499 (unction called using a \214eld of the returned)369.824 648 R .234
1500 (DB structure, an error v)133 660 R .234
1501 (alue is returned by the function, and the global v)-.25 F(ariable)-.25 E F3
1502 (errno)2.733 E F0 .233(is set appropri-)2.733 F(ately)133 672 Q 5.415(.I)-.65 G
1503 2.915(ns)163.035 672 S .416(ome cases, ho)174.84 672 R(we)-.25 E -.15(ve)-.25 G
1504 1.216 -.4(r, t).15 H(he).4 E F3(errno)2.916 E F0 -.25(va)2.916 G .416
1505 (lue may be insuf).25 F .416(\214cient to describe the cause of the error)-.25
1506 F(.)-.55 E .137(In these cases, if)133 684 R F3(err\214le)2.637 E F0 .137(is n\
1507 on-NULL, additional error information will be written to the \214le stream it)
1508 2.637 F(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315
1509 (ution August)-.2 F(1, 1995)2.5 E(1)535 732 Q EP
1510 %%Page: 2 18
1511 %%BeginPageSetup
1512 BP
1513 %%EndPageSetup
1514 /F0 10/Times-Roman@0 SF 119.01(DB_OPEN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1515 (sM)-.55 G 119.01(anual DB_OPEN\(3\))340.17 48 R .643
1516 (represents, preceded by the string, if an)133 84 R 1.943 -.65(y, s)-.15 H .643
1517 (peci\214ed by).65 F/F1 10/Times-Italic@0 SF(errpfx)3.143 E F0 5.643(.T).53 G
1518 .644(his error logging f)394.94 84 R .644(acility should not)-.1 F
1519 (be required for normal operation, b)133 96 Q(ut may be useful in deb)-.2 E
1520 (ugging applications.)-.2 E(char *errb)108 112.8 Q(uf;)-.2 E .03(The b)133
1521 124.8 R(uf)-.2 E .03(fer to which error messages are copied.)-.25 F .029
1522 (If non-NULL,)5.029 F F1(errb)2.529 E(uf)-.2 E F0(beha)2.529 E -.15(ve)-.2 G
1523 2.529(sa).15 G 2.529(sd)451.423 124.8 S .029(escribed for)462.842 124.8 R F1
1524 (err\214le)2.529 E F0(,).18 E -.15(ex)133 136.8 S .173(cept that the).15 F F1
1525 (errpfx)2.673 E F0 .174
1526 (\214eld is ignored and the error message is copied into the speci\214ed b)
1527 2.673 F(uf)-.2 E .174(fer instead)-.25 F 1.014
1528 (of being written to the FILE stream.)133 148.8 R 1.013
1529 (The DB routines assume that the associated b)6.014 F(uf)-.2 E 1.013
1530 (fer is at least)-.25 F(1024 bytes in length.)133 160.8 Q(LOCK_T)108 177.6 Q
1531 (ABLE_T *lockinfo;)-.93 E .265
1532 (If locking is required for the \214le being opened \(as in the case of b)133
1533 189.6 R(uf)-.2 E .266(fers being maintained in a shared)-.25 F 1.794(memory b)
1534 133 201.6 R(uf)-.2 E 1.794(fer pool\), the)-.25 F F1(loc)4.294 E(kinfo)-.2 E F0
1535 1.794(\214eld contains a return v)4.294 F 1.793(alue from the function)-.25 F
1536 F1(loc)4.293 E(k_open)-.2 E F0(that)4.293 E(should be used \(see)133 213.6 Q F1
1537 (db_loc)2.5 E(k)-.2 E F0 2.5(\(3\)\). If).67 F F1(loc)2.5 E(kinfo)-.2 E F0
1538 (is NULL, no locking is done.)2.5 E(DB *loginfo;)108 230.4 Q .93
1539 (If modi\214cations to the \214le being opened should be logged, the)133 242.4
1540 R F1(lo)3.43 E(ginfo)-.1 E F0 .93(\214eld contains a return v)3.43 F(alue)-.25
1541 E .063(from the function)133 254.4 R F1(dbopen)2.563 E F0 2.563(,w).24 G .062
1542 (hen opening a DB \214le of type DB_LOG.)247.642 254.4 R(If)5.062 E F1(lo)2.562
1543 E(ginfo)-.1 E F0 .062(is NULL, no logging)2.562 F(is done.)133 266.4 Q
1544 (MPOOL *mpoolinfo;)108 283.2 Q 1.129
1545 (If the cache for the \214le being opened should be maintained in a shared b)
1546 133 295.2 R(uf)-.2 E 1.129(fer pool, the)-.25 F F1(mpoolinfo)3.629 E F0 .102
1547 (\214eld contains a return v)133 307.2 R .102(alue from the function)-.25 F F1
1548 (mpool_open)2.602 E F0 .102(that should be used \(see)2.602 F F1(db_mpool)2.602
1549 E F0 2.602(\(3\)\). If).51 F F1(mpoolinfo)133 319.2 Q F0 .429
1550 (is NULL, a memory pool may still be created, b)2.929 F .43(ut it will be pri)
1551 -.2 F -.25(va)-.25 G .43(te to the application and).25 F(managed by DB.)133
1552 331.2 Q(TXNMGR *txninfo;)108 348 Q 1.161
1553 (If the accesses to the \214le being opened should tak)133 360 R 3.661(ep)-.1 G
1554 1.161(lace in the conte)354.474 360 R 1.161(xt of transactions \(pro)-.15 F
1555 (viding)-.15 E 1.239(atomicity and complete error reco)133 372 R -.15(ve)-.15 G
1556 1.239(ry\), the).15 F F1(txninfo)3.739 E F0 1.239(\214eld contains a return v)
1557 3.739 F 1.24(alue from the function)-.25 F F1(txn_open)133 384 Q F0(\(see)2.599
1558 E F1(db_txn)2.599 E F0 2.599(\(3\)\). If).24 F .098
1559 (transactions are speci\214ed, the application is responsible for making suit-)
1560 2.599 F 1.27(able calls to)133 396 R F1(txn_be)3.77 E(gin)-.4 E F0(,).24 E F1
1561 (txn_abort)3.77 E F0 3.77(,a).68 G(nd)282.91 396 Q F1(txn_commit)3.77 E F0 6.27
1562 (.I).68 G(f)356.12 396 Q F1(txninfo)3.77 E F0 1.27
1563 (is NULL, no transaction support is)3.77 F(done.)133 408 Q(The)108 424.8 Q F1
1564 (openinfo)2.85 E F0(ar)2.85 E .349(gument is a pointer to an access method spe\
1565 ci\214c structure described in the access method')-.18 F(s)-.55 E .03
1566 (manual page.)108 436.8 R(If)5.03 E F1(openinfo)2.53 E F0 .031
1567 (is NULL, each access method will use def)2.53 F .031
1568 (aults appropriate for the system and the)-.1 F(access method.)108 448.8 Q/F2 9
1569 /Times-Bold@0 SF(KEY/D)72 465.6 Q -1.35 -.855(AT A)-.315 H -.666(PA)3.105 G
1570 (IRS).666 E F0 .313(Access to all access methods is based on k)108 477.6 R -.15
1571 (ey)-.1 G .312(/data pairs.).15 F .312(Both k)5.312 F -.15(ey)-.1 G 2.812(sa)
1572 .15 G .312(nd data are represented by the follo)386.758 477.6 R(w-)-.25 E
1573 (ing data structure:)108 489.6 Q(typedef struct {)108 506.4 Q -.2(vo)144 518.4
1574 S(id *data;).2 E(size_t size;)144 530.4 Q 2.5(}D)108 542.4 S(BT)122.52 542.4 Q
1575 (;)-.55 E(The elements of the DBT structure are de\214ned as follo)108 559.2 Q
1576 (ws:)-.25 E 5.84(data A)108 576 R(pointer to a byte string.)2.5 E 6.95
1577 (size The)108 592.8 R(length of)2.5 E F1(data)2.5 E F0 2.5(,i).26 G 2.5(nb)
1578 215.2 592.8 S(ytes.)227.7 592.8 Q -2.15 -.25(Ke y)108 609.6 T .672(and data by\
1579 te strings may reference strings of essentially unlimited length, although an)
1580 3.422 F 3.173(yt)-.15 G .873 -.1(wo o)493.204 609.6 T 3.173(ft).1 G(hem)522.78
1581 609.6 Q(must \214t into a)108 621.6 Q -.25(va)-.2 G
1582 (ilable memory at the same time.).25 E .14(The access methods pro)108 638.4 R
1583 .139(vide no guarantees about byte string alignment, and applications are resp\
1584 onsible for)-.15 F(maintaining an)108 650.4 Q 2.5(yn)-.15 G
1585 (ecessary alignment.)180.07 650.4 Q F2(DB OPERA)72 667.2 Q(TIONS)-.855 E F1
1586 (Db_open)108 679.2 Q F0 .56
1587 (returns a pointer to a DB structure \(as de\214ned in the <db)3.06 F .56
1588 (.h> include \214le\) on success, and NULL)-.4 F 1.02(on error)108 691.2 R 6.02
1589 (.T)-.55 G 1.02(he DB structure describes a database type, and includes a set \
1590 of functions to perform v)155.03 691.2 R(arious)-.25 E(4.4 Berk)72 732 Q(ele)
1591 -.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E
1592 (2)535 732 Q EP
1593 %%Page: 3 19
1594 %%BeginPageSetup
1595 BP
1596 %%EndPageSetup
1597 /F0 10/Times-Roman@0 SF 119.01(DB_OPEN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1598 (sM)-.55 G 119.01(anual DB_OPEN\(3\))340.17 48 R .241
1599 (actions, as described belo)108 84 R 4.041 -.65(w. E)-.25 H .241
1600 (ach of these functions tak).65 F .241
1601 (es a pointer to a DB structure, and may tak)-.1 F 2.741(eo)-.1 G .242(ne or)
1602 519.488 84 R .889(more DBT *')108 96 R 3.389(sa)-.55 G .889(nd a \215ag v)
1603 174.827 96 R .889(alue as well.)-.25 F(Indi)5.889 E .888
1604 (vidual access methods specify additional functions and \215ags)-.25 F
1605 (which are speci\214c to the method.)108 108 Q
1606 (The \214elds of the DB structure are as follo)5 E(ws:)-.25 E(DBTYPE type;)108
1607 124.8 Q(The type of the underlying access method \(and \214le format\).)133
1608 136.8 Q(int \(*close\)\(const DB *db\);)108 153.6 Q 3.863(Ap)133 165.6 S 1.363
1609 (ointer to a function to \215ush an)149.083 165.6 R 3.864(yc)-.15 G 1.364
1610 (ached information to disk, free an)290.968 165.6 R 3.864(ya)-.15 G 1.364
1611 (llocated resources, and)445.912 165.6 R .878(close an)133 177.6 R 3.378(yu)
1612 -.15 G .878(nderlying \214les.)179.596 177.6 R .878(Since k)5.878 F -.15(ey)-.1
1613 G .878(/data pairs are cached in memory).15 F 3.377(,f)-.65 G .877
1614 (ailing to sync the \214le with)431.445 177.6 R(the)133 189.6 Q/F1 10
1615 /Times-Italic@0 SF(close)2.5 E F0(or)2.5 E F1(sync)2.5 E F0
1616 (function may result in inconsistent or lost information.)2.5 E(The)133 206.4 Q
1617 F1(close)2.5 E F0(functions return -1 on f)2.5 E(ailure, setting)-.1 E F1
1618 (errno)2.5 E F0 2.5(,a).18 G(nd 0 on success.)355.54 206.4 Q
1619 (int \(*del\)\(const DB *db, TXN *txnid,)108 223.2 Q(const DBT *k)183 235.2 Q
1620 -.15(ey)-.1 G 2.5(,u)-.5 G(_int \215ags\);)257.65 235.2 Q 2.541(Ap)133 247.2 S
1621 .041(ointer to a function to remo)147.761 247.2 R .341 -.15(ve k)-.15 H -.15
1622 (ey).05 G .041(/data pairs from the database.).15 F .042(The k)5.041 F -.15(ey)
1623 -.1 G .042(/data pair associated with).15 F(the speci\214ed)133 259.2 Q F1 -.1
1624 (ke)2.5 G(y)-.2 E F0(are discarded from the database.)2.5 E(The)133 276 Q F1
1625 (txnid)3.317 E F0 .817(parameter contains a transaction ID returned from)3.317
1626 F F1(txn_be)3.317 E(gin)-.4 E F0 3.317(,i).24 G 3.316(ft)431.22 276 S .816
1627 (he \214le is being accessed)440.646 276 R
1628 (under transaction protection, or NULL if transactions are not in ef)133 288 Q
1629 (fect.)-.25 E(The parameter)133 304.8 Q F1<8d61>2.5 E(g)-.1 E F0
1630 (must be set to 0 or e)2.5 E(xactly one of the follo)-.15 E(wing v)-.25 E
1631 (alues:)-.25 E(R_CURSOR)133 321.6 Q(Delete the record referenced by the cursor)
1632 158 333.6 Q 5(.T)-.55 G(he cursor must ha)339.32 333.6 Q .3 -.15(ve p)-.2 H(re)
1633 .15 E(viously been initialized.)-.25 E(The)133 350.4 Q F1(delete)2.934 E F0
1634 .434(functions return -1 on error)2.934 F 2.934(,s)-.4 G(etting)297.818 350.4 Q
1635 F1(errno)2.934 E F0 2.934(,0o).18 G 2.934(ns)364.3 350.4 S .434
1636 (uccess, and 1 if the speci\214ed)376.124 350.4 R F1 -.1(ke)2.935 G(y)-.2 E F0
1637 .435(did not)2.935 F -.15(ex)133 362.4 S(ist in the \214le.).15 E
1638 (int \(*fd\)\(const DB *db\);)108 379.2 Q 3.351(Ap)133 391.2 S .851
1639 (ointer to a function which returns a \214le descriptor representati)148.571
1640 391.2 R 1.15 -.15(ve o)-.25 H 3.35(ft).15 G .85(he underlying database.)430.53
1641 391.2 R(A)5.85 E .338(\214le descriptor referencing the same \214le will be re\
1642 turned to all processes which call)133 403.2 R F1(db_open)2.838 E F0 .339
1643 (with the)2.839 F(same)133 415.2 Q F1(\214le)3.376 E F0 3.376(name. This)3.376
1644 F .876(\214le descriptor may be safely used as an ar)3.376 F .876
1645 (gument to the)-.18 F F1(fcntl)3.376 E F0 .875(\(2\) and).51 F F1(\215oc)3.375
1646 E(k)-.2 E F0(\(2\)).67 E .99(locking functions.)133 427.2 R .99
1647 (The \214le descriptor is not necessarily associated with an)5.99 F 3.49(yo)
1648 -.15 G 3.49(ft)453.98 427.2 S .99(he underlying \214les)463.58 427.2 R
1649 (used by the access method.)133 439.2 Q(No \214le descriptor is a)5 E -.25(va)
1650 -.2 G(ilable for in memory databases.).25 E(The)133 456 Q F1(fd)2.5 E F0
1651 (functions return -1 on error)2.5 E 2.5(,s)-.4 G(etting)278.68 456 Q F1(errno)
1652 2.5 E F0 2.5(,a).18 G(nd the \214le descriptor on success.)335.8 456 Q
1653 (int \(*get\)\(const DB *db, TXN *txnid,)108 472.8 Q(const DBT *k)183 484.8 Q
1654 -.15(ey)-.1 G 2.5(,D)-.5 G(BT *data, u_int \215ags\);)259.87 484.8 Q 2.854(Ap)
1655 133 496.8 S .354(ointer to a function which is the interf)148.074 496.8 R .354
1656 (ace for k)-.1 F -.15(ey)-.1 G .353(ed retrie).15 F -.25(va)-.25 G 2.853(lf).25
1657 G .353(rom the database.)397.995 496.8 R .353(The address and)5.353 F
1658 (length of the data associated with the speci\214ed)133 508.8 Q F1 -.1(ke)2.5 G
1659 (y)-.2 E F0(are returned in the structure referenced by)2.5 E F1(data)2.5 E F0
1660 (.).26 E(The)133 525.6 Q F1(txnid)3.316 E F0 .816
1661 (parameter contains a transaction ID returned from)3.316 F F1(txn_be)3.317 E
1662 (gin)-.4 E F0 3.317(,i).24 G 3.317(ft)431.215 525.6 S .817
1663 (he \214le is being accessed)440.642 525.6 R
1664 (under transaction protection, or NULL if transactions are not in ef)133 537.6
1665 Q(fect.)-.25 E(The)133 554.4 Q F1 -.1(ge)2.5 G(t).1 E F0
1666 (functions return -1 on error)2.5 E 2.5(,s)-.4 G(etting)283.02 554.4 Q F1
1667 (errno)2.5 E F0 2.5(,0o).18 G 2.5(ns)348.2 554.4 S(uccess, and 1 if the)359.59
1668 554.4 Q F1 -.1(ke)2.5 G(y)-.2 E F0 -.1(wa)2.5 G 2.5(sn).1 G(ot found.)476.83
1669 554.4 Q(int \(*put\)\(const DB *db, TXN *txnid,)108 571.2 Q(DBT *k)183 583.2 Q
1670 -.15(ey)-.1 G 2.5(,c)-.5 G(onst DBT *data, u_int \215ags\);)233.48 583.2 Q 2.5
1671 (Ap)133 595.2 S(ointer to a function to store k)147.72 595.2 Q -.15(ey)-.1 G
1672 (/data pairs in the database.).15 E(The)133 612 Q F1(txnid)3.317 E F0 .817
1673 (parameter contains a transaction ID returned from)3.317 F F1(txn_be)3.317 E
1674 (gin)-.4 E F0 3.317(,i).24 G 3.316(ft)431.22 612 S .816
1675 (he \214le is being accessed)440.646 612 R
1676 (under transaction protection, or NULL if transactions are not in ef)133 624 Q
1677 (fect.)-.25 E(The parameter)133 640.8 Q F1<8d61>2.5 E(g)-.1 E F0
1678 (must be set to 0 or e)2.5 E(xactly one of the follo)-.15 E(wing v)-.25 E
1679 (alues:)-.25 E(R_CURSOR)133 657.6 Q .448(Replace the k)158 669.6 R -.15(ey)-.1
1680 G .448(/data pair referenced by the cursor).15 F 5.449(.T)-.55 G .449
1681 (he cursor must ha)375.156 669.6 R .749 -.15(ve p)-.2 H(re).15 E .449
1682 (viously been ini-)-.25 F(tialized.)158 681.6 Q(4.4 Berk)72 732 Q(ele)-.1 E 2.5
1683 (yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(3)535
1684 732 Q EP
1685 %%Page: 4 20
1686 %%BeginPageSetup
1687 BP
1688 %%EndPageSetup
1689 /F0 10/Times-Roman@0 SF 119.01(DB_OPEN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1690 (sM)-.55 G 119.01(anual DB_OPEN\(3\))340.17 48 R(R_NOO)133 84 Q(VER)-.5 E
1691 (WRITE)-.55 E(Enter the ne)158 96 Q 2.5(wk)-.25 G -.15(ey)220.69 96 S
1692 (/data pair only if the k).15 E .3 -.15(ey d)-.1 H(oes not pre).15 E(viously e)
1693 -.25 E(xist.)-.15 E .664(The def)133 112.8 R .664(ault beha)-.1 F .664
1694 (vior of the)-.2 F/F1 10/Times-Italic@0 SF(put)3.164 E F0 .664
1695 (functions is to enter the ne)3.164 F 3.164(wk)-.25 G -.15(ey)387.498 112.8 S
1696 .663(/data pair).15 F 3.163(,r)-.4 G .663(eplacing an)443.534 112.8 R 3.163(yp)
1697 -.15 G(re)503.03 112.8 Q(viously)-.25 E -.15(ex)133 124.8 S(isting k).15 E -.15
1698 (ey)-.1 G(.)-.5 E(The)133 141.6 Q F1(put)3.558 E F0 1.058
1699 (functions return -1 on error)3.558 F 3.559(,s)-.4 G(etting)291.089 141.6 Q F1
1700 (errno)3.559 E F0 3.559(,0o).18 G 3.559(ns)359.446 141.6 S 1.059
1701 (uccess, and 1 if the R_NOO)371.895 141.6 R(VER)-.5 E(WRITE)-.55 E F1<8d61>133
1702 153.6 Q(g)-.1 E F0 -.1(wa)2.5 G 2.5(ss).1 G(et and the k)172.24 153.6 Q .3 -.15
1703 (ey a)-.1 H(lready e).15 E(xists in the \214le.)-.15 E
1704 (int \(*seq\)\(const DB *db, TXN *txnid,)108 170.4 Q(DBT *k)183 182.4 Q -.15
1705 (ey)-.1 G 2.5(,D)-.5 G(BT *data, u_int \215ags\);)236.26 182.4 Q 2.877(Ap)133
1706 194.4 S .377(ointer to a function which is the interf)148.097 194.4 R .377
1707 (ace for sequential retrie)-.1 F -.25(va)-.25 G 2.877(lf).25 G .377
1708 (rom the database.)415.194 194.4 R .376(The address)5.376 F .012
1709 (and length of the k)133 206.4 R .312 -.15(ey a)-.1 H .012
1710 (re returned in the structure referenced by).15 F F1 -.1(ke)2.512 G(y)-.2 E F0
1711 2.512(,a).32 G .012(nd the address and length of the)412.726 206.4 R
1712 (data are returned in the structure referenced by)133 218.4 Q F1(data)2.5 E F0
1713 (.).26 E(The)133 235.2 Q F1(txnid)3.317 E F0 .817
1714 (parameter contains a transaction ID returned from)3.317 F F1(txn_be)3.317 E
1715 (gin)-.4 E F0 3.317(,i).24 G 3.316(ft)431.22 235.2 S .816
1716 (he \214le is being accessed)440.646 235.2 R
1717 (under transaction protection, or NULL if transactions are not in ef)133 247.2
1718 Q(fect.)-.25 E .721(Sequential k)133 264 R -.15(ey)-.1 G .721
1719 (/data pair retrie).15 F -.25(va)-.25 G 3.221(lm).25 G .721(ay be)277.884 264 R
1720 .721(gin at an)-.15 F 3.221(yt)-.15 G .721
1721 (ime, and the logical position of the `)346.568 264 R(`cursor')-.74 E 3.222('i)
1722 -.74 G(s)536.11 264 Q .947(not af)133 276 R .947(fected by calls to the)-.25 F
1723 F1(del)3.447 E F0(,).51 E F1 -.1(ge)3.447 G(t).1 E F0(,).68 E F1(put)3.447 E F0
1724 3.446(,o).68 G(r)308.572 276 Q F1(sync)3.446 E F0 3.446
1725 (functions. Modi\214cations)3.446 F .946(to the database during a)3.446 F 2.091
1726 (sequential scan will be re\215ected in the scan, i.e. records inserted behind\
1727  the cursor will not be)133 288 R
1728 (returned while records inserted in front of the cursor will be returned.)133
1729 300 Q(The parameter)133 316.8 Q F1<8d61>2.5 E(g)-.1 E F0(must be set to 0 or e)
1730 2.5 E(xactly one of the follo)-.15 E(wing v)-.25 E(alues:)-.25 E(R_CURSOR)133
1731 333.6 Q .937(The data associated with the speci\214ed k)158 345.6 R 1.237 -.15
1732 (ey i)-.1 H 3.437(sr).15 G 3.437(eturned. This)348.546 345.6 R(dif)3.437 E .936
1733 (fers from the)-.25 F F1 -.1(ge)3.436 G(t).1 E F0 .936(functions in)3.436 F
1734 (that it sets or initializes the cursor to the location of the k)158 357.6 Q .3
1735 -.15(ey a)-.1 H 2.5(sw).15 G(ell.)415.5 357.6 Q(R_FIRST)133 374.4 Q .835
1736 (The \214rst k)158 386.4 R -.15(ey)-.1 G .835(/data pair of the database is re\
1737 turned, and the cursor is set or initialized to refer).15 F(-)-.2 E(ence it.)
1738 158 398.4 Q(R_NEXT)133 415.2 Q(Retrie)158 427.2 Q 1.015 -.15(ve t)-.25 H .715
1739 (he k).15 F -.15(ey)-.1 G .715(/data pair immediately after the cursor).15 F
1740 5.715(.I)-.55 G 3.215(ft)391.91 427.2 S .714
1741 (he cursor is not yet set, this is the)401.235 427.2 R
1742 (same as the R_FIRST \215ag.)158 439.2 Q(The)133 456 Q F1(seq)3.014 E F0 .514
1743 (functions return -1 on error)3.014 F 3.015(,s)-.4 G(etting)287.83 456 Q F1
1744 (errno)3.015 E F0 3.015(,0o).18 G 3.015(ns)354.555 456 S .515
1745 (uccess, and 1 if there are no k)366.46 456 R -.15(ey)-.1 G .515(/data pairs)
1746 .15 F(less than or greater than the speci\214ed or current k)133 468 Q -.15(ey)
1747 -.1 G(.)-.5 E(int \(*sync\)\(const DB *db, u_int \215ags\);)108 484.8 Q 3.291
1748 (Ap)133 496.8 S .791(ointer to a function to \215ush an)148.511 496.8 R 3.291
1749 (yc)-.15 G .791(ached information to disk.)286.388 496.8 R .79
1750 (If the database is in memory only)5.79 F(,)-.65 E(the)133 508.8 Q F1(sync)2.5
1751 E F0(function has no ef)2.5 E(fect and will al)-.25 E -.1(wa)-.1 G(ys succeed.)
1752 .1 E(The parameter)133 525.6 Q F1<8d61>2.5 E(g)-.1 E F0
1753 (must be set to 0 or a v)2.5 E
1754 (alue speci\214ed by an access method speci\214c manual page.)-.25 E(The)133
1755 542.4 Q F1(sync)2.5 E F0(functions return -1 on f)2.5 E(ailure, setting)-.1 E
1756 F1(errno)2.5 E F0 2.5(,a).18 G(nd 0 on success.)352.76 542.4 Q/F2 9
1757 /Times-Bold@0 SF(ERR)72 559.2 Q(ORS)-.27 E F0(The)108 571.2 Q F1(db_open)4.548
1758 E F0 2.048(function may f)4.548 F 2.049(ail and set)-.1 F F1(errno)4.549 E F0
1759 2.049(for an)4.549 F 4.549(yo)-.15 G 4.549(ft)345.977 571.2 S 2.049
1760 (he errors speci\214ed for the library functions)356.636 571.2 R F1(open)108
1761 583.2 Q F0(\(2\),).24 E F1(malloc)2.5 E F0(\(3\) or the follo).31 E(wing:)-.25
1762 E([EFTYPE])108 600 Q 2.5<418c>133 612 S(le is incorrectly formatted.)148.28 612
1763 Q([EINV)108 628.8 Q(AL])-1.35 E 2.557(Ap)133 640.8 S .056
1764 (arameter has been speci\214ed \(hash function, recno pad byte etc.\))147.777
1765 640.8 R .056(that is incompatible with the cur)5.056 F(-)-.2 E .725
1766 (rent \214le speci\214cation or)133 652.8 R 3.225(,a\215)-.4 G .725
1767 (ag to a function which is not meaningful for the function \(for e)248.435
1768 652.8 R(xample,)-.15 E .763(use of the cursor without prior initialization\) o\
1769 r there is a mismatch between the v)133 664.8 R .763(ersion number of)-.15 F
1770 (\214le and the softw)133 676.8 Q(are.)-.1 E(The)108 693.6 Q F1(close)2.913 E
1771 F0 .413(functions may f)2.913 F .413(ail and set)-.1 F F1(errno)2.913 E F0 .413
1772 (for an)2.913 F 2.913(yo)-.15 G 2.913(ft)319.62 693.6 S .414
1773 (he errors speci\214ed for the library functions)328.643 693.6 R F1(close)2.914
1774 E F0(\(2\),).18 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q
1775 99.315(ution August)-.2 F(1, 1995)2.5 E(4)535 732 Q EP
1776 %%Page: 5 21
1777 %%BeginPageSetup
1778 BP
1779 %%EndPageSetup
1780 /F0 10/Times-Roman@0 SF 119.01(DB_OPEN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1781 (sM)-.55 G 119.01(anual DB_OPEN\(3\))340.17 48 R/F1 10/Times-Italic@0 SF -.37
1782 (re)108 84 S(ad).37 E F0(\(2\),).77 E F1(write)2.5 E F0(\(2\),).18 E F1(fr)2.5
1783 E(ee)-.37 E F0(\(3\), or).18 E F1(fsync)2.5 E F0(\(2\).).31 E(The)108 100.8 Q
1784 F1(del)2.52 E F0(,).51 E F1 -.1(ge)2.52 G(t).1 E F0(,).68 E F1(put)2.52 E F0
1785 (and)2.52 E F1(seq)2.52 E F0 .02(functions may f)2.52 F .02(ail and set)-.1 F
1786 F1(errno)2.52 E F0 .02(for an)2.52 F 2.52(yo)-.15 G 2.52(ft)376.3 100.8 S .02
1787 (he errors speci\214ed for the library func-)384.93 100.8 R(tions)108 112.8 Q
1788 F1 -.37(re)2.5 G(ad).37 E F0(\(2\),).77 E F1(write)2.5 E F0(\(2\),).18 E F1(fr)
1789 2.5 E(ee)-.37 E F0(\(3\) or).18 E F1(malloc)2.5 E F0(\(3\).).31 E(The)108 129.6
1790 Q F1(fd)2.5 E F0(functions will f)2.5 E(ail and set)-.1 E F1(errno)2.5 E F0
1791 (to ENOENT for in memory databases.)2.5 E(The)108 146.4 Q F1(sync)2.5 E F0
1792 (functions may f)2.5 E(ail and set)-.1 E F1(errno)2.5 E F0(for an)2.5 E 2.5(yo)
1793 -.15 G 2.5(ft)312.71 146.4 S(he errors speci\214ed for the library function)
1794 321.32 146.4 Q F1(fsync)2.5 E F0(\(2\).).31 E/F2 9/Times-Bold@0 SF(SEE ALSO)72
1795 163.2 Q F1(db_btr)108 175.2 Q(ee)-.37 E F0(\(3\),).18 E F1(db_hash)2.5 E F0
1796 (\(3\),).28 E F1(db_loc)2.5 E(k)-.2 E F0(\(3\),).67 E F1(db_lo)2.5 E(g)-.1 E F0
1797 (\(3\),).22 E F1(db_mpool)2.5 E F0(\(3\),).51 E F1(db_r)2.5 E(ecno)-.37 E F0
1798 (\(3\),).18 E F1(db_txn)2.5 E F0(\(3\)).24 E F2 -.09(BU)72 192 S(GS).09 E F0
1799 .106(The name DBT is a mnemonic for `)108 204 R .106(`data base thang')-.74 F
1800 .106(', and w)-.74 F .107(as used because noone could think of a reason-)-.1 F
1801 (able name that w)108 216 Q(asn')-.1 E 2.5(ta)-.18 G(lready in use some)202.14
1802 216 Q(where else.)-.25 E(The)108 232.8 Q F1(fd)2.5 E F0(function interf)2.5 E
1803 (ace is a kluge, and will be deleted in a future v)-.1 E(ersion of the interf)
1804 -.15 E(ace.)-.1 E(Only big and little endian byte order is supported.)108 249.6
1805 Q(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315
1806 (ution August)-.2 F(1, 1995)2.5 E(5)535 732 Q EP
1807 %%Page: 1 22
1808 %%BeginPageSetup
1809 BP
1810 %%EndPageSetup
1811 /F0 10/Times-Roman@0 SF 111.23(DB_RECNO\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1812 (sM)-.55 G 111.23(anual DB_RECNO\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)
1813 72 84 S(ME).18 E F0(db_recno \255 record number database access method)108 96 Q
1814 F1(DESCRIPTION)72 112.8 Q F0(speci\214c details of the recno access method.)108
1815 124.8 Q F1 -.495(AC)72 141.6 S(CESS METHOD SPECIFIC INFORMA).495 E(TION)-.855 E
1816 F0 2.497(The recno access method speci\214c data structure pro)108 153.6 R
1817 2.497(vided to)-.15 F/F2 10/Times-Italic@0 SF(db_open)4.997 E F0 2.497
1818 (is typedef)4.997 F 3.497 -.5('d a).55 H 2.497(nd named REC-).5 F 2.765
1819 (NOINFO. A)108 165.6 R .265(RECNOINFO structure has at least the follo)2.765 F
1820 .266(wing \214elds, which may be initialized before call-)-.25 F(ing)108 177.6
1821 Q F2(db_open)2.5 E F0(:).24 E(u_int8_t b)108 194.4 Q -.25(va)-.15 G(l;).25 E
1822 .793(The delimiting byte to be used to mark the end of a record for v)133 206.4
1823 R .793(ariable-length records, and the pad)-.25 F .386(character for \214x)133
1824 218.4 R .387(ed-length records.)-.15 F .387(If no v)5.387 F .387
1825 (alue is speci\214ed, ne)-.25 F .387(wlines \(`)-.25 F(`\\n')-.74 E .387
1826 ('\) are used to mark the end)-.74 F(of v)133 230.4 Q
1827 (ariable-length records and \214x)-.25 E
1828 (ed-length records are padded with spaces.)-.15 E(char *bfname;)108 247.2 Q
1829 1.152(The recno access method stores the in-memory copies of its records in a \
1830 btree.)133 259.2 R 1.152(If bfname is non-)6.152 F .35(NULL, it speci\214es th\
1831 e name of the btree \214le, as if speci\214ed as the \214le name for a)133
1832 271.2 R F2(db_open)2.851 E F0 .351(of a btree)2.851 F(\214le.)133 283.2 Q
1833 (u_int cachesize;)108 300 Q 3.847(As)133 312 S 1.347
1834 (uggested maximum size, in bytes, of the memory cache.)147.957 312 R 1.347
1835 (This v)6.347 F 1.347(alue is)-.25 F/F3 10/Times-Bold@0 SF(only)3.847 E F0
1836 (advisory)3.847 E 3.846(,a)-.65 G 1.346(nd the)513.934 312 R .693
1837 (access method will allocate more memory rather than f)133 324 R 3.193(ail. If)
1838 -.1 F F2(cac)3.193 E(hesize)-.15 E F0 3.193(is 0)3.193 F .693
1839 (\(no size is speci\214ed\) a)3.193 F(def)133 336 Q(ault size is used.)-.1 E
1840 (u_long \215ags;)108 352.8 Q(The \215ag v)133 364.8 Q(alue is speci\214ed by)
1841 -.25 E F2(or)2.5 E F0('ing an).73 E 2.5(yo)-.15 G 2.5(ft)302.2 364.8 S
1842 (he follo)310.81 364.8 Q(wing v)-.25 E(alues:)-.25 E(R_FIXEDLEN)133 381.6 Q
1843 1.49(The records are \214x)158 393.6 R 1.489(ed-length, not byte delimited.)
1844 -.15 F 1.489(The structure element)6.489 F F2 -.37(re)3.989 G(clen).37 E F0
1845 1.489(speci\214es the)3.989 F .487
1846 (length of the record, and the structure element)158 405.6 R F2(bval)2.987 E F0
1847 .488(is used as the pad character)2.988 F 5.488(.A)-.55 G .788 -.15(ny r)
1848 495.232 405.6 T(ecords,).15 E(inserted into the database, that are less than)
1849 158 417.6 Q F2 -.37(re)2.5 G(clen).37 E F0
1850 (bytes long are automatically padded.)2.5 E(R_NOKEY)133 434.4 Q 1.146
1851 (In the interf)158 446.4 R 1.146(ace speci\214ed by)-.1 F F2(db_open)3.646 E F0
1852 3.646(,t).24 G 1.146(he sequential record retrie)320.816 446.4 R -.25(va)-.25 G
1853 3.646<6c8c>.25 G 1.145(lls in both the caller')449.31 446.4 R(s)-.55 E -.1(ke)
1854 158 458.4 S 4.795(ya)-.05 G 2.295(nd data structures.)181.425 458.4 R 2.295
1855 (If the R_NOKEY \215ag is speci\214ed, the)7.295 F F2(cur)4.795 E(sor)-.1 E F0
1856 2.295(functions are not)4.795 F .621(required to \214ll in the k)158 470.4 R
1857 .921 -.15(ey s)-.1 H 3.121(tructure. This).15 F .621
1858 (permits applications to retrie)3.121 F .92 -.15(ve r)-.25 H .62
1859 (ecords at the end of).15 F(\214les without reading all of the interv)158 482.4
1860 Q(ening records.)-.15 E(R_SN)133 499.2 Q(APSHO)-.35 E(T)-.4 E .029
1861 (This \215ag requires that a snapshot of the \214le be tak)158 511.2 R .029
1862 (en when)-.1 F F2(db_open)2.529 E F0 .029(is called, instead of permit-)2.529 F
1863 (ting an)158 523.2 Q 2.5(yu)-.15 G
1864 (nmodi\214ed records to be read from the original \214le.)197.85 523.2 Q
1865 (int lorder;)108 540 Q .65(The byte order for inte)133 552 R .65
1866 (gers in the stored database metadata.)-.15 F .65
1867 (The number should represent the order)5.65 F .748(as an inte)133 564 R .749
1868 (ger; for e)-.15 F .749(xample, big endian order w)-.15 F .749
1869 (ould be the number 4,321.)-.1 F(If)5.749 E F2(lor)3.249 E(der)-.37 E F0 .749
1870 (is 0 \(no order is)3.249 F(speci\214ed\) the current host order is used.)133
1871 576 Q(u_int psize;)108 592.8 Q .284(The recno access method stores the in-memo\
1872 ry copies of its records in a btree.)133 604.8 R .284(This v)5.284 F .283
1873 (alue is the size)-.25 F .297
1874 (\(in bytes\) of the pages used for nodes in that tree.)133 616.8 R(If)5.297 E
1875 F2(psize)2.797 E F0 .297(is 0 \(no page size is speci\214ed\) a page size)2.797
1876 F(is chosen based on the underlying \214le system I/O block size.)133 628.8 Q
1877 (See)5 E F2(btr)2.5 E(ee)-.37 E F0(\(3\) for more information.).18 E
1878 (size_t reclen;)108 645.6 Q(The length of a \214x)133 657.6 Q
1879 (ed-length record.)-.15 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)
1880 132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(1)535 732 Q EP
1881 %%Page: 2 23
1882 %%BeginPageSetup
1883 BP
1884 %%EndPageSetup
1885 /F0 10/Times-Roman@0 SF 111.23(DB_RECNO\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1886 (sM)-.55 G 111.23(anual DB_RECNO\(3\))340.17 48 R/F1 9/Times-Bold@0 SF
1887 (DB OPERA)72 84 Q(TIONS)-.855 E F0 .972(The data part of the k)108 96 R -.15
1888 (ey)-.1 G .971(/data pair used by the recno access method is the same as other\
1889  access methods.).15 F .198(The k)108 108 R .498 -.15(ey i)-.1 H 2.698(sd).15 G
1890 (if)157.504 108 Q 2.698(ferent. The)-.25 F/F2 10/Times-Italic@0 SF(data)2.698 E
1891 F0 .198(\214eld of the k)2.698 F .499 -.15(ey s)-.1 H .199
1892 (hould be a pointer to a memory location of type).15 F F2 -.37(re)2.699 G
1893 (cno_t).37 E F0 2.699(,a).68 G(s)536.11 108 Q .506(de\214ned in the <db)108 120
1894 R .506(.h> include \214le.)-.4 F .506(This type is normally the lar)5.506 F
1895 .506(gest unsigned inte)-.18 F .506(gral type a)-.15 F -.25(va)-.2 G .505
1896 (ilable to the).25 F 2.5(implementation. The)108 132 R F2(size)2.5 E F0
1897 (\214eld of the k)2.5 E .3 -.15(ey s)-.1 H(hould be the size of that type.).15
1898 E 1.944(The record number data structure is either v)108 148.8 R 1.944
1899 (ariable or \214x)-.25 F 1.944
1900 (ed-length records stored in a \215at-\214le format,)-.15 F 1.856
1901 (accessed by the logical record number)108 160.8 R 6.856(.T)-.55 G 1.856(he e)
1902 285.206 160.8 R 1.856(xistence of record number \214v)-.15 F 4.356(er)-.15 G
1903 1.856(equires the e)440.442 160.8 R 1.856(xistence of)-.15 F .875
1904 (records one through four)108 172.8 R 3.375(,a)-.4 G .875
1905 (nd the deletion of record number one causes record number \214v)219.68 172.8 R
1906 3.376(et)-.15 G 3.376(ob)489.928 172.8 S 3.376(er)503.304 172.8 S(enum-)514.45
1907 172.8 Q .283(bered to record number four)108 184.8 R 2.783(,a)-.4 G 2.783(sw)
1908 231.195 184.8 S .283(ell as the cursor)245.088 184.8 R 2.783(,i)-.4 G 2.783(fp)
1909 316.64 184.8 S .282(ositioned after record number one, to shift do)327.753
1910 184.8 R .282(wn one)-.25 F 3.18(record. The)108 196.8 R .68
1911 (creation of record number \214v)3.18 F 3.18(ew)-.15 G .681
1912 (hen records one through four do not e)295.05 196.8 R .681
1913 (xist causes the logical)-.15 F(creation of them with zero-length data.)108
1914 208.8 Q .372(Because there is no meta-data associated with the underlying recn\
1915 o access method \214les, an)108 225.6 R 2.872(yc)-.15 G .372(hanges made)
1916 487.698 225.6 R .191(to the def)108 237.6 R .191(ault v)-.1 F .191
1917 (alues \(e.g. \214x)-.25 F .192(ed record length or byte separator v)-.15 F
1918 .192(alue\) must be e)-.25 F .192(xplicitly speci\214ed each time)-.15 F
1919 (the \214le is opened.)108 249.6 Q 1.037(The functions returned by)108 266.4 R
1920 F2(db_open)3.537 E F0 1.036(for the btree access method are as described in)
1921 3.536 F F2(db_open)3.536 E F0 1.036(\(3\), with the).24 F(follo)108 278.4 Q
1922 (wing e)-.25 E(xceptions and additions:)-.15 E 5.28(type The)108 295.2 R
1923 (type is DB_RECNO.)2.5 E 9.72(put Using)108 312 R(the)2.558 E F2(put)2.558 E F0
1924 (interf)2.559 E .059(ace to create a ne)-.1 F 2.559(wr)-.25 G .059
1925 (ecord will cause the creation of multiple, empty records if the)293.07 312 R
1926 (record number is more than one greater than the lar)133 324 Q
1927 (gest record currently in the database.)-.18 E(The)133 340.8 Q F2(put)2.5 E F0
1928 (function tak)2.5 E(es the follo)-.1 E(wing additional \215ags:)-.25 E
1929 (R_IAFTER)133 357.6 Q 1.225
1930 (Append the data immediately after the data referenced by)158 369.6 R F2 -.1
1931 (ke)3.724 G(y)-.2 E F0 3.724(,c).32 G 1.224(reating a ne)425.354 369.6 R 3.724
1932 (wk)-.25 G -.15(ey)490.046 369.6 S 1.224(/data pair).15 F(.)-.55 E
1933 (The record number of the appended k)158 381.6 Q -.15(ey)-.1 G
1934 (/data pair is returned in the).15 E F2 -.1(ke)2.5 G(y)-.2 E F0(structure.)2.5
1935 E(R_IBEFORE)133 398.4 Q 1.343
1936 (Insert the data immediately before the data referenced by)158 410.4 R F2 -.1
1937 (ke)3.844 G(y)-.2 E F0 3.844(,c).32 G 1.344(reating a ne)424.874 410.4 R 3.844
1938 (wk)-.25 G -.15(ey)489.926 410.4 S 1.344(/data pair).15 F(.)-.55 E
1939 (The record number of the inserted k)158 422.4 Q -.15(ey)-.1 G
1940 (/data pair is returned in the).15 E F2 -.1(ke)2.5 G(y)-.2 E F0(structure.)2.5
1941 E(R_SETCURSOR)133 439.2 Q(Store the k)158 451.2 Q -.15(ey)-.1 G(/data pair).15
1942 E 2.5(,s)-.4 G
1943 (etting or initializing the position of the cursor to reference it.)256.5 451.2
1944 Q 9.17(seq The)108 468 R F2(seq)2.5 E F0(function tak)2.5 E(es the follo)-.1 E
1945 (wing additional \215ags:)-.25 E(R_LAST)133 484.8 Q .04(The last k)158 496.8 R
1946 -.15(ey)-.1 G .04(/data pair of the database is returned, and the cursor is se\
1947 t or initialized to reference).15 F(it.)158 508.8 Q(R_PREV)133 525.6 Q(Retrie)
1948 158 537.6 Q .59 -.15(ve t)-.25 H .29(he k).15 F -.15(ey)-.1 G .29
1949 (/data pair immediately before the cursor).15 F 5.29(.I)-.55 G 2.79(ft)395.73
1950 537.6 S .29(he cursor is not yet set, this is the)404.63 537.6 R
1951 (same as the R_LAST \215ag.)158 549.6 Q .749
1952 (If the database \214le is a character special \214le and no complete k)133
1953 566.4 R -.15(ey)-.1 G .748(/data pairs are currently a).15 F -.25(va)-.2 G
1954 (ilable,).25 E(the)133 578.4 Q F2(seq)2.5 E F0(function returns 2.)2.5 E 4.17
1955 (sync The)108 595.2 R F2(sync)2.5 E F0(function tak)2.5 E(es the follo)-.1 E
1956 (wing additional \215ag:)-.25 E(R_RECNOSYNC)133 612 Q .643
1957 (This \215ag causes the)158 624 R F2(sync)3.143 E F0 .644
1958 (function to apply to the btree \214le which underlies the recno \214le, not)
1959 3.143 F .09(the recno \214le itself.)158 636 R .09(\(See the)5.09 F F2(bfname)
1960 2.59 E F0 .09(\214eld of RECNOINFO structure, abo)2.59 F -.15(ve)-.15 G 2.59
1961 (,f).15 G .09(or more informa-)470.95 636 R(tion.\))158 648 Q F1(ERR)72 664.8 Q
1962 (ORS)-.27 E F0(The)108 676.8 Q F2 -.37(re)3.731 G(cno).37 E F0 1.231
1963 (access method functions may f)3.731 F 1.231(ail and set)-.1 F F2(errno)3.731 E
1964 F0 1.231(for an)3.731 F 3.731(yo)-.15 G 3.731(ft)392.652 676.8 S 1.231
1965 (he errors speci\214ed for the library)402.493 676.8 R(function)108 688.8 Q F2
1966 (db_open)2.5 E F0(\(3\) or the follo).24 E(wing:)-.25 E(4.4 Berk)72 732 Q(ele)
1967 -.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E
1968 (2)535 732 Q EP
1969 %%Page: 3 24
1970 %%BeginPageSetup
1971 BP
1972 %%EndPageSetup
1973 /F0 10/Times-Roman@0 SF 111.23(DB_RECNO\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1974 (sM)-.55 G 111.23(anual DB_RECNO\(3\))340.17 48 R([EINV)108 84 Q(AL])-1.35 E
1975 (An attempt w)133 96 Q(as made to add a record to a \214x)-.1 E
1976 (ed-length database that w)-.15 E(as too lar)-.1 E(ge to \214t.)-.18 E/F1 9
1977 /Times-Bold@0 SF(SEE ALSO)72 112.8 Q/F2 10/Times-Italic@0 SF(db_btr)108 124.8 Q
1978 (ee)-.37 E F0(\(3\),).18 E F2(db_hash)2.5 E F0(\(3\),).28 E F2(db_loc)2.5 E(k)
1979 -.2 E F0(\(3\),).67 E F2(db_lo)2.5 E(g)-.1 E F0(\(3\),).22 E F2(db_mpool)2.5 E
1980 F0(\(3\),).51 E F2(db_open)2.5 E F0(\(3\),).24 E F2(db_txn)2.5 E F0(\(3\)).24 E
1981 F2 2.755(Document Pr)108 148.8 R 2.755
1982 (ocessing in a Relational Database System)-.45 F F0 5.254(,M).32 G 2.754
1983 (ichael Stonebrak)362.134 148.8 R(er)-.1 E 5.254(,H)-.4 G 2.754(eidi Stettner)
1984 454.062 148.8 R 5.254(,J)-.4 G(oseph)516.67 148.8 Q
1985 (Kalash, Antonin Guttman, Nadene L)108 160.8 Q
1986 (ynn, Memorandum No. UCB/ERL M82/32, May 1982.)-.55 E F1 -.09(BU)72 177.6 S(GS)
1987 .09 E F0(The)108 189.6 Q F2(sync)3.616 E F0(function')3.616 E 3.616(sR)-.55 G
1988 1.116(_RECNOSYNC interf)198.838 189.6 R 1.117
1989 (ace is a kluge, and will be deleted in a future v)-.1 F 1.117(ersion of the)
1990 -.15 F(interf)108 201.6 Q(ace.)-.1 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G
1991 (istrib)132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(3)535 732 Q EP
1992 %%Page: 1 25
1993 %%BeginPageSetup
1994 BP
1995 %%EndPageSetup
1996 /F0 10/Times-Roman@0 SF 124.57(DB_TXN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
1997 (sM)-.55 G 124.57(anual DB_TXN\(3\))340.17 48 R/F1 9/Times-Bold@0 SF -.18(NA)72
1998 84 S(ME).18 E F0(db_txn \255 transaction management functions)108 96 Q F1
1999 (SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(#include <db)108 124.8 Q(.h>)-.4 E
2000 (#include <db_lock.h>)108 136.8 Q(int)108 160.8 Q(txn_cr)108 172.8 Q
2001 (eate\(const char *path, mode_t mode, u_int maxtxns, u_int \215ags\);)-.18 E
2002 (TXNMGR *)108 196.8 Q(txn_open\(const char *path, DBT *logp, LOCK_T)108 208.8 Q
2003 (ABLE_T *lockp,)-.9 E(int \(*r)158 220.8 Q(eco)-.18 E -.1(ve)-.1 G
2004 (r\)\(DBT *lsn, DBT *log_entry).1 E 2.5(,i)-.55 G(nt isundo\)\);)340.11 220.8 Q
2005 (TXN *)108 244.8 Q(txn_begin\(TXNMGR *txnp\);)108 256.8 Q(int)108 280.8 Q
2006 (txn_commit\(TXN *tid\);)108 292.8 Q(int)108 316.8 Q(txn_pr)108 328.8 Q(epar)
2007 -.18 E(e\(TXN *tid\);)-.18 E(int)108 352.8 Q(txn_abort\(TXN *tid\);)108 364.8 Q
2008 (int)108 388.8 Q(txn_close\(TXNMGR *txnp\);)108 400.8 Q(int)108 424.8 Q
2009 (txn_unlink\(const char *path, int f)108 436.8 Q(or)-.25 E(ce\);)-.18 E F1
2010 (DESCRIPTION)72 453.6 Q F0(speci\214c details of the transaction support.)108
2011 465.6 Q/F3 10/Times-Italic@0 SF(Db_txn)108 482.4 Q F0 .034
2012 (is the library interf)2.534 F .034(ace that pro)-.1 F .034
2013 (vides transaction semantics.)-.15 F .034(Full transaction support is pro)5.034
2014 F .034(vided by a)-.15 F .722(collection of modules that pro)108 494.4 R .723
2015 (vide well de\214ned interf)-.15 F .723
2016 (aces to the services required for transaction process-)-.1 F 3.488(ing. These)
2017 108 506.4 R .988(services are reco)3.488 F -.15(ve)-.15 G .988(ry \(see).15 F
2018 F3(db_lo)3.488 E(g)-.1 E F0 .988(\(3\)\), concurrenc).22 F 3.488(yc)-.15 G .988
2019 (ontrol \(see)371.864 506.4 R F3(db_loc)3.487 E(k)-.2 E F0 .987
2020 (\(3\)\), and the manage-).67 F 2.201(ment of shared data \(see)108 518.4 R F3
2021 (db_mpool)4.701 E F0 4.701(\(3\)\). T).51 F 2.202
2022 (ransaction semantics can be applied to the access methods)-.35 F(described in)
2023 108 530.4 Q F3(db)2.5 E F0(\(3\) through function call parameters.).23 E .629(\
2024 The model intended for transactional use \(and that is used by the access meth\
2025 ods\) is that write-ahead log-)108 547.2 R .047(ging is pro)108 559.2 R .047
2026 (vided by)-.15 F F3(db_lo)2.547 E(g)-.1 E F0 .047
2027 (\(3\) to record both before- and after).22 F .048(-image logging.)-.2 F .048
2028 (Locking follo)5.048 F .048(ws a tw)-.25 F(o-phase)-.1 E
2029 (protocol and is implemented by)108 571.2 Q F3(db_loc)2.5 E(k)-.2 E F0(\(3\).)
2030 .67 E .549(The function)108 588 R F3(txn_cr)3.049 E(eate)-.37 E F0 .549
2031 (creates and initializes the transaction re)3.049 F .548
2032 (gion identi\214ed by the)-.15 F F3(path)3.048 E F0(directory)3.048 E 5.548(.T)
2033 -.65 G(his)528.33 588 Q .572(directory must already e)108 600 R .572(xist when)
2034 -.15 F F3(txn_cr)3.072 E(eate)-.37 E F0 .572(is called.)3.072 F .572
2035 (If the transaction re)5.572 F .572(gion identi\214ed by)-.15 F F3(path)3.072 E
2036 F0(already)3.072 E -.15(ex)108 612 S 1.78(ists, then).15 F F3(txn_cr)4.28 E
2037 (eate)-.37 E F0 1.78(returns success without further action.)4.28 F 1.78
2038 (The \214les associated with the transaction)6.78 F(re)108 624 Q .293
2039 (gion are created in the directory speci\214ed by)-.15 F F3(path)2.793 E F0
2040 5.293(.\().28 G .293(The group of the created \214les is based on the system)
2041 327.657 624 R .781(and directory def)108 636 R .781
2042 (aults, and is not further speci\214ed by)-.1 F F3(txn_cr)3.281 E(eate)-.37 E
2043 F0 3.281(.\) All).18 F .78(\214les created by)3.28 F F3(txn_cr)3.28 E(eate)-.37
2044 E F0 .78(are cre-)3.28 F .048(ated with mode)108 648 R F3(mode)2.548 E F0 .049
2045 (\(as described in)2.548 F F3 -.15(ch)2.549 G(mod).15 E F0 .049
2046 (\(2\)\) and modi\214ed by the process' umask v).77 F .049(alue \(see)-.25 F F3
2047 (umask)2.549 E F0(\(2\)\).).67 E(An)108 660 Q 2.5(yn)-.15 G(ecessary)132.57 660
2048 Q 2.5(,a)-.65 G(ssociated log and lock re)175.23 660 Q
2049 (gions are created as well \(see)-.15 E F3(db_lo)2.5 E(g)-.1 E F0(\(3\) and).22
2050 E F3(db_loc)2.5 E(k)-.2 E F0(\(3\)\).).67 E(The)108 676.8 Q F3(maxtxns)4.191 E
2051 F0(ar)4.191 E 1.691(gument speci\214es the maximum number of simultaneous tran\
2052 sactions that are supported.)-.18 F .229
2053 (This bounds the size of backing \214les and is used to deri)108 688.8 R .529
2054 -.15(ve l)-.25 H .229(imits for the size of the lock re).15 F .229
2055 (gion and log\214les.)-.15 F(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)
2056 132.57 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(1)535 732 Q EP
2057 %%Page: 2 26
2058 %%BeginPageSetup
2059 BP
2060 %%EndPageSetup
2061 /F0 10/Times-Roman@0 SF 124.57(DB_TXN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
2062 (sM)-.55 G 124.57(anual DB_TXN\(3\))340.17 48 R(When there are more than)108 84
2063 Q/F1 10/Times-Italic@0 SF(maxtxns)2.5 E F0(concurrent transactions, calls to)
2064 2.5 E F1(txn_be)2.5 E(gin)-.4 E F0(may f)2.5 E(ail.)-.1 E(Def)108 100.8 Q .847
2065 (ault locking and logging protocols are pro)-.1 F .846
2066 (vided only if the backing \214les e)-.15 F 3.346(xist. If)-.15 F .846
2067 (the backing \214les do)3.346 F 1.433(not e)108 112.8 R 1.433(xist, the)-.15 F
2068 F1<8d61>3.933 E(gs)-.1 E F0 1.434
2069 (parameter must indicate both a logging mode and locking mode speci\214ed by)
2070 3.933 F F1(or)3.934 E F0('ing).73 E(together at most one \215ag from each of t\
2071 he TXN_LOCK and TXN_LOG classes as follo)108 124.8 Q(ws:)-.25 E(TXN_LOCK_2PL)
2072 108 141.6 Q(Use tw)133 153.6 Q(o-phase locking.)-.1 E(TXN_LOCK_OPTIMISTIC)108
2073 170.4 Q(Use optimistic locking \(not currently implemented\).)133 182.4 Q
2074 (TXN_LOG_REDO)108 199.2 Q(Pro)133 211.2 Q
2075 (vide redo-only logging \(not currently implemented\).)-.15 E(TXN_LOG_UNDO)108
2076 228 Q(Pro)133 240 Q(vide undo-only logging \(not currently implemented\).)-.15
2077 E(TXN_LOG_UNDOREDO)108 256.8 Q(Pro)133 268.8 Q
2078 (vide undo/redo write-ahead logging.)-.15 E(The function)108 285.6 Q F1(txn_cr)
2079 2.5 E(eate)-.37 E F0(returns -1 on f)2.5 E(ailure, setting)-.1 E F1(errno)2.5 E
2080 F0 2.5(,a).18 G(nd 0 on success.)351.83 285.6 Q 1.892(The function)108 302.4 R
2081 F1(txn_open)4.392 E F0 1.892(returns a pointer to the transaction re)4.392 F
2082 1.892(gion identi\214ed by)-.15 F F1(path)4.392 E F0 4.392(,w).28 G 1.892
2083 (hich must ha)476.016 302.4 R -.15(ve)-.2 G .239
2084 (already been created by a call to)108 314.4 R F1(txn_cr)2.739 E(eate)-.37 E F0
2085 5.239(.T).18 G .239(he process must ha)296.88 314.4 R .539 -.15(ve p)-.2 H .239
2086 (ermission to read and write \214les with).15 F -.25(ow)108 326.4 S .327
2087 (ners, groups and permissions as described for).25 F F1(txn_cr)2.826 E(eate)
2088 -.37 E F0 5.326(.T).18 G(he)362.624 326.4 Q F1(txn_open)2.826 E F0 .326
2089 (function returns NULL on f)2.826 F(ail-)-.1 E(ure, setting)108 338.4 Q F1
2090 (errno)2.5 E F0(.).18 E(The)108 355.2 Q F1 -.37(re)3.181 G(co).37 E(ver)-.1 E
2091 F0(ar)3.181 E .681(gument speci\214es a function that is called by)-.18 F F1
2092 (txn_abort)3.181 E F0 .682(during transaction abort.)3.182 F .682(This func-)
2093 5.682 F(tion tak)108 367.2 Q(es three ar)-.1 E(guments:)-.18 E 10.83(lsn A)108
2094 384 R(log sequence number \(LSN\).)2.5 E(log_entry)108 400.8 Q 2.5(Al)133 412.8
2095 S(og record.)145.5 412.8 Q(isundo)108 429.6 Q(An undo \215ag set to 0 if the o\
2096 peration is a redo and set to 1 if the operation an undo.)133 441.6 Q 1.498
2097 (As discussed in the)108 458.4 R F1(db_lo)3.998 E 3.998(g\()-.1 G(3\))228.44
2098 458.4 Q F0 1.497(manual page, the application is responsible for pro)3.997 F
2099 1.497(viding an)-.15 F 3.997(yn)-.15 G(ecessary)506.13 458.4 Q .486
2100 (structure to the log record.)108 470.4 R -.15(Fo)5.486 G 2.986(re).15 G .487
2101 (xample, the application must understand what part of the log record is an)
2102 242.256 470.4 R(operation code, what part is redo information, and what part i\
2103 s undo information.)108 482.4 Q(The)108 499.2 Q F1(txn_be)2.785 E(gin)-.4 E F0
2104 .285(function creates a ne)2.785 F 2.784(wt)-.25 G .284
2105 (ransaction in the designated transaction manager)264.018 499.2 R 2.784(,r)-.4
2106 G .284(eturning a pointer)468.332 499.2 R
2107 (to a TXN that uniquely identi\214es it.)108 511.2 Q(The)108 528 Q F1
2108 (txn_commit)2.615 E F0 .115(function ends the transaction speci\214ed by the)
2109 2.615 F F1(tid)2.615 E F0(ar)2.615 E 2.615(gument. An)-.18 F 2.615(yl)-.15 G
2110 .115(ocks held by the transac-)440.12 528 R(tion are released.)108 540 Q
2111 (If logging is enabled, a commit log record is written and \215ushed to disk.)5
2112 E(The)108 556.8 Q F1(txn_abort)2.889 E F0 .389
2113 (function causes an abnormal termination of the transaction.)2.889 F .388
2114 (If logging is enabled, the log is)5.389 F 2.312(played backw)108 568.8 R 2.312
2115 (ards and an)-.1 F 4.812(yr)-.15 G(eco)228.628 568.8 Q -.15(ve)-.15 G 2.312
2116 (ry operations are initiated through the).15 F F1 -.37(re)4.813 G(co).37 E(ver)
2117 -.1 E F0 2.313(function speci\214ed to)4.813 F F1(txn_open)108 580.8 Q F0 5(.A)
2118 .24 G(fter reco)159.62 580.8 Q -.15(ve)-.15 G
2119 (ry is completed, all locks held by the transaction are released.).15 E(The)108
2120 597.6 Q F1(txn_close)3.824 E F0 1.323
2121 (function detaches a process from the transaction en)3.823 F 1.323
2122 (vironment speci\214ed by the TXNMGR)-.4 F(pointer)108 609.6 Q 5.261(.A)-.55 G
2123 .261(ll mapped re)150.761 609.6 R .261(gions are unmapped and an)-.15 F 2.761
2124 (ya)-.15 G .262(llocated resources are freed.)323.638 609.6 R(An)5.262 E 2.762
2125 (yu)-.15 G .262(ncommitted trans-)466.688 609.6 R(actions are aborted.)108
2126 621.6 Q .69(The function)108 638.4 R F1(txn_unlink)3.19 E F0(destro)3.19 E .69
2127 (ys the transaction re)-.1 F .69(gion identi\214ed by the directory)-.15 F F1
2128 (path)3.19 E F0 3.19(,r).28 G(emo)472.1 638.4 Q .69(ving all \214les)-.15 F
2129 1.78(used to implement the transaction re)108 650.4 R 4.28(gion. \(The)-.15 F
2130 (directory)4.28 E F1(path)4.28 E F0 1.78(is not remo)4.28 F -.15(ve)-.15 G 4.28
2131 (d.\) If).15 F 1.78(there are processes)4.28 F .553(which ha)108 662.4 R .853
2132 -.15(ve c)-.2 H(alled).15 E F1(txn_open)3.052 E F0 .552(without calling)3.052 F
2133 F1(txn_close)3.052 E F0 .552
2134 (\(i.e., there are processes currently using the transac-)3.052 F .135(tion re)
2135 108 674.4 R(gion\),)-.15 E F1(txn_unlink)2.635 E F0 .135(will f)2.635 F .135
2136 (ail without further action, unless the force \215ag is set, in which case)-.1
2137 F F1(txn_unlink)2.636 E F0 1.67(will attempt to delete the transaction re)108
2138 686.4 R 1.67(gion \214les re)-.15 F -.05(ga)-.15 G 1.67(rdless of an).05 F 4.17
2139 (yp)-.15 G 1.67(rocesses still using the transaction)397.22 686.4 R(4.4 Berk)72
2140 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315(ution August)-.2 F
2141 (1, 1995)2.5 E(2)535 732 Q EP
2142 %%Page: 3 27
2143 %%BeginPageSetup
2144 BP
2145 %%EndPageSetup
2146 /F0 10/Times-Roman@0 SF 124.57(DB_TXN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
2147 (sM)-.55 G 124.57(anual DB_TXN\(3\))340.17 48 R(re)108 84 Q 2.996(gion. An)-.15
2148 F 2.996(ya)-.15 G .496(ccesses to a remo)165.902 84 R -.15(ve)-.15 G 2.997(dt)
2149 .15 G .497(ransaction re)257.007 84 R .497(gion will lik)-.15 F .497
2150 (ely result in une)-.1 F .497(xpected beha)-.15 F(vior)-.2 E 5.497(.T)-.55 G
2151 .497(he func-)506.463 84 R(tion)108 96 Q/F1 10/Times-Italic@0 SF(txn_unlink)2.5
2152 E F0(returns -1 on f)2.5 E(ailure, setting)-.1 E F1(errno)2.5 E F0 2.5(,a).18 G
2153 (nd 0 on success.)316.39 96 Q .51(In the case of catastrophic or system f)108
2154 112.8 R .51(ailure, it is possible to clean up a transaction re)-.1 F .51
2155 (gion by remo)-.15 F .51(ving all)-.15 F .34
2156 (of the \214les in the directory speci\214ed to the)108 124.8 R F1(txn_cr)2.841
2157 E(eate)-.37 E F0 .341(function, as transaction re)2.841 F .341
2158 (gion \214les are ne)-.15 F -.15(ve)-.25 G 2.841(rc).15 G(reated)515.57 124.8 Q
2159 (in an)108 136.8 Q 2.5(yd)-.15 G(irectory other than the one speci\214ed to)
2160 140.07 136.8 Q F1(txn_cr)2.5 E(eate)-.37 E F0(.).18 E(The)108 153.6 Q F1
2161 (txn_pr)3.42 E(epar)-.37 E(e)-.37 E F0 .92(function initiates the be)3.42 F
2162 .919(ginning of a tw)-.15 F 3.419(op)-.1 G .919(hase commit.)352.206 153.6 R
2163 .919(In a distrib)5.919 F .919(uted transaction, the)-.2 F .185
2164 (prepare directi)108 165.6 R .485 -.15(ve s)-.25 H .185
2165 (hould be issued to all participating transaction managers.).15 F .185
2166 (Each manager must tak)5.185 F 2.685(ew)-.1 G(hat-)524.45 165.6 Q -2.15 -.25
2167 (ev e)108 177.6 T 2.5(ra).25 G
2168 (ction is necessary to guarantee that a future call to)131.75 177.6 Q F1
2169 (txn_commit)2.5 E F0(on the speci\214ed)2.5 E F1(tid)2.5 E F0(will succeed.)2.5
2170 E/F2 9/Times-Bold@0 SF(SYSTEM INTEGRA)72 194.4 Q(TION)-.855 E F0 .28
2171 (This model can be applied to data bases other than the pro)108 206.4 R .279
2172 (vided access methods.)-.15 F -.15(Fo)5.279 G 2.779(re).15 G .279
2173 (xample, consider an)459.182 206.4 R .15(application that pro)108 218.4 R .15
2174 (vides transaction semantics to data stored in re)-.15 F .15
2175 (gular \214les accessed using the)-.15 F F1 -.37(re)2.65 G(ad).37 E F0 .15
2176 (\(2\) and).77 F F1(write)108 230.4 Q F0 .708(\(2\) system calls.).18 F .707
2177 (The operations for which transaction protection is desired are brack)5.708 F
2178 .707(eted by calls to)-.1 F F1(txn_be)108 242.4 Q(gin)-.4 E F0(and)2.5 E F1
2179 (txn_commit)2.5 E F0(.).68 E .606
2180 (Before data are referenced, a call is made to the lock manager)108 259.2 R(,)
2181 -.4 E F1(db_loc)3.106 E(k)-.2 E F0 3.106(,f).67 G .606
2182 (or a lock of the appropriate type)408.064 259.2 R .719
2183 (\(e.g. read\) on the object being lock)108 271.2 R 3.218(ed. The)-.1 F .718
2184 (object might be a page in the \214le, a byte, a range of bytes, or)3.218 F
2185 .572(some k)108 283.2 R -.15(ey)-.1 G 5.572(.B)-.5 G .573
2186 (efore a write is performed, the application mak)160.464 283.2 R .573
2187 (es a call to the log manager)-.1 F(,)-.4 E F1(db_lo)3.073 E(g)-.1 E F0 3.073
2188 (,t).22 G 3.073(or)506.387 283.2 S(ecord)517.79 283.2 Q .522
2189 (enough information to redo the operation in case of f)108 295.2 R .522
2190 (ailure after commit and to undo the operation in case)-.1 F .609(of abort.)108
2191 307.2 R .609
2192 (After the log message is written, the write system calls are issued.)5.609 F
2193 .61(After all requests are issued,)5.61 F .518(the application calls)108 319.2
2194 R F1(txn_commit)3.017 E F0 5.517(.W).68 G(hen)256.84 319.2 Q F1(txn_commit)
2195 3.017 E F0 .517(returns, the caller is guaranteed that all necessary log)3.017
2196 F(writes ha)108 331.2 Q .3 -.15(ve b)-.2 H(een written to disk.).15 E 1.081
2197 (At an)108 348 R 3.581(yt)-.15 G 1.081(ime, the application may call)142.232
2198 348 R F1(txn_abort)3.581 E F0 3.581(,w).68 G 1.081
2199 (hich will result in the appropriate calls to the)318.828 348 R F1 -.37(re)
2200 3.582 G(co).37 E(ver)-.1 E F0 .278(routine to restore the `)108 360 R
2201 (`database')-.74 E 2.778('t)-.74 G 2.778(oac)246.48 360 S .278
2202 (onsistent pre-transaction state.)265.916 360 R .277(\(The reco)5.277 F -.15
2203 (ve)-.15 G 2.777(rr).15 G .277(outine must be able to)450.562 360 R
2204 (either reapply or undo the update depending on the conte)108 372 Q
2205 (xt, for each dif)-.15 E(ferent type of log record.\))-.25 E .746
2206 (If the application should crash, the reco)108 388.8 R -.15(ve)-.15 G .746
2207 (ry process uses the).15 F F1(db_lo)3.246 E(g)-.1 E F0(interf)3.246 E .746
2208 (ace to read the log and call the)-.1 F F1 -.37(re)108 400.8 S(co).37 E(ver)-.1
2209 E F0(routine to restore the database to a consistent state.)2.5 E(The)108 417.6
2210 Q F1(txn_pr)3.098 E(epar)-.37 E(e)-.37 E F0 .598(function pro)3.098 F .598
2211 (vides the core functionality to implement distrib)-.15 F .597
2212 (uted transactions, b)-.2 F .597(ut it does)-.2 F .36
2213 (not actually manage the noti\214cation of distrib)108 429.6 R .36
2214 (uted transaction managers.)-.2 F .36(The caller is responsible for issu-)5.36
2215 F(ing)108 441.6 Q F1(txn_pr)2.82 E(epar)-.37 E(e)-.37 E F0 .32
2216 (calls to all sites participating in the transaction.)2.82 F .319
2217 (If all responses are positi)5.319 F -.15(ve)-.25 G 2.819(,t).15 G .319
2218 (he caller can)488.832 441.6 R .822(issue a)108 453.6 R F1(txn_commit)3.322 E
2219 F0 5.822(.I).68 G 3.322(fa)198.076 453.6 S 1.122 -.15(ny o)209.168 453.6 T
2220 3.322(ft).15 G .822(he responses are ne)236.772 453.6 R -.05(ga)-.15 G(ti).05 E
2221 -.15(ve)-.25 G 3.322(,t).15 G .823(he caller should issue a)349.15 453.6 R F1
2222 (txn_abort)3.323 E F0 5.823(.I).68 G 3.323(ng)499.747 453.6 S(eneral,)513.07
2223 453.6 Q(the)108 465.6 Q F1(txn_pr)2.5 E(epar)-.37 E(e)-.37 E F0
2224 (call requires that the transaction log be \215ushed to disk.)2.5 E .821
2225 (The structure of the transaction support allo)108 482.4 R .821
2226 (ws application designers to trade of)-.25 F 3.32(fp)-.25 G .82
2227 (erformance and protec-)445.07 482.4 R 3.948(tion. Since)108 494.4 R 1.448
2228 (DB manages man)3.948 F 3.948(ys)-.15 G 1.448(tructures in shared memory)245.36
2229 494.4 R 3.948(,i)-.65 G 1.448(ts information is subject to corruption by)
2230 367.982 494.4 R 1.306(applications when the library is link)108 506.4 R 1.306
2231 (ed directly with the application.)-.1 F -.15(Fo)6.306 G 3.805(rt).15 G 1.305
2232 (his reason, DB is designed to)416.815 506.4 R(allo)108 518.4 Q 3.367(wc)-.25 G
2233 .867(ompilation into a separate serv)137.777 518.4 R .868
2234 (er process that may be accessed via a sock)-.15 F .868(et interf)-.1 F 3.368
2235 (ace. In)-.1 F .868(this w)3.368 F(ay)-.1 E(DB')108 530.4 Q 2.828(sd)-.55 G
2236 .328(ata structures are protected from application code, b)136.388 530.4 R .328
2237 (ut communication o)-.2 F -.15(ve)-.15 G .327(rhead is increased.).15 F(When)
2238 5.327 E(applications are trusted, DB may be compiled directly into the applica\
2239 tion for increased performance.)108 542.4 Q F2(ERR)72 559.2 Q(ORS)-.27 E F0
2240 (The)108 571.2 Q F1(txn_cr)4.113 E(eate)-.37 E F0 1.613(function may f)4.113 F
2241 1.613(ail and set)-.1 F F1(errno)4.113 E F0 1.614(for an)4.113 F 4.114(yo)-.15
2242 G 4.114(ft)349.022 571.2 S 1.614
2243 (he errors speci\214ed for the library functions)359.246 571.2 R F1(open)108
2244 583.2 Q F0(\(2\),).24 E F1(write)2.5 E F0(\(2\),).18 E F1(malloc)2.5 E F0
2245 (\(3\),).31 E F1(loc)2.5 E(k_cr)-.2 E(eate)-.37 E F0(\(3\), and).18 E F1(lo)2.5
2246 E(g_cr)-.1 E(eate)-.37 E F0(\(3\).).18 E(The)108 600 Q F1(txn_open)2.509 E F0
2247 .009(function may f)2.509 F .009(ail and set)-.1 F F1(errno)2.508 E F0 .008
2248 (to an)2.508 F 2.508(yo)-.15 G 2.508(ft)323.916 600 S .008
2249 (he errors speci\214ed for the library functions)332.534 600 R F1(open)2.508 E
2250 F0(\(2\),).24 E F1(write)108 612 Q F0(\(2\),).18 E F1(malloc)2.5 E F0(\(3\),)
2251 .31 E F1(loc)2.5 E(k_open)-.2 E F0(\(3\), and).24 E F1(lo)2.5 E(g_open)-.1 E F0
2252 (\(3\).).24 E(The)108 628.8 Q F1(txn_be)2.671 E(gin)-.4 E F0 .171
2253 (function may f)2.671 F .171(ail and set)-.1 F F1(errno)2.671 E F0 .171
2254 (to ENOSPC indicating that the maximum number of concur)2.671 F(-)-.2 E
2255 (rent transactions has been reached.)108 640.8 Q(The)108 657.6 Q F1(txn_commit)
2256 2.5 E F0(function may f)2.5 E(ail and set)-.1 E F1(errno)2.5 E F0(to EINV)2.5 E
2257 (AL indicating that the transaction w)-1.35 E(as aborted.)-.1 E(The)108 674.4 Q
2258 F1(txn_close)4.582 E F0 2.082(function may f)4.582 F 2.081(ail and set)-.1 F F1
2259 (errno)4.581 E F0 2.081(to an)4.581 F 4.581(yo)-.15 G 4.581(ft)345.753 674.4 S
2260 2.081(he errors speci\214ed for the library functions)356.444 674.4 R F1(close)
2261 108 686.4 Q F0(\(2\),).18 E F1 -.37(re)2.5 G(ad).37 E F0(\(2\),).77 E F1(write)
2262 2.5 E F0(\(2\),).18 E F1(fr)2.5 E(ee)-.37 E F0(\(3\),).18 E F1(fsync)2.5 E F0
2263 (\(2\),).31 E F1(loc)2.5 E(k_close)-.2 E F0(\(3\) or).18 E F1(lo)2.5 E(g_close)
2264 -.1 E F0(\(3\).).18 E(4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57
2265 732 Q 99.315(ution August)-.2 F(1, 1995)2.5 E(3)535 732 Q EP
2266 %%Page: 4 28
2267 %%BeginPageSetup
2268 BP
2269 %%EndPageSetup
2270 /F0 10/Times-Roman@0 SF 124.57(DB_TXN\(3\) BSD)72 48 R(Programmer')2.5 E 2.5
2271 (sM)-.55 G 124.57(anual DB_TXN\(3\))340.17 48 R(The)108 84 Q/F1 10
2272 /Times-Italic@0 SF(txn_unlink)4.319 E F0 1.819(function may f)4.319 F 1.819
2273 (ail and set)-.1 F F1(errno)4.319 E F0 1.819(to an)4.319 F 4.319(yo)-.15 G 4.32
2274 (ft)347.58 84 S 1.82(he errors speci\214ed for the library functions)358.01 84
2275 R F1(unlink)108 96 Q F0(\(2\),).67 E F1(loc)2.5 E(k_unlink)-.2 E F0(\(3\), and)
2276 .67 E F1(lo)2.5 E(g_unlink)-.1 E F0(\(3\), or the follo).67 E(wing:)-.25 E([EB)
2277 108 112.8 Q(USY])-.1 E(The transaction re)133 124.8 Q(gion w)-.15 E
2278 (as in use and the force \215ag w)-.1 E(as not set.)-.1 E/F2 9/Times-Bold@0 SF
2279 (SEE ALSO)72 141.6 Q F1(db_btr)108 153.6 Q(ee)-.37 E F0(\(3\),).18 E F1
2280 (db_hash)2.5 E F0(\(3\),).28 E F1(db_loc)2.5 E(k)-.2 E F0(\(3\),).67 E F1
2281 (db_lo)2.5 E(g)-.1 E F0(\(3\),).22 E F1(db_mpool)2.5 E F0(\(3\),).51 E F1
2282 (db_open)2.5 E F0(\(3\),).24 E F1(db_r)2.5 E(ecno)-.37 E F0(\(3\)).18 E F1 .904
2283 (LIBTP: P)108 177.6 R(ortable)-.8 E 3.404(,M)-.1 G .904(odular T)189.738 177.6
2284 R -.15(ra)-.55 G .904(nsactions for UNIX).15 F F0 3.404(,M).94 G(ar)328.884
2285 177.6 Q .904(go Seltzer)-.18 F 3.403(,M)-.4 G .903
2286 (ichael Olson, USENIX proceedings,)392.041 177.6 R -.4(Wi)108 189.6 S
2287 (nter 1992.).4 E F2 -.09(BU)72 206.4 S(GS).09 E F0(The)108 218.4 Q F1(maxtxns)
2288 2.792 E F0 .292(parameter is a kluge, and should be deleted in f)2.792 F -.2
2289 (avo)-.1 G 2.793(ro).2 G 2.793(fd)378.448 218.4 S .293(ynamically e)389.571
2290 218.4 R .293(xpanding the transaction)-.15 F(re)108 230.4 Q(gion.)-.15 E
2291 (4.4 Berk)72 732 Q(ele)-.1 E 2.5(yD)-.15 G(istrib)132.57 732 Q 99.315
2292 (ution August)-.2 F(1, 1995)2.5 E(4)535 732 Q EP
2293 %%Trailer
2294 end
2295 %%EOF