* Use id(1) instead of grep(1) to detect the presence of the smmsp
[dragonfly.git] / lib / libcr / db / docs / hash.usenix.ps
1 %!PS-Adobe-1.0
2 %%Creator: utopia:margo (& Seltzer,608-13E,8072,)
3 %%Title: stdin (ditroff)
4 %%CreationDate: Tue Dec 11 15:06:45 1990
5 %%EndComments
6 %       @(#)psdit.pro   1.3 4/15/88
7 % lib/psdit.pro -- prolog for psdit (ditroff) files
8 % Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved.
9 % last edit: shore Sat Nov 23 20:28:03 1985
10 % RCSID: $FreeBSD: src/lib/libc/db/docs/hash.usenix.ps,v 1.2 1999/08/28 05:03:14 peter Exp $
11 % RCSID: $DragonFly: src/lib/libcr/db/docs/Attic/hash.usenix.ps,v 1.2 2003/06/17 04:26:41 dillon Exp $
12
13 % Changed by Edward Wang (edward@ucbarpa.berkeley.edu) to handle graphics,
14 % 17 Feb, 87.
15
16 /$DITroff 140 dict def $DITroff begin
17 /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
18 /xi{0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto
19  /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F
20  /pagesave save def}def
21 /PB{save /psv exch def currentpoint translate 
22  resolution 72 div dup neg scale 0 0 moveto}def
23 /PE{psv restore}def
24 /arctoobig 90 def /arctoosmall .05 def
25 /m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
26 /tan{dup sin exch cos div}def
27 /point{resolution 72 div mul}def
28 /dround {transform round exch round exch itransform}def
29 /xT{/devname exch def}def
30 /xr{/mh exch def /my exch def /resolution exch def}def
31 /xp{}def
32 /xs{docsave restore end}def
33 /xt{}def
34 /xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
35  {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
36 /xH{/fontheight exch def F}def
37 /xS{/fontslant exch def F}def
38 /s{/fontsize exch def /fontheight fontsize def F}def
39 /f{/fontnum exch def F}def
40 /F{fontheight 0 le{/fontheight fontsize def}if
41  fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
42  fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
43  makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def
44 /X{exch currentpoint exch pop moveto show}def
45 /N{3 1 roll moveto show}def
46 /Y{exch currentpoint pop exch moveto show}def
47 /S{show}def
48 /ditpush{}def/ditpop{}def
49 /AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def
50 /AN{4 2 roll moveto 0 exch ashow}def
51 /AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def
52 /AS{0 exch ashow}def
53 /MX{currentpoint exch pop moveto}def
54 /MY{currentpoint pop exch moveto}def
55 /MXY{moveto}def
56 /cb{pop}def     % action on unknown char -- nothing for now
57 /n{}def/w{}def
58 /p{pop showpage pagesave restore /pagesave save def}def
59 /Dt{/Dlinewidth exch def}def 1 Dt
60 /Ds{/Ddash exch def}def -1 Ds
61 /Di{/Dstipple exch def}def 1 Di
62 /Dsetlinewidth{2 Dlinewidth mul setlinewidth}def
63 /Dsetdash{Ddash 4 eq{[8 12]}{Ddash 16 eq{[32 36]}
64  {Ddash 20 eq{[32 12 8 12]}{[]}ifelse}ifelse}ifelse 0 setdash}def
65 /Dstroke{gsave Dsetlinewidth Dsetdash 1 setlinecap stroke grestore
66  currentpoint newpath moveto}def
67 /Dl{rlineto Dstroke}def
68 /arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
69  currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
70  currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
71 /Dc{dup arcellipse Dstroke}def
72 /De{arcellipse Dstroke}def
73 /Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
74  /cradius centerv centerv mul centerh centerh mul add sqrt def
75  /eradius endv endv mul endh endh mul add sqrt def
76  /endang endv endh atan def
77  /startang centerv neg centerh neg atan def
78  /sweep startang endang sub dup 0 lt{360 add}if def
79  sweep arctoobig gt
80  {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
81   /midh midang cos midrad mul def /midv midang sin midrad mul def
82   midh neg midv neg endh endv centerh centerv midh midv Da
83   Da}
84  {sweep arctoosmall ge
85   {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
86    centerv neg controldelt mul centerh controldelt mul
87    endv neg controldelt mul centerh add endh add
88    endh controldelt mul centerv add endv add
89    centerh endh add centerv endv add rcurveto Dstroke}
90   {centerh endh add centerv endv add rlineto Dstroke}
91   ifelse}
92  ifelse}def
93 /Dpatterns[
94 [%cf[widthbits]
95 [8<0000000000000010>]
96 [8<0411040040114000>]
97 [8<0204081020408001>]
98 [8<0000103810000000>]
99 [8<6699996666999966>]
100 [8<0000800100001008>]
101 [8<81c36666c3810000>]
102 [8<0f0e0c0800000000>]
103 [8<0000000000000010>]
104 [8<0411040040114000>]
105 [8<0204081020408001>]
106 [8<0000001038100000>]
107 [8<6699996666999966>]
108 [8<0000800100001008>]
109 [8<81c36666c3810000>]
110 [8<0f0e0c0800000000>]
111 [8<0042660000246600>]
112 [8<0000990000990000>]
113 [8<0804020180402010>]
114 [8<2418814242811824>]
115 [8<6699996666999966>]
116 [8<8000000008000000>]
117 [8<00001c3e363e1c00>]
118 [8<0000000000000000>]
119 [32<00000040000000c00000004000000040000000e0000000000000000000000000>]
120 [32<00000000000060000000900000002000000040000000f0000000000000000000>]
121 [32<000000000000000000e0000000100000006000000010000000e0000000000000>]
122 [32<00000000000000002000000060000000a0000000f00000002000000000000000>]
123 [32<0000000e0000000000000000000000000000000f000000080000000e00000001>]
124 [32<0000090000000600000000000000000000000000000007000000080000000e00>]
125 [32<00010000000200000004000000040000000000000000000000000000000f0000>]
126 [32<0900000006000000090000000600000000000000000000000000000006000000>]]
127 [%ug
128 [8<0000020000000000>]
129 [8<0000020000002000>]
130 [8<0004020000002000>]
131 [8<0004020000402000>]
132 [8<0004060000402000>]
133 [8<0004060000406000>]
134 [8<0006060000406000>]
135 [8<0006060000606000>]
136 [8<00060e0000606000>]
137 [8<00060e000060e000>]
138 [8<00070e000060e000>]
139 [8<00070e000070e000>]
140 [8<00070e020070e000>]
141 [8<00070e020070e020>]
142 [8<04070e020070e020>]
143 [8<04070e024070e020>]
144 [8<04070e064070e020>]
145 [8<04070e064070e060>]
146 [8<06070e064070e060>]
147 [8<06070e066070e060>]
148 [8<06070f066070e060>]
149 [8<06070f066070f060>]
150 [8<060f0f066070f060>]
151 [8<060f0f0660f0f060>]
152 [8<060f0f0760f0f060>]
153 [8<060f0f0760f0f070>]
154 [8<0e0f0f0760f0f070>]
155 [8<0e0f0f07e0f0f070>]
156 [8<0e0f0f0fe0f0f070>]
157 [8<0e0f0f0fe0f0f0f0>]
158 [8<0f0f0f0fe0f0f0f0>]
159 [8<0f0f0f0ff0f0f0f0>]
160 [8<1f0f0f0ff0f0f0f0>]
161 [8<1f0f0f0ff1f0f0f0>]
162 [8<1f0f0f8ff1f0f0f0>]
163 [8<1f0f0f8ff1f0f0f8>]
164 [8<9f0f0f8ff1f0f0f8>]
165 [8<9f0f0f8ff9f0f0f8>]
166 [8<9f0f0f9ff9f0f0f8>]
167 [8<9f0f0f9ff9f0f0f9>]
168 [8<9f8f0f9ff9f0f0f9>]
169 [8<9f8f0f9ff9f8f0f9>]
170 [8<9f8f1f9ff9f8f0f9>]
171 [8<9f8f1f9ff9f8f1f9>]
172 [8<bf8f1f9ff9f8f1f9>]
173 [8<bf8f1f9ffbf8f1f9>]
174 [8<bf8f1fdffbf8f1f9>]
175 [8<bf8f1fdffbf8f1fd>]
176 [8<ff8f1fdffbf8f1fd>]
177 [8<ff8f1fdffff8f1fd>]
178 [8<ff8f1ffffff8f1fd>]
179 [8<ff8f1ffffff8f1ff>]
180 [8<ff9f1ffffff8f1ff>]
181 [8<ff9f1ffffff9f1ff>]
182 [8<ff9f9ffffff9f1ff>]
183 [8<ff9f9ffffff9f9ff>]
184 [8<ffbf9ffffff9f9ff>]
185 [8<ffbf9ffffffbf9ff>]
186 [8<ffbfdffffffbf9ff>]
187 [8<ffbfdffffffbfdff>]
188 [8<ffffdffffffbfdff>]
189 [8<ffffdffffffffdff>]
190 [8<fffffffffffffdff>]
191 [8<ffffffffffffffff>]]
192 [%mg
193 [8<8000000000000000>]
194 [8<0822080080228000>]
195 [8<0204081020408001>]
196 [8<40e0400000000000>]
197 [8<66999966>]
198 [8<8001000010080000>]
199 [8<81c36666c3810000>]
200 [8<f0e0c08000000000>]
201 [16<07c00f801f003e007c00f800f001e003c007800f001f003e007c00f801f003e0>]
202 [16<1f000f8007c003e001f000f8007c003e001f800fc007e003f001f8007c003e00>]
203 [8<c3c300000000c3c3>]
204 [16<0040008001000200040008001000200040008000000100020004000800100020>]
205 [16<0040002000100008000400020001800040002000100008000400020001000080>]
206 [16<1fc03fe07df0f8f8f07de03fc01f800fc01fe03ff07df8f87df03fe01fc00f80>]
207 [8<80>]
208 [8<8040201000000000>]
209 [8<84cc000048cc0000>]
210 [8<9900009900000000>]
211 [8<08040201804020100800020180002010>]
212 [8<2418814242811824>]
213 [8<66999966>]
214 [8<8000000008000000>]
215 [8<70f8d8f870000000>]
216 [8<0814224180402010>]
217 [8<aa00440a11a04400>]
218 [8<018245aa45820100>]
219 [8<221c224180808041>]
220 [8<88000000>]
221 [8<0855800080550800>]
222 [8<2844004482440044>]
223 [8<0810204080412214>]
224 [8<00>]]]def
225 /Dfill{
226  transform /maxy exch def /maxx exch def
227  transform /miny exch def /minx exch def
228  minx maxx gt{/minx maxx /maxx minx def def}if
229  miny maxy gt{/miny maxy /maxy miny def def}if
230  Dpatterns Dstipple 1 sub get exch 1 sub get
231  aload pop /stip exch def /stipw exch def /stiph 128 def
232  /imatrix[stipw 0 0 stiph 0 0]def
233  /tmatrix[stipw 0 0 stiph 0 0]def
234  /minx minx cvi stiph idiv stiph mul def
235  /miny miny cvi stipw idiv stipw mul def
236  gsave eoclip 0 setgray
237  miny stiph maxy{
238   tmatrix exch 5 exch put
239   minx stipw maxx{
240    tmatrix exch 4 exch put tmatrix setmatrix
241    stipw stiph true imatrix {stip} imagemask
242   }for
243  }for
244  grestore
245 }def
246 /Dp{Dfill Dstroke}def
247 /DP{Dfill currentpoint newpath moveto}def
248 end
249
250 /ditstart{$DITroff begin
251  /nfonts 60 def                 % NFONTS makedev/ditroff dependent!
252  /fonts[nfonts{0}repeat]def
253  /fontnames[nfonts{()}repeat]def
254 /docsave save def
255 }def
256
257 % character outcalls
258 /oc{
259  /pswid exch def /cc exch def /name exch def
260  /ditwid pswid fontsize mul resolution mul 72000 div def
261  /ditsiz fontsize resolution mul 72 div def
262  ocprocs name known{ocprocs name get exec}{name cb}ifelse
263 }def
264 /fractm [.65 0 0 .6 0 0] def
265 /fraction{
266  /fden exch def /fnum exch def gsave /cf currentfont def
267  cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
268  fnum show rmoveto currentfont cf setfont(\244)show setfont fden show 
269  grestore ditwid 0 rmoveto
270 }def
271 /oce{grestore ditwid 0 rmoveto}def
272 /dm{ditsiz mul}def
273 /ocprocs 50 dict def ocprocs begin
274 (14){(1)(4)fraction}def
275 (12){(1)(2)fraction}def
276 (34){(3)(4)fraction}def
277 (13){(1)(3)fraction}def
278 (23){(2)(3)fraction}def
279 (18){(1)(8)fraction}def
280 (38){(3)(8)fraction}def
281 (58){(5)(8)fraction}def
282 (78){(7)(8)fraction}def
283 (sr){gsave 0 .06 dm rmoveto(\326)show oce}def
284 (is){gsave 0 .15 dm rmoveto(\362)show oce}def
285 (->){gsave 0 .02 dm rmoveto(\256)show oce}def
286 (<-){gsave 0 .02 dm rmoveto(\254)show oce}def
287 (==){gsave 0 .05 dm rmoveto(\272)show oce}def
288 (uc){gsave currentpoint 400 .009 dm mul add translate
289      8 -8 scale ucseal oce}def
290 end
291
292 % an attempt at a PostScript FONT to implement ditroff special chars
293 % this will enable us to 
294 %       cache the little buggers
295 %       generate faster, more compact PS out of psdit
296 %       confuse everyone (including myself)!
297 50 dict dup begin
298 /FontType 3 def
299 /FontName /DIThacks def
300 /FontMatrix [.001 0 0 .001 0 0] def
301 /FontBBox [-260 -260 900 900] def% a lie but ...
302 /Encoding 256 array def
303 0 1 255{Encoding exch /.notdef put}for
304 Encoding
305  dup 8#040/space put %space
306  dup 8#110/rc put %right ceil
307  dup 8#111/lt put %left  top curl
308  dup 8#112/bv put %bold vert
309  dup 8#113/lk put %left  mid curl
310  dup 8#114/lb put %left  bot curl
311  dup 8#115/rt put %right top curl
312  dup 8#116/rk put %right mid curl
313  dup 8#117/rb put %right bot curl
314  dup 8#120/rf put %right floor
315  dup 8#121/lf put %left  floor
316  dup 8#122/lc put %left  ceil
317  dup 8#140/sq put %square
318  dup 8#141/bx put %box
319  dup 8#142/ci put %circle
320  dup 8#143/br put %box rule
321  dup 8#144/rn put %root extender
322  dup 8#145/vr put %vertical rule
323  dup 8#146/ob put %outline bullet
324  dup 8#147/bu put %bullet
325  dup 8#150/ru put %rule
326  dup 8#151/ul put %underline
327  pop
328 /DITfd 100 dict def
329 /BuildChar{0 begin
330  /cc exch def /fd exch def
331  /charname fd /Encoding get cc get def
332  /charwid fd /Metrics get charname get def
333  /charproc fd /CharProcs get charname get def
334  charwid 0 fd /FontBBox get aload pop setcachedevice
335  2 setlinejoin 40 setlinewidth
336  newpath 0 0 moveto gsave charproc grestore
337  end}def
338 /BuildChar load 0 DITfd put
339 /CharProcs 50 dict def
340 CharProcs begin
341 /space{}def
342 /.notdef{}def
343 /ru{500 0 rls}def
344 /rn{0 840 moveto 500 0 rls}def
345 /vr{0 800 moveto 0 -770 rls}def
346 /bv{0 800 moveto 0 -1000 rls}def
347 /br{0 840 moveto 0 -1000 rls}def
348 /ul{0 -140 moveto 500 0 rls}def
349 /ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
350 /bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
351 /sq{80 0 rmoveto currentpoint dround newpath moveto
352     640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
353 /bx{80 0 rmoveto currentpoint dround newpath moveto
354     640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
355 /ci{500 360 rmoveto currentpoint newpath 333 0 360 arc
356     50 setlinewidth stroke}def
357
358 /lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def
359 /lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def
360 /rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def
361 /rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def
362 /lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub
363     0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
364 /rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub
365     0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
366 /lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def
367 /rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
368 /lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def
369 /rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
370 end
371
372 /Metrics 50 dict def Metrics begin
373 /.notdef 0 def
374 /space 500 def
375 /ru 500 def
376 /br 0 def
377 /lt 416 def
378 /lb 416 def
379 /rt 416 def
380 /rb 416 def
381 /lk 416 def
382 /rk 416 def
383 /rc 416 def
384 /lc 416 def
385 /rf 416 def
386 /lf 416 def
387 /bv 416 def
388 /ob 350 def
389 /bu 350 def
390 /ci 750 def
391 /bx 750 def
392 /sq 750 def
393 /rn 500 def
394 /ul 500 def
395 /vr 0 def
396 end
397
398 DITfd begin
399 /s2 500 def /s4 250 def /s3 333 def
400 /a4p{arcto pop pop pop pop}def
401 /2cx{2 copy exch}def
402 /rls{rlineto stroke}def
403 /currx{currentpoint pop}def
404 /dround{transform round exch round exch itransform} def
405 end
406 end
407 /DIThacks exch definefont pop
408 ditstart
409 (psc)xT
410 576 1 1 xr
411 1(Times-Roman)xf 1 f
412 2(Times-Italic)xf 2 f
413 3(Times-Bold)xf 3 f
414 4(Times-BoldItalic)xf 4 f
415 5(Helvetica)xf 5 f
416 6(Helvetica-Bold)xf 6 f
417 7(Courier)xf 7 f
418 8(Courier-Bold)xf 8 f
419 9(Symbol)xf 9 f
420 10(DIThacks)xf 10 f
421 10 s
422 1 f
423 xi
424 %%EndProlog
425
426 %%Page: 1 1
427 10 s 10 xH 0 xS 1 f
428 3 f
429 22 s
430 1249 626(A)N
431 1420(N)X
432 1547(ew)X
433 1796(H)X
434 1933(ashing)X
435 2467(P)X
436 2574(ackage)X
437 3136(for)X
438 3405(U)X
439 3532(N)X
440 3659(IX)X
441 2 f
442 20 s
443 3855 562(1)N
444 1 f
445 12 s
446 1607 779(Margo)N
447 1887(Seltzer)X
448 9 f
449 2179(-)X
450 1 f
451 2256(University)X
452 2686(of)X
453 2790(California,)X
454 3229(Berkeley)X
455 2015 875(Ozan)N
456 2242(Yigit)X
457 9 f
458 2464(-)X
459 1 f
460 2541(York)X
461 2762(University)X
462 3 f
463 2331 1086(ABSTRACT)N
464 1 f
465 10 s
466 1152 1222(UNIX)N
467 1385(support)X
468 1657(of)X
469 1756(disk)X
470 1921(oriented)X
471 2216(hashing)X
472 2497(was)X
473 2654(originally)X
474 2997(provided)X
475 3314(by)X
476 2 f
477 3426(dbm)X
478 1 f
479 3595([ATT79])X
480 3916(and)X
481 1152 1310(subsequently)N
482 1595(improved)X
483 1927(upon)X
484 2112(in)X
485 2 f
486 2199(ndbm)X
487 1 f
488 2402([BSD86].)X
489 2735(In)X
490 2826(AT&T)X
491 3068(System)X
492 3327(V,)X
493 3429(in-memory)X
494 3809(hashed)X
495 1152 1398(storage)N
496 1420(and)X
497 1572(access)X
498 1814(support)X
499 2090(was)X
500 2251(added)X
501 2479(in)X
502 2577(the)X
503 2 f
504 2711(hsearch)X
505 1 f
506 3000(library)X
507 3249(routines)X
508 3542([ATT85].)X
509 3907(The)X
510 1152 1486(result)N
511 1367(is)X
512 1457(a)X
513 1530(system)X
514 1789(with)X
515 1968(two)X
516 2125(incompatible)X
517 2580(hashing)X
518 2865(schemes,)X
519 3193(each)X
520 3377(with)X
521 3555(its)X
522 3666(own)X
523 3840(set)X
524 3965(of)X
525 1152 1574(shortcomings.)N
526 1152 1688(This)N
527 1316(paper)X
528 1517(presents)X
529 1802(the)X
530 1922(design)X
531 2152(and)X
532 2289(performance)X
533 2717(characteristics)X
534 3198(of)X
535 3286(a)X
536 3343(new)X
537 3498(hashing)X
538 3768(package)X
539 1152 1776(providing)N
540 1483(a)X
541 1539(superset)X
542 1822(of)X
543 1909(the)X
544 2027(functionality)X
545 2456(provided)X
546 2761(by)X
547 2 f
548 2861(dbm)X
549 1 f
550 3019(and)X
551 2 f
552 3155(hsearch)X
553 1 f
554 3409(.)X
555 3469(The)X
556 3614(new)X
557 3768(package)X
558 1152 1864(uses)N
559 1322(linear)X
560 1537(hashing)X
561 1818(to)X
562 1912(provide)X
563 2189(ef\256cient)X
564 2484(support)X
565 2755(of)X
566 2853(both)X
567 3026(memory)X
568 3324(based)X
569 3538(and)X
570 3685(disk)X
571 3849(based)X
572 1152 1952(hash)N
573 1319(tables)X
574 1526(with)X
575 1688(performance)X
576 2115(superior)X
577 2398(to)X
578 2480(both)X
579 2 f
580 2642(dbm)X
581 1 f
582 2800(and)X
583 2 f
584 2936(hsearch)X
585 1 f
586 3210(under)X
587 3413(most)X
588 3588(conditions.)X
589 3 f
590 1380 2128(Introduction)N
591 1 f
592 892 2260(Current)N
593 1196(UNIX)X
594 1456(systems)X
595 1768(offer)X
596 1984(two)X
597 2163(forms)X
598 2409(of)X
599 720 2348(hashed)N
600 973(data)X
601 1137(access.)X
602 2 f
603 1413(Dbm)X
604 1 f
605 1599(and)X
606 1745(its)X
607 1850(derivatives)X
608 2231(provide)X
609 720 2436(keyed)N
610 939(access)X
611 1171(to)X
612 1259(disk)X
613 1418(resident)X
614 1698(data)X
615 1858(while)X
616 2 f
617 2062(hsearch)X
618 1 f
619 2342(pro-)X
620 720 2524(vides)N
621 929(access)X
622 1175(for)X
623 1309(memory)X
624 1616(resident)X
625 1910(data.)X
626 2124(These)X
627 2356(two)X
628 720 2612(access)N
629 979(methods)X
630 1302(are)X
631 1453(incompatible)X
632 1923(in)X
633 2037(that)X
634 2209(memory)X
635 720 2700(resident)N
636 1011(hash)X
637 1195(tables)X
638 1419(may)X
639 1593(not)X
640 1731(be)X
641 1843(stored)X
642 2075(on)X
643 2191(disk)X
644 2360(and)X
645 720 2788(disk)N
646 884(resident)X
647 1169(tables)X
648 1387(cannot)X
649 1632(be)X
650 1739(read)X
651 1909(into)X
652 2063(memory)X
653 2360(and)X
654 720 2876(accessed)N
655 1022(using)X
656 1215(the)X
657 1333(in-memory)X
658 1709(routines.)X
659 2 f
660 892 2990(Dbm)N
661 1 f
662 1091(has)X
663 1241(several)X
664 1512(shortcomings.)X
665 2026(Since)X
666 2247(data)X
667 2423(is)X
668 720 3078(assumed)N
669 1032(to)X
670 1130(be)X
671 1242(disk)X
672 1411(resident,)X
673 1721(each)X
674 1905(access)X
675 2146(requires)X
676 2440(a)X
677 720 3166(system)N
678 963(call,)X
679 1120(and)X
680 1257(almost)X
681 1491(certainly,)X
682 1813(a)X
683 1869(disk)X
684 2022(operation.)X
685 2365(For)X
686 720 3254(extremely)N
687 1072(large)X
688 1264(databases,)X
689 1623(where)X
690 1851(caching)X
691 2131(is)X
692 2214(unlikely)X
693 720 3342(to)N
694 810(be)X
695 914(effective,)X
696 1244(this)X
697 1386(is)X
698 1466(acceptable,)X
699 1853(however,)X
700 2177(when)X
701 2378(the)X
702 720 3430(database)N
703 1022(is)X
704 1100(small)X
705 1298(\(i.e.)X
706 1447(the)X
707 1569(password)X
708 1896(\256le\),)X
709 2069(performance)X
710 720 3518(improvements)N
711 1204(can)X
712 1342(be)X
713 1443(obtained)X
714 1744(through)X
715 2018(caching)X
716 2293(pages)X
717 720 3606(of)N
718 818(the)X
719 947(database)X
720 1255(in)X
721 1348(memory.)X
722 1685(In)X
723 1782(addition,)X
724 2 f
725 2094(dbm)X
726 1 f
727 2262(cannot)X
728 720 3694(store)N
729 902(data)X
730 1062(items)X
731 1261(whose)X
732 1492(total)X
733 1660(key)X
734 1802(and)X
735 1943(data)X
736 2102(size)X
737 2252(exceed)X
738 720 3782(the)N
739 850(page)X
740 1034(size)X
741 1191(of)X
742 1290(the)X
743 1420(hash)X
744 1599(table.)X
745 1827(Similarly,)X
746 2176(if)X
747 2257(two)X
748 2409(or)X
749 720 3870(more)N
750 907(keys)X
751 1076(produce)X
752 1357(the)X
753 1477(same)X
754 1664(hash)X
755 1833(value)X
756 2029(and)X
757 2166(their)X
758 2334(total)X
759 720 3958(size)N
760 876(exceeds)X
761 1162(the)X
762 1291(page)X
763 1474(size,)X
764 1650(the)X
765 1779(table)X
766 1966(cannot)X
767 2210(store)X
768 2396(all)X
769 720 4046(the)N
770 838(colliding)X
771 1142(keys.)X
772 892 4160(The)N
773 1050(in-memory)X
774 2 f
775 1439(hsearch)X
776 1 f
777 1725(routines)X
778 2015(have)X
779 2199(different)X
780 720 4248(shortcomings.)N
781 1219(First,)X
782 1413(the)X
783 1539(notion)X
784 1771(of)X
785 1865(a)X
786 1928(single)X
787 2146(hash)X
788 2320(table)X
789 720 4336(is)N
790 807(embedded)X
791 1171(in)X
792 1266(the)X
793 1397(interface,)X
794 1732(preventing)X
795 2108(an)X
796 2217(applica-)X
797 720 4424(tion)N
798 902(from)X
799 1116(accessing)X
800 1482(multiple)X
801 1806(tables)X
802 2050(concurrently.)X
803 720 4512(Secondly,)N
804 1063(the)X
805 1186(routine)X
806 1438(to)X
807 1525(create)X
808 1743(a)X
809 1804(hash)X
810 1976(table)X
811 2157(requires)X
812 2440(a)X
813 720 4600(parameter)N
814 1066(which)X
815 1286(declares)X
816 1573(the)X
817 1694(size)X
818 1842(of)X
819 1932(the)X
820 2053(hash)X
821 2223(table.)X
822 2422(If)X
823 720 4688(this)N
824 856(size)X
825 1001(is)X
826 1074(set)X
827 1183(too)X
828 1305(low,)X
829 1465(performance)X
830 1892(degradation)X
831 2291(or)X
832 2378(the)X
833 720 4776(inability)N
834 1008(to)X
835 1092(add)X
836 1230(items)X
837 1425(to)X
838 1509(the)X
839 1628(table)X
840 1805(may)X
841 1964(result.)X
842 2223(In)X
843 2311(addi-)X
844 720 4864(tion,)N
845 2 f
846 910(hsearch)X
847 1 f
848 1210(requires)X
849 1515(that)X
850 1681(the)X
851 1825(application)X
852 2226(allocate)X
853 720 4952(memory)N
854 1037(for)X
855 1181(the)X
856 1329(key)X
857 1495(and)X
858 1661(data)X
859 1845(items.)X
860 2108(Lastly,)X
861 2378(the)X
862 2 f
863 720 5040(hsearch)N
864 1 f
865 1013(routines)X
866 1310(provide)X
867 1594(no)X
868 1713(interface)X
869 2034(to)X
870 2135(store)X
871 2329(hash)X
872 720 5128(tables)N
873 927(on)X
874 1027(disk.)X
875 16 s
876 720 5593 MXY
877 864 0 Dl
878 2 f
879 8 s
880 760 5648(1)N
881 1 f
882 9 s
883 5673(UNIX)Y
884 990(is)X
885 1056(a)X
886 1106(registered)X
887 1408(trademark)X
888 1718(of)X
889 1796(AT&T.)X
890 10 s
891 2878 2128(The)N
892 3032(goal)X
893 3199(of)X
894 3295(our)X
895 3431(work)X
896 3625(was)X
897 3779(to)X
898 3870(design)X
899 4108(and)X
900 4253(imple-)X
901 2706 2216(ment)N
902 2900(a)X
903 2970(new)X
904 3138(package)X
905 3436(that)X
906 3590(provides)X
907 3899(a)X
908 3968(superset)X
909 4264(of)X
910 4364(the)X
911 2706 2304(functionality)N
912 3144(of)X
913 3240(both)X
914 2 f
915 3411(dbm)X
916 1 f
917 3578(and)X
918 2 f
919 3723(hsearch)X
920 1 f
921 3977(.)X
922 4045(The)X
923 4198(package)X
924 2706 2392(had)N
925 2871(to)X
926 2982(overcome)X
927 3348(the)X
928 3495(interface)X
929 3826(shortcomings)X
930 4306(cited)X
931 2706 2480(above)N
932 2930(and)X
933 3078(its)X
934 3185(implementation)X
935 3719(had)X
936 3867(to)X
937 3961(provide)X
938 4238(perfor-)X
939 2706 2568(mance)N
940 2942(equal)X
941 3142(or)X
942 3235(superior)X
943 3524(to)X
944 3612(that)X
945 3758(of)X
946 3851(the)X
947 3975(existing)X
948 4253(imple-)X
949 2706 2656(mentations.)N
950 3152(In)X
951 3274(order)X
952 3498(to)X
953 3614(provide)X
954 3913(a)X
955 4003(compact)X
956 4329(disk)X
957 2706 2744(representation,)N
958 3224(graceful)X
959 3531(table)X
960 3729(growth,)X
961 4018(and)X
962 4176(expected)X
963 2706 2832(constant)N
964 3033(time)X
965 3234(performance,)X
966 3720(we)X
967 3873(selected)X
968 4191(Litwin's)X
969 2706 2920(linear)N
970 2923(hashing)X
971 3206(algorithm)X
972 3551([LAR88,)X
973 3872(LIT80].)X
974 4178(We)X
975 4324(then)X
976 2706 3008(enhanced)N
977 3037(the)X
978 3161(algorithm)X
979 3498(to)X
980 3586(handle)X
981 3826(page)X
982 4004(over\257ows)X
983 4346(and)X
984 2706 3096(large)N
985 2900(key)X
986 3049(handling)X
987 3362(with)X
988 3537(a)X
989 3606(single)X
990 3830(mechanism,)X
991 4248(named)X
992 2706 3184(buddy-in-waiting.)N
993 3 f
994 2975 3338(Existing)N
995 3274(UNIX)X
996 3499(Hashing)X
997 3802(Techniques)X
998 1 f
999 2878 3470(Over)N
1000 3076(the)X
1001 3210(last)X
1002 3357(decade,)X
1003 3637(several)X
1004 3901(dynamic)X
1005 4213(hashing)X
1006 2706 3558(schemes)N
1007 3000(have)X
1008 3174(been)X
1009 3348(developed)X
1010 3700(for)X
1011 3816(the)X
1012 3936(UNIX)X
1013 4159(timeshar-)X
1014 2706 3646(ing)N
1015 2856(system,)X
1016 3146(starting)X
1017 3433(with)X
1018 3622(the)X
1019 3767(inclusion)X
1020 4107(of)X
1021 2 f
1022 4221(dbm)X
1023 1 f
1024 4359(,)X
1025 4426(a)X
1026 2706 3734(minimal)N
1027 3008(database)X
1028 3321(library)X
1029 3571(written)X
1030 3834(by)X
1031 3950(Ken)X
1032 4120(Thompson)X
1033 2706 3822([THOM90],)N
1034 3141(in)X
1035 3248(the)X
1036 3391(Seventh)X
1037 3694(Edition)X
1038 3974(UNIX)X
1039 4220(system.)X
1040 2706 3910(Since)N
1041 2916(then,)X
1042 3106(an)X
1043 3214(extended)X
1044 3536(version)X
1045 3804(of)X
1046 3903(the)X
1047 4032(same)X
1048 4228(library,)X
1049 2 f
1050 2706 3998(ndbm)N
1051 1 f
1052 2884(,)X
1053 2933(and)X
1054 3078(a)X
1055 3142(public-domain)X
1056 3637(clone)X
1057 3839(of)X
1058 3934(the)X
1059 4060(latter,)X
1060 2 f
1061 4273(sdbm)X
1062 1 f
1063 4442(,)X
1064 2706 4086(have)N
1065 2902(been)X
1066 3098(developed.)X
1067 3491(Another)X
1068 3797 0.1645(interface-compatible)AX
1069 2706 4174(library)N
1070 2 f
1071 2950(gdbm)X
1072 1 f
1073 3128(,)X
1074 3178(was)X
1075 3333(recently)X
1076 3622(made)X
1077 3826(available)X
1078 4145(as)X
1079 4241(part)X
1080 4395(of)X
1081 2706 4262(the)N
1082 2829(Free)X
1083 2997(Software)X
1084 3312(Foundation's)X
1085 3759(\(FSF\))X
1086 3970(software)X
1087 4271(distri-)X
1088 2706 4350(bution.)N
1089 2878 4464(All)N
1090 3017(of)X
1091 3121(these)X
1092 3323(implementations)X
1093 3893(are)X
1094 4029(based)X
1095 4248(on)X
1096 4364(the)X
1097 2706 4552(idea)N
1098 2871(of)X
1099 2969(revealing)X
1100 3299(just)X
1101 3445(enough)X
1102 3711(bits)X
1103 3856(of)X
1104 3953(a)X
1105 4019(hash)X
1106 4196(value)X
1107 4400(to)X
1108 2706 4640(locate)N
1109 2920(a)X
1110 2978(page)X
1111 3151(in)X
1112 3234(a)X
1113 3291(single)X
1114 3503(access.)X
1115 3770(While)X
1116 2 f
1117 3987(dbm/ndbm)X
1118 1 f
1119 4346(and)X
1120 2 f
1121 2706 4728(sdbm)N
1122 1 f
1123 2908(map)X
1124 3079(the)X
1125 3210(hash)X
1126 3390(value)X
1127 3597(directly)X
1128 3874(to)X
1129 3968(a)X
1130 4036(disk)X
1131 4201(address,)X
1132 2 f
1133 2706 4816(gdbm)N
1134 1 f
1135 2921(uses)X
1136 3096(the)X
1137 3231(hash)X
1138 3414(value)X
1139 3624(to)X
1140 3722(index)X
1141 3936(into)X
1142 4096(a)X
1143 2 f
1144 4168(directory)X
1145 1 f
1146 2706 4904([ENB88])N
1147 3020(containing)X
1148 3378(disk)X
1149 3531(addresses.)X
1150 2878 5018(The)N
1151 2 f
1152 3033(hsearch)X
1153 1 f
1154 3317(routines)X
1155 3605(in)X
1156 3697(System)X
1157 3962(V)X
1158 4049(are)X
1159 4177(designed)X
1160 2706 5106(to)N
1161 2804(provide)X
1162 3085(memory-resident)X
1163 3669(hash)X
1164 3852(tables.)X
1165 4115(Since)X
1166 4328(data)X
1167 2706 5194(access)N
1168 2948(does)X
1169 3131(not)X
1170 3269(require)X
1171 3533(disk)X
1172 3702(access,)X
1173 3964(simple)X
1174 4213(hashing)X
1175 2706 5282(schemes)N
1176 3010(which)X
1177 3238(may)X
1178 3408(require)X
1179 3667(multiple)X
1180 3964(probes)X
1181 4209(into)X
1182 4364(the)X
1183 2706 5370(table)N
1184 2889(are)X
1185 3015(used.)X
1186 3209(A)X
1187 3294(more)X
1188 3486(interesting)X
1189 3851(version)X
1190 4114(of)X
1191 2 f
1192 4208(hsearch)X
1193 1 f
1194 2706 5458(is)N
1195 2784(a)X
1196 2845(public)X
1197 3070(domain)X
1198 3335(library,)X
1199 2 f
1200 3594(dynahash)X
1201 1 f
1202 3901(,)X
1203 3945(that)X
1204 4089(implements)X
1205 2706 5546(Larson's)N
1206 3036(in-memory)X
1207 3440(adaptation)X
1208 3822([LAR88])X
1209 4164(of)X
1210 4279(linear)X
1211 2706 5634(hashing)N
1212 2975([LIT80].)X
1213 3 f
1214 720 5960(USENIX)N
1215 9 f
1216 1042(-)X
1217 3 f
1218 1106(Winter)X
1219 1371('91)X
1220 9 f
1221 1498(-)X
1222 3 f
1223 1562(Dallas,)X
1224 1815(TX)X
1225 1 f
1226 4424(1)X
1227
1228 2 p
1229 %%Page: 2 2
1230 10 s 10 xH 0 xS 1 f
1231 3 f
1232 432 258(A)N
1233 510(New)X
1234 682(Hashing)X
1235 985(Package)X
1236 1290(for)X
1237 1413(UNIX)X
1238 3663(Seltzer)X
1239 3920(&)X
1240 4007(Yigit)X
1241 2 f
1242 1074 538(dbm)N
1243 1 f
1244 1232(and)X
1245 2 f
1246 1368(ndbm)X
1247 1 f
1248 604 670(The)N
1249 2 f
1250 760(dbm)X
1251 1 f
1252 928(and)X
1253 2 f
1254 1074(ndbm)X
1255 1 f
1256 1282(library)X
1257 1526(implementations)X
1258 2089(are)X
1259 432 758(based)N
1260 667(on)X
1261 799(the)X
1262 949(same)X
1263 1166(algorithm)X
1264 1529(by)X
1265 1661(Ken)X
1266 1846(Thompson)X
1267 432 846([THOM90,)N
1268 824(TOR88,)X
1269 1113(WAL84],)X
1270 1452(but)X
1271 1582(differ)X
1272 1789(in)X
1273 1879(their)X
1274 2054(pro-)X
1275 432 934(grammatic)N
1276 801(interfaces.)X
1277 1160(The)X
1278 1311(latter)X
1279 1502(is)X
1280 1581(a)X
1281 1643(modi\256ed)X
1282 1952(version)X
1283 432 1022(of)N
1284 533(the)X
1285 665(former)X
1286 918(which)X
1287 1148(adds)X
1288 1328(support)X
1289 1601(for)X
1290 1728(multiple)X
1291 2027(data-)X
1292 432 1110(bases)N
1293 634(to)X
1294 724(be)X
1295 828(open)X
1296 1011(concurrently.)X
1297 1484(The)X
1298 1636(discussion)X
1299 1996(of)X
1300 2090(the)X
1301 432 1198(algorithm)N
1302 774(that)X
1303 925(follows)X
1304 1196(is)X
1305 1280(applicable)X
1306 1640(to)X
1307 1732(both)X
1308 2 f
1309 1904(dbm)X
1310 1 f
1311 2072(and)X
1312 2 f
1313 432 1286(ndbm)N
1314 1 f
1315 610(.)X
1316 604 1400(The)N
1317 760(basic)X
1318 956(structure)X
1319 1268(of)X
1320 2 f
1321 1366(dbm)X
1322 1 f
1323 1535(calls)X
1324 1712(for)X
1325 1836(\256xed-sized)X
1326 432 1488(disk)N
1327 612(blocks)X
1328 868(\(buckets\))X
1329 1214(and)X
1330 1377(an)X
1331 2 f
1332 1499(access)X
1333 1 f
1334 1755(function)X
1335 2068(that)X
1336 432 1576(maps)N
1337 623(a)X
1338 681(key)X
1339 819(to)X
1340 902(a)X
1341 959(bucket.)X
1342 1234(The)X
1343 1380(interface)X
1344 1683(routines)X
1345 1962(use)X
1346 2090(the)X
1347 2 f
1348 432 1664(access)N
1349 1 f
1350 673(function)X
1351 970(to)X
1352 1062(obtain)X
1353 1292(the)X
1354 1420(appropriate)X
1355 1816(bucket)X
1356 2060(in)X
1357 2152(a)X
1358 432 1752(single)N
1359 643(disk)X
1360 796(access.)X
1361 604 1866(Within)N
1362 869(the)X
1363 2 f
1364 1010(access)X
1365 1 f
1366 1263(function,)X
1367 1593(a)X
1368 1672(bit-randomizing)X
1369 432 1954(hash)N
1370 610(function)X
1371 2 f
1372 8 s
1373 877 1929(2)N
1374 1 f
1375 10 s
1376 940 1954(is)N
1377 1024(used)X
1378 1202(to)X
1379 1294(convert)X
1380 1565(a)X
1381 1631(key)X
1382 1777(into)X
1383 1931(a)X
1384 1997(32-bit)X
1385 432 2042(hash)N
1386 605(value.)X
1387 825(Out)X
1388 971(of)X
1389 1064(these)X
1390 1254(32)X
1391 1359(bits,)X
1392 1519(only)X
1393 1686(as)X
1394 1778(many)X
1395 1981(bits)X
1396 2121(as)X
1397 432 2130(necessary)N
1398 773(are)X
1399 900(used)X
1400 1075(to)X
1401 1165(determine)X
1402 1514(the)X
1403 1639(particular)X
1404 1974(bucket)X
1405 432 2218(on)N
1406 533(which)X
1407 750(a)X
1408 807(key)X
1409 944(resides.)X
1410 1228(An)X
1411 1347(in-memory)X
1412 1724(bitmap)X
1413 1967(is)X
1414 2041(used)X
1415 432 2306(to)N
1416 533(determine)X
1417 893(how)X
1418 1070(many)X
1419 1287(bits)X
1420 1441(are)X
1421 1579(required.)X
1422 1905(Each)X
1423 2104(bit)X
1424 432 2394(indicates)N
1425 746(whether)X
1426 1033(its)X
1427 1136(associated)X
1428 1494(bucket)X
1429 1736(has)X
1430 1871(been)X
1431 2051(split)X
1432 432 2482(yet)N
1433 562(\(a)X
1434 657(0)X
1435 728(indicating)X
1436 1079(that)X
1437 1230(the)X
1438 1359(bucket)X
1439 1604(has)X
1440 1742(not)X
1441 1875(yet)X
1442 2004(split\).)X
1443 432 2570(The)N
1444 590(use)X
1445 730(of)X
1446 830(the)X
1447 961(hash)X
1448 1141(function)X
1449 1441(and)X
1450 1590(the)X
1451 1720(bitmap)X
1452 1974(is)X
1453 2059(best)X
1454 432 2658(described)N
1455 769(by)X
1456 878(stepping)X
1457 1177(through)X
1458 1454(database)X
1459 1759(creation)X
1460 2046(with)X
1461 432 2746(multiple)N
1462 718(invocations)X
1463 1107(of)X
1464 1194(a)X
1465 2 f
1466 1250(store)X
1467 1 f
1468 1430(operation.)X
1469 604 2860(Initially,)N
1470 906(the)X
1471 1033(hash)X
1472 1209(table)X
1473 1394(contains)X
1474 1690(a)X
1475 1755(single)X
1476 1974(bucket)X
1477 432 2948(\(bucket)N
1478 711(0\),)X
1479 836(the)X
1480 972(bit)X
1481 1094(map)X
1482 1270(contains)X
1483 1575(a)X
1484 1649(single)X
1485 1878(bit)X
1486 2000(\(bit)X
1487 2148(0)X
1488 432 3036(corresponding)N
1489 913(to)X
1490 997(bucket)X
1491 1233(0\),)X
1492 1342(and)X
1493 1480(0)X
1494 1542(bits)X
1495 1699(of)X
1496 1788(a)X
1497 1846(hash)X
1498 2014(value)X
1499 432 3124(are)N
1500 560(examined)X
1501 901(to)X
1502 992(determine)X
1503 1342(where)X
1504 1568(a)X
1505 1633(key)X
1506 1778(is)X
1507 1860(placed)X
1508 2099(\(in)X
1509 432 3212(bucket)N
1510 670(0\).)X
1511 801(When)X
1512 1017(bucket)X
1513 1255(0)X
1514 1319(is)X
1515 1396(full,)X
1516 1551(its)X
1517 1650(bit)X
1518 1758(in)X
1519 1844(the)X
1520 1966(bitmap)X
1521 432 3300(\(bit)N
1522 564(0\))X
1523 652(is)X
1524 726(set,)X
1525 856(and)X
1526 993(its)X
1527 1089(contents)X
1528 1377(are)X
1529 1497(split)X
1530 1655(between)X
1531 1943(buckets)X
1532 432 3388(0)N
1533 499(and)X
1534 641(1,)X
1535 727(by)X
1536 833(considering)X
1537 1233(the)X
1538 1357(0)X
1539 2 f
1540 7 s
1541 3356(th)Y
1542 10 s
1543 1 f
1544 1480 3388(bit)N
1545 1590(\(the)X
1546 1741(lowest)X
1547 1976(bit)X
1548 2086(not)X
1549 432 3476(previously)N
1550 800(examined\))X
1551 1169(of)X
1552 1266(the)X
1553 1393(hash)X
1554 1569(value)X
1555 1772(for)X
1556 1895(each)X
1557 2072(key)X
1558 432 3564(within)N
1559 668(the)X
1560 798(bucket.)X
1561 1064(Given)X
1562 1292(a)X
1563 1359(well-designed)X
1564 1840(hash)X
1565 2018(func-)X
1566 432 3652(tion,)N
1567 613(approximately)X
1568 1112(half)X
1569 1273(of)X
1570 1376(the)X
1571 1510(keys)X
1572 1693(will)X
1573 1853(have)X
1574 2041(hash)X
1575 432 3740(values)N
1576 666(with)X
1577 837(the)X
1578 964(0)X
1579 2 f
1580 7 s
1581 3708(th)Y
1582 10 s
1583 1 f
1584 1090 3740(bit)N
1585 1203(set.)X
1586 1341(All)X
1587 1471(such)X
1588 1646(keys)X
1589 1821(and)X
1590 1965(associ-)X
1591 432 3828(ated)N
1592 586(data)X
1593 740(are)X
1594 859(moved)X
1595 1097(to)X
1596 1179(bucket)X
1597 1413(1,)X
1598 1493(and)X
1599 1629(the)X
1600 1747(rest)X
1601 1883(remain)X
1602 2126(in)X
1603 432 3916(bucket)N
1604 666(0.)X
1605 604 4030(After)N
1606 804(this)X
1607 949(split,)X
1608 1135(the)X
1609 1262(\256le)X
1610 1393(now)X
1611 1560(contains)X
1612 1856(two)X
1613 2005(buck-)X
1614 432 4118(ets,)N
1615 562(and)X
1616 699(the)X
1617 818(bitmap)X
1618 1061(contains)X
1619 1349(three)X
1620 1530(bits:)X
1621 1687(the)X
1622 1805(0)X
1623 2 f
1624 7 s
1625 4086(th)Y
1626 10 s
1627 1 f
1628 1922 4118(bit)N
1629 2026(is)X
1630 2099(set)X
1631 432 4206(to)N
1632 525(indicate)X
1633 810(a)X
1634 876(bucket)X
1635 1120(0)X
1636 1190(split)X
1637 1357(when)X
1638 1561(no)X
1639 1671(bits)X
1640 1816(of)X
1641 1913(the)X
1642 2041(hash)X
1643 432 4294(value)N
1644 648(are)X
1645 789(considered,)X
1646 1199(and)X
1647 1357(two)X
1648 1519(more)X
1649 1726(unset)X
1650 1937(bits)X
1651 2094(for)X
1652 432 4382(buckets)N
1653 706(0)X
1654 775(and)X
1655 920(1.)X
1656 1029(The)X
1657 1183(placement)X
1658 1542(of)X
1659 1638(an)X
1660 1742(incoming)X
1661 2072(key)X
1662 432 4470(now)N
1663 604(requires)X
1664 897(examination)X
1665 1327(of)X
1666 1428(the)X
1667 1560(0)X
1668 2 f
1669 7 s
1670 4438(th)Y
1671 10 s
1672 1 f
1673 1691 4470(bit)N
1674 1809(of)X
1675 1910(the)X
1676 2041(hash)X
1677 432 4558(value,)N
1678 667(and)X
1679 824(the)X
1680 963(key)X
1681 1119(is)X
1682 1212(placed)X
1683 1462(either)X
1684 1685(in)X
1685 1787(bucket)X
1686 2041(0)X
1687 2121(or)X
1688 432 4646(bucket)N
1689 674(1.)X
1690 782(If)X
1691 864(either)X
1692 1075(bucket)X
1693 1317(0)X
1694 1385(or)X
1695 1480(bucket)X
1696 1722(1)X
1697 1790(\256lls)X
1698 1937(up,)X
1699 2064(it)X
1700 2135(is)X
1701 432 4734(split)N
1702 598(as)X
1703 693(before,)X
1704 947(its)X
1705 1050(bit)X
1706 1162(is)X
1707 1243(set)X
1708 1360(in)X
1709 1450(the)X
1710 1576(bitmap,)X
1711 1846(and)X
1712 1990(a)X
1713 2054(new)X
1714 432 4822(set)N
1715 541(of)X
1716 628(unset)X
1717 817(bits)X
1718 952(are)X
1719 1071(added)X
1720 1283(to)X
1721 1365(the)X
1722 1483(bitmap.)X
1723 604 4936(Each)N
1724 791(time)X
1725 959(we)X
1726 1079(consider)X
1727 1376(a)X
1728 1437(new)X
1729 1596(bit)X
1730 1705(\(bit)X
1731 1841(n\),)X
1732 1953(we)X
1733 2072(add)X
1734 432 5024(2)N
1735 2 f
1736 7 s
1737 4992(n)Y
1738 9 f
1739 509(+)X
1740 1 f
1741 540(1)X
1742 10 s
1743 595 5024(bits)N
1744 737(to)X
1745 826(the)X
1746 951(bitmap)X
1747 1199(and)X
1748 1341(obtain)X
1749 1567(2)X
1750 2 f
1751 7 s
1752 4992(n)Y
1753 9 f
1754 1644(+)X
1755 1 f
1756 1675(1)X
1757 10 s
1758 1729 5024(more)N
1759 1920(address-)X
1760 432 5112(able)N
1761 595(buckets)X
1762 869(in)X
1763 960(the)X
1764 1087(\256le.)X
1765 1258(As)X
1766 1376(a)X
1767 1441(result,)X
1768 1668(the)X
1769 1795(bitmap)X
1770 2045(con-)X
1771 432 5200(tains)N
1772 618(the)X
1773 751(previous)X
1774 1062(2)X
1775 2 f
1776 7 s
1777 5168(n)Y
1778 9 f
1779 1139(+)X
1780 1 f
1781 1170(1)X
1782 2 f
1783 10 s
1784 9 f
1785 5200(-)Y
1786 1 f
1787 1242(1)X
1788 1317(bits)X
1789 1467(\(1)X
1790 2 f
1791 9 f
1792 1534(+)X
1793 1 f
1794 1578(2)X
1795 2 f
1796 9 f
1797 (+)S
1798 1 f
1799 1662(4)X
1800 2 f
1801 9 f
1802 (+)S
1803 1 f
1804 1746(...)X
1805 2 f
1806 9 f
1807 (+)S
1808 1 f
1809 1850(2)X
1810 2 f
1811 7 s
1812 5168(n)Y
1813 10 s
1814 1 f
1815 1931 5200(\))N
1816 1992(which)X
1817 432 5288(trace)N
1818 649(the)X
1819 807(entire)X
1820 2 f
1821 1050(split)X
1822 1247(history)X
1823 1 f
1824 1529(of)X
1825 1656(the)X
1826 1813(addressable)X
1827 16 s
1828 432 5433 MXY
1829 864 0 Dl
1830 2 f
1831 8 s
1832 472 5488(2)N
1833 1 f
1834 9 s
1835 523 5513(This)N
1836 670(bit-randomizing)X
1837 1153(property)X
1838 1416(is)X
1839 1482(important)X
1840 1780(to)X
1841 1854(obtain)X
1842 2052(radi-)X
1843 432 5593(cally)N
1844 599(different)X
1845 874(hash)X
1846 1033(values)X
1847 1244(for)X
1848 1355(nearly)X
1849 1562(identical)X
1850 1836(keys,)X
1851 2012(which)X
1852 432 5673(in)N
1853 506(turn)X
1854 640(avoids)X
1855 846(clustering)X
1856 1148(of)X
1857 1226(such)X
1858 1376(keys)X
1859 1526(in)X
1860 1600(a)X
1861 1650(single)X
1862 1840(bucket.)X
1863 10 s
1864 2418 538(buckets.)N
1865 2590 652(Given)N
1866 2809(a)X
1867 2868(key)X
1868 3007(and)X
1869 3146(the)X
1870 3267(bitmap)X
1871 3512(created)X
1872 3768(by)X
1873 3871(this)X
1874 4009(algo-)X
1875 2418 740(rithm,)N
1876 2638(we)X
1877 2759(\256rst)X
1878 2910(examine)X
1879 3209(bit)X
1880 3320(0)X
1881 3386(of)X
1882 3479(the)X
1883 3603(bitmap)X
1884 3851(\(the)X
1885 4002(bit)X
1886 4112(to)X
1887 2418 828(consult)N
1888 2673(when)X
1889 2871(0)X
1890 2934(bits)X
1891 3072(of)X
1892 3162(the)X
1893 3283(hash)X
1894 3453(value)X
1895 3650(are)X
1896 3772(being)X
1897 3973(exam-)X
1898 2418 916(ined\).)N
1899 2631(If)X
1900 2713(it)X
1901 2785(is)X
1902 2866(set)X
1903 2982(\(indicating)X
1904 3356(that)X
1905 3503(the)X
1906 3628(bucket)X
1907 3869(split\),)X
1908 4080(we)X
1909 2418 1004(begin)N
1910 2617(considering)X
1911 3012(the)X
1912 3131(bits)X
1913 3267(of)X
1914 3355(the)X
1915 3473(32-bit)X
1916 3684(hash)X
1917 3851(value.)X
1918 4085(As)X
1919 2418 1092(bit)N
1920 2525(n)X
1921 2587(is)X
1922 2662(revealed,)X
1923 2977(a)X
1924 3035(mask)X
1925 3226(equal)X
1926 3422(to)X
1927 3506(2)X
1928 2 f
1929 7 s
1930 1060(n)Y
1931 9 f
1932 3583(+)X
1933 1 f
1934 3614(1)X
1935 2 f
1936 10 s
1937 9 f
1938 1092(-)Y
1939 1 f
1940 3686(1)X
1941 3748(will)X
1942 3894(yield)X
1943 4076(the)X
1944 2418 1180(current)N
1945 2675(bucket)X
1946 2918(address.)X
1947 3228(Adding)X
1948 3496(2)X
1949 2 f
1950 7 s
1951 1148(n)Y
1952 9 f
1953 3573(+)X
1954 1 f
1955 3604(1)X
1956 2 f
1957 10 s
1958 9 f
1959 1180(-)Y
1960 1 f
1961 3676(1)X
1962 3744(to)X
1963 3834(the)X
1964 3960(bucket)X
1965 2418 1268(address)N
1966 2701(identi\256es)X
1967 3035(which)X
1968 3272(bit)X
1969 3397(in)X
1970 3500(the)X
1971 3639(bitmap)X
1972 3902(must)X
1973 4098(be)X
1974 2418 1356(checked.)N
1975 2743(We)X
1976 2876(continue)X
1977 3173(revealing)X
1978 3493(bits)X
1979 3628(of)X
1980 3715(the)X
1981 3833(hash)X
1982 4000(value)X
1983 2418 1444(until)N
1984 2591(all)X
1985 2698(set)X
1986 2814(bits)X
1987 2955(in)X
1988 3043(the)X
1989 3167(bitmap)X
1990 3415(are)X
1991 3540(exhausted.)X
1992 3907(The)X
1993 4058(fol-)X
1994 2418 1532(lowing)N
1995 2682(algorithm,)X
1996 3055(a)X
1997 3133(simpli\256cation)X
1998 3614(of)X
1999 3723(the)X
2000 3863(algorithm)X
2001 2418 1620(due)N
2002 2565(to)X
2003 2658(Ken)X
2004 2823(Thompson)X
2005 3196([THOM90,)X
2006 3590(TOR88],)X
2007 3908(uses)X
2008 4076(the)X
2009 2418 1708(hash)N
2010 2625(value)X
2011 2839(and)X
2012 2995(the)X
2013 3133(bitmap)X
2014 3395(to)X
2015 3497(calculate)X
2016 3823(the)X
2017 3960(bucket)X
2018 2418 1796(address)N
2019 2679(as)X
2020 2766(discussed)X
2021 3093(above.)X
2022 0(Courier)xf 0 f
2023 1 f
2024 0 f
2025 8 s
2026 2418 2095(hash)N
2027 2608(=)X
2028 2684 -0.4038(calchash\(key\);)AX
2029 2418 2183(mask)N
2030 2608(=)X
2031 2684(0;)X
2032 2418 2271(while)N
2033 2646 -0.4018(\(isbitset\(\(hash)AX
2034 3254(&)X
2035 3330(mask\))X
2036 3558(+)X
2037 3634(mask\)\))X
2038 2706 2359(mask)N
2039 2896(=)X
2040 2972(\(mask)X
2041 3200(<<)X
2042 3314(1\))X
2043 3428(+)X
2044 3504(1;)X
2045 2418 2447(bucket)N
2046 2684(=)X
2047 2760(hash)X
2048 2950(&)X
2049 3026(mask;)X
2050 2 f
2051 10 s
2052 3211 2812(sdbm)N
2053 1 f
2054 2590 2944(The)N
2055 2 f
2056 2738(sdbm)X
2057 1 f
2058 2930(library)X
2059 3167(is)X
2060 3243(a)X
2061 3302(public-domain)X
2062 3791(clone)X
2063 3987(of)X
2064 4076(the)X
2065 2 f
2066 2418 3032(ndbm)N
2067 1 f
2068 2638(library,)X
2069 2914(developed)X
2070 3286(by)X
2071 3408(Ozan)X
2072 3620(Yigit)X
2073 3826(to)X
2074 3929(provide)X
2075 2 f
2076 2418 3120(ndbm)N
2077 1 f
2078 2596('s)X
2079 2692(functionality)X
2080 3139(under)X
2081 3359(some)X
2082 3565(versions)X
2083 3869(of)X
2084 3973(UNIX)X
2085 2418 3208(that)N
2086 2559(exclude)X
2087 2830(it)X
2088 2894(for)X
2089 3008(licensing)X
2090 3317(reasons)X
2091 3578([YIG89].)X
2092 3895(The)X
2093 4040(pro-)X
2094 2418 3296(grammer)N
2095 2735(interface,)X
2096 3064(and)X
2097 3207(the)X
2098 3332(basic)X
2099 3524(structure)X
2100 3832(of)X
2101 2 f
2102 3926(sdbm)X
2103 1 f
2104 4121(is)X
2105 2418 3384(identical)N
2106 2733(to)X
2107 2 f
2108 2834(ndbm)X
2109 1 f
2110 3051(but)X
2111 3192(internal)X
2112 3476(details)X
2113 3723(of)X
2114 3828(the)X
2115 2 f
2116 3964(access)X
2117 1 f
2118 2418 3472(function,)N
2119 2726(such)X
2120 2894(as)X
2121 2982(the)X
2122 3101(calculation)X
2123 3474(of)X
2124 3561(the)X
2125 3679(bucket)X
2126 3913(address,)X
2127 2418 3560(and)N
2128 2563(the)X
2129 2690(use)X
2130 2825(of)X
2131 2920(different)X
2132 3225(hash)X
2133 3400(functions)X
2134 3726(make)X
2135 3928(the)X
2136 4054(two)X
2137 2418 3648(incompatible)N
2138 2856(at)X
2139 2934(the)X
2140 3052(database)X
2141 3349(level.)X
2142 2590 3762(The)N
2143 2 f
2144 2740(sdbm)X
2145 1 f
2146 2934(library)X
2147 3173(is)X
2148 3251(based)X
2149 3458(on)X
2150 3562(a)X
2151 3622(simpli\256ed)X
2152 3965(imple-)X
2153 2418 3850(mentation)N
2154 2778(of)X
2155 2885(Larson's)X
2156 3206(1978)X
2157 2 f
2158 3406(dynamic)X
2159 3717(hashing)X
2160 1 f
2161 4009(algo-)X
2162 2418 3938(rithm)N
2163 2616(including)X
2164 2943(the)X
2165 2 f
2166 3066(re\256nements)X
2167 3461(and)X
2168 3605(variations)X
2169 1 f
2170 3953(of)X
2171 4044(sec-)X
2172 2418 4026(tion)N
2173 2562(5)X
2174 2622([LAR78].)X
2175 2956(Larson's)X
2176 3257(original)X
2177 3526(algorithm)X
2178 3857(calls)X
2179 4024(for)X
2180 4138(a)X
2181 2418 4114(forest)N
2182 2635(of)X
2183 2736(binary)X
2184 2975(hash)X
2185 3156(trees)X
2186 3341(that)X
2187 3494(are)X
2188 3626(accessed)X
2189 3941(by)X
2190 4054(two)X
2191 2418 4202(hash)N
2192 2586(functions.)X
2193 2925(The)X
2194 3071(\256rst)X
2195 3216(hash)X
2196 3384(function)X
2197 3672(selects)X
2198 3907(a)X
2199 3964(partic-)X
2200 2418 4290(ular)N
2201 2571(tree)X
2202 2720(within)X
2203 2952(the)X
2204 3078(forest.)X
2205 3309(The)X
2206 3462(second)X
2207 3713(hash)X
2208 3887(function,)X
2209 2418 4378(which)N
2210 2659(is)X
2211 2757(required)X
2212 3070(to)X
2213 3177(be)X
2214 3297(a)X
2215 3377(boolean)X
2216 3675(pseudo-random)X
2217 2418 4466(number)N
2218 2687(generator)X
2219 3015(that)X
2220 3159(is)X
2221 3236(seeded)X
2222 3479(by)X
2223 3583(the)X
2224 3705(key,)X
2225 3865(is)X
2226 3942(used)X
2227 4112(to)X
2228 2418 4554(traverse)N
2229 2733(the)X
2230 2890(tree)X
2231 3070(until)X
2232 3275(internal)X
2233 3579(\(split\))X
2234 3829(nodes)X
2235 4075(are)X
2236 2418 4642(exhausted)N
2237 2763(and)X
2238 2903(an)X
2239 3003(external)X
2240 3286(\(non-split\))X
2241 3648(node)X
2242 3827(is)X
2243 3903(reached.)X
2244 2418 4730(The)N
2245 2571(bucket)X
2246 2813(addresses)X
2247 3149(are)X
2248 3276(stored)X
2249 3500(directly)X
2250 3772(in)X
2251 3861(the)X
2252 3986(exter-)X
2253 2418 4818(nal)N
2254 2536(nodes.)X
2255 2590 4932(Larson's)N
2256 2903(re\256nements)X
2257 3309(are)X
2258 3440(based)X
2259 3655(on)X
2260 3767(the)X
2261 3897(observa-)X
2262 2418 5020(tion)N
2263 2570(that)X
2264 2718(the)X
2265 2844(nodes)X
2266 3059(can)X
2267 3199(be)X
2268 3303(represented)X
2269 3702(by)X
2270 3809(a)X
2271 3872(single)X
2272 4090(bit)X
2273 2418 5108(that)N
2274 2569(is)X
2275 2653(set)X
2276 2773(for)X
2277 2898(internal)X
2278 3174(nodes)X
2279 3392(and)X
2280 3539(not)X
2281 3672(set)X
2282 3791(for)X
2283 3915(external)X
2284 2418 5196(nodes,)N
2285 2652(resulting)X
2286 2959(in)X
2287 3048(a)X
2288 3111(radix)X
2289 3303(search)X
2290 3536(trie.)X
2291 3709(Figure)X
2292 3944(1)X
2293 4010(illus-)X
2294 2418 5284(trates)N
2295 2621(this.)X
2296 2804(Nodes)X
2297 3037(A)X
2298 3123(and)X
2299 3267(B)X
2300 3348(are)X
2301 3475(internal)X
2302 3748(\(split\))X
2303 3967(nodes,)X
2304 2418 5372(thus)N
2305 2573(having)X
2306 2813(no)X
2307 2915(bucket)X
2308 3151(addresses)X
2309 3480(associated)X
2310 3831(with)X
2311 3994(them.)X
2312 2418 5460(Instead,)N
2313 2693(the)X
2314 2814(external)X
2315 3096(nodes)X
2316 3306(\(C,)X
2317 3429(D,)X
2318 3530(and)X
2319 3669(E\))X
2320 3768(each)X
2321 3938(need)X
2322 4112(to)X
2323 2418 5548(refer)N
2324 2594(to)X
2325 2679(a)X
2326 2738(bucket)X
2327 2975(address.)X
2328 3279(These)X
2329 3494(bucket)X
2330 3731(addresses)X
2331 4062(can)X
2332 2418 5636(be)N
2333 2529(stored)X
2334 2760(in)X
2335 2857(the)X
2336 2990(trie)X
2337 3132(itself)X
2338 3327(where)X
2339 3559(the)X
2340 3691(subtries)X
2341 3974(would)X
2342 3 f
2343 432 5960(2)N
2344 2970(USENIX)X
2345 9 f
2346 3292(-)X
2347 3 f
2348 3356(Winter)X
2349 3621('91)X
2350 9 f
2351 3748(-)X
2352 3 f
2353 3812(Dallas,)X
2354 4065(TX)X
2355
2356 3 p
2357 %%Page: 3 3
2358 0(Courier)xf 0 f
2359 10 s 10 xH 0 xS 0 f
2360 3 f
2361 720 258(Seltzer)N
2362 977(&)X
2363 1064(Yigit)X
2364 3278(A)X
2365 3356(New)X
2366 3528(Hashing)X
2367 3831(Package)X
2368 4136(for)X
2369 4259(UNIX)X
2370 1 f
2371 720 538(live)N
2372 862(if)X
2373 933(they)X
2374 1092(existed)X
2375 1340([KNU68].)X
2376 1709(For)X
2377 1841(example,)X
2378 2154(if)X
2379 2224(nodes)X
2380 2432(F)X
2381 720 626(and)N
2382 858(G)X
2383 938(were)X
2384 1117(the)X
2385 1237(children)X
2386 1522(of)X
2387 1610(node)X
2388 1787(C,)X
2389 1881(the)X
2390 2000(bucket)X
2391 2235(address)X
2392 720 714(L00)N
2393 886(could)X
2394 1101(reside)X
2395 1330(in)X
2396 1429(the)X
2397 1563(bits)X
2398 1714(that)X
2399 1870(will)X
2400 2030(eventually)X
2401 2400(be)X
2402 720 802(used)N
2403 887(to)X
2404 969(store)X
2405 1145(nodes)X
2406 1352(F)X
2407 1416(and)X
2408 1552(G)X
2409 1630(and)X
2410 1766(all)X
2411 1866(their)X
2412 2033(children.)X
2413 10 f
2414 720 890 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
2415 3 f
2416 1894 2247(L1)N
2417 784 1925(A)N
2418 1431(E)X
2419 1106 2247(D)N
2420 1428 1281(C)N
2421 1109 1603(B)N
2422 1884 1930(L01)N
2423 1879 1286(L00)N
2424 1221 1814(1)N
2425 903 2131(1)N
2426 1221 1402(0)N
2427 903 1714(0)N
2428 1 Dt
2429 1397 1821 MXY
2430 -8 -32 Dl
2431 -5 19 Dl
2432 -20 6 Dl
2433 33 7 Dl
2434 -187 -182 Dl
2435 1397 1322 MXY
2436 -33 7 Dl
2437 20 6 Dl
2438 5 19 Dl
2439 8 -32 Dl
2440 -187 182 Dl
2441 1069 1639 MXY
2442 -32 7 Dl
2443 20 6 Dl
2444 5 19 Dl
2445 7 -32 Dl
2446 -186 182 Dl
2447 1374 1891 MXY
2448 185 Dc
2449 1779 2133 MXY
2450 0 161 Dl
2451 322 0 Dl
2452 0 -161 Dl
2453 -322 0 Dl
2454 1811 MY
2455 0 161 Dl
2456 322 0 Dl
2457 0 -161 Dl
2458 -322 0 Dl
2459 1166 MY
2460 0 161 Dl
2461 322 0 Dl
2462 0 -161 Dl
2463 -322 0 Dl
2464 1052 2213 MXY
2465 185 Dc
2466 1569 MY
2467 185 Dc
2468 720 1881 MXY
2469 185 Dc
2470 1779 2213 MXY
2471 -28 -17 Dl
2472 10 17 Dl
2473 -10 18 Dl
2474 28 -18 Dl
2475 -543 0 Dl
2476 1769 1891 MXY
2477 -28 -18 Dl
2478 10 18 Dl
2479 -10 18 Dl
2480 28 -18 Dl
2481 -201 0 Dl
2482 1364 1247 MXY
2483 185 Dc
2484 1769 MX
2485 -28 -18 Dl
2486 10 18 Dl
2487 -10 18 Dl
2488 28 -18 Dl
2489 -201 0 Dl
2490 1064 2143 MXY
2491 -7 -32 Dl
2492 -5 19 Dl
2493 -20 6 Dl
2494 32 7 Dl
2495 -181 -181 Dl
2496 3 Dt
2497 -1 Ds
2498 8 s
2499 720 2482(Figure)N
2500 925(1:)X
2501 1 f
2502 1002(Radix)X
2503 1179(search)X
2504 1365(trie)X
2505 1474(with)X
2506 1612(internal)X
2507 1831(nodes)X
2508 2004(A)X
2509 2074(and)X
2510 2189(B,)X
2511 2271(external)X
2512 720 2570(nodes)N
2513 891(C,)X
2514 972(D,)X
2515 1056(and)X
2516 1170(E,)X
2517 1247(and)X
2518 1361(bucket)X
2519 1553(addresses)X
2520 1819(stored)X
2521 1997(in)X
2522 2069(the)X
2523 2168(unused)X
2524 2370(por-)X
2525 720 2658(tion)N
2526 836(of)X
2527 905(the)X
2528 999(trie.)X
2529 10 s
2530 10 f
2531 720 2922 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
2532 1 f
2533 892 3124(Further)N
2534 1153(simpli\256cations)X
2535 1647(of)X
2536 1738(the)X
2537 1860(above)X
2538 2076([YIG89])X
2539 2377(are)X
2540 720 3212(possible.)N
2541 1038(Using)X
2542 1265(a)X
2543 1337(single)X
2544 1564(radix)X
2545 1765(trie)X
2546 1908(to)X
2547 2006(avoid)X
2548 2219(the)X
2549 2352(\256rst)X
2550 720 3300(hash)N
2551 904(function,)X
2552 1227(replacing)X
2553 1562(the)X
2554 1696(pseudo-random)X
2555 2231(number)X
2556 720 3388(generator)N
2557 1052(with)X
2558 1222(a)X
2559 1286(well)X
2560 1452(designed,)X
2561 1785(bit-randomizing)X
2562 2329(hash)X
2563 720 3476(function,)N
2564 1053(and)X
2565 1215(using)X
2566 1434(the)X
2567 1578(portion)X
2568 1855(of)X
2569 1967(the)X
2570 2110(hash)X
2571 2302(value)X
2572 720 3564(exposed)N
2573 1021(during)X
2574 1268(the)X
2575 1404(trie)X
2576 1549(traversal)X
2577 1864(as)X
2578 1969(a)X
2579 2042(direct)X
2580 2262(bucket)X
2581 720 3652(address)N
2582 990(results)X
2583 1228(in)X
2584 1319(an)X
2585 2 f
2586 1424(access)X
2587 1 f
2588 1663(function)X
2589 1959(that)X
2590 2108(works)X
2591 2333(very)X
2592 720 3740(similar)N
2593 974(to)X
2594 1068(Thompson's)X
2595 1499(algorithm)X
2596 1841(above.)X
2597 2084(The)X
2598 2240(follow-)X
2599 720 3828(ing)N
2600 847(algorithm)X
2601 1183(uses)X
2602 1346(the)X
2603 1469(hash)X
2604 1641(value)X
2605 1840(to)X
2606 1927(traverse)X
2607 2206(a)X
2608 2266(linear-)X
2609 720 3916(ized)N
2610 874(radix)X
2611 1059(trie)X
2612 2 f
2613 8 s
2614 1166 3891(3)N
2615 1 f
2616 10 s
2617 1218 3916(starting)N
2618 1478(at)X
2619 1556(the)X
2620 1674(0)X
2621 2 f
2622 7 s
2623 3884(th)Y
2624 10 s
2625 1 f
2626 1791 3916(bit.)N
2627 0 f
2628 8 s
2629 720 4215(tbit)N
2630 910(=)X
2631 986(0;)X
2632 1296(/*)X
2633 1410(radix)X
2634 1638(trie)X
2635 1828(index)X
2636 2056(*/)X
2637 720 4303(hbit)N
2638 910(=)X
2639 986(0;)X
2640 1296(/*)X
2641 1410(hash)X
2642 1600(bit)X
2643 1752(index)X
2644 2056(*/)X
2645 720 4391(mask)N
2646 910(=)X
2647 986(0;)X
2648 720 4479(hash)N
2649 910(=)X
2650 986 -0.4038(calchash\(key\);)AX
2651 720 4655(for)N
2652 872(\(mask)X
2653 1100(=)X
2654 1176(0;)X
2655 910 4743 -0.4018(isbitset\(tbit\);)AN
2656 910 4831(mask)N
2657 1100(=)X
2658 1176(\(mask)X
2659 1404(<<)X
2660 1518(1\))X
2661 1632(+)X
2662 1708(1\))X
2663 1008 4919(if)N
2664 1122(\(hash)X
2665 1350(&)X
2666 1426(\(1)X
2667 1540(<<)X
2668 1654 -0.4219(hbit++\)\)\))AX
2669 1160 5007(/*)N
2670 1274(right)X
2671 1502(son)X
2672 1692(*/)X
2673 1160 5095(tbit)N
2674 1350(=)X
2675 1426(2)X
2676 1502(*)X
2677 1578(tbit)X
2678 1768(+)X
2679 1844(2;)X
2680 1008 5183(else)N
2681 1 f
2682 16 s
2683 720 5353 MXY
2684 864 0 Dl
2685 2 f
2686 8 s
2687 760 5408(3)N
2688 1 f
2689 9 s
2690 818 5433(A)N
2691 896(linearized)X
2692 1206(radix)X
2693 1380(trie)X
2694 1502(is)X
2695 1576(merely)X
2696 1802(an)X
2697 1895(array)X
2698 2068(representation)X
2699 720 5513(of)N
2700 800(the)X
2701 908(radix)X
2702 1076(search)X
2703 1280(trie)X
2704 1396(described)X
2705 1692(above.)X
2706 1920(The)X
2707 2052(children)X
2708 2308(of)X
2709 2388(the)X
2710 720 5593(node)N
2711 885(with)X
2712 1038(index)X
2713 1223(i)X
2714 1267(can)X
2715 1391(be)X
2716 1483(found)X
2717 1675(at)X
2718 1751(the)X
2719 1863(nodes)X
2720 2055(indexed)X
2721 2307(2*i+1)X
2722 720 5673(and)N
2723 842(2*i+2.)X
2724 0 f
2725 8 s
2726 3146 538(/*)N
2727 3260(left)X
2728 3450(son)X
2729 3678(*/)X
2730 3146 626(tbit)N
2731 3336(=)X
2732 3412(2)X
2733 3488(*)X
2734 3564(tbit)X
2735 3754(+)X
2736 3830(1;)X
2737 2706 802(bucket)N
2738 2972(=)X
2739 3048(hash)X
2740 3238(&)X
2741 3314(mask;)X
2742 2 f
2743 10 s
2744 3495 1167(gdbm)N
2745 1 f
2746 2878 1299(The)N
2747 3027(gdbm)X
2748 3233(\(GNU)X
2749 3458(data)X
2750 3616(base)X
2751 3783(manager\))X
2752 4111(library)X
2753 4349(is)X
2754 4426(a)X
2755 2706 1387(UNIX)N
2756 2933(database)X
2757 3236(manager)X
2758 3539(written)X
2759 3792(by)X
2760 3897(Philip)X
2761 4112(A.)X
2762 4215(Nelson,)X
2763 2706 1475(and)N
2764 2848(made)X
2765 3048(available)X
2766 3364(as)X
2767 3457(a)X
2768 3518(part)X
2769 3668(of)X
2770 3760(the)X
2771 3883(FSF)X
2772 4040(software)X
2773 4342(dis-)X
2774 2706 1563(tribution.)N
2775 3052(The)X
2776 3207(gdbm)X
2777 3419(library)X
2778 3663(provides)X
2779 3969(the)X
2780 4097(same)X
2781 4292(func-)X
2782 2706 1651(tionality)N
2783 3028(of)X
2784 3151(the)X
2785 2 f
2786 3304(dbm)X
2787 1 f
2788 3442(/)X
2789 2 f
2790 3464(ndbm)X
2791 1 f
2792 3697(libraries)X
2793 4015([NEL90])X
2794 4360(but)X
2795 2706 1739(attempts)N
2796 3018(to)X
2797 3121(avoid)X
2798 3340(some)X
2799 3550(of)X
2800 3658(their)X
2801 3846(shortcomings.)X
2802 4337(The)X
2803 2706 1827(gdbm)N
2804 2918(library)X
2805 3162(allows)X
2806 3401(for)X
2807 3525(arbitrary-length)X
2808 4059(data,)X
2809 4242(and)X
2810 4387(its)X
2811 2706 1915(database)N
2812 3027(is)X
2813 3124(a)X
2814 3203(singular,)X
2815 3524(non-sparse)X
2816 2 f
2817 8 s
2818 3872 1890(4)N
2819 1 f
2820 10 s
2821 3947 1915(\256le.)N
2822 4112(The)X
2823 4280(gdbm)X
2824 2706 2003(library)N
2825 2947(also)X
2826 3103(includes)X
2827 2 f
2828 3396(dbm)X
2829 1 f
2830 3560(and)X
2831 2 f
2832 3702(ndbm)X
2833 1 f
2834 3906(compatible)X
2835 4288(inter-)X
2836 2706 2091(faces.)N
2837 2878 2205(The)N
2838 3025(gdbm)X
2839 3229(library)X
2840 3465(is)X
2841 3540(based)X
2842 3745(on)X
2843 2 f
2844 3847(extensible)X
2845 4189(hashing)X
2846 1 f
2847 4442(,)X
2848 2706 2293(a)N
2849 2766(dynamic)X
2850 3066(hashing)X
2851 3339(algorithm)X
2852 3674(by)X
2853 3778(Fagin)X
2854 3984(et)X
2855 4066(al)X
2856 4148([FAG79].)X
2857 2706 2381(This)N
2858 2881(algorithm)X
2859 3225(differs)X
2860 3467(from)X
2861 3655(the)X
2862 3785(previously)X
2863 4155(discussed)X
2864 2706 2469(algorithms)N
2865 3069(in)X
2866 3152(that)X
2867 3293(it)X
2868 3358(uses)X
2869 3517(a)X
2870 2 f
2871 3574(directory)X
2872 1 f
2873 3889(that)X
2874 4030(is)X
2875 4103(a)X
2876 4159(collapsed)X
2877 2706 2557(representation)N
2878 3192([ENB88])X
2879 3517(of)X
2880 3615(the)X
2881 3744(radix)X
2882 3940(search)X
2883 4177(trie)X
2884 4315(used)X
2885 2706 2645(by)N
2886 2 f
2887 2806(sdbm)X
2888 1 f
2889 2975(.)X
2890 10 f
2891 2706 2733 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
2892 3 f
2893 7 s
2894 3572 3761(L1)N
2895 1 Dt
2896 3485 3738 MXY
2897 -20 -13 Dl
2898 7 13 Dl
2899 -7 13 Dl
2900 20 -13 Dl
2901 -400 0 Dl
2902 3180 3027 MXY
2903 136 Dc
2904 2706 3494 MXY
2905 136 Dc
2906 2950 3264 MXY
2907 136 Dc
2908 3738 MY
2909 136 Dc
2910 3485 2968 MXY
2911 0 118 Dl
2912 238 0 Dl
2913 0 -118 Dl
2914 -238 0 Dl
2915 3442 MY
2916 0 119 Dl
2917 238 0 Dl
2918 0 -119 Dl
2919 -238 0 Dl
2920 3679 MY
2921 0 119 Dl
2922 238 0 Dl
2923 0 -119 Dl
2924 -238 0 Dl
2925 3187 3501 MXY
2926 136 Dc
2927 2963 3316 MXY
2928 -24 5 Dl
2929 15 4 Dl
2930 4 15 Dl
2931 5 -24 Dl
2932 -137 134 Dl
2933 3204 3083 MXY
2934 -24 5 Dl
2935 15 4 Dl
2936 3 14 Dl
2937 6 -23 Dl
2938 -137 133 Dl
2939 3204 3450 MXY
2940 -6 -24 Dl
2941 -3 14 Dl
2942 -15 5 Dl
2943 24 5 Dl
2944 -137 -134 Dl
2945 2842 3369(0)N
2946 3075 3139(0)N
2947 2842 3676(1)N
2948 3075 3443(1)N
2949 3562 3054(L00)N
2950 3565 3528(L01)N
2951 4197 2968 MXY
2952 0 118 Dl
2953 237 0 Dl
2954 0 -118 Dl
2955 -237 0 Dl
2956 3205 MY
2957 0 119 Dl
2958 237 0 Dl
2959 0 -119 Dl
2960 -237 0 Dl
2961 3561 MY
2962 0 118 Dl
2963 237 0 Dl
2964 0 -118 Dl
2965 -237 0 Dl
2966 3960 2909 MXY
2967 0 237 Dl
2968 118 0 Dl
2969 0 -237 Dl
2970 -118 0 Dl
2971 3146 MY
2972 0 237 Dl
2973 118 0 Dl
2974 0 -237 Dl
2975 -118 0 Dl
2976 3383 MY
2977 0 237 Dl
2978 118 0 Dl
2979 0 -237 Dl
2980 -118 0 Dl
2981 3620 MY
2982 0 237 Dl
2983 118 0 Dl
2984 0 -237 Dl
2985 -118 0 Dl
2986 4197 3027 MXY
2987 -21 -13 Dl
2988 8 13 Dl
2989 -8 13 Dl
2990 21 -13 Dl
2991 -119 0 Dl
2992 4197 3264 MXY
2993 -21 -13 Dl
2994 8 13 Dl
2995 -8 13 Dl
2996 21 -13 Dl
2997 -119 0 Dl
2998 3501 MY
2999 59 0 Dl
3000 0 89 Dl
3001 4078 3738 MXY
3002 59 0 Dl
3003 0 -88 Dl
3004 4197 3590 MXY
3005 -21 -13 Dl
3006 8 13 Dl
3007 -8 13 Dl
3008 21 -13 Dl
3009 -60 0 Dl
3010 4197 3650 MXY
3011 -21 -13 Dl
3012 8 13 Dl
3013 -8 13 Dl
3014 21 -13 Dl
3015 -60 0 Dl
3016 3991 3050(00)N
3017 3991 3287(01)N
3018 3991 3524(10)N
3019 3991 3761(11)N
3020 4269 3050(L00)N
3021 4269 3287(L01)N
3022 4283 3643(L1)N
3023 3485 3501 MXY
3024 -20 -13 Dl
3025 7 13 Dl
3026 -7 13 Dl
3027 20 -13 Dl
3028 -155 0 Dl
3029 3485 3027 MXY
3030 -20 -13 Dl
3031 7 13 Dl
3032 -7 13 Dl
3033 20 -13 Dl
3034 -163 0 Dl
3035 2967 3687 MXY
3036 -5 -24 Dl
3037 -4 14 Dl
3038 -15 4 Dl
3039 24 6 Dl
3040 -141 -141 Dl
3041 3 Dt
3042 -1 Ds
3043 8 s
3044 2706 4033(Figure)N
3045 2903(2:)X
3046 1 f
3047 2972(A)X
3048 3034(radix)X
3049 3181(search)X
3050 3359(trie)X
3051 3460(and)X
3052 3568(a)X
3053 3612(directory)X
3054 3858(representing)X
3055 4189(the)X
3056 4283(trie.)X
3057 10 s
3058 10 f
3059 2706 4209 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
3060 1 f
3061 2878 4411(In)N
3062 2968(this)X
3063 3106(algorithm,)X
3064 3460(a)X
3065 3519(directory)X
3066 3832(consists)X
3067 4108(of)X
3068 4198(a)X
3069 4256(search)X
3070 2706 4499(trie)N
3071 2847(of)X
3072 2947(depth)X
3073 2 f
3074 3158(n)X
3075 1 f
3076 3211(,)X
3077 3264(containing)X
3078 3635(2)X
3079 2 f
3080 7 s
3081 4467(n)Y
3082 10 s
3083 1 f
3084 3749 4499(bucket)N
3085 3996(addresses)X
3086 4337(\(i.e.)X
3087 2706 4587(each)N
3088 2897(element)X
3089 3194(of)X
3090 3304(the)X
3091 3445(trie)X
3092 3594(is)X
3093 3689(a)X
3094 3767(bucket)X
3095 4023(address\).)X
3096 4373(To)X
3097 2706 4675(access)N
3098 2935(the)X
3099 3056(hash)X
3100 3226(table,)X
3101 3425(a)X
3102 3483(32-bit)X
3103 3696(hash)X
3104 3865(value)X
3105 4061(is)X
3106 4136(calculated)X
3107 2706 4763(and)N
3108 2 f
3109 2861(n)X
3110 1 f
3111 2953(bits)X
3112 3107(of)X
3113 3213(the)X
3114 3350(value)X
3115 3563(are)X
3116 3701(used)X
3117 3886(to)X
3118 3986(index)X
3119 4202(into)X
3120 4364(the)X
3121 2706 4851(directory)N
3122 3018(to)X
3123 3102(obtain)X
3124 3324(a)X
3125 3382(bucket)X
3126 3618(address.)X
3127 3921(It)X
3128 3992(is)X
3129 4067(important)X
3130 4400(to)X
3131 2706 4939(note)N
3132 2866(that)X
3133 3008(multiple)X
3134 3296(entries)X
3135 3532(of)X
3136 3620(this)X
3137 3756(directory)X
3138 4067(may)X
3139 4226(contain)X
3140 2706 5027(the)N
3141 2833(same)X
3142 3026(bucket)X
3143 3268(address)X
3144 3537(as)X
3145 3632(a)X
3146 3696(result)X
3147 3902(of)X
3148 3997(directory)X
3149 4315(dou-)X
3150 2706 5115(bling)N
3151 2903(during)X
3152 3145(bucket)X
3153 3392(splitting.)X
3154 3706(Figure)X
3155 3948(2)X
3156 4021(illustrates)X
3157 4364(the)X
3158 2706 5203(relationship)N
3159 3126(between)X
3160 3436(a)X
3161 3513(typical)X
3162 3772(\(skewed\))X
3163 4108(search)X
3164 4355(trie)X
3165 2706 5291(and)N
3166 2850(its)X
3167 2953(directory)X
3168 3271(representation.)X
3169 3774(The)X
3170 3927(formation)X
3171 4270(of)X
3172 4364(the)X
3173 2706 5379(directory)N
3174 3016(shown)X
3175 3245(in)X
3176 3327(the)X
3177 3445(\256gure)X
3178 3652(is)X
3179 3725(as)X
3180 3812(follows.)X
3181 16 s
3182 2706 5593 MXY
3183 864 0 Dl
3184 2 f
3185 8 s
3186 2746 5648(4)N
3187 1 f
3188 9 s
3189 2796 5673(It)N
3190 2858(does)X
3191 3008(not)X
3192 3118(contain)X
3193 3348(holes.)X
3194 3 f
3195 10 s
3196 720 5960(USENIX)N
3197 9 f
3198 1042(-)X
3199 3 f
3200 1106(Winter)X
3201 1371('91)X
3202 9 f
3203 1498(-)X
3204 3 f
3205 1562(Dallas,)X
3206 1815(TX)X
3207 4424(3)X
3208
3209 4 p
3210 %%Page: 4 4
3211 0(Courier)xf 0 f
3212 10 s 10 xH 0 xS 0 f
3213 3 f
3214 432 258(A)N
3215 510(New)X
3216 682(Hashing)X
3217 985(Package)X
3218 1290(for)X
3219 1413(UNIX)X
3220 3663(Seltzer)X
3221 3920(&)X
3222 4007(Yigit)X
3223 1 f
3224 604 538(Initially,)N
3225 937(there)X
3226 1158(is)X
3227 1271(one)X
3228 1446(slot)X
3229 1620(in)X
3230 1741(the)X
3231 1898(directory)X
3232 432 626(addressing)N
3233 802(a)X
3234 865(single)X
3235 1083(bucket.)X
3236 1364(The)X
3237 1515(depth)X
3238 1719(of)X
3239 1812(the)X
3240 1936(trie)X
3241 2069(is)X
3242 2148(0)X
3243 432 714(and)N
3244 577(0)X
3245 646(bits)X
3246 790(of)X
3247 886(each)X
3248 1063(hash)X
3249 1239(value)X
3250 1442(are)X
3251 1570(examined)X
3252 1910(to)X
3253 2000(deter-)X
3254 432 802(mine)N
3255 624(in)X
3256 718(which)X
3257 946(bucket)X
3258 1192(to)X
3259 1286(place)X
3260 1488(a)X
3261 1556(key;)X
3262 1726(all)X
3263 1837(keys)X
3264 2015(go)X
3265 2126(in)X
3266 432 890(bucket)N
3267 682(0.)X
3268 797(When)X
3269 1024(this)X
3270 1174(bucket)X
3271 1423(is)X
3272 1511(full,)X
3273 1677(its)X
3274 1787(contents)X
3275 2089(are)X
3276 432 978(divided)N
3277 698(between)X
3278 992(L0)X
3279 1107(and)X
3280 1249(L1)X
3281 1363(as)X
3282 1455(was)X
3283 1605(done)X
3284 1786(in)X
3285 1873(the)X
3286 1996(previ-)X
3287 432 1066(ously)N
3288 664(discussed)X
3289 1030(algorithms.)X
3290 1471(After)X
3291 1700(this)X
3292 1874(split,)X
3293 2090(the)X
3294 432 1154(address)N
3295 710(of)X
3296 814(the)X
3297 948(second)X
3298 1207(bucket)X
3299 1457(must)X
3300 1648(be)X
3301 1760(stored)X
3302 1992(in)X
3303 2090(the)X
3304 432 1242(directory.)N
3305 796(To)X
3306 939(accommodate)X
3307 1438(the)X
3308 1589(new)X
3309 1776(address,)X
3310 2090(the)X
3311 432 1330(directory)N
3312 752(is)X
3313 835(split)X
3314 2 f
3315 8 s
3316 972 1305(5)N
3317 1 f
3318 10 s
3319 1330(,)Y
3320 1054(by)X
3321 1163(doubling)X
3322 1476(it,)X
3323 1569(thus)X
3324 1731(increasing)X
3325 2090(the)X
3326 432 1418(depth)N
3327 630(of)X
3328 717(the)X
3329 835(directory)X
3330 1145(by)X
3331 1245(one.)X
3332 604 1532(After)N
3333 813(this)X
3334 967(split,)X
3335 1163(a)X
3336 1237(single)X
3337 1466(bit)X
3338 1588(of)X
3339 1693(the)X
3340 1829(hash)X
3341 2014(value)X
3342 432 1620(needs)N
3343 663(to)X
3344 773(be)X
3345 896(examined)X
3346 1255(to)X
3347 1364(decide)X
3348 1621(whether)X
3349 1927(the)X
3350 2072(key)X
3351 432 1708(belongs)N
3352 711(to)X
3353 803(L0)X
3354 922(or)X
3355 1019(L1.)X
3356 1158(Once)X
3357 1358(one)X
3358 1504(of)X
3359 1601(these)X
3360 1795(buckets)X
3361 2069(\256lls)X
3362 432 1796(\(L0)N
3363 578(for)X
3364 702(example\),)X
3365 1051(it)X
3366 1125(is)X
3367 1208(split)X
3368 1375(as)X
3369 1472(before,)X
3370 1728(and)X
3371 1873(the)X
3372 2000(direc-)X
3373 432 1884(tory)N
3374 585(is)X
3375 662(split)X
3376 823(again)X
3377 1021(to)X
3378 1107(make)X
3379 1305(room)X
3380 1498(for)X
3381 1615(the)X
3382 1736(address)X
3383 2000(of)X
3384 2090(the)X
3385 432 1972(third)N
3386 618(bucket.)X
3387 927(This)X
3388 1104(splitting)X
3389 1400(causes)X
3390 1645(the)X
3391 1778(addresses)X
3392 2121(of)X
3393 432 2060(the)N
3394 567(non-splitting)X
3395 1012(bucket)X
3396 1263(\(L1\))X
3397 1443(to)X
3398 1541(be)X
3399 1653(duplicated.)X
3400 2063(The)X
3401 432 2148(directory)N
3402 766(now)X
3403 948(has)X
3404 1099(four)X
3405 1277(entries,)X
3406 1555(a)X
3407 1635(depth)X
3408 1857(of)X
3409 1968(2,)X
3410 2072(and)X
3411 432 2236(indexes)N
3412 700(the)X
3413 821(buckets)X
3414 1089(L00,)X
3415 1261(L01)X
3416 1413(and)X
3417 1552(L1,)X
3418 1684(as)X
3419 1774(shown)X
3420 2006(in)X
3421 2090(the)X
3422 432 2324(Figure)N
3423 661(2.)X
3424 604 2438(The)N
3425 756(crucial)X
3426 1002(part)X
3427 1154(of)X
3428 1247(the)X
3429 1371(algorithm)X
3430 1708(is)X
3431 1787(the)X
3432 1911(observa-)X
3433 432 2526(tion)N
3434 580(that)X
3435 724(L1)X
3436 837(is)X
3437 914(addressed)X
3438 1255(twice)X
3439 1453(in)X
3440 1539(the)X
3441 1661(directory.)X
3442 1995(If)X
3443 2073(this)X
3444 432 2614(bucket)N
3445 679(were)X
3446 869(to)X
3447 964(split)X
3448 1134(now,)X
3449 1324(the)X
3450 1454(directory)X
3451 1776(already)X
3452 2045(con-)X
3453 432 2702(tains)N
3454 611(room)X
3455 808(to)X
3456 898(hold)X
3457 1067(the)X
3458 1192(address)X
3459 1460(of)X
3460 1554(the)X
3461 1679(new)X
3462 1840(bucket.)X
3463 2121(In)X
3464 432 2790(general,)N
3465 711(the)X
3466 831(relationship)X
3467 1231(between)X
3468 1521(the)X
3469 1641(directory)X
3470 1953(and)X
3471 2090(the)X
3472 432 2878(number)N
3473 704(of)X
3474 798(bucket)X
3475 1039(addresses)X
3476 1374(contained)X
3477 1713(therein)X
3478 1962(is)X
3479 2041(used)X
3480 432 2966(to)N
3481 517(decide)X
3482 750(when)X
3483 947(to)X
3484 1031(split)X
3485 1190(the)X
3486 1310(directory.)X
3487 1662(Each)X
3488 1845(bucket)X
3489 2081(has)X
3490 432 3054(a)N
3491 505(depth,)X
3492 740(\()X
3493 2 f
3494 767(n)X
3495 7 s
3496 3070(b)Y
3497 10 s
3498 1 f
3499 848 3054(\),)N
3500 932(associated)X
3501 1299(with)X
3502 1478(it)X
3503 1558(and)X
3504 1710(appears)X
3505 1992(in)X
3506 2090(the)X
3507 432 3142(directory)N
3508 744(exactly)X
3509 998(2)X
3510 2 f
3511 7 s
3512 3106(n)Y
3513 9 f
3514 1075(-)X
3515 2 f
3516 1106(n)X
3517 4 s
3518 3110(b)Y
3519 7 s
3520 1 f
3521 10 s
3522 1181 3142(times.)N
3523 1396(When)X
3524 1610(a)X
3525 1668(bucket)X
3526 1904(splits,)X
3527 2113(its)X
3528 432 3230(depth)N
3529 638(increases)X
3530 961(by)X
3531 1069(one.)X
3532 1253(The)X
3533 1406(directory)X
3534 1724(must)X
3535 1907(split)X
3536 2072(any)X
3537 432 3318(time)N
3538 602(a)X
3539 665(bucket's)X
3540 964(depth)X
3541 1169(exceeds)X
3542 1451(the)X
3543 1576(depth)X
3544 1781(of)X
3545 1875(the)X
3546 2000(direc-)X
3547 432 3406(tory.)N
3548 630(The)X
3549 784(following)X
3550 1123(code)X
3551 1303(fragment)X
3552 1621(helps)X
3553 1818(to)X
3554 1908(illustrate)X
3555 432 3494(the)N
3556 554(extendible)X
3557 912(hashing)X
3558 1185(algorithm)X
3559 1520([FAG79])X
3560 1838(for)X
3561 1955(access-)X
3562 432 3582(ing)N
3563 554(individual)X
3564 898(buckets)X
3565 1163(and)X
3566 1299(maintaining)X
3567 1701(the)X
3568 1819(directory.)X
3569 0 f
3570 8 s
3571 432 3881(hash)N
3572 622(=)X
3573 698 -0.4038(calchash\(key\);)AX
3574 432 3969(mask)N
3575 622(=)X
3576 698 -0.4018(maskvec[depth];)AX
3577 432 4145(bucket)N
3578 698(=)X
3579 774 -0.4038(directory[hash)AX
3580 1344(&)X
3581 1420(mask];)X
3582 432 4321(/*)N
3583 546(Key)X
3584 698 -0.4219(Insertion)AX
3585 1078(*/)X
3586 432 4409(if)N
3587 546 -0.4038(\(store\(bucket,)AX
3588 1116(key,)X
3589 1306(data\))X
3590 1534(==)X
3591 1648(FAIL\))X
3592 1876({)X
3593 720 4497(newbl)N
3594 948(=)X
3595 1024 -0.4167(getpage\(\);)AX
3596 720 4585 -0.4000(bucket->depth++;)AN
3597 720 4673 -0.4091(newbl->depth)AN
3598 1214(=)X
3599 1290 -0.4038(bucket->depth;)AX
3600 720 4761(if)N
3601 834 -0.4038(\(bucket->depth)AX
3602 1404(>)X
3603 1480(depth\))X
3604 1746({)X
3605 1008 4849(/*)N
3606 1122(double)X
3607 1388 -0.4219(directory)AX
3608 1768(*/)X
3609 1008 4937(depth++;)N
3610 1 f
3611 16 s
3612 432 5033 MXY
3613 864 0 Dl
3614 2 f
3615 8 s
3616 472 5088(5)N
3617 1 f
3618 9 s
3619 534 5113(This)N
3620 692(decision)X
3621 962(to)X
3622 1048(split)X
3623 1202(the)X
3624 1319(directory)X
3625 1608(is)X
3626 1685(based)X
3627 1878(on)X
3628 1979(a)X
3629 2040(com-)X
3630 432 5193(parison)N
3631 666(of)X
3632 748(the)X
3633 858(depth)X
3634 1040(of)X
3635 1121(the)X
3636 1230(page)X
3637 1387(being)X
3638 1568(split)X
3639 1713(and)X
3640 1838(the)X
3641 1947(depth)X
3642 2128(of)X
3643 432 5273(the)N
3644 543(trie.)X
3645 698(In)X
3646 781(Figure)X
3647 992(2,)X
3648 1069(the)X
3649 1180(depths)X
3650 1390(of)X
3651 1472(both)X
3652 1622(L00)X
3653 1760(and)X
3654 1886(L01)X
3655 2024(are)X
3656 2134(2,)X
3657 432 5353(whereas)N
3658 689(the)X
3659 798(depth)X
3660 979(of)X
3661 1060(L1)X
3662 1161(is)X
3663 1230(1.)X
3664 1323(Therefore,)X
3665 1646(if)X
3666 1710(L1)X
3667 1810(were)X
3668 1970(to)X
3669 2046(split,)X
3670 432 5433(the)N
3671 543(directory)X
3672 826(would)X
3673 1029(not)X
3674 1144(need)X
3675 1303(to)X
3676 1382(split.)X
3677 1565(In)X
3678 1648(reality,)X
3679 1872(a)X
3680 1926(bucket)X
3681 2140(is)X
3682 432 5513(allocated)N
3683 727(for)X
3684 846(the)X
3685 969(directory)X
3686 1264(at)X
3687 1351(the)X
3688 1474(time)X
3689 1637(of)X
3690 1732(\256le)X
3691 1858(creation)X
3692 2124(so)X
3693 432 5593(although)N
3694 707(the)X
3695 818(directory)X
3696 1100(splits)X
3697 1274(logically,)X
3698 1566(physical)X
3699 1828(splits)X
3700 2002(do)X
3701 2096(not)X
3702 432 5673(occur)N
3703 610(until)X
3704 760(the)X
3705 866(\256le)X
3706 976(becomes)X
3707 1246(quite)X
3708 1408(large.)X
3709 0 f
3710 8 s
3711 2994 538 -0.4219(directory)AN
3712 3374(=)X
3713 3450 -0.3971(double\(directory\);)AX
3714 2706 626(})N
3715 2706 714 -0.3958(splitbucket\(bucket,)AN
3716 3466(newbl\))X
3717 2706 802(...)N
3718 2418 890(})N
3719 2 f
3720 10 s
3721 3169 1255(hsearch)N
3722 1 f
3723 2590 1387(Since)N
3724 2 f
3725 2807(hsearch)X
3726 1 f
3727 3100(does)X
3728 3286(not)X
3729 3427(have)X
3730 3617(to)X
3731 3717(translate)X
3732 4027(hash)X
3733 2418 1475(values)N
3734 2659(into)X
3735 2819(disk)X
3736 2988(addresses,)X
3737 3352(it)X
3738 3432(can)X
3739 3579(use)X
3740 3721(much)X
3741 3934(simpler)X
3742 2418 1563(algorithms)N
3743 2808(than)X
3744 2994(those)X
3745 3211(de\256ned)X
3746 3495(above.)X
3747 3775(System)X
3748 4058(V's)X
3749 2 f
3750 2418 1651(hsearch)N
3751 1 f
3752 2708(constructs)X
3753 3069(a)X
3754 3141(\256xed-size)X
3755 3489(hash)X
3756 3671(table)X
3757 3862(\(speci\256ed)X
3758 2418 1739(by)N
3759 2519(the)X
3760 2637(user)X
3761 2791(at)X
3762 2869(table)X
3763 3045(creation\).)X
3764 3391(By)X
3765 3504(default,)X
3766 3767(a)X
3767 3823(multiplica-)X
3768 2418 1827(tive)N
3769 2570(hash)X
3770 2748(function)X
3771 3046(based)X
3772 3260(on)X
3773 3371(that)X
3774 3522(described)X
3775 3861(in)X
3776 3954(Knuth,)X
3777 2418 1915(Volume)N
3778 2710(3,)X
3779 2804(section)X
3780 3065(6.4)X
3781 3199([KNU68])X
3782 3541(is)X
3783 3628(used)X
3784 3809(to)X
3785 3905(obtain)X
3786 4138(a)X
3787 2418 2003(primary)N
3788 2694(bucket)X
3789 2930(address.)X
3790 3233(If)X
3791 3309(this)X
3792 3446(bucket)X
3793 3681(is)X
3794 3755(full,)X
3795 3907(a)X
3796 3964(secon-)X
3797 2418 2091(dary)N
3798 2593(multiplicative)X
3799 3069(hash)X
3800 3248(value)X
3801 3454(is)X
3802 3538(computed)X
3803 3885(to)X
3804 3978(de\256ne)X
3805 2418 2179(the)N
3806 2542(probe)X
3807 2751(interval.)X
3808 3062(The)X
3809 3213(probe)X
3810 3422(interval)X
3811 3693(is)X
3812 3772(added)X
3813 3989(to)X
3814 4076(the)X
3815 2418 2267(original)N
3816 2712(bucket)X
3817 2971(address)X
3818 3257(\(modulo)X
3819 3573(the)X
3820 3716(table)X
3821 3916(size\))X
3822 4112(to)X
3823 2418 2355(obtain)N
3824 2658(a)X
3825 2734(new)X
3826 2908(bucket)X
3827 3162(address.)X
3828 3483(This)X
3829 3665(process)X
3830 3946(repeats)X
3831 2418 2443(until)N
3832 2588(an)X
3833 2688(empty)X
3834 2911(bucket)X
3835 3148(is)X
3836 3224(found.)X
3837 3474(If)X
3838 3551(no)X
3839 3654(bucket)X
3840 3891(is)X
3841 3967(found,)X
3842 2418 2531(an)N
3843 2514(insertion)X
3844 2814(fails)X
3845 2972(with)X
3846 3134(a)X
3847 3190(``table)X
3848 3420(full'')X
3849 3605(condition.)X
3850 2590 2645(The)N
3851 2768(basic)X
3852 2986(algorithm)X
3853 3350(may)X
3854 3541(be)X
3855 3670(modi\256ed)X
3856 4006(by)X
3857 4138(a)X
3858 2418 2733(number)N
3859 2705(of)X
3860 2813(compile)X
3861 3112(time)X
3862 3295(options)X
3863 3571(available)X
3864 3902(to)X
3865 4005(those)X
3866 2418 2821(users)N
3867 2604(with)X
3868 2767(AT&T)X
3869 3006(source)X
3870 3237(code.)X
3871 3450(First,)X
3872 3637(the)X
3873 3756(package)X
3874 4040(pro-)X
3875 2418 2909(vides)N
3876 2638(two)X
3877 2809(options)X
3878 3094(for)X
3879 3238(hash)X
3880 3435(functions.)X
3881 3803(Users)X
3882 4036(may)X
3883 2418 2997(specify)N
3884 2690(their)X
3885 2877(own)X
3886 3055(hash)X
3887 3242(function)X
3888 3549(by)X
3889 3669(compiling)X
3890 4032(with)X
3891 2418 3085(``USCR'')N
3892 2757(de\256ned)X
3893 3016(and)X
3894 3155(declaring)X
3895 3477(and)X
3896 3616(de\256ning)X
3897 3901(the)X
3898 4022(vari-)X
3899 2418 3173(able)N
3900 2 f
3901 2578(hcompar)X
3902 1 f
3903 2863(,)X
3904 2909(a)X
3905 2971(function)X
3906 3263(taking)X
3907 3488(two)X
3908 3633(string)X
3909 3840(arguments)X
3910 2418 3261(and)N
3911 2560(returning)X
3912 2880(an)X
3913 2982(integer.)X
3914 3271(Users)X
3915 3480(may)X
3916 3643(also)X
3917 3797(request)X
3918 4054(that)X
3919 2418 3349(hash)N
3920 2587(values)X
3921 2814(be)X
3922 2912(computed)X
3923 3250(simply)X
3924 3489(by)X
3925 3590(taking)X
3926 3811(the)X
3927 3930(modulo)X
3928 2418 3437(of)N
3929 2521(key)X
3930 2673(\(using)X
3931 2909(division)X
3932 3201(rather)X
3933 3424(than)X
3934 3597(multiplication)X
3935 4080(for)X
3936 2418 3525(hash)N
3937 2589(value)X
3938 2787(calculation\).)X
3939 3230(If)X
3940 3308(this)X
3941 3447(technique)X
3942 3783(is)X
3943 3859(used,)X
3944 4049(col-)X
3945 2418 3613(lisions)N
3946 2651(are)X
3947 2775(resolved)X
3948 3072(by)X
3949 3176(scanning)X
3950 3485(sequentially)X
3951 3896(from)X
3952 4076(the)X
3953 2418 3701(selected)N
3954 2702(bucket)X
3955 2941(\(linear)X
3956 3176(probing\).)X
3957 3517(This)X
3958 3684(option)X
3959 3913(is)X
3960 3991(avail-)X
3961 2418 3789(able)N
3962 2572(by)X
3963 2672(de\256ning)X
3964 2954(the)X
3965 3072(variable)X
3966 3351(``DIV'')X
3967 3622(at)X
3968 3700(compile)X
3969 3978(time.)X
3970 2590 3903(A)N
3971 2720(second)X
3972 3015(option,)X
3973 3311(based)X
3974 3565(on)X
3975 3716(an)X
3976 3863(algorithm)X
3977 2418 3991(discovered)N
3978 2787(by)X
3979 2888(Richard)X
3980 3163(P.)X
3981 3248(Brent,)X
3982 3466(rearranges)X
3983 3822(the)X
3984 3940(table)X
3985 4116(at)X
3986 2418 4079(the)N
3987 2549(time)X
3988 2724(of)X
3989 2824(insertion)X
3990 3137(in)X
3991 3232(order)X
3992 3434(to)X
3993 3528(speed)X
3994 3743(up)X
3995 3855(retrievals.)X
3996 2418 4167(The)N
3997 2571(basic)X
3998 2764(idea)X
3999 2926(is)X
4000 3007(to)X
4001 3097(shorten)X
4002 3361(long)X
4003 3531(probe)X
4004 3741(sequences)X
4005 4094(by)X
4006 2418 4255(lengthening)N
4007 2833(short)X
4008 3030(probe)X
4009 3249(sequences.)X
4010 3651(Once)X
4011 3857(the)X
4012 3991(probe)X
4013 2418 4343(chain)N
4014 2613(has)X
4015 2741(exceeded)X
4016 3062(some)X
4017 3252(threshold)X
4018 3571(\(Brent)X
4019 3796(suggests)X
4020 4087(2\),)X
4021 2418 4431(we)N
4022 2541(attempt)X
4023 2809(to)X
4024 2899(shuf\257e)X
4025 3145(any)X
4026 3289(colliding)X
4027 3601(keys)X
4028 3776(\(keys)X
4029 3978(which)X
4030 2418 4519(appeared)N
4031 2734(in)X
4032 2821(the)X
4033 2944(probe)X
4034 3152(sequence)X
4035 3471(of)X
4036 3562(the)X
4037 3684(new)X
4038 3842(key\).)X
4039 4049(The)X
4040 2418 4607(details)N
4041 2652(of)X
4042 2744(this)X
4043 2884(key)X
4044 3025(shuf\257ing)X
4045 3333(can)X
4046 3469(be)X
4047 3569(found)X
4048 3780(in)X
4049 3866([KNU68])X
4050 2418 4695(and)N
4051 2576([BRE73].)X
4052 2946(This)X
4053 3129(algorithm)X
4054 3481(may)X
4055 3660(be)X
4056 3777(obtained)X
4057 4094(by)X
4058 2418 4783(de\256ning)N
4059 2700(the)X
4060 2818(variable)X
4061 3097(``BRENT'')X
4062 3487(at)X
4063 3565(compile)X
4064 3843(time.)X
4065 2590 4897(A)N
4066 2698(third)X
4067 2899(set)X
4068 3038(of)X
4069 3154(options,)X
4070 3458(obtained)X
4071 3783(by)X
4072 3912(de\256ning)X
4073 2418 4985(``CHAINED'',)N
4074 2943(use)X
4075 3086(linked)X
4076 3321(lists)X
4077 3484(to)X
4078 3581(resolve)X
4079 3848(collisions.)X
4080 2418 5073(Either)N
4081 2647(of)X
4082 2747(the)X
4083 2878(primary)X
4084 3164(hash)X
4085 3343(function)X
4086 3642(described)X
4087 3982(above)X
4088 2418 5161(may)N
4089 2584(be)X
4090 2688(used,)X
4091 2882(but)X
4092 3011(all)X
4093 3118(collisions)X
4094 3451(are)X
4095 3577(resolved)X
4096 3876(by)X
4097 3983(build-)X
4098 2418 5249(ing)N
4099 2554(a)X
4100 2623(linked)X
4101 2856(list)X
4102 2986(of)X
4103 3086(entries)X
4104 3333(from)X
4105 3522(the)X
4106 3653(primary)X
4107 3940(bucket.)X
4108 2418 5337(By)N
4109 2542(default,)X
4110 2816(new)X
4111 2981(entries)X
4112 3226(will)X
4113 3381(be)X
4114 3488(added)X
4115 3711(to)X
4116 3804(a)X
4117 3871(bucket)X
4118 4116(at)X
4119 2418 5425(the)N
4120 2541(beginning)X
4121 2886(of)X
4122 2978(the)X
4123 3101(bucket)X
4124 3339(chain.)X
4125 3577(However,)X
4126 3916(compile)X
4127 2418 5513(options)N
4128 2706(``SORTUP'')X
4129 3173(or)X
4130 3293(``SORTDOWN'')X
4131 3908(may)X
4132 4098(be)X
4133 2418 5601(speci\256ed)N
4134 2723(to)X
4135 2805(order)X
4136 2995(the)X
4137 3113(hash)X
4138 3280(chains)X
4139 3505(within)X
4140 3729(each)X
4141 3897(bucket.)X
4142 3 f
4143 432 5960(4)N
4144 2970(USENIX)X
4145 9 f
4146 3292(-)X
4147 3 f
4148 3356(Winter)X
4149 3621('91)X
4150 9 f
4151 3748(-)X
4152 3 f
4153 3812(Dallas,)X
4154 4065(TX)X
4155
4156 5 p
4157 %%Page: 5 5
4158 0(Courier)xf 0 f
4159 10 s 10 xH 0 xS 0 f
4160 3 f
4161 720 258(Seltzer)N
4162 977(&)X
4163 1064(Yigit)X
4164 3278(A)X
4165 3356(New)X
4166 3528(Hashing)X
4167 3831(Package)X
4168 4136(for)X
4169 4259(UNIX)X
4170 2 f
4171 1444 538(dynahash)N
4172 1 f
4173 892 670(The)N
4174 2 f
4175 1054(dynahash)X
4176 1 f
4177 1398(library,)X
4178 1669(written)X
4179 1932(by)X
4180 2048(Esmond)X
4181 2346(Pitt,)X
4182 720 758(implements)N
4183 1183(Larson's)X
4184 1554(linear)X
4185 1827(hashing)X
4186 2165(algorithm)X
4187 720 846([LAR88])N
4188 1097(with)X
4189 1302(an)X
4190 2 f
4191 1440(hsearch)X
4192 1 f
4193 1756(compatible)X
4194 2174(interface.)X
4195 720 934(Intuitively,)N
4196 1099(a)X
4197 1161(hash)X
4198 1334(table)X
4199 1516(begins)X
4200 1751(as)X
4201 1844(a)X
4202 1905(single)X
4203 2121(bucket)X
4204 2360(and)X
4205 720 1022(grows)N
4206 941(in)X
4207 1028(generations,)X
4208 1443(where)X
4209 1665(a)X
4210 1725(generation)X
4211 2088(corresponds)X
4212 720 1110(to)N
4213 815(a)X
4214 884(doubling)X
4215 1201(in)X
4216 1296(the)X
4217 1427(size)X
4218 1585(of)X
4219 1685(the)X
4220 1815(hash)X
4221 1994(table.)X
4222 2222(The)X
4223 2379(0)X
4224 2 f
4225 7 s
4226 1078(th)Y
4227 10 s
4228 1 f
4229 720 1198(generation)N
4230 1085(occurs)X
4231 1321(as)X
4232 1414(the)X
4233 1538(table)X
4234 1719(grows)X
4235 1940(from)X
4236 2121(one)X
4237 2262(bucket)X
4238 720 1286(to)N
4239 814(two.)X
4240 1006(In)X
4241 1105(the)X
4242 1235(next)X
4243 1405(generation)X
4244 1776(the)X
4245 1906(table)X
4246 2093(grows)X
4247 2320(from)X
4248 720 1374(two)N
4249 862(to)X
4250 946(four.)X
4251 1122(During)X
4252 1371(each)X
4253 1541(generation,)X
4254 1921(every)X
4255 2121(bucket)X
4256 2356(that)X
4257 720 1462(existed)N
4258 967(at)X
4259 1045(the)X
4260 1163(beginning)X
4261 1503(of)X
4262 1590(the)X
4263 1708(generation)X
4264 2067(is)X
4265 2140(split.)X
4266 892 1576(The)N
4267 1041(table)X
4268 1221(starts)X
4269 1414(as)X
4270 1505(a)X
4271 1565(single)X
4272 1780(bucket)X
4273 2018(\(numbered)X
4274 2389(0\),)X
4275 720 1664(the)N
4276 839(current)X
4277 1088(split)X
4278 1245(bucket)X
4279 1479(is)X
4280 1552(set)X
4281 1661(to)X
4282 1743(bucket)X
4283 1977(0,)X
4284 2057(and)X
4285 2193(the)X
4286 2311(max-)X
4287 720 1752(imum)N
4288 933(split)X
4289 1097(point)X
4290 1288(is)X
4291 1368(set)X
4292 1483(to)X
4293 1571(twice)X
4294 1771(the)X
4295 1895(current)X
4296 2149(split)X
4297 2312(point)X
4298 720 1840(\(0\).)N
4299 863(When)X
4300 1084(it)X
4301 1157(is)X
4302 1239(time)X
4303 1410(for)X
4304 1532(a)X
4305 1596(bucket)X
4306 1838(to)X
4307 1928(split,)X
4308 2113(the)X
4309 2239(keys)X
4310 2414(in)X
4311 720 1928(the)N
4312 872(current)X
4313 1154(split)X
4314 1345(bucket)X
4315 1612(are)X
4316 1764(divided)X
4317 2057(between)X
4318 2378(the)X
4319 720 2016(current)N
4320 981(split)X
4321 1151(bucket)X
4322 1397(and)X
4323 1545(a)X
4324 1613(new)X
4325 1779(bucket)X
4326 2025(whose)X
4327 2262(bucket)X
4328 720 2104(number)N
4329 1000(is)X
4330 1088(equal)X
4331 1297(to)X
4332 1394(1)X
4333 1469(+)X
4334 1549(current)X
4335 1812(split)X
4336 1984(bucket)X
4337 2232(+)X
4338 2311(max-)X
4339 720 2192(imum)N
4340 927(split)X
4341 1085(point.)X
4342 1310(We)X
4343 1442(can)X
4344 1574(determine)X
4345 1915(which)X
4346 2131(keys)X
4347 2298(move)X
4348 720 2280(to)N
4349 807(the)X
4350 929(new)X
4351 1087(bucket)X
4352 1325(by)X
4353 1429(examining)X
4354 1791(the)X
4355 2 f
4356 1913(n)X
4357 7 s
4358 1962 2248(th)N
4359 10 s
4360 1 f
4361 2043 2280(bit)N
4362 2151(of)X
4363 2242(a)X
4364 2302(key's)X
4365 720 2368(hash)N
4366 899(value)X
4367 1105(where)X
4368 1334(n)X
4369 1406(is)X
4370 1491(the)X
4371 1620(generation)X
4372 1990(number.)X
4373 2306(After)X
4374 720 2456(the)N
4375 846(bucket)X
4376 1088(at)X
4377 1174(the)X
4378 1300(maximum)X
4379 1651(split)X
4380 1815(point)X
4381 2006(has)X
4382 2140(been)X
4383 2319(split,)X
4384 720 2544(the)N
4385 839(generation)X
4386 1198(number)X
4387 1463(is)X
4388 1536(incremented,)X
4389 1973(the)X
4390 2091(current)X
4391 2339(split)X
4392 720 2632(point)N
4393 908(is)X
4394 985(set)X
4395 1098(back)X
4396 1274(to)X
4397 1360(zero,)X
4398 1543(and)X
4399 1683(the)X
4400 1805(maximum)X
4401 2152(split)X
4402 2312(point)X
4403 720 2720(is)N
4404 815(set)X
4405 946(to)X
4406 1050(the)X
4407 1190(number)X
4408 1477(of)X
4409 1586(the)X
4410 1725(last)X
4411 1877(bucket)X
4412 2132(in)X
4413 2235(the)X
4414 2374(\256le)X
4415 720 2808(\(which)N
4416 971(is)X
4417 1052(equal)X
4418 1253(to)X
4419 1342(twice)X
4420 1543(the)X
4421 1668(old)X
4422 1797(maximum)X
4423 2148(split)X
4424 2312(point)X
4425 720 2896(plus)N
4426 873(1\).)X
4427 892 3010(To)N
4428 1031(facilitate)X
4429 1361(locating)X
4430 1668(keys,)X
4431 1884(we)X
4432 2027(maintain)X
4433 2356(two)X
4434 720 3098(masks.)N
4435 989(The)X
4436 1143(low)X
4437 1291(mask)X
4438 1488(is)X
4439 1569(equal)X
4440 1771(to)X
4441 1861(the)X
4442 1987(maximum)X
4443 2339(split)X
4444 720 3186(bucket)N
4445 967(and)X
4446 1116(the)X
4447 1247(high)X
4448 1422(mask)X
4449 1624(is)X
4450 1710(equal)X
4451 1917(to)X
4452 2011(the)X
4453 2141(next)X
4454 2311(max-)X
4455 720 3274(imum)N
4456 931(split)X
4457 1093(bucket.)X
4458 1372(To)X
4459 1486(locate)X
4460 1703(a)X
4461 1764(speci\256c)X
4462 2033(key,)X
4463 2193(we)X
4464 2311(com-)X
4465 720 3362(pute)N
4466 881(a)X
4467 940(32-bit)X
4468 1154(hash)X
4469 1324(value)X
4470 1520(using)X
4471 1715(a)X
4472 1773(bit-randomizing)X
4473 2311(algo-)X
4474 720 3450(rithm)N
4475 932(such)X
4476 1118(as)X
4477 1224(the)X
4478 1361(one)X
4479 1516(described)X
4480 1862(in)X
4481 1962([LAR88].)X
4482 2334(This)X
4483 720 3538(hash)N
4484 893(value)X
4485 1093(is)X
4486 1172(then)X
4487 1336(masked)X
4488 1607(with)X
4489 1775(the)X
4490 1898(high)X
4491 2065(mask.)X
4492 2299(If)X
4493 2378(the)X
4494 720 3626(resulting)N
4495 1026(number)X
4496 1297(is)X
4497 1376(greater)X
4498 1626(than)X
4499 1790(the)X
4500 1913(maximum)X
4501 2262(bucket)X
4502 720 3714(in)N
4503 823(the)X
4504 962(table)X
4505 1159(\(current)X
4506 1455(split)X
4507 1633(bucket)X
4508 1888(+)X
4509 1974(maximum)X
4510 2339(split)X
4511 720 3802(point\),)N
4512 962(the)X
4513 1091(hash)X
4514 1269(value)X
4515 1474(is)X
4516 1558(masked)X
4517 1834(with)X
4518 2007(the)X
4519 2136(low)X
4520 2287(mask.)X
4521 720 3890(In)N
4522 825(either)X
4523 1046(case,)X
4524 1242(the)X
4525 1377(result)X
4526 1592(of)X
4527 1696(the)X
4528 1831(mask)X
4529 2037(is)X
4530 2127(the)X
4531 2262(bucket)X
4532 720 3978(number)N
4533 989(for)X
4534 1107(the)X
4535 1229(given)X
4536 1431(key.)X
4537 1611(The)X
4538 1759(algorithm)X
4539 2093(below)X
4540 2312(illus-)X
4541 720 4066(trates)N
4542 914(this)X
4543 1049(process.)X
4544 0 f
4545 8 s
4546 720 4365(h)N
4547 796(=)X
4548 872 -0.4038(calchash\(key\);)AX
4549 720 4453(bucket)N
4550 986(=)X
4551 1062(h)X
4552 1138(&)X
4553 1214 -0.4167(high_mask;)AX
4554 720 4541(if)N
4555 834(\()X
4556 910(bucket)X
4557 1176(>)X
4558 1252 -0.4167(max_bucket)AX
4559 1670(\))X
4560 1008 4629(bucket)N
4561 1274(=)X
4562 1350(h)X
4563 1426(&)X
4564 1502 -0.4219(low_mask;)AX
4565 720 4717 -0.4018(return\(bucket\);)AN
4566 1 f
4567 10 s
4568 892 5042(In)N
4569 1013(order)X
4570 1237(to)X
4571 1353(decide)X
4572 1617(when)X
4573 1845(to)X
4574 1961(split)X
4575 2152(a)X
4576 2242(bucket,)X
4577 2 f
4578 720 5130(dynahash)N
4579 1 f
4580 1050(uses)X
4581 2 f
4582 1210(controlled)X
4583 1561(splitting)X
4584 1 f
4585 1822(.)X
4586 1884(A)X
4587 1964(hash)X
4588 2133(table)X
4589 2311(has)X
4590 2440(a)X
4591 720 5218(\256ll)N
4592 837(factor)X
4593 1054(which)X
4594 1279(is)X
4595 1361(expressed)X
4596 1707(in)X
4597 1798(terms)X
4598 2004(of)X
4599 2099(the)X
4600 2225(average)X
4601 720 5306(number)N
4602 990(of)X
4603 1082(keys)X
4604 1253(in)X
4605 1339(each)X
4606 1511(bucket.)X
4607 1789(Each)X
4608 1974(time)X
4609 2140(the)X
4610 2262(table's)X
4611 720 5394(total)N
4612 885(number)X
4613 1153(of)X
4614 1243(keys)X
4615 1413(divided)X
4616 1676(by)X
4617 1778(its)X
4618 1875(number)X
4619 2142(of)X
4620 2231(buckets)X
4621 720 5482(exceeds)N
4622 995(this)X
4623 1130(\256ll)X
4624 1238(factor,)X
4625 1466(a)X
4626 1522(bucket)X
4627 1756(is)X
4628 1829(split.)X
4629 2878 538(Since)N
4630 3079(the)X
4631 2 f
4632 3200(hsearch)X
4633 1 f
4634 3477(create)X
4635 3693(interface)X
4636 3998(\()X
4637 2 f
4638 4025(hcreate)X
4639 1 f
4640 4266(\))X
4641 4315(calls)X
4642 2706 626(for)N
4643 2842(an)X
4644 2960(estimate)X
4645 3269(of)X
4646 3378(the)X
4647 3518(\256nal)X
4648 3702(size)X
4649 3869(of)X
4650 3978(the)X
4651 4118(hash)X
4652 4306(table)X
4653 2706 714(\()N
4654 2 f
4655 2733(nelem)X
4656 1 f
4657 2925(\),)X
4658 2 f
4659 3007(dynahash)X
4660 1 f
4661 3349(uses)X
4662 3522(this)X
4663 3672(information)X
4664 4085(to)X
4665 4182(initialize)X
4666 2706 802(the)N
4667 2848(table.)X
4668 3088(The)X
4669 3257(initial)X
4670 3486(number)X
4671 3774(of)X
4672 3884(buckets)X
4673 4172(is)X
4674 4268(set)X
4675 4400(to)X
4676 2 f
4677 2706 890(nelem)N
4678 1 f
4679 2926(rounded)X
4680 3217(to)X
4681 3306(the)X
4682 3431(next)X
4683 3596(higher)X
4684 3828(power)X
4685 4056(of)X
4686 4150(two.)X
4687 4337(The)X
4688 2706 978(current)N
4689 2958(split)X
4690 3118(point)X
4691 3305(is)X
4692 3381(set)X
4693 3493(to)X
4694 3578(0)X
4695 3641(and)X
4696 3780(the)X
4697 3901(maximum)X
4698 4248(bucket)X
4699 2706 1066(and)N
4700 2842(maximum)X
4701 3186(split)X
4702 3343(point)X
4703 3527(are)X
4704 3646(set)X
4705 3755(to)X
4706 3837(this)X
4707 3972(rounded)X
4708 4255(value.)X
4709 3 f
4710 3148 1220(The)N
4711 3301(New)X
4712 3473(Implementation)X
4713 1 f
4714 2878 1352(Our)N
4715 3042(implementation)X
4716 3583(is)X
4717 3675(also)X
4718 3842(based)X
4719 4063(on)X
4720 4181(Larson's)X
4721 2706 1440(linear)N
4722 2939(hashing)X
4723 3238([LAR88])X
4724 3582(algorithm)X
4725 3943(as)X
4726 4060(well)X
4727 4248(as)X
4728 4364(the)X
4729 2 f
4730 2706 1528(dynahash)N
4731 1 f
4732 3047(implementation.)X
4733 3623(The)X
4734 2 f
4735 3782(dbm)X
4736 1 f
4737 3954(family)X
4738 4197(of)X
4739 4297(algo-)X
4740 2706 1616(rithms)N
4741 2942(decide)X
4742 3184(dynamically)X
4743 3612(which)X
4744 3840(bucket)X
4745 4085(to)X
4746 4178(split)X
4747 4346(and)X
4748 2706 1704(when)N
4749 2914(to)X
4750 3010(split)X
4751 3180(it)X
4752 3257(\(when)X
4753 3491(it)X
4754 3568(over\257ows\))X
4755 3944(while)X
4756 2 f
4757 4155(dynahash)X
4758 1 f
4759 2706 1792(splits)N
4760 2933(in)X
4761 3054(a)X
4762 3149(prede\256ned)X
4763 3547(order)X
4764 3776(\(linearly\))X
4765 4134(and)X
4766 4309(at)X
4767 4426(a)X
4768 2706 1880(prede\256ned)N
4769 3116(time)X
4770 3328(\(when)X
4771 3599(the)X
4772 3767(table)X
4773 3993(\256ll)X
4774 4151(factor)X
4775 4409(is)X
4776 2706 1968(exceeded\).)N
4777 3121(We)X
4778 3280(use)X
4779 3434(a)X
4780 3517(hybrid)X
4781 3773(of)X
4782 3887(these)X
4783 4099(techniques.)X
4784 2706 2056(Splits)N
4785 2913(occur)X
4786 3118(in)X
4787 3206(the)X
4788 3330(prede\256ned)X
4789 3695(order)X
4790 3891(of)X
4791 3984(linear)X
4792 4193(hashing,)X
4793 2706 2144(but)N
4794 2845(the)X
4795 2980(time)X
4796 3159(at)X
4797 3253(which)X
4798 3485(pages)X
4799 3704(are)X
4800 3839(split)X
4801 4012(is)X
4802 4101(determined)X
4803 2706 2232(both)N
4804 2869(by)X
4805 2970(page)X
4806 3143(over\257ows)X
4807 3480(\()X
4808 2 f
4809 3507(uncontrolled)X
4810 3937(splitting)X
4811 1 f
4812 4198(\))X
4813 4246(and)X
4814 4382(by)X
4815 2706 2320(exceeding)N
4816 3052(the)X
4817 3170(\256ll)X
4818 3278(factor)X
4819 3486(\()X
4820 2 f
4821 3513(controlled)X
4822 3862(splitting)X
4823 1 f
4824 4123(\))X
4825 2878 2434(A)N
4826 2962(hash)X
4827 3135(table)X
4828 3317(is)X
4829 3395(parameterized)X
4830 3876(by)X
4831 3981(both)X
4832 4148(its)X
4833 4248(bucket)X
4834 2706 2522(size)N
4835 2904(\()X
4836 2 f
4837 2931(bsize)X
4838 1 f
4839 (\))S
4840 3191(and)X
4841 3380(\256ll)X
4842 3541(factor)X
4843 3801(\()X
4844 2 f
4845 3828(ffactor)X
4846 1 f
4847 4041(\).)X
4848 4180(Whereas)X
4849 2 f
4850 2706 2610(dynahash's)N
4851 1 f
4852 3095(buckets)X
4853 3364(can)X
4854 3500(be)X
4855 3599(represented)X
4856 3993(as)X
4857 4083(a)X
4858 4142(linked)X
4859 4365(list)X
4860 2706 2698(of)N
4861 2798(elements)X
4862 3108(in)X
4863 3195(memory,)X
4864 3507(our)X
4865 3639(package)X
4866 3928(needs)X
4867 4136(to)X
4868 4222(support)X
4869 2706 2786(disk)N
4870 2874(access,)X
4871 3135(and)X
4872 3286(must)X
4873 3476(represent)X
4874 3806(buckets)X
4875 4086(in)X
4876 4183(terms)X
4877 4395(of)X
4878 2706 2874(pages.)N
4879 2955(The)X
4880 2 f
4881 3106(bsize)X
4882 1 f
4883 3291(is)X
4884 3369(the)X
4885 3492(size)X
4886 3642(\(in)X
4887 3756(bytes\))X
4888 3977(of)X
4889 4069(these)X
4890 4259(pages.)X
4891 2706 2962(As)N
4892 2833(in)X
4893 2933(linear)X
4894 3154(hashing,)X
4895 3461(the)X
4896 3597(number)X
4897 3879(of)X
4898 3983(buckets)X
4899 4265(in)X
4900 4364(the)X
4901 2706 3050(table)N
4902 2906(is)X
4903 3003(equal)X
4904 3221(to)X
4905 3327(the)X
4906 3469(number)X
4907 3758(of)X
4908 3869(keys)X
4909 4060(in)X
4910 4165(the)X
4911 4306(table)X
4912 2706 3138(divided)N
4913 2988(by)X
4914 2 f
4915 3110(ffactor)X
4916 1 f
4917 3323(.)X
4918 2 f
4919 8 s
4920 3113(6)Y
4921 1 f
4922 10 s
4923 3417 3138(The)N
4924 3584(controlled)X
4925 3950(splitting)X
4926 4252(occurs)X
4927 2706 3226(each)N
4928 2878(time)X
4929 3044(the)X
4930 3166(number)X
4931 3435(of)X
4932 3526(keys)X
4933 3697(in)X
4934 3783(the)X
4935 3905(table)X
4936 4085(exceeds)X
4937 4364(the)X
4938 2706 3314(\256ll)N
4939 2814(factor)X
4940 3022(multiplied)X
4941 3370(by)X
4942 3470(the)X
4943 3588(number)X
4944 3853(of)X
4945 3940(buckets.)X
4946 2878 3428(Inserting)N
4947 3187(keys)X
4948 3358(and)X
4949 3498(splitting)X
4950 3783(buckets)X
4951 4051(is)X
4952 4127(performed)X
4953 2706 3516(precisely)N
4954 3018(as)X
4955 3107(described)X
4956 3437(previously)X
4957 3796(for)X
4958 2 f
4959 3911(dynahash)X
4960 1 f
4961 4218(.)X
4962 4279(How-)X
4963 2706 3604(ever,)N
4964 2897(since)X
4965 3094(buckets)X
4966 3371(are)X
4967 3502(now)X
4968 3671(comprised)X
4969 4036(of)X
4970 4134(pages,)X
4971 4368(we)X
4972 2706 3692(must)N
4973 2883(be)X
4974 2981(prepared)X
4975 3284(to)X
4976 3367(handle)X
4977 3602(cases)X
4978 3793(where)X
4979 4011(the)X
4980 4130(size)X
4981 4276(of)X
4982 4364(the)X
4983 2706 3780(keys)N
4984 2873(and)X
4985 3009(data)X
4986 3163(in)X
4987 3245(a)X
4988 3301(bucket)X
4989 3535(exceed)X
4990 3779(the)X
4991 3897(bucket)X
4992 4131(size.)X
4993 3 f
4994 3318 3934(Over\257ow)N
4995 3654(Pages)X
4996 1 f
4997 2878 4066(There)N
4998 3095(are)X
4999 3223(two)X
5000 3372(cases)X
5001 3571(where)X
5002 3797(a)X
5003 3862(key)X
5004 4007(may)X
5005 4174(not)X
5006 4305(\256t)X
5007 4400(in)X
5008 2706 4154(its)N
5009 2802(designated)X
5010 3166(bucket.)X
5011 3441(In)X
5012 3529(the)X
5013 3647(\256rst)X
5014 3791(case,)X
5015 3970(the)X
5016 4088(total)X
5017 4250(size)X
5018 4395(of)X
5019 2706 4242(the)N
5020 2833(key)X
5021 2978(and)X
5022 3123(data)X
5023 3286(may)X
5024 3453(exceed)X
5025 3706(the)X
5026 3833(bucket)X
5027 4076(size.)X
5028 4269(In)X
5029 4364(the)X
5030 2706 4330(second,)N
5031 3008(addition)X
5032 3328(of)X
5033 3453(a)X
5034 3547(new)X
5035 3739(key)X
5036 3913(could)X
5037 4149(cause)X
5038 4386(an)X
5039 2706 4418(over\257ow,)N
5040 3068(but)X
5041 3227(the)X
5042 3382(bucket)X
5043 3652(in)X
5044 3770(question)X
5045 4097(is)X
5046 4206(not)X
5047 4364(yet)X
5048 2706 4506(scheduled)N
5049 3049(to)X
5050 3133(be)X
5051 3230(split.)X
5052 3428(In)X
5053 3516(existing)X
5054 3790(implementations,)X
5055 4364(the)X
5056 2706 4594(second)N
5057 2953(case)X
5058 3115(never)X
5059 3317(arises)X
5060 3523(\(since)X
5061 3738(buckets)X
5062 4006(are)X
5063 4128(split)X
5064 4288(when)X
5065 2706 4682(they)N
5066 2871(over\257ow\))X
5067 3210(and)X
5068 3352(the)X
5069 3476(\256rst)X
5070 3626(case)X
5071 3791(is)X
5072 3870(not)X
5073 3998(handled)X
5074 4278(at)X
5075 4362(all.)X
5076 2706 4770(Although)N
5077 3036(large)X
5078 3225(key/data)X
5079 3525(pair)X
5080 3678(handling)X
5081 3986(is)X
5082 4066(dif\256cult)X
5083 4346(and)X
5084 2706 4858(expensive,)N
5085 3083(it)X
5086 3163(is)X
5087 3252(essential.)X
5088 3604(In)X
5089 3706(a)X
5090 3777(linear)X
5091 3995(hashed)X
5092 4253(imple-)X
5093 2706 4946(mentation,)N
5094 3087(over\257ow)X
5095 3413(pages)X
5096 3636(are)X
5097 3775(required)X
5098 4083(for)X
5099 4217(buckets)X
5100 2706 5034(which)N
5101 2935(over\257ow)X
5102 3253(before)X
5103 3492(they)X
5104 3662(are)X
5105 3793(split,)X
5106 3982(so)X
5107 4085(we)X
5108 4211(can)X
5109 4355(use)X
5110 2706 5122(the)N
5111 2833(same)X
5112 3027(mechanism)X
5113 3421(for)X
5114 3544(large)X
5115 3734(key/data)X
5116 4035(pairs)X
5117 4220(that)X
5118 4368(we)X
5119 2706 5210(use)N
5120 2837(for)X
5121 2955(over\257ow)X
5122 3264(pages.)X
5123 3511(Logically,)X
5124 3862(we)X
5125 3980(chain)X
5126 4177(over\257ow)X
5127 16 s
5128 2706 5353 MXY
5129 864 0 Dl
5130 2 f
5131 8 s
5132 2746 5408(6)N
5133 1 f
5134 9 s
5135 2801 5433(This)N
5136 2952(is)X
5137 3023(not)X
5138 3138(strictly)X
5139 3361(true.)X
5140 3532(The)X
5141 3667(\256le)X
5142 3782(does)X
5143 3937(not)X
5144 4052(contract)X
5145 4306(when)X
5146 2706 5513(keys)N
5147 2861(are)X
5148 2972(deleted,)X
5149 3221(so)X
5150 3308(the)X
5151 3419(number)X
5152 3662(of)X
5153 3744(buckets)X
5154 3986(is)X
5155 4056(actually)X
5156 4306(equal)X
5157 2706 5593(to)N
5158 2782(the)X
5159 2890(maximum)X
5160 3202(number)X
5161 3441(of)X
5162 3520(keys)X
5163 3671(ever)X
5164 3814(present)X
5165 4041(in)X
5166 4116(the)X
5167 4223(table)X
5168 4382(di-)X
5169 2706 5673(vided)N
5170 2884(by)X
5171 2974(the)X
5172 3080(\256ll)X
5173 3178(factor.)X
5174 3 f
5175 10 s
5176 720 5960(USENIX)N
5177 9 f
5178 1042(-)X
5179 3 f
5180 1106(Winter)X
5181 1371('91)X
5182 9 f
5183 1498(-)X
5184 3 f
5185 1562(Dallas,)X
5186 1815(TX)X
5187 4424(5)X
5188
5189 6 p
5190 %%Page: 6 6
5191 0(Courier)xf 0 f
5192 10 s 10 xH 0 xS 0 f
5193 3 f
5194 432 258(A)N
5195 510(New)X
5196 682(Hashing)X
5197 985(Package)X
5198 1290(for)X
5199 1413(UNIX)X
5200 3663(Seltzer)X
5201 3920(&)X
5202 4007(Yigit)X
5203 1 f
5204 432 538(pages)N
5205 639(to)X
5206 725(the)X
5207 847(buckets)X
5208 1116(\(also)X
5209 1296(called)X
5210 1512(primary)X
5211 1789(pages\).)X
5212 2062(In)X
5213 2152(a)X
5214 432 626(memory)N
5215 730(based)X
5216 943(representation,)X
5217 1448(over\257ow)X
5218 1763(pages)X
5219 1976(do)X
5220 2086(not)X
5221 432 714(pose)N
5222 628(any)X
5223 792(special)X
5224 1063(problems)X
5225 1409(because)X
5226 1712(we)X
5227 1854(can)X
5228 2014(chain)X
5229 432 802(over\257ow)N
5230 776(pages)X
5231 1017(to)X
5232 1137(primary)X
5233 1449(pages)X
5234 1690(using)X
5235 1921(memory)X
5236 432 890(pointers.)N
5237 776(However,)X
5238 1137(mapping)X
5239 1463(these)X
5240 1674(over\257ow)X
5241 2005(pages)X
5242 432 978(into)N
5243 584(a)X
5244 648(disk)X
5245 809(\256le)X
5246 939(is)X
5247 1019(more)X
5248 1211(of)X
5249 1305(a)X
5250 1368(challenge,)X
5251 1723(since)X
5252 1915(we)X
5253 2036(need)X
5254 432 1066(to)N
5255 547(be)X
5256 675(able)X
5257 861(to)X
5258 975(address)X
5259 1268(both)X
5260 1462(bucket)X
5261 1728(pages,)X
5262 1983(whose)X
5263 432 1154(numbers)N
5264 729(are)X
5265 849(growing)X
5266 1137(linearly,)X
5267 1422(and)X
5268 1558(some)X
5269 1747(indeterminate)X
5270 432 1242(number)N
5271 715(of)X
5272 820(over\257ow)X
5273 1143(pages)X
5274 1364(without)X
5275 1646(reorganizing)X
5276 2090(the)X
5277 432 1330(\256le.)N
5278 604 1444(One)N
5279 789(simple)X
5280 1053(solution)X
5281 1361(would)X
5282 1612(be)X
5283 1739(to)X
5284 1852(allocate)X
5285 2152(a)X
5286 432 1532(separate)N
5287 737(\256le)X
5288 880(for)X
5289 1015(over\257ow)X
5290 1341(pages.)X
5291 1604(The)X
5292 1769(disadvantage)X
5293 432 1620(with)N
5294 605(such)X
5295 783(a)X
5296 850(technique)X
5297 1193(is)X
5298 1276(that)X
5299 1426(it)X
5300 1500(requires)X
5301 1789(an)X
5302 1895(extra)X
5303 2086(\256le)X
5304 432 1708(descriptor,)N
5305 794(an)X
5306 891(extra)X
5307 1073(system)X
5308 1316(call)X
5309 1453(on)X
5310 1554(open)X
5311 1731(and)X
5312 1867(close,)X
5313 2072(and)X
5314 432 1796(logically)N
5315 739(associating)X
5316 1122(two)X
5317 1269(independent)X
5318 1687(\256les.)X
5319 1886(For)X
5320 2023(these)X
5321 432 1884(reasons,)N
5322 728(we)X
5323 857(wanted)X
5324 1123(to)X
5325 1219(map)X
5326 1391(both)X
5327 1567(primary)X
5328 1855(pages)X
5329 2072(and)X
5330 432 1972(over\257ow)N
5331 737(pages)X
5332 940(into)X
5333 1084(the)X
5334 1202(same)X
5335 1387(\256le)X
5336 1509(space.)X
5337 604 2086(The)N
5338 799(buddy-in-waiting)X
5339 1425(algorithm)X
5340 1806(provides)X
5341 2152(a)X
5342 432 2174(mechanism)N
5343 851(to)X
5344 966(support)X
5345 1259(multiple)X
5346 1578(pages)X
5347 1814(per)X
5348 1970(logical)X
5349 432 2262(bucket)N
5350 685(while)X
5351 902(retaining)X
5352 1226(the)X
5353 1362(simple)X
5354 1613(split)X
5355 1788(sequence)X
5356 2121(of)X
5357 432 2350(linear)N
5358 681(hashing.)X
5359 1015(Over\257ow)X
5360 1383(pages)X
5361 1631(are)X
5362 1795(preallocated)X
5363 432 2438(between)N
5364 781(generations)X
5365 1232(of)X
5366 1379(primary)X
5367 1713(pages.)X
5368 1996(These)X
5369 432 2526(over\257ow)N
5370 759(pages)X
5371 984(are)X
5372 1125(used)X
5373 1314(by)X
5374 1436(any)X
5375 1594(bucket)X
5376 1850(containing)X
5377 432 2614(more)N
5378 646(keys)X
5379 842(than)X
5380 1029(\256t)X
5381 1144(on)X
5382 1273(the)X
5383 1420(primary)X
5384 1723(page)X
5385 1924(and)X
5386 2089(are)X
5387 432 2702(reclaimed,)N
5388 808(if)X
5389 896(possible,)X
5390 1217(when)X
5391 1430(the)X
5392 1567(bucket)X
5393 1819(later)X
5394 2000(splits.)X
5395 432 2790(Figure)N
5396 687(3)X
5397 773(depicts)X
5398 1045(the)X
5399 1188(layout)X
5400 1433(of)X
5401 1545(primary)X
5402 1844(pages)X
5403 2072(and)X
5404 432 2878(over\257ow)N
5405 752(pages)X
5406 970(within)X
5407 1209(the)X
5408 1342(same)X
5409 1542(\256le.)X
5410 1699(Over\257ow)X
5411 2036(page)X
5412 432 2966(use)N
5413 586(information)X
5414 1011(is)X
5415 1111(recorded)X
5416 1440(in)X
5417 1548(bitmaps)X
5418 1847(which)X
5419 2089(are)X
5420 432 3054(themselves)N
5421 819(stored)X
5422 1046(on)X
5423 1157(over\257ow)X
5424 1472(pages.)X
5425 1725(The)X
5426 1880(addresses)X
5427 432 3142(of)N
5428 520(the)X
5429 639(bitmap)X
5430 882(pages)X
5431 1086(and)X
5432 1223(the)X
5433 1342(number)X
5434 1608(of)X
5435 1695(pages)X
5436 1898(allocated)X
5437 432 3230(at)N
5438 515(each)X
5439 688(split)X
5440 850(point)X
5441 1039(are)X
5442 1163(stored)X
5443 1384(in)X
5444 1470(the)X
5445 1592(\256le)X
5446 1718(header.)X
5447 1997(Using)X
5448 432 3318(this)N
5449 577(information,)X
5450 1005(both)X
5451 1177(over\257ow)X
5452 1492(addresses)X
5453 1829(and)X
5454 1974(bucket)X
5455 432 3406(addresses)N
5456 764(can)X
5457 900(be)X
5458 999(mapped)X
5459 1276(to)X
5460 1361(disk)X
5461 1517(addresses)X
5462 1848(by)X
5463 1951(the)X
5464 2072(fol-)X
5465 432 3494(lowing)N
5466 674(calculation:)X
5467 0 f
5468 8 s
5469 432 3793(int)N
5470 736(bucket;)X
5471 1192(/*)X
5472 1306(bucket)X
5473 1572(address)X
5474 1876(*/)X
5475 432 3881(u_short)N
5476 736(oaddr;)X
5477 1192(/*)X
5478 1306(OVERFLOW)X
5479 1648(address)X
5480 1952(*/)X
5481 432 3969(int)N
5482 736 -0.4125(nhdr_pages;)AX
5483 1192(/*)X
5484 1306(npages)X
5485 1572(in)X
5486 1686 -112.4062(\256le)AX
5487 1838(header)X
5488 2104(*/)X
5489 432 4057(int)N
5490 736 -0.4125(spares[32];)AX
5491 1192(/*)X
5492 1306(npages)X
5493 1572(at)X
5494 1686(each)X
5495 1876(split)X
5496 2104(*/)X
5497 432 4145(int)N
5498 736(log2\(\);)X
5499 1198(/*)X
5500 1312(ceil\(log)X
5501 1654(base)X
5502 1844(2\))X
5503 1958(*/)X
5504 432 4321(#DEFINE)N
5505 736 -0.3929(BUCKET_TO_PAGE\(bucket\))AX
5506 1610(\\)X
5507 584 4409(bucket)N
5508 850(+)X
5509 926 -0.4167(nhdr_pages)AX
5510 1344(+)X
5511 1420(\\)X
5512 584 4497 -0.3894(\(bucket?spares[logs2\(bucket)AN
5513 1648(+)X
5514 1724(1\)-1]:0\))X
5515 432 4673(#DEFINE)N
5516 736 -0.3947(OADDR_TO_PAGE\(oaddr\))AX
5517 1534(\\)X
5518 584 4761 -0.3984(BUCKET_TO_PAGE\(\(1)AN
5519 1268(<<)X
5520 1382 -0.4091(\(oaddr>>11\)\))AX
5521 1876(-)X
5522 1952(1\))X
5523 2066(+)X
5524 2142(\\)X
5525 584 4849(oaddr)N
5526 812(&)X
5527 888(0x7ff;)X
5528 1 f
5529 10 s
5530 604 5262(An)N
5531 728(over\257ow)X
5532 1039(page)X
5533 1217(is)X
5534 1295(addressed)X
5535 1637(by)X
5536 1742(its)X
5537 1842(split)X
5538 2004(point,)X
5539 432 5350(identifying)N
5540 858(the)X
5541 1031(generations)X
5542 1476(between)X
5543 1819(which)X
5544 2090(the)X
5545 432 5438(over\257ow)N
5546 740(page)X
5547 915(is)X
5548 991(allocated,)X
5549 1324(and)X
5550 1463(its)X
5551 1561(page)X
5552 1736(number,)X
5553 2023(iden-)X
5554 432 5526(tifying)N
5555 665(the)X
5556 783(particular)X
5557 1111(page)X
5558 1283(within)X
5559 1507(the)X
5560 1625(split)X
5561 1782(point.)X
5562 1986(In)X
5563 2073(this)X
5564 432 5614(implementation,)N
5565 983(offsets)X
5566 1225(within)X
5567 1457(pages)X
5568 1668(are)X
5569 1795(16)X
5570 1903(bits)X
5571 2046(long)X
5572 432 5702(\(limiting)N
5573 732(the)X
5574 851(maximum)X
5575 1196(page)X
5576 1368(size)X
5577 1513(to)X
5578 1595(32K\),)X
5579 1800(so)X
5580 1891(we)X
5581 2005(select)X
5582 2418 538(an)N
5583 2535(over\257ow)X
5584 2860(page)X
5585 3052(addressing)X
5586 3435(algorithm)X
5587 3786(that)X
5588 3946(can)X
5589 4098(be)X
5590 2418 626(expressed)N
5591 2760(in)X
5592 2847(16)X
5593 2952(bits)X
5594 3091(and)X
5595 3231(which)X
5596 3451(allows)X
5597 3684(quick)X
5598 3886(retrieval.)X
5599 2418 714(The)N
5600 2568(top)X
5601 2695(\256ve)X
5602 2840(bits)X
5603 2980(indicate)X
5604 3258(the)X
5605 3380(split)X
5606 3541(point)X
5607 3729(and)X
5608 3869(the)X
5609 3991(lower)X
5610 2418 802(eleven)N
5611 2650(indicate)X
5612 2926(the)X
5613 3046(page)X
5614 3220(number)X
5615 3487(within)X
5616 3713(the)X
5617 3832(split)X
5618 3990(point.)X
5619 2418 890(Since)N
5620 2633(\256ve)X
5621 2789(bits)X
5622 2940(are)X
5623 3075(reserved)X
5624 3384(for)X
5625 3514(the)X
5626 3648(split)X
5627 3821(point,)X
5628 4041(\256les)X
5629 2418 978(may)N
5630 2578(split)X
5631 2737(32)X
5632 2839(times)X
5633 3034(yielding)X
5634 3318(a)X
5635 3376(maximum)X
5636 3721(\256le)X
5637 3844(size)X
5638 3990(of)X
5639 4078(2)X
5640 7 s
5641 946(32)Y
5642 10 s
5643 2418 1066(buckets)N
5644 2698(and)X
5645 2849(32)X
5646 2 f
5647 (*)S
5648 1 f
5649 2982(2)X
5650 7 s
5651 1034(11)Y
5652 10 s
5653 3113 1066(over\257ow)N
5654 3433(pages.)X
5655 3691(The)X
5656 3850(maximum)X
5657 2418 1154(page)N
5658 2597(size)X
5659 2749(is)X
5660 2829(2)X
5661 7 s
5662 1122(15)Y
5663 10 s
5664 1154(,)Y
5665 2971(yielding)X
5666 3259(a)X
5667 3321(maximum)X
5668 3671(\256le)X
5669 3799(size)X
5670 3950(greater)X
5671 2418 1242(than)N
5672 2601(131,000)X
5673 2906(GB)X
5674 3061(\(on)X
5675 3212(\256le)X
5676 3358(systems)X
5677 3655(supporting)X
5678 4041(\256les)X
5679 2418 1330(larger)N
5680 2626(than)X
5681 2784(4GB\).)X
5682 10 f
5683 2418 1418 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
5684 1 Dt
5685 4014 2275 MXY
5686 0 133 Dl
5687 3881 2275 MXY
5688 0 133 Dl
5689 3748 2275 MXY
5690 0 133 Dl
5691 3083 2275 MXY
5692 0 133 Dl
5693 5 s
5694 1 f
5695 3523 2475(2/3)N
5696 3390(2/2)X
5697 3257(2/1)X
5698 2859(1/2)X
5699 2726(1/1)X
5700 5 Dt
5701 3814 1743 MXY
5702 0 133 Dl
5703 3282 1743 MXY
5704 0 133 Dl
5705 3017 1743 MXY
5706 0 133 Dl
5707 2884 1743 MXY
5708 0 133 Dl
5709 1 Dt
5710 3681 1743 MXY
5711 0 133 Dl
5712 133 0 Dl
5713 0 -133 Dl
5714 -133 0 Dl
5715 3548 MX
5716 0 133 Dl
5717 133 0 Dl
5718 0 -133 Dl
5719 -133 0 Dl
5720 3415 MX
5721 0 133 Dl
5722 133 0 Dl
5723 0 -133 Dl
5724 -133 0 Dl
5725 3282 MX
5726 0 133 Dl
5727 133 0 Dl
5728 0 -133 Dl
5729 -133 0 Dl
5730 3150 MX
5731 0 133 Dl
5732 132 0 Dl
5733 0 -133 Dl
5734 -132 0 Dl
5735 3017 MX
5736 0 133 Dl
5737 133 0 Dl
5738 0 -133 Dl
5739 -133 0 Dl
5740 2884 MX
5741 0 133 Dl
5742 133 0 Dl
5743 0 -133 Dl
5744 -133 0 Dl
5745 3 f
5746 8 s
5747 3017 2601(Over\257ow)N
5748 3285(Addresses)X
5749 3515 2833(Over\257ow)N
5750 3783(Pages)X
5751 2850(Buckets)X
5752 1 Di
5753 3349 2740 MXY
5754  3349 2740 lineto
5755  3482 2740 lineto
5756  3482 2873 lineto
5757  3349 2873 lineto
5758  3349 2740 lineto
5759 closepath 3 3349 2740 3482 2873 Dp
5760 2684 MX
5761 0 133 Dl
5762 133 0 Dl
5763 0 -133 Dl
5764 -133 0 Dl
5765 5 Dt
5766 4146 2275 MXY
5767 0 133 Dl
5768 3216 2275 MXY
5769 0 133 Dl
5770 2684 2275 MXY
5771 0 133 Dl
5772 2551 2275 MXY
5773 0 133 Dl
5774 1 f
5775 3798 1963(3)N
5776 3266 1980(2)N
5777 3001(1)X
5778 2868(0)X
5779 1 Dt
5780 2751 1743 MXY
5781 0 133 Dl
5782 133 0 Dl
5783 0 -133 Dl
5784 -133 0 Dl
5785 3548 2275 MXY
5786 -15 -22 Dl
5787 2 16 Dl
5788 -13 11 Dl
5789 26 -5 Dl
5790 -282 -117 Dl
5791 3432 2275 MXY
5792 -10 -25 Dl
5793 -2 16 Dl
5794 -15 8 Dl
5795 27 1 Dl
5796 -166 -117 Dl
5797 3282 2275 MXY
5798 12 -25 Dl
5799 -14 10 Dl
5800 -15 -6 Dl
5801 17 21 Dl
5802 -16 -117 Dl
5803 2884 2275 MXY
5804 26 7 Dl
5805 -12 -12 Dl
5806 3 -16 Dl
5807 -17 21 Dl
5808 382 -117 Dl
5809 2751 2275 MXY
5810 25 9 Dl
5811 -11 -12 Dl
5812 5 -17 Dl
5813 -19 20 Dl
5814 515 -117 Dl
5815 3 f
5816 3070 2152(Over\257ow)N
5817 3338(Pages)X
5818 3482 2275 MXY
5819  3482 2275 lineto
5820  3615 2275 lineto
5821  3615 2408 lineto
5822  3482 2408 lineto
5823  3482 2275 lineto
5824 closepath 3 3482 2275 3615 2408 Dp
5825 3349 MX
5826  3349 2275 lineto
5827  3482 2275 lineto
5828  3482 2408 lineto
5829  3349 2408 lineto
5830  3349 2275 lineto
5831 closepath 3 3349 2275 3482 2408 Dp
5832 3216 MX
5833  3216 2275 lineto
5834  3349 2275 lineto
5835  3349 2408 lineto
5836  3216 2408 lineto
5837  3216 2275 lineto
5838 closepath 3 3216 2275 3349 2408 Dp
5839 2817 MX
5840  2817 2275 lineto
5841  2950 2275 lineto
5842  2950 2408 lineto
5843  2817 2408 lineto
5844  2817 2275 lineto
5845 closepath 3 2817 2275 2950 2408 Dp
5846 2684 MX
5847  2684 2275 lineto
5848  2817 2275 lineto
5849  2817 2408 lineto
5850  2684 2408 lineto
5851  2684 2275 lineto
5852 closepath 3 2684 2275 2817 2408 Dp
5853 3615 MX
5854 0 133 Dl
5855 531 0 Dl
5856 0 -133 Dl
5857 -531 0 Dl
5858 2950 MX
5859 0 133 Dl
5860 266 0 Dl
5861 0 -133 Dl
5862 -266 0 Dl
5863 2551 MX
5864 0 133 Dl
5865 133 0 Dl
5866 0 -133 Dl
5867 -133 0 Dl
5868 3798 1726 MXY
5869 -21 -18 Dl
5870 6 16 Dl
5871 -10 13 Dl
5872 25 -11 Dl
5873 -599 -99 Dl
5874 3266 1726 MXY
5875 -1 -27 Dl
5876 -7 15 Dl
5877 -17 1 Dl
5878 25 11 Dl
5879 -67 -99 Dl
5880 3033 1726 MXY
5881 27 1 Dl
5882 -14 -8 Dl
5883 -1 -17 Dl
5884 -12 24 Dl
5885 166 -99 Dl
5886 2900 1726 MXY
5887 27 7 Dl
5888 -13 -11 Dl
5889 3 -17 Dl
5890 -17 21 Dl
5891 299 -99 Dl
5892 3058 1621(Split)N
5893 3203(Points)X
5894 2418 2275 MXY
5895 0 133 Dl
5896 133 0 Dl
5897 0 -133 Dl
5898 -133 0 Dl
5899 3 Dt
5900 -1 Ds
5901 3137(Figure)Y
5902 2619(3:)X
5903 1 f
5904 2691(Split)X
5905 2832(points)X
5906 3008(occur)X
5907 3168(between)X
5908 3399(generations)X
5909 3712(and)X
5910 3823(are)X
5911 3919(numbered)X
5912 2418 3225(from)N
5913 2560(0.)X
5914 2642(In)X
5915 2713(this)X
5916 2824(\256gure)X
5917 2991(there)X
5918 3136(are)X
5919 3231(two)X
5920 3345(over\257ow)X
5921 3590(pages)X
5922 3753(allocated)X
5923 4000(at)X
5924 4063(split)X
5925 2418 3313(point)N
5926 2566(1)X
5927 2614(and)X
5928 2722(three)X
5929 2865(allocated)X
5930 3111(at)X
5931 3173(split)X
5932 3300(point)X
5933 3448(2.)X
5934 10 s
5935 10 f
5936 2418 3489 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
5937 3 f
5938 2949 3731(Buffer)N
5939 3192(Management)X
5940 1 f
5941 2590 3863(The)N
5942 2744(hash)X
5943 2920(table)X
5944 3105(is)X
5945 3187(stored)X
5946 3412(in)X
5947 3502(memory)X
5948 3797(as)X
5949 3892(a)X
5950 3956(logical)X
5951 2418 3951(array)N
5952 2633(of)X
5953 2749(bucket)X
5954 3012(pointers.)X
5955 3359(Physically,)X
5956 3761(the)X
5957 3907(array)X
5958 4121(is)X
5959 2418 4039(arranged)N
5960 2728(in)X
5961 2818(segments)X
5962 3144(of)X
5963 3239(256)X
5964 3387(pointers.)X
5965 3713(Initially,)X
5966 4013(there)X
5967 2418 4127(is)N
5968 2530(space)X
5969 2767(to)X
5970 2887(allocate)X
5971 3195(256)X
5972 3373(segments.)X
5973 3769(Reallocation)X
5974 2418 4215(occurs)N
5975 2651(when)X
5976 2847(the)X
5977 2967(number)X
5978 3234(of)X
5979 3323(buckets)X
5980 3590(exceeds)X
5981 3867(32K)X
5982 4027(\(256)X
5983 2418 4303(*)N
5984 2508(256\).)X
5985 2745(Primary)X
5986 3053(pages)X
5987 3286(may)X
5988 3473(be)X
5989 3598(accessed)X
5990 3929(directly)X
5991 2418 4391(through)N
5992 2711(the)X
5993 2853(array)X
5994 3062(by)X
5995 3185(bucket)X
5996 3442(number)X
5997 3730(and)X
5998 3889(over\257ow)X
5999 2418 4479(pages)N
6000 2628(are)X
6001 2754 0.4028(referenced)AX
6002 3122(logically)X
6003 3429(by)X
6004 3536(their)X
6005 3710(over\257ow)X
6006 4022(page)X
6007 2418 4567(address.)N
6008 2726(For)X
6009 2864(small)X
6010 3063(hash)X
6011 3236(tables,)X
6012 3469(it)X
6013 3539(is)X
6014 3618(desirable)X
6015 3934(to)X
6016 4022(keep)X
6017 2418 4655(all)N
6018 2525(pages)X
6019 2735(in)X
6020 2823(main)X
6021 3009(memory)X
6022 3302(while)X
6023 3506(on)X
6024 3612(larger)X
6025 3826(tables,)X
6026 4059(this)X
6027 2418 4743(is)N
6028 2523(probably)X
6029 2860(impossible.)X
6030 3298(To)X
6031 3438(satisfy)X
6032 3698(both)X
6033 3891(of)X
6034 4009(these)X
6035 2418 4831(requirements,)N
6036 2900(the)X
6037 3041(package)X
6038 3348(includes)X
6039 3658(buffer)X
6040 3897(manage-)X
6041 2418 4919(ment)N
6042 2598(with)X
6043 2760(LRU)X
6044 2940(\(least)X
6045 3134(recently)X
6046 3413(used\))X
6047 3607(replacement.)X
6048 2590 5033(By)N
6049 2730(default,)X
6050 3020(the)X
6051 3165(package)X
6052 3475(allocates)X
6053 3802(up)X
6054 3928(to)X
6055 4036(64K)X
6056 2418 5121(bytes)N
6057 2616(of)X
6058 2712(buffered)X
6059 3014(pages.)X
6060 3246(All)X
6061 3377(pages)X
6062 3589(in)X
6063 3680(the)X
6064 3807(buffer)X
6065 4032(pool)X
6066 2418 5209(are)N
6067 2542(linked)X
6068 2766(in)X
6069 2852(LRU)X
6070 3036(order)X
6071 3230(to)X
6072 3316(facilitate)X
6073 3621(fast)X
6074 3761(replacement.)X
6075 2418 5297(Whereas)N
6076 2724(ef\256cient)X
6077 3011(access)X
6078 3241(to)X
6079 3327(primary)X
6080 3605(pages)X
6081 3812(is)X
6082 3889(provided)X
6083 2418 5385(by)N
6084 2521(the)X
6085 2642(bucket)X
6086 2879(array,)X
6087 3087(ef\256cient)X
6088 3372(access)X
6089 3600(to)X
6090 3684(over\257ow)X
6091 3991(pages)X
6092 2418 5473(is)N
6093 2501(provided)X
6094 2816(by)X
6095 2926(linking)X
6096 3182(over\257ow)X
6097 3497(page)X
6098 3679(buffers)X
6099 3936(to)X
6100 4027(their)X
6101 2418 5561(predecessor)N
6102 2827(page)X
6103 3008(\(either)X
6104 3247(the)X
6105 3374(primary)X
6106 3657(page)X
6107 3838(or)X
6108 3933(another)X
6109 2418 5649(over\257ow)N
6110 2742(page\).)X
6111 3000(This)X
6112 3181(means)X
6113 3425(that)X
6114 3584(an)X
6115 3699(over\257ow)X
6116 4022(page)X
6117 3 f
6118 432 5960(6)N
6119 2970(USENIX)X
6120 9 f
6121 3292(-)X
6122 3 f
6123 3356(Winter)X
6124 3621('91)X
6125 9 f
6126 3748(-)X
6127 3 f
6128 3812(Dallas,)X
6129 4065(TX)X
6130
6131 7 p
6132 %%Page: 7 7
6133 0(Courier)xf 0 f
6134 10 s 10 xH 0 xS 0 f
6135 3 f
6136 720 258(Seltzer)N
6137 977(&)X
6138 1064(Yigit)X
6139 3278(A)X
6140 3356(New)X
6141 3528(Hashing)X
6142 3831(Package)X
6143 4136(for)X
6144 4259(UNIX)X
6145 1 f
6146 720 538(cannot)N
6147 955(be)X
6148 1052(present)X
6149 1305(in)X
6150 1388(the)X
6151 1507(buffer)X
6152 1724(pool)X
6153 1886(if)X
6154 1955(its)X
6155 2050(primary)X
6156 2324(page)X
6157 720 626(is)N
6158 804(not)X
6159 937(present.)X
6160 1240(This)X
6161 1413(does)X
6162 1591(not)X
6163 1724(impact)X
6164 1972(performance)X
6165 2409(or)X
6166 720 714(functionality,)N
6167 1209(because)X
6168 1524(an)X
6169 1660(over\257ow)X
6170 2005(page)X
6171 2217(will)X
6172 2400(be)X
6173 720 802(accessed)N
6174 1048(only)X
6175 1236(after)X
6176 1430(its)X
6177 1550(predecessor)X
6178 1975(page)X
6179 2172(has)X
6180 2324(been)X
6181 720 890(accessed.)N
6182 1068(Figure)X
6183 1303(4)X
6184 1369(depicts)X
6185 1622(the)X
6186 1746(data)X
6187 1905(structures)X
6188 2242(used)X
6189 2414(to)X
6190 720 978(manage)N
6191 990(the)X
6192 1108(buffer)X
6193 1325(pool.)X
6194 892 1092(The)N
6195 1040(in-memory)X
6196 1419(bucket)X
6197 1656(array)X
6198 1845(contains)X
6199 2134(pointers)X
6200 2414(to)X
6201 720 1180(buffer)N
6202 975(header)X
6203 1248(structures)X
6204 1617(which)X
6205 1870(represent)X
6206 2222(primary)X
6207 720 1268(pages.)N
6208 968(Buffer)X
6209 1203(headers)X
6210 1474(contain)X
6211 1735(modi\256ed)X
6212 2043(bits,)X
6213 2202(the)X
6214 2324(page)X
6215 720 1356(address)N
6216 995(of)X
6217 1096(the)X
6218 1228(buffer,)X
6219 1479(a)X
6220 1548(pointer)X
6221 1808(to)X
6222 1903(the)X
6223 2034(actual)X
6224 2259(buffer,)X
6225 720 1444(and)N
6226 875(a)X
6227 950(pointer)X
6228 1216(to)X
6229 1317(the)X
6230 1454(buffer)X
6231 1690(header)X
6232 1944(for)X
6233 2077(an)X
6234 2191(over\257ow)X
6235 720 1532(page)N
6236 901(if)X
6237 979(it)X
6238 1052(exists,)X
6239 1283(in)X
6240 1374(addition)X
6241 1665(to)X
6242 1756(the)X
6243 1883(LRU)X
6244 2072(links.)X
6245 2296(If)X
6246 2378(the)X
6247 720 1620(buffer)N
6248 950(corresponding)X
6249 1442(to)X
6250 1537(a)X
6251 1606(particular)X
6252 1947(bucket)X
6253 2194(is)X
6254 2280(not)X
6255 2414(in)X
6256 720 1708(memory,)N
6257 1048(its)X
6258 1164(pointer)X
6259 1432(is)X
6260 1526(NULL.)X
6261 1801(In)X
6262 1909(effect,)X
6263 2154(pages)X
6264 2377(are)X
6265 720 1796(linked)N
6266 950(in)X
6267 1042(three)X
6268 1233(ways.)X
6269 1468(Using)X
6270 1689(the)X
6271 1817(buffer)X
6272 2043(headers,)X
6273 2338(they)X
6274 720 1884(are)N
6275 851(linked)X
6276 1083(physically)X
6277 1444(through)X
6278 1725(the)X
6279 1854(LRU)X
6280 2045(links)X
6281 2231(and)X
6282 2378(the)X
6283 720 1972(over\257ow)N
6284 1036(links.)X
6285 1241(Using)X
6286 1462(the)X
6287 1590(pages)X
6288 1803(themselves,)X
6289 2209(they)X
6290 2377(are)X
6291 720 2060(linked)N
6292 943(logically)X
6293 1246(through)X
6294 1518(the)X
6295 1639(over\257ow)X
6296 1946(addresses)X
6297 2276(on)X
6298 2378(the)X
6299 720 2148(page.)N
6300 948(Since)X
6301 1162(over\257ow)X
6302 1482(pages)X
6303 1700(are)X
6304 1834(accessed)X
6305 2151(only)X
6306 2328(after)X
6307 720 2236(their)N
6308 904(predecessor)X
6309 1321(pages,)X
6310 1560(they)X
6311 1734(are)X
6312 1869(removed)X
6313 2186(from)X
6314 2378(the)X
6315 720 2324(buffer)N
6316 937(pool)X
6317 1099(when)X
6318 1293(their)X
6319 1460(primary)X
6320 1734(is)X
6321 1807(removed.)X
6322 10 f
6323 720 2412 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
6324 1 Dt
6325 2309 3177 MXY
6326 24 15 Dl
6327 -8 -15 Dl
6328 8 -15 Dl
6329 -24 15 Dl
6330 52 0 Dl
6331 789 3160 MXY
6332 -35 0 Dl
6333 0 -156 Dl
6334 1607 0 Dl
6335 0 173 Dl
6336 789 3091 MXY
6337 -24 -15 Dl
6338 9 15 Dl
6339 -9 15 Dl
6340 24 -15 Dl
6341 -69 0 Dl
6342 2309 3125 MXY
6343 104 0 Dl
6344 0 -155 Dl
6345 -1693 0 Dl
6346 0 121 Dl
6347 927 3160 MXY
6348 24 15 Dl
6349 -9 -15 Dl
6350 9 -15 Dl
6351 -24 15 Dl
6352 553 0 Dl
6353 1618 3177 MXY
6354 8 27 Dl
6355 4 -17 Dl
6356 16 -6 Dl
6357 -28 -4 Dl
6358 138 121 Dl
6359 1895 3315 MXY
6360 28 3 Dl
6361 -15 -9 Dl
6362 1 -18 Dl
6363 -14 24 Dl
6364 276 -138 Dl
6365 3108 MY
6366 -28 -3 Dl
6367 15 10 Dl
6368 -1 17 Dl
6369 14 -24 Dl
6370 -276 138 Dl
6371 1756 3229 MXY
6372 -8 -27 Dl
6373 -3 17 Dl
6374 -16 6 Dl
6375 27 4 Dl
6376 -138 -121 Dl
6377 1480 MX
6378 -24 -15 Dl
6379 9 15 Dl
6380 -9 15 Dl
6381 24 -15 Dl
6382 -553 0 Dl
6383 3 f
6384 5 s
6385 1083 3073(LRU)N
6386 1178(chain)X
6387 4 Ds
6388 1402 3851 MXY
6389  1402 3851 lineto
6390  1471 3851 lineto
6391  1471 3920 lineto
6392  1402 3920 lineto
6393  1402 3851 lineto
6394 closepath 19 1402 3851 1471 3920 Dp
6395 1445 3747(Over\257ow)N
6396 1613(Address)X
6397 1549 3609 MXY
6398 0 69 Dl
6399 1756 MX
6400 -23 -15 Dl
6401 8 15 Dl
6402 -8 15 Dl
6403 23 -15 Dl
6404 -207 0 Dl
6405 -1 Ds
6406 3 Dt
6407 1756 3419 MXY
6408 -6 -28 Dl
6409 -4 17 Dl
6410 -17 5 Dl
6411 27 6 Dl
6412 -138 -138 Dl
6413 2240 3471 MXY
6414 15 -24 Dl
6415 -15 9 Dl
6416 -15 -9 Dl
6417 15 24 Dl
6418 0 -138 Dl
6419 1826 3609 MXY
6420 15 -24 Dl
6421 -15 9 Dl
6422 -16 -9 Dl
6423 16 24 Dl
6424 0 -138 Dl
6425 1549 MX
6426 15 -24 Dl
6427 -15 9 Dl
6428 -15 -9 Dl
6429 15 24 Dl
6430 0 -138 Dl
6431 858 3471 MXY
6432 15 -24 Dl
6433 -15 9 Dl
6434 -15 -9 Dl
6435 15 24 Dl
6436 0 -138 Dl
6437 2240 3056 MXY
6438 15 -24 Dl
6439 -15 9 Dl
6440 -15 -9 Dl
6441 15 24 Dl
6442 0 -138 Dl
6443 1549 3056 MXY
6444 15 -24 Dl
6445 -15 9 Dl
6446 -15 -9 Dl
6447 15 24 Dl
6448 0 -138 Dl
6449 858 3056 MXY
6450 15 -24 Dl
6451 -15 9 Dl
6452 -15 -9 Dl
6453 15 24 Dl
6454 0 -138 Dl
6455 1 Dt
6456 2171 3471 MXY
6457  2171 3471 lineto
6458  2448 3471 lineto
6459  2448 3609 lineto
6460  2171 3609 lineto
6461  2171 3471 lineto
6462 closepath 19 2171 3471 2448 3609 Dp
6463 1756 3609 MXY
6464  1756 3609 lineto
6465  2033 3609 lineto
6466  2033 3747 lineto
6467  1756 3747 lineto
6468  1756 3609 lineto
6469 closepath 3 1756 3609 2033 3747 Dp
6470 1480 3471 MXY
6471  1480 3471 lineto
6472  1756 3471 lineto
6473  1756 3609 lineto
6474  1480 3609 lineto
6475  1480 3471 lineto
6476 closepath 19 1480 3471 1756 3609 Dp
6477 789 MX
6478  789 3471 lineto
6479  1065 3471 lineto
6480  1065 3609 lineto
6481  789 3609 lineto
6482  789 3471 lineto
6483 closepath 19 789 3471 1065 3609 Dp
6484 962 3903(Buffer)N
6485 1083(Header)X
6486 849 3851 MXY
6487  849 3851 lineto
6488  918 3851 lineto
6489  918 3920 lineto
6490  849 3920 lineto
6491  849 3851 lineto
6492 closepath 14 849 3851 918 3920 Dp
6493 1756 3194 MXY
6494  1756 3194 lineto
6495  1895 3194 lineto
6496  1895 3471 lineto
6497  1756 3471 lineto
6498  1756 3194 lineto
6499 closepath 14 1756 3194 1895 3471 Dp
6500 2171 3056 MXY
6501  2171 3056 lineto
6502  2309 3056 lineto
6503  2309 3333 lineto
6504  2171 3333 lineto
6505  2171 3056 lineto
6506 closepath 14 2171 3056 2309 3333 Dp
6507 1480 MX
6508  1480 3056 lineto
6509  1618 3056 lineto
6510  1618 3333 lineto
6511  1480 3333 lineto
6512  1480 3056 lineto
6513 closepath 14 1480 3056 1618 3333 Dp
6514 789 MX
6515  789 3056 lineto
6516  927 3056 lineto
6517  927 3333 lineto
6518  789 3333 lineto
6519  789 3056 lineto
6520 closepath 14 789 3056 927 3333 Dp
6521 2780 MY
6522 0 138 Dl
6523 138 0 Dl
6524 0 -138 Dl
6525 -138 0 Dl
6526 927 MX
6527 0 138 Dl
6528 138 0 Dl
6529 0 -138 Dl
6530 -138 0 Dl
6531 1065 MX
6532 0 138 Dl
6533 138 0 Dl
6534 0 -138 Dl
6535 -138 0 Dl
6536 1203 MX
6537 0 138 Dl
6538 139 0 Dl
6539 0 -138 Dl
6540 -139 0 Dl
6541 1342 MX
6542 0 138 Dl
6543 138 0 Dl
6544 0 -138 Dl
6545 -138 0 Dl
6546 1480 MX
6547 0 138 Dl
6548 138 0 Dl
6549 0 -138 Dl
6550 -138 0 Dl
6551 1618 MX
6552 0 138 Dl
6553 138 0 Dl
6554 0 -138 Dl
6555 -138 0 Dl
6556 1756 MX
6557 0 138 Dl
6558 139 0 Dl
6559 0 -138 Dl
6560 -139 0 Dl
6561 1895 MX
6562 0 138 Dl
6563 138 0 Dl
6564 0 -138 Dl
6565 -138 0 Dl
6566 2033 MX
6567 0 138 Dl
6568 138 0 Dl
6569 0 -138 Dl
6570 -138 0 Dl
6571 2171 MX
6572 0 138 Dl
6573 138 0 Dl
6574 0 -138 Dl
6575 -138 0 Dl
6576 2309 MX
6577 0 138 Dl
6578 139 0 Dl
6579 0 -138 Dl
6580 -139 0 Dl
6581 13 s
6582 1048 2720(In)N
6583 1173(Memory)X
6584 1580(Bucket)X
6585 1918(Array)X
6586 867 3584(B0)N
6587 1558(B5)X
6588 2223(B10)X
6589 1788 3722(O1/1)N
6590 5 s
6591 1515 3903(Primay)N
6592 1651(Buffer)X
6593 4 Ds
6594 1990 3851 MXY
6595  1990 3851 lineto
6596  2059 3851 lineto
6597  2059 3920 lineto
6598  1990 3920 lineto
6599  1990 3851 lineto
6600 closepath 3 1990 3851 2059 3920 Dp
6601 2102 3903(Over\257ow)N
6602 2270(Buffer)X
6603 3 Dt
6604 -1 Ds
6605 8 s
6606 720 4184(Figure)N
6607 922(4:)X
6608 1 f
6609 996(Three)X
6610 1164(primary)X
6611 1386(pages)X
6612 1551(\(B0,)X
6613 1683(B5,)X
6614 1794(B10\))X
6615 1942(are)X
6616 2039(accessed)X
6617 2281(directly)X
6618 720 4272(from)N
6619 862(the)X
6620 958(bucket)X
6621 1146(array.)X
6622 1326(The)X
6623 1443(one)X
6624 1553(over\257ow)X
6625 1798(page)X
6626 1935(\(O1/1\))X
6627 2122(is)X
6628 2182(linked)X
6629 2359(phy-)X
6630 720 4360(sically)N
6631 915(from)X
6632 1067(its)X
6633 1155(primary)X
6634 1384(page's)X
6635 1577(buffer)X
6636 1759(header)X
6637 1955(as)X
6638 2035(well)X
6639 2172(as)X
6640 2252(logically)X
6641 720 4448(from)N
6642 860(its)X
6643 937(predecessor)X
6644 1253(page)X
6645 1389(buffer)X
6646 1560(\(B5\).)X
6647 10 s
6648 10 f
6649 720 4624 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
6650 3 f
6651 1191 4954(Table)N
6652 1406(Parameterization)X
6653 1 f
6654 892 5086(When)N
6655 1107(a)X
6656 1166(hash)X
6657 1336(table)X
6658 1515(is)X
6659 1590(created,)X
6660 1865(the)X
6661 1985(bucket)X
6662 2221(size,)X
6663 2388(\256ll)X
6664 720 5174(factor,)N
6665 953(initial)X
6666 1164(number)X
6667 1434(of)X
6668 1526(elements,)X
6669 1856(number)X
6670 2125(of)X
6671 2216(bytes)X
6672 2409(of)X
6673 720 5262(main)N
6674 919(memory)X
6675 1225(used)X
6676 1411(for)X
6677 1543(caching,)X
6678 1851(and)X
6679 2005(a)X
6680 2079(user-de\256ned)X
6681 720 5350(hash)N
6682 892(function)X
6683 1184(may)X
6684 1347(be)X
6685 1448(speci\256ed.)X
6686 1797(The)X
6687 1946(bucket)X
6688 2184(size)X
6689 2333(\(and)X
6690 720 5438(page)N
6691 906(size)X
6692 1064(for)X
6693 1191(over\257ow)X
6694 1509(pages\))X
6695 1752(defaults)X
6696 2039(to)X
6697 2134(256)X
6698 2287(bytes.)X
6699 720 5526(For)N
6700 858(tables)X
6701 1072(with)X
6702 1241(large)X
6703 1429(data)X
6704 1590(items,)X
6705 1810(it)X
6706 1881(may)X
6707 2046(be)X
6708 2149(preferable)X
6709 720 5614(to)N
6710 803(increase)X
6711 1088(the)X
6712 1207(page)X
6713 1380(size,)X
6714 1545(and,)X
6715 1701(conversely,)X
6716 2089(applications)X
6717 720 5702(storing)N
6718 1002(small)X
6719 1235(items)X
6720 1467(exclusively)X
6721 1891(in)X
6722 2012(memory)X
6723 2338(may)X
6724 2706 538(bene\256t)N
6725 2966(from)X
6726 3164(a)X
6727 3242(smaller)X
6728 3520(bucket)X
6729 3776(size.)X
6730 3983(A)X
6731 4082(bucket)X
6732 4337(size)X
6733 2706 626(smaller)N
6734 2962(than)X
6735 3120(64)X
6736 3220(bytes)X
6737 3409(is)X
6738 3482(not)X
6739 3604(recommended.)X
6740 2878 740(The)N
6741 3031(\256ll)X
6742 3147(factor)X
6743 3363(indicates)X
6744 3676(a)X
6745 3740(desired)X
6746 4000(density)X
6747 4258(within)X
6748 2706 828(the)N
6749 2833(hash)X
6750 3009(table.)X
6751 3234(It)X
6752 3312(is)X
6753 3394(an)X
6754 3499(approximation)X
6755 3995(of)X
6756 4091(the)X
6757 4217(number)X
6758 2706 916(of)N
6759 2815(keys)X
6760 3004(allowed)X
6761 3300(to)X
6762 3404(accumulate)X
6763 3811(in)X
6764 3914(any)X
6765 4071(one)X
6766 4228(bucket,)X
6767 2706 1004(determining)N
6768 3119(when)X
6769 3319(the)X
6770 3442(hash)X
6771 3614(table)X
6772 3795(grows.)X
6773 4056(Its)X
6774 4161(default)X
6775 4409(is)X
6776 2706 1092(eight.)N
6777 2953(If)X
6778 3054(the)X
6779 3199(user)X
6780 3380(knows)X
6781 3636(the)X
6782 3781(average)X
6783 4079(size)X
6784 4251(of)X
6785 4364(the)X
6786 2706 1180(key/data)N
6787 3008(pairs)X
6788 3194(being)X
6789 3402(stored)X
6790 3627(in)X
6791 3718(the)X
6792 3845(table,)X
6793 4050(near)X
6794 4218(optimal)X
6795 2706 1268(bucket)N
6796 2943(sizes)X
6797 3122(and)X
6798 3261(\256ll)X
6799 3372(factors)X
6800 3614(may)X
6801 3775(be)X
6802 3874(selected)X
6803 4155(by)X
6804 4257(apply-)X
6805 2706 1356(ing)N
6806 2828(the)X
6807 2946(equation:)X
6808 0 f
6809 8 s
6810 2706 1655(\(1\))N
6811 2994 -0.3938(\(\(average_pair_length)AX
6812 3830(+)X
6813 3906(4\))X
6814 4020(*)X
6815 3032 1743(ffactor\))N
6816 3374(>=)X
6817 3488(bsize)X
6818 1 f
6819 10 s
6820 2706 2042(For)N
6821 2859(highly)X
6822 3104(time)X
6823 3287(critical)X
6824 3551(applications,)X
6825 3999(experimenting)X
6826 2706 2130(with)N
6827 2919(different)X
6828 3266(bucket)X
6829 3550(sizes)X
6830 3776(and)X
6831 3962(\256ll)X
6832 4120(factors)X
6833 4409(is)X
6834 2706 2218(encouraged.)N
6835 2878 2332(Figures)N
6836 3144(5a,b,)X
6837 3326(and)X
6838 3468(c)X
6839 3530(illustrate)X
6840 3836(the)X
6841 3960(effects)X
6842 4200(of)X
6843 4292(vary-)X
6844 2706 2420(ing)N
6845 2841(page)X
6846 3026(sizes)X
6847 3215(and)X
6848 3363(\256ll)X
6849 3483(factors)X
6850 3734(for)X
6851 3860(the)X
6852 3990(same)X
6853 4187(data)X
6854 4353(set.)X
6855 2706 2508(The)N
6856 2864(data)X
6857 3031(set)X
6858 3152(consisted)X
6859 3482(of)X
6860 3581(24474)X
6861 3813(keys)X
6862 3992(taken)X
6863 4198(from)X
6864 4386(an)X
6865 2706 2596(online)N
6866 2931(dictionary.)X
6867 3301(The)X
6868 3451(data)X
6869 3609(value)X
6870 3807(for)X
6871 3925(each)X
6872 4097(key)X
6873 4237(was)X
6874 4386(an)X
6875 2706 2684(ASCII)N
6876 2938(string)X
6877 3143(for)X
6878 3260(an)X
6879 3359(integer)X
6880 3605(from)X
6881 3784(1)X
6882 3847(to)X
6883 3931(24474)X
6884 4153(inclusive.)X
6885 2706 2772(The)N
6886 2867(test)X
6887 3013(run)X
6888 3155(consisted)X
6889 3488(of)X
6890 3590(creating)X
6891 3884(a)X
6892 3955(new)X
6893 4124(hash)X
6894 4306(table)X
6895 2706 2860(\(where)N
6896 2966(the)X
6897 3100(ultimate)X
6898 3398(size)X
6899 3559(of)X
6900 3662(the)X
6901 3796(table)X
6902 3987(was)X
6903 4147(known)X
6904 4400(in)X
6905 2706 2948(advance\),)N
6906 3054(entering)X
6907 3354(each)X
6908 3539(key/data)X
6909 3848(pair)X
6910 4010(into)X
6911 4171(the)X
6912 4306(table)X
6913 2706 3036(and)N
6914 2849(then)X
6915 3014(retrieving)X
6916 3353(each)X
6917 3528(key/data)X
6918 3827(pair)X
6919 3979(from)X
6920 4162(the)X
6921 4286(table.)X
6922 2706 3124(Each)N
6923 2898(of)X
6924 2996(the)X
6925 3125(graphs)X
6926 3369(shows)X
6927 3599(the)X
6928 3727(timings)X
6929 3996(resulting)X
6930 4306(from)X
6931 2706 3212(varying)N
6932 2973(the)X
6933 3093(pagesize)X
6934 3392(from)X
6935 3570(128)X
6936 3712(bytes)X
6937 3903(to)X
6938 3986(1M)X
6939 4118(and)X
6940 4255(the)X
6941 4374(\256ll)X
6942 2706 3300(factor)N
6943 2929(from)X
6944 3120(1)X
6945 3195(to)X
6946 3292(128.)X
6947 3486(For)X
6948 3631(each)X
6949 3813(run,)X
6950 3974(the)X
6951 4106(buffer)X
6952 4337(size)X
6953 2706 3388(was)N
6954 2874(set)X
6955 3006(at)X
6956 3106(1M.)X
6957 3299(The)X
6958 3466(tests)X
6959 3650(were)X
6960 3849(all)X
6961 3971(run)X
6962 4120(on)X
6963 4242(an)X
6964 4360(HP)X
6965 2706 3476(9000/370)N
6966 3077(\(33.3)X
6967 3312(Mhz)X
6968 3527(MC68030\),)X
6969 3966(with)X
6970 4176(16M)X
6971 4395(of)X
6972 2706 3564(memory,)N
6973 3042(64K)X
6974 3228(physically)X
6975 3605(addressed)X
6976 3970(cache,)X
6977 4222(and)X
6978 4386(an)X
6979 2706 3652(HP7959S)N
6980 3055(disk)X
6981 3231(drive,)X
6982 3459(running)X
6983 3751(4.3BSD-Reno)X
6984 4244(single-)X
6985 2706 3740(user.)N
6986 2878 3854(Both)N
6987 3066(system)X
6988 3321(time)X
6989 3496(\(Figure)X
6990 3764(5a\))X
6991 3899(and)X
6992 4047(elapsed)X
6993 4320(time)X
6994 2706 3942(\(Figure)N
6995 2966(5b\))X
6996 3097(show)X
6997 3290(that)X
6998 3434(for)X
6999 3552(all)X
7000 3655(bucket)X
7001 3892(sizes,)X
7002 4091(the)X
7003 4212(greatest)X
7004 2706 4030(performance)N
7005 3137(gains)X
7006 3329(are)X
7007 3451(made)X
7008 3648(by)X
7009 3751(increasing)X
7010 4104(the)X
7011 4225(\256ll)X
7012 4336(fac-)X
7013 2706 4118(tor)N
7014 2822(until)X
7015 2995(equation)X
7016 3298(1)X
7017 3365(is)X
7018 3445(satis\256ed.)X
7019 3774(The)X
7020 3925(user)X
7021 4085(time)X
7022 4253(shown)X
7023 2706 4206(in)N
7024 2791(Figure)X
7025 3023(5c)X
7026 3122(gives)X
7027 3314(a)X
7028 3373(more)X
7029 3561(detailed)X
7030 3838(picture)X
7031 4083(of)X
7032 4172(how)X
7033 4332(per-)X
7034 2706 4294(formance)N
7035 3054(varies.)X
7036 3330(The)X
7037 3499(smaller)X
7038 3778(bucket)X
7039 4035(sizes)X
7040 4234(require)X
7041 2706 4382(fewer)N
7042 2921(keys)X
7043 3099(per)X
7044 3233(page)X
7045 3416(to)X
7046 3509(satisfy)X
7047 3749(equation)X
7048 4056(1)X
7049 4127(and)X
7050 4274(there-)X
7051 2706 4470(fore)N
7052 2860(incur)X
7053 3049(fewer)X
7054 3257(collisions.)X
7055 3607(However,)X
7056 3946(when)X
7057 4144(the)X
7058 4265(buffer)X
7059 2706 4558(pool)N
7060 2884(size)X
7061 3045(is)X
7062 3134(\256xed,)X
7063 3349(smaller)X
7064 3620(pages)X
7065 3838(imply)X
7066 4059(more)X
7067 4259(pages.)X
7068 2706 4646(An)N
7069 2830(increased)X
7070 3160(number)X
7071 3430(of)X
7072 3522(pages)X
7073 3730(means)X
7074 3960(more)X
7075 2 f
7076 4150(malloc\(3\))X
7077 1 f
7078 2706 4734(calls)N
7079 2879(and)X
7080 3021(more)X
7081 3212(overhead)X
7082 3533(in)X
7083 3621(the)X
7084 3745(hash)X
7085 3918(package's)X
7086 4265(buffer)X
7087 2706 4822(manager)N
7088 3003(to)X
7089 3085(manage)X
7090 3355(the)X
7091 3473(additional)X
7092 3813(pages.)X
7093 2878 4936(The)N
7094 3028(tradeoff)X
7095 3308(works)X
7096 3529(out)X
7097 3655(most)X
7098 3834(favorably)X
7099 4166(when)X
7100 4364(the)X
7101 2706 5024(page)N
7102 2886(size)X
7103 3039(is)X
7104 3120(256)X
7105 3268(and)X
7106 3412(the)X
7107 3538(\256ll)X
7108 3654(factor)X
7109 3870(is)X
7110 3950(8.)X
7111 4057(Similar)X
7112 4319(con-)X
7113 2706 5112(clusions)N
7114 3009(were)X
7115 3207(obtained)X
7116 3524(if)X
7117 3614(the)X
7118 3753(test)X
7119 3905(was)X
7120 4071(run)X
7121 4218(without)X
7122 2706 5200(knowing)N
7123 3007(the)X
7124 3126(\256nal)X
7125 3289(table)X
7126 3466(size)X
7127 3612(in)X
7128 3695(advance.)X
7129 4020(If)X
7130 4095(the)X
7131 4214(\256le)X
7132 4337(was)X
7133 2706 5288(closed)N
7134 2942(and)X
7135 3088(written)X
7136 3345(to)X
7137 3437(disk,)X
7138 3620(the)X
7139 3748(conclusions)X
7140 4156(were)X
7141 4343(still)X
7142 2706 5376(the)N
7143 2832(same.)X
7144 3065(However,)X
7145 3408(rereading)X
7146 3740(the)X
7147 3865(\256le)X
7148 3994(from)X
7149 4177(disk)X
7150 4337(was)X
7151 2706 5464(slightly)N
7152 2983(faster)X
7153 3199(if)X
7154 3285(a)X
7155 3358(larger)X
7156 3583(bucket)X
7157 3834(size)X
7158 3996(and)X
7159 4149(\256ll)X
7160 4274(factor)X
7161 2706 5552(were)N
7162 2898(used)X
7163 3079(\(1K)X
7164 3238(bucket)X
7165 3486(size)X
7166 3645(and)X
7167 3795(32)X
7168 3909(\256ll)X
7169 4031(factor\).)X
7170 4320(This)X
7171 2706 5640(follows)N
7172 2987(intuitively)X
7173 3356(from)X
7174 3553(the)X
7175 3691(improved)X
7176 4038(ef\256ciency)X
7177 4395(of)X
7178 3 f
7179 720 5960(USENIX)N
7180 9 f
7181 1042(-)X
7182 3 f
7183 1106(Winter)X
7184 1371('91)X
7185 9 f
7186 1498(-)X
7187 3 f
7188 1562(Dallas,)X
7189 1815(TX)X
7190 4424(7)X
7191
7192 8 p
7193 %%Page: 8 8
7194 0(Courier)xf 0 f
7195 10 s 10 xH 0 xS 0 f
7196 3 f
7197 432 258(A)N
7198 510(New)X
7199 682(Hashing)X
7200 985(Package)X
7201 1290(for)X
7202 1413(UNIX)X
7203 3663(Seltzer)X
7204 3920(&)X
7205 4007(Yigit)X
7206 1 f
7207 432 538(performing)N
7208 830(1K)X
7209 965(reads)X
7210 1172(from)X
7211 1365(the)X
7212 1500(disk)X
7213 1670(rather)X
7214 1894(than)X
7215 2068(256)X
7216 432 626(byte)N
7217 609(reads.)X
7218 857(In)X
7219 962(general,)X
7220 1257(performance)X
7221 1702(for)X
7222 1834(disk)X
7223 2005(based)X
7224 432 714(tables)N
7225 639(is)X
7226 712(best)X
7227 861(when)X
7228 1055(the)X
7229 1173(page)X
7230 1345(size)X
7231 1490(is)X
7232 1563(approximately)X
7233 2046(1K.)X
7234 10 f
7235 432 802 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
7236 619 2380 MXY
7237 -12 24 Dl
7238 24 0 Dl
7239 -12 -24 Dl
7240 629 2437 MXY
7241 -12 24 Dl
7242 24 0 Dl
7243 -12 -24 Dl
7244 648 2504 MXY
7245 -12 25 Dl
7246 24 0 Dl
7247 -12 -25 Dl
7248 686 2515 MXY
7249 -12 24 Dl
7250 24 0 Dl
7251 -12 -24 Dl
7252 762 2516 MXY
7253 -12 24 Dl
7254 25 0 Dl
7255 -13 -24 Dl
7256 916 2515 MXY
7257 -13 24 Dl
7258 25 0 Dl
7259 -12 -24 Dl
7260 1222 2516 MXY
7261 -12 24 Dl
7262 24 0 Dl
7263 -12 -24 Dl
7264 1834 2515 MXY
7265 -12 24 Dl
7266 24 0 Dl
7267 -12 -24 Dl
7268 1 Dt
7269 619 2392 MXY
7270 10 57 Dl
7271 19 67 Dl
7272 38 11 Dl
7273 76 1 Dl
7274 154 -1 Dl
7275 306 1 Dl
7276 612 -1 Dl
7277 8 s
7278 1 f
7279 1628 2522(128)N
7280 3 Dt
7281 607 2245 MXY
7282 24 Dc
7283 617 2375 MXY
7284 23 Dc
7285 635 2442 MXY
7286 24 Dc
7287 674 2525 MXY
7288 23 Dc
7289 750 2529 MXY
7290 24 Dc
7291 904 2527 MXY
7292 23 Dc
7293 1210 MX
7294 23 Dc
7295 1822 2528 MXY
7296 23 Dc
7297 20 Ds
7298 1 Dt
7299 619 2245 MXY
7300 10 130 Dl
7301 19 67 Dl
7302 38 83 Dl
7303 76 4 Dl
7304 154 -2 Dl
7305 306 0 Dl
7306 612 1 Dl
7307 678 2482(256)N
7308 -1 Ds
7309 3 Dt
7310 619 2127 MXY
7311 0 24 Dl
7312 0 -12 Dl
7313 12 0 Dl
7314 -24 0 Dl
7315 629 2191 MXY
7316 0 25 Dl
7317 0 -12 Dl
7318 12 0 Dl
7319 -24 0 Dl
7320 648 2334 MXY
7321 0 24 Dl
7322 0 -12 Dl
7323 12 0 Dl
7324 -24 0 Dl
7325 686 2409 MXY
7326 0 25 Dl
7327 0 -13 Dl
7328 12 0 Dl
7329 -24 0 Dl
7330 762 2516 MXY
7331 0 25 Dl
7332 0 -12 Dl
7333 13 0 Dl
7334 -25 0 Dl
7335 916 2516 MXY
7336 0 24 Dl
7337 0 -12 Dl
7338 12 0 Dl
7339 -25 0 Dl
7340 1222 2515 MXY
7341 0 24 Dl
7342 0 -12 Dl
7343 12 0 Dl
7344 -24 0 Dl
7345 1834 2515 MXY
7346 0 24 Dl
7347 0 -12 Dl
7348 12 0 Dl
7349 -24 0 Dl
7350 5 Dt
7351 619 2139 MXY
7352 10 65 Dl
7353 19 142 Dl
7354 38 75 Dl
7355 76 108 Dl
7356 154 -1 Dl
7357 306 -1 Dl
7358 612 0 Dl
7359 694 2401(512)N
7360 3 Dt
7361 631 2064 MXY
7362 -24 24 Dl
7363 12 -12 Dl
7364 -12 -12 Dl
7365 24 24 Dl
7366 641 2077 MXY
7367 -24 25 Dl
7368 12 -12 Dl
7369 -12 -13 Dl
7370 24 25 Dl
7371 660 2132 MXY
7372 -24 24 Dl
7373 12 -12 Dl
7374 -12 -12 Dl
7375 24 24 Dl
7376 698 2292 MXY
7377 -24 24 Dl
7378 12 -12 Dl
7379 -12 -12 Dl
7380 24 24 Dl
7381 775 2382 MXY
7382 -25 24 Dl
7383 12 -12 Dl
7384 -12 -12 Dl
7385 25 24 Dl
7386 928 2516 MXY
7387 -25 24 Dl
7388 13 -12 Dl
7389 -13 -12 Dl
7390 25 24 Dl
7391 1234 2516 MXY
7392 -24 25 Dl
7393 12 -12 Dl
7394 -12 -13 Dl
7395 24 25 Dl
7396 1846 2516 MXY
7397 -24 24 Dl
7398 12 -12 Dl
7399 -12 -12 Dl
7400 24 24 Dl
7401 16 Ds
7402 1 Dt
7403 619 2076 MXY
7404 10 14 Dl
7405 19 54 Dl
7406 38 160 Dl
7407 76 90 Dl
7408 154 134 Dl
7409 306 1 Dl
7410 612 -1 Dl
7411 694 2257(1024)N
7412 -1 Ds
7413 3 Dt
7414 619 1877 MXY
7415 12 -24 Dl
7416 -24 0 Dl
7417 12 24 Dl
7418 629 1855 MXY
7419 12 -24 Dl
7420 -24 0 Dl
7421 12 24 Dl
7422 648 1838 MXY
7423 12 -24 Dl
7424 -24 0 Dl
7425 12 24 Dl
7426 686 1860 MXY
7427 12 -25 Dl
7428 -24 0 Dl
7429 12 25 Dl
7430 762 1923 MXY
7431 13 -24 Dl
7432 -25 0 Dl
7433 12 24 Dl
7434 916 2087 MXY
7435 12 -24 Dl
7436 -25 0 Dl
7437 13 24 Dl
7438 1222 2256 MXY
7439 12 -24 Dl
7440 -24 0 Dl
7441 12 24 Dl
7442 1834 2541 MXY
7443 12 -25 Dl
7444 -24 0 Dl
7445 12 25 Dl
7446 619 1865 MXY
7447 10 -22 Dl
7448 19 -17 Dl
7449 38 21 Dl
7450 76 64 Dl
7451 154 164 Dl
7452 306 169 Dl
7453 612 285 Dl
7454 1645 2427(4096)N
7455 619 1243 MXY
7456 0 24 Dl
7457 0 -12 Dl
7458 12 0 Dl
7459 -24 0 Dl
7460 629 1196 MXY
7461 0 24 Dl
7462 0 -12 Dl
7463 12 0 Dl
7464 -24 0 Dl
7465 648 1146 MXY
7466 0 24 Dl
7467 0 -12 Dl
7468 12 0 Dl
7469 -24 0 Dl
7470 686 1174 MXY
7471 0 25 Dl
7472 0 -13 Dl
7473 12 0 Dl
7474 -24 0 Dl
7475 762 1249 MXY
7476 0 24 Dl
7477 0 -12 Dl
7478 13 0 Dl
7479 -25 0 Dl
7480 916 1371 MXY
7481 0 24 Dl
7482 0 -12 Dl
7483 12 0 Dl
7484 -25 0 Dl
7485 1222 1680 MXY
7486 0 24 Dl
7487 0 -12 Dl
7488 12 0 Dl
7489 -24 0 Dl
7490 1834 1999 MXY
7491 0 24 Dl
7492 0 -12 Dl
7493 12 0 Dl
7494 -24 0 Dl
7495 619 1255 MXY
7496 10 -47 Dl
7497 19 -50 Dl
7498 38 28 Dl
7499 76 75 Dl
7500 154 122 Dl
7501 306 309 Dl
7502 612 319 Dl
7503 1741 1934(8192)N
7504 5 Dt
7505 609 2531 MXY
7506 1225 0 Dl
7507 609 MX
7508 0 -1553 Dl
7509 2531 MY
7510 0 16 Dl
7511 4 Ds
7512 1 Dt
7513 2531 MY
7514 0 -1553 Dl
7515 593 2625(0)N
7516 -1 Ds
7517 5 Dt
7518 916 2531 MXY
7519 0 16 Dl
7520 4 Ds
7521 1 Dt
7522 2531 MY
7523 0 -1553 Dl
7524 884 2625(32)N
7525 -1 Ds
7526 5 Dt
7527 1222 2531 MXY
7528 0 16 Dl
7529 4 Ds
7530 1 Dt
7531 2531 MY
7532 0 -1553 Dl
7533 1190 2625(64)N
7534 -1 Ds
7535 5 Dt
7536 1528 2531 MXY
7537 0 16 Dl
7538 4 Ds
7539 1 Dt
7540 2531 MY
7541 0 -1553 Dl
7542 1496 2625(96)N
7543 -1 Ds
7544 5 Dt
7545 1834 2531 MXY
7546 0 16 Dl
7547 4 Ds
7548 1 Dt
7549 2531 MY
7550 0 -1553 Dl
7551 1786 2625(128)N
7552 -1 Ds
7553 5 Dt
7554 609 2531 MXY
7555 -16 0 Dl
7556 4 Ds
7557 1 Dt
7558 609 MX
7559 1225 0 Dl
7560 545 2558(0)N
7561 -1 Ds
7562 5 Dt
7563 609 2013 MXY
7564 -16 0 Dl
7565 4 Ds
7566 1 Dt
7567 609 MX
7568 1225 0 Dl
7569 481 2040(100)N
7570 -1 Ds
7571 5 Dt
7572 609 1496 MXY
7573 -16 0 Dl
7574 4 Ds
7575 1 Dt
7576 609 MX
7577 1225 0 Dl
7578 481 1523(200)N
7579 -1 Ds
7580 5 Dt
7581 609 978 MXY
7582 -16 0 Dl
7583 4 Ds
7584 1 Dt
7585 609 MX
7586 1225 0 Dl
7587 481 1005(300)N
7588 1088 2724(Fill)N
7589 1194(Factor)X
7590 422 1611(S)N
7591 426 1667(e)N
7592 426 1724(c)N
7593 424 1780(o)N
7594 424 1837(n)N
7595 424 1893(d)N
7596 428 1949(s)N
7597 3 Dt
7598 -1 Ds
7599 3 f
7600 432 2882(Figure)N
7601 636(5a:)X
7602 1 f
7603 744(System)X
7604 956(Time)X
7605 1113(for)X
7606 1209(dictionary)X
7607 1490(data)X
7608 1618(set)X
7609 1711(with)X
7610 1847(1M)X
7611 1958(of)X
7612 2033(buffer)X
7613 432 2970(space)N
7614 594(and)X
7615 707(varying)X
7616 923(bucket)X
7617 1114(sizes)X
7618 1259(and)X
7619 1372(\256ll)X
7620 1465(factors.)X
7621 1675(Each)X
7622 1823(line)X
7623 1940(is)X
7624 2004(labeled)X
7625 432 3058(with)N
7626 562(its)X
7627 639(bucket)X
7628 825(size.)X
7629 10 s
7630 10 f
7631 432 3234 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
7632 8 s
7633 1 f
7634 428 4381(s)N
7635 424 4325(d)N
7636 424 4269(n)N
7637 424 4212(o)N
7638 426 4156(c)N
7639 426 4099(e)N
7640 422 4043(S)N
7641 1116 5156(Fill)N
7642 1222(Factor)X
7643 506 3437(3200)N
7644 4 Ds
7645 1 Dt
7646 666 3410 MXY
7647 1168 0 Dl
7648 -1 Ds
7649 5 Dt
7650 666 MX
7651 -16 0 Dl
7652 506 3825(2400)N
7653 4 Ds
7654 1 Dt
7655 666 3799 MXY
7656 1168 0 Dl
7657 -1 Ds
7658 5 Dt
7659 666 MX
7660 -16 0 Dl
7661 506 4214(1600)N
7662 4 Ds
7663 1 Dt
7664 666 4186 MXY
7665 1168 0 Dl
7666 -1 Ds
7667 5 Dt
7668 666 MX
7669 -16 0 Dl
7670 538 4602(800)N
7671 4 Ds
7672 1 Dt
7673 666 4575 MXY
7674 1168 0 Dl
7675 -1 Ds
7676 5 Dt
7677 666 MX
7678 -16 0 Dl
7679 602 4990(0)N
7680 4 Ds
7681 1 Dt
7682 666 4963 MXY
7683 1168 0 Dl
7684 -1 Ds
7685 5 Dt
7686 666 MX
7687 -16 0 Dl
7688 1786 5057(128)N
7689 4 Ds
7690 1 Dt
7691 1834 4963 MXY
7692 0 -1553 Dl
7693 -1 Ds
7694 5 Dt
7695 4963 MY
7696 0 16 Dl
7697 1510 5057(96)N
7698 4 Ds
7699 1 Dt
7700 1542 4963 MXY
7701 0 -1553 Dl
7702 -1 Ds
7703 5 Dt
7704 4963 MY
7705 0 16 Dl
7706 1218 5057(64)N
7707 4 Ds
7708 1 Dt
7709 1250 4963 MXY
7710 0 -1553 Dl
7711 -1 Ds
7712 5 Dt
7713 4963 MY
7714 0 16 Dl
7715 926 5057(32)N
7716 4 Ds
7717 1 Dt
7718 958 4963 MXY
7719 0 -1553 Dl
7720 -1 Ds
7721 5 Dt
7722 4963 MY
7723 0 16 Dl
7724 650 5057(0)N
7725 4 Ds
7726 1 Dt
7727 666 4963 MXY
7728 0 -1553 Dl
7729 -1 Ds
7730 5 Dt
7731 4963 MY
7732 0 16 Dl
7733 4963 MY
7734 0 -1553 Dl
7735 4963 MY
7736 1168 0 Dl
7737 1741 4752(8192)N
7738 3 Dt
7739 675 3732 MXY
7740 9 -172 Dl
7741 18 -118 Dl
7742 37 128 Dl
7743 73 -121 Dl
7744 146 623 Dl
7745 292 497 Dl
7746 584 245 Dl
7747 4802 MY
7748 0 24 Dl
7749 0 -12 Dl
7750 12 0 Dl
7751 -24 0 Dl
7752 1250 4557 MXY
7753 0 25 Dl
7754 0 -13 Dl
7755 12 0 Dl
7756 -24 0 Dl
7757 958 4060 MXY
7758 0 24 Dl
7759 0 -12 Dl
7760 12 0 Dl
7761 -24 0 Dl
7762 812 3437 MXY
7763 0 24 Dl
7764 0 -12 Dl
7765 12 0 Dl
7766 -24 0 Dl
7767 739 3558 MXY
7768 0 24 Dl
7769 0 -12 Dl
7770 12 0 Dl
7771 -24 0 Dl
7772 702 3430 MXY
7773 0 25 Dl
7774 0 -13 Dl
7775 13 0 Dl
7776 -25 0 Dl
7777 684 3548 MXY
7778 0 24 Dl
7779 0 -12 Dl
7780 12 0 Dl
7781 -24 0 Dl
7782 675 3720 MXY
7783 0 24 Dl
7784 0 -12 Dl
7785 12 0 Dl
7786 -24 0 Dl
7787 1637 4912(4096)N
7788 675 4307 MXY
7789 9 -58 Dl
7790 18 30 Dl
7791 37 89 Dl
7792 73 144 Dl
7793 146 235 Dl
7794 292 122 Dl
7795 584 89 Dl
7796 4970 MY
7797 12 -24 Dl
7798 -24 0 Dl
7799 12 24 Dl
7800 1250 4881 MXY
7801 12 -24 Dl
7802 -24 0 Dl
7803 12 24 Dl
7804 958 4759 MXY
7805 12 -24 Dl
7806 -24 0 Dl
7807 12 24 Dl
7808 812 4524 MXY
7809 12 -24 Dl
7810 -24 0 Dl
7811 12 24 Dl
7812 739 4380 MXY
7813 12 -24 Dl
7814 -24 0 Dl
7815 12 24 Dl
7816 702 4291 MXY
7817 13 -24 Dl
7818 -25 0 Dl
7819 12 24 Dl
7820 684 4261 MXY
7821 12 -24 Dl
7822 -24 0 Dl
7823 12 24 Dl
7824 675 4319 MXY
7825 12 -24 Dl
7826 -24 0 Dl
7827 12 24 Dl
7828 734 4662(1024)N
7829 16 Ds
7830 1 Dt
7831 675 4352 MXY
7832 9 60 Dl
7833 18 134 Dl
7834 37 266 Dl
7835 73 117 Dl
7836 146 30 Dl
7837 292 0 Dl
7838 584 -1 Dl
7839 -1 Ds
7840 3 Dt
7841 1846 4946 MXY
7842 -24 24 Dl
7843 12 -12 Dl
7844 -12 -12 Dl
7845 24 24 Dl
7846 1262 4946 MXY
7847 -24 25 Dl
7848 12 -12 Dl
7849 -12 -13 Dl
7850 24 25 Dl
7851 970 4947 MXY
7852 -24 24 Dl
7853 12 -12 Dl
7854 -12 -12 Dl
7855 24 24 Dl
7856 824 4917 MXY
7857 -24 24 Dl
7858 12 -12 Dl
7859 -12 -12 Dl
7860 24 24 Dl
7861 751 4800 MXY
7862 -24 24 Dl
7863 12 -12 Dl
7864 -12 -12 Dl
7865 24 24 Dl
7866 715 4534 MXY
7867 -25 25 Dl
7868 12 -13 Dl
7869 -12 -12 Dl
7870 25 25 Dl
7871 696 4400 MXY
7872 -24 24 Dl
7873 12 -12 Dl
7874 -12 -12 Dl
7875 24 24 Dl
7876 687 4339 MXY
7877 -24 25 Dl
7878 12 -12 Dl
7879 -12 -13 Dl
7880 24 25 Dl
7881 718 4792(512)N
7882 5 Dt
7883 675 4422 MXY
7884 9 137 Dl
7885 18 278 Dl
7886 37 105 Dl
7887 73 18 Dl
7888 146 -1 Dl
7889 292 0 Dl
7890 584 -1 Dl
7891 3 Dt
7892 4946 MY
7893 0 24 Dl
7894 0 -12 Dl
7895 12 0 Dl
7896 -24 0 Dl
7897 1250 4946 MXY
7898 0 25 Dl
7899 0 -12 Dl
7900 12 0 Dl
7901 -24 0 Dl
7902 958 4947 MXY
7903 0 24 Dl
7904 0 -12 Dl
7905 12 0 Dl
7906 -24 0 Dl
7907 812 4948 MXY
7908 0 24 Dl
7909 0 -12 Dl
7910 12 0 Dl
7911 -24 0 Dl
7912 739 4930 MXY
7913 0 24 Dl
7914 0 -12 Dl
7915 12 0 Dl
7916 -24 0 Dl
7917 702 4824 MXY
7918 0 25 Dl
7919 0 -12 Dl
7920 13 0 Dl
7921 -25 0 Dl
7922 684 4547 MXY
7923 0 24 Dl
7924 0 -12 Dl
7925 12 0 Dl
7926 -24 0 Dl
7927 675 4410 MXY
7928 0 25 Dl
7929 0 -13 Dl
7930 12 0 Dl
7931 -24 0 Dl
7932 750 4921(256)N
7933 20 Ds
7934 1 Dt
7935 675 4597 MXY
7936 9 246 Dl
7937 18 106 Dl
7938 37 10 Dl
7939 73 0 Dl
7940 146 0 Dl
7941 292 0 Dl
7942 584 -1 Dl
7943 -1 Ds
7944 3 Dt
7945 1822 MX
7946 23 Dc
7947 1238 4959 MXY
7948 23 Dc
7949 946 MX
7950 23 Dc
7951 800 MX
7952 23 Dc
7953 727 MX
7954 23 Dc
7955 691 4949 MXY
7956 23 Dc
7957 672 4843 MXY
7958 24 Dc
7959 663 4597 MXY
7960 24 Dc
7961 1395 4961(128)N
7962 1 Dt
7963 675 4855 MXY
7964 9 93 Dl
7965 18 10 Dl
7966 37 1 Dl
7967 73 0 Dl
7968 146 -1 Dl
7969 292 0 Dl
7970 584 0 Dl
7971 3 Dt
7972 4946 MY
7973 -12 24 Dl
7974 24 0 Dl
7975 -12 -24 Dl
7976 1250 MX
7977 -12 24 Dl
7978 24 0 Dl
7979 -12 -24 Dl
7980 958 MX
7981 -12 24 Dl
7982 24 0 Dl
7983 -12 -24 Dl
7984 812 MX
7985 -12 25 Dl
7986 24 0 Dl
7987 -12 -25 Dl
7988 739 4947 MXY
7989 -12 24 Dl
7990 24 0 Dl
7991 -12 -24 Dl
7992 702 4946 MXY
7993 -12 24 Dl
7994 25 0 Dl
7995 -13 -24 Dl
7996 684 4936 MXY
7997 -12 24 Dl
7998 24 0 Dl
7999 -12 -24 Dl
8000 675 4843 MXY
8001 -12 24 Dl
8002 24 0 Dl
8003 -12 -24 Dl
8004 3 Dt
8005 -1 Ds
8006 3 f
8007 432 5314(Figure)N
8008 634(5b:)X
8009 1 f
8010 744(Elapsed)X
8011 967(Time)X
8012 1123(for)X
8013 1218(dictionary)X
8014 1498(data)X
8015 1625(set)X
8016 1717(with)X
8017 1851(1M)X
8018 1960(of)X
8019 2033(buffer)X
8020 432 5402(space)N
8021 593(and)X
8022 705(varying)X
8023 920(bucket)X
8024 1110(sizes)X
8025 1254(and)X
8026 1366(\256ll)X
8027 1457(factors.)X
8028 1681(Each)X
8029 1827(line)X
8030 1942(is)X
8031 2004(labeled)X
8032 432 5490(with)N
8033 562(its)X
8034 639(bucket)X
8035 825(size.)X
8036 10 s
8037 2590 538(If)N
8038 2677(an)X
8039 2785(approximation)X
8040 3284(of)X
8041 3383(the)X
8042 3513(number)X
8043 3790(of)X
8044 3889(elements)X
8045 2418 626(ultimately)N
8046 2773(to)X
8047 2866(be)X
8048 2973(stored)X
8049 3200(in)X
8050 3293(the)X
8051 3422(hash)X
8052 3599(table)X
8053 3785(is)X
8054 3868(known)X
8055 4116(at)X
8056 2418 714(the)N
8057 2564(time)X
8058 2754(of)X
8059 2869(creation,)X
8060 3196(the)X
8061 3342(hash)X
8062 3536(package)X
8063 3847(takes)X
8064 4059(this)X
8065 2418 802(number)N
8066 2688(as)X
8067 2779(a)X
8068 2839(parameter)X
8069 3185(and)X
8070 3325(uses)X
8071 3487(it)X
8072 3555(to)X
8073 3641(hash)X
8074 3812(entries)X
8075 4050(into)X
8076 2418 890(the)N
8077 2541(full)X
8078 2677(sized)X
8079 2867(table)X
8080 3048(rather)X
8081 3261(than)X
8082 3424(growing)X
8083 3716(the)X
8084 3838(table)X
8085 4018(from)X
8086 2418 978(a)N
8087 2477(single)X
8088 2691(bucket.)X
8089 2968(If)X
8090 3044(this)X
8091 3181(number)X
8092 3448(is)X
8093 3523(not)X
8094 3647(known,)X
8095 3907(the)X
8096 4027(hash)X
8097 2418 1066(table)N
8098 2632(starts)X
8099 2859(with)X
8100 3059(a)X
8101 3153(single)X
8102 3402(bucket)X
8103 3674(and)X
8104 3848(gracefully)X
8105 2418 1154(expands)N
8106 2707(as)X
8107 2800(elements)X
8108 3111(are)X
8109 3236(added,)X
8110 3474(although)X
8111 3780(a)X
8112 3842(slight)X
8113 4044(per-)X
8114 2418 1242(formance)N
8115 2747(degradation)X
8116 3151(may)X
8117 3313(be)X
8118 3413(noticed.)X
8119 3713(Figure)X
8120 3946(6)X
8121 4010(illus-)X
8122 2418 1330(trates)N
8123 2625(the)X
8124 2756(difference)X
8125 3116(in)X
8126 3211(performance)X
8127 3651(between)X
8128 3952(storing)X
8129 2418 1418(keys)N
8130 2588(in)X
8131 2673(a)X
8132 2732(\256le)X
8133 2857(when)X
8134 3054(the)X
8135 3174(ultimate)X
8136 3458(size)X
8137 3605(is)X
8138 3680(known)X
8139 3920(\(the)X
8140 4067(left)X
8141 2418 1506(bars)N
8142 2581(in)X
8143 2672(each)X
8144 2849(set\),)X
8145 3014(compared)X
8146 3360(to)X
8147 3450(building)X
8148 3744(the)X
8149 3870(\256le)X
8150 4000(when)X
8151 2418 1594(the)N
8152 2550(ultimate)X
8153 2846(size)X
8154 3005(is)X
8155 3091(unknown)X
8156 3422(\(the)X
8157 3580(right)X
8158 3764(bars)X
8159 3931(in)X
8160 4026(each)X
8161 2418 1682(set\).)N
8162 2609(Once)X
8163 2814(the)X
8164 2947(\256ll)X
8165 3069(factor)X
8166 3291(is)X
8167 3378(suf\256ciently)X
8168 3772(high)X
8169 3948(for)X
8170 4076(the)X
8171 2418 1770(page)N
8172 2596(size)X
8173 2747(\(8\),)X
8174 2887(growing)X
8175 3180(the)X
8176 3304(table)X
8177 3486(dynamically)X
8178 3908(does)X
8179 4081(lit-)X
8180 2418 1858(tle)N
8181 2518(to)X
8182 2600(degrade)X
8183 2875(performance.)X
8184 10 f
8185 2418 1946 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
8186 9 s
8187 1 f
8188 2413 3238(s)N
8189 2409 3173(d)N
8190 2409 3108(n)N
8191 2409 3043(o)N
8192 2411 2979(c)N
8193 2411 2914(e)N
8194 2407 2849(S)N
8195 3143 4129(Fill)N
8196 3261(Factor)X
8197 2448 2152(15)N
8198 4 Ds
8199 1 Dt
8200 2557 2122 MXY
8201 1473 0 Dl
8202 -1 Ds
8203 5 Dt
8204 2557 MX
8205 -19 0 Dl
8206 2448 2747(10)N
8207 4 Ds
8208 1 Dt
8209 2557 2717 MXY
8210 1473 0 Dl
8211 -1 Ds
8212 5 Dt
8213 2557 MX
8214 -19 0 Dl
8215 2484 3343(5)N
8216 4 Ds
8217 1 Dt
8218 2557 3313 MXY
8219 1473 0 Dl
8220 -1 Ds
8221 5 Dt
8222 2557 MX
8223 -19 0 Dl
8224 2484 3938(0)N
8225 4 Ds
8226 1 Dt
8227 2557 3908 MXY
8228 1473 0 Dl
8229 -1 Ds
8230 5 Dt
8231 2557 MX
8232 -19 0 Dl
8233 3976 4015(128)N
8234 4 Ds
8235 1 Dt
8236 4030 3908 MXY
8237 0 -1786 Dl
8238 -1 Ds
8239 5 Dt
8240 3908 MY
8241 0 19 Dl
8242 3626 4015(96)N
8243 4 Ds
8244 1 Dt
8245 3662 3908 MXY
8246 0 -1786 Dl
8247 -1 Ds
8248 5 Dt
8249 3908 MY
8250 0 19 Dl
8251 3258 4015(64)N
8252 4 Ds
8253 1 Dt
8254 3294 3908 MXY
8255 0 -1786 Dl
8256 -1 Ds
8257 5 Dt
8258 3908 MY
8259 0 19 Dl
8260 2889 4015(32)N
8261 4 Ds
8262 1 Dt
8263 2925 3908 MXY
8264 0 -1786 Dl
8265 -1 Ds
8266 5 Dt
8267 3908 MY
8268 0 19 Dl
8269 2539 4015(0)N
8270 4 Ds
8271 1 Dt
8272 2557 3908 MXY
8273 0 -1786 Dl
8274 -1 Ds
8275 5 Dt
8276 3908 MY
8277 0 19 Dl
8278 3908 MY
8279 0 -1786 Dl
8280 3908 MY
8281 1473 0 Dl
8282 4053 2378(8192)N
8283 3 Dt
8284 2569 2277 MXY
8285 11 0 Dl
8286 23 48 Dl
8287 46 -167 Dl
8288 92 35 Dl
8289 184 12 Dl
8290 369 143 Dl
8291 736 0 Dl
8292 2334 MY
8293 0 28 Dl
8294 0 -14 Dl
8295 14 0 Dl
8296 -28 0 Dl
8297 3294 2334 MXY
8298 0 28 Dl
8299 0 -14 Dl
8300 13 0 Dl
8301 -27 0 Dl
8302 2925 2192 MXY
8303 0 27 Dl
8304 0 -14 Dl
8305 14 0 Dl
8306 -28 0 Dl
8307 2741 2180 MXY
8308 0 27 Dl
8309 0 -14 Dl
8310 14 0 Dl
8311 -28 0 Dl
8312 2649 2144 MXY
8313 0 28 Dl
8314 0 -14 Dl
8315 14 0 Dl
8316 -28 0 Dl
8317 2603 2311 MXY
8318 0 27 Dl
8319 0 -13 Dl
8320 14 0 Dl
8321 -28 0 Dl
8322 2580 2263 MXY
8323 0 28 Dl
8324 0 -14 Dl
8325 14 0 Dl
8326 -28 0 Dl
8327 2569 2263 MXY
8328 0 28 Dl
8329 0 -14 Dl
8330 13 0 Dl
8331 -27 0 Dl
8332 4053 2591(4096)N
8333 2569 2348 MXY
8334 11 -11 Dl
8335 23 -96 Dl
8336 46 71 Dl
8337 92 72 Dl
8338 184 226 Dl
8339 369 48 Dl
8340 736 -60 Dl
8341 2612 MY
8342 14 -28 Dl
8343 -28 0 Dl
8344 14 28 Dl
8345 3294 2672 MXY
8346 13 -28 Dl
8347 -27 0 Dl
8348 14 28 Dl
8349 2925 2624 MXY
8350 14 -28 Dl
8351 -28 0 Dl
8352 14 28 Dl
8353 2741 2398 MXY
8354 14 -28 Dl
8355 -28 0 Dl
8356 14 28 Dl
8357 2649 2326 MXY
8358 14 -27 Dl
8359 -28 0 Dl
8360 14 27 Dl
8361 2603 2255 MXY
8362 14 -28 Dl
8363 -28 0 Dl
8364 14 28 Dl
8365 2580 2350 MXY
8366 14 -27 Dl
8367 -28 0 Dl
8368 14 27 Dl
8369 2569 2362 MXY
8370 13 -28 Dl
8371 -27 0 Dl
8372 14 28 Dl
8373 4053 2681(1024)N
8374 16 Ds
8375 1 Dt
8376 2569 2300 MXY
8377 11 48 Dl
8378 23 96 Dl
8379 46 95 Dl
8380 92 274 Dl
8381 184 202 Dl
8382 369 -155 Dl
8383 736 -190 Dl
8384 -1 Ds
8385 3 Dt
8386 4044 2656 MXY
8387 -28 28 Dl
8388 14 -14 Dl
8389 -14 -14 Dl
8390 28 28 Dl
8391 3307 2846 MXY
8392 -27 28 Dl
8393 14 -14 Dl
8394 -14 -14 Dl
8395 27 28 Dl
8396 2939 3001 MXY
8397 -28 28 Dl
8398 14 -14 Dl
8399 -14 -14 Dl
8400 28 28 Dl
8401 2755 2799 MXY
8402 -28 28 Dl
8403 14 -14 Dl
8404 -14 -14 Dl
8405 28 28 Dl
8406 2663 2525 MXY
8407 -28 28 Dl
8408 14 -14 Dl
8409 -14 -14 Dl
8410 28 28 Dl
8411 2617 2430 MXY
8412 -28 28 Dl
8413 14 -14 Dl
8414 -14 -14 Dl
8415 28 28 Dl
8416 2594 2334 MXY
8417 -28 28 Dl
8418 14 -14 Dl
8419 -14 -14 Dl
8420 28 28 Dl
8421 2582 2287 MXY
8422 -27 27 Dl
8423 14 -14 Dl
8424 -14 -13 Dl
8425 27 27 Dl
8426 4053 2851(512)N
8427 5 Dt
8428 2569 2372 MXY
8429 11 -24 Dl
8430 23 405 Dl
8431 46 83 Dl
8432 92 227 Dl
8433 184 -72 Dl
8434 369 -119 Dl
8435 736 -107 Dl
8436 3 Dt
8437 2751 MY
8438 0 28 Dl
8439 0 -14 Dl
8440 14 0 Dl
8441 -28 0 Dl
8442 3294 2858 MXY
8443 0 28 Dl
8444 0 -14 Dl
8445 13 0 Dl
8446 -27 0 Dl
8447 2925 2977 MXY
8448 0 28 Dl
8449 0 -14 Dl
8450 14 0 Dl
8451 -28 0 Dl
8452 2741 3049 MXY
8453 0 27 Dl
8454 0 -13 Dl
8455 14 0 Dl
8456 -28 0 Dl
8457 2649 2823 MXY
8458 0 27 Dl
8459 0 -14 Dl
8460 14 0 Dl
8461 -28 0 Dl
8462 2603 2739 MXY
8463 0 28 Dl
8464 0 -14 Dl
8465 14 0 Dl
8466 -28 0 Dl
8467 2580 2334 MXY
8468 0 28 Dl
8469 0 -14 Dl
8470 14 0 Dl
8471 -28 0 Dl
8472 2569 2358 MXY
8473 0 28 Dl
8474 0 -14 Dl
8475 13 0 Dl
8476 -27 0 Dl
8477 4053 2795(256)N
8478 20 Ds
8479 1 Dt
8480 2569 2456 MXY
8481 11 285 Dl
8482 23 95 Dl
8483 46 251 Dl
8484 92 -60 Dl
8485 184 -84 Dl
8486 369 -107 Dl
8487 736 -71 Dl
8488 -1 Ds
8489 3 Dt
8490 4016 MX
8491 27 Dc
8492 3280 2836 MXY
8493 27 Dc
8494 2912 2943 MXY
8495 27 Dc
8496 2728 3027 MXY
8497 27 Dc
8498 2635 3087 MXY
8499 28 Dc
8500 2589 2836 MXY
8501 28 Dc
8502 2566 2741 MXY
8503 27 Dc
8504 2554 2456 MXY
8505 28 Dc
8506 4053 2741(128)N
8507 1 Dt
8508 2569 2729 MXY
8509 11 203 Dl
8510 23 131 Dl
8511 46 -60 Dl
8512 92 -119 Dl
8513 184 -60 Dl
8514 369 -83 Dl
8515 736 -12 Dl
8516 3 Dt
8517 2716 MY
8518 -14 27 Dl
8519 28 0 Dl
8520 -14 -27 Dl
8521 3294 2727 MXY
8522 -14 28 Dl
8523 27 0 Dl
8524 -13 -28 Dl
8525 2925 2811 MXY
8526 -14 27 Dl
8527 28 0 Dl
8528 -14 -27 Dl
8529 2741 2870 MXY
8530 -14 28 Dl
8531 28 0 Dl
8532 -14 -28 Dl
8533 2649 2989 MXY
8534 -14 28 Dl
8535 28 0 Dl
8536 -14 -28 Dl
8537 2603 3049 MXY
8538 -14 27 Dl
8539 28 0 Dl
8540 -14 -27 Dl
8541 2580 2918 MXY
8542 -14 28 Dl
8543 28 0 Dl
8544 -14 -28 Dl
8545 2569 2716 MXY
8546 -14 27 Dl
8547 27 0 Dl
8548 -13 -27 Dl
8549 3 Dt
8550 -1 Ds
8551 3 f
8552 8 s
8553 2418 4286(Figure)N
8554 2628(5c:)X
8555 1 f
8556 2738(User)X
8557 2887(Time)X
8558 3051(for)X
8559 3154(dictionary)X
8560 3442(data)X
8561 3577(set)X
8562 3677(with)X
8563 3820(1M)X
8564 3938(of)X
8565 4019(buffer)X
8566 2418 4374(space)N
8567 2579(and)X
8568 2691(varying)X
8569 2906(bucket)X
8570 3096(sizes)X
8571 3240(and)X
8572 3352(\256ll)X
8573 3443(factors.)X
8574 3667(Each)X
8575 3813(line)X
8576 3928(is)X
8577 3990(labeled)X
8578 2418 4462(with)N
8579 2548(its)X
8580 2625(bucket)X
8581 2811(size.)X
8582 10 s
8583 10 f
8584 2418 4638 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
8585 1 f
8586 2590 4840(Since)N
8587 2796(no)X
8588 2904(known)X
8589 3150(hash)X
8590 3325(function)X
8591 3620(performs)X
8592 3938(equally)X
8593 2418 4928(well)N
8594 2589(on)X
8595 2702(all)X
8596 2815(possible)X
8597 3110(data,)X
8598 3297(the)X
8599 3428(user)X
8600 3595(may)X
8601 3766(\256nd)X
8602 3923(that)X
8603 4076(the)X
8604 2418 5016(built-in)N
8605 2678(hash)X
8606 2849(function)X
8607 3140(does)X
8608 3311(poorly)X
8609 3544(on)X
8610 3648(a)X
8611 3708(particular)X
8612 4040(data)X
8613 2418 5104(set.)N
8614 2548(In)X
8615 2636(this)X
8616 2771(case,)X
8617 2950(a)X
8618 3006(hash)X
8619 3173(function,)X
8620 3480(taking)X
8621 3700(two)X
8622 3840(arguments)X
8623 2418 5192(\(a)N
8624 2507(pointer)X
8625 2760(to)X
8626 2848(a)X
8627 2910(byte)X
8628 3074(string)X
8629 3282(and)X
8630 3424(a)X
8631 3486(length\))X
8632 3739(and)X
8633 3880(returning)X
8634 2418 5280(an)N
8635 2517(unsigned)X
8636 2829(long)X
8637 2993(to)X
8638 3077(be)X
8639 3175(used)X
8640 3344(as)X
8641 3433(the)X
8642 3553(hash)X
8643 3722(value,)X
8644 3938(may)X
8645 4098(be)X
8646 2418 5368(speci\256ed)N
8647 2731(at)X
8648 2817(hash)X
8649 2992(table)X
8650 3176(creation)X
8651 3463(time.)X
8652 3673(When)X
8653 3893(an)X
8654 3996(exist-)X
8655 2418 5456(ing)N
8656 2570(hash)X
8657 2767(table)X
8658 2973(is)X
8659 3076(opened)X
8660 3358(and)X
8661 3524(a)X
8662 3609(hash)X
8663 3805(function)X
8664 4121(is)X
8665 2418 5544(speci\256ed,)N
8666 2752(the)X
8667 2879(hash)X
8668 3054(package)X
8669 3346(will)X
8670 3498(try)X
8671 3615(to)X
8672 3705(determine)X
8673 4054(that)X
8674 2418 5632(the)N
8675 2546(hash)X
8676 2723(function)X
8677 3020(supplied)X
8678 3321(is)X
8679 3404(the)X
8680 3532(one)X
8681 3678(with)X
8682 3850(which)X
8683 4076(the)X
8684 2418 5720(table)N
8685 2630(was)X
8686 2811(created.)X
8687 3139(There)X
8688 3382(are)X
8689 3536(a)X
8690 3627(variety)X
8691 3905(of)X
8692 4027(hash)X
8693 3 f
8694 432 5960(8)N
8695 2970(USENIX)X
8696 9 f
8697 3292(-)X
8698 3 f
8699 3356(Winter)X
8700 3621('91)X
8701 9 f
8702 3748(-)X
8703 3 f
8704 3812(Dallas,)X
8705 4065(TX)X
8706
8707 9 p
8708 %%Page: 9 9
8709 0(Courier)xf 0 f
8710 10 s 10 xH 0 xS 0 f
8711 3 f
8712 720 258(Seltzer)N
8713 977(&)X
8714 1064(Yigit)X
8715 3278(A)X
8716 3356(New)X
8717 3528(Hashing)X
8718 3831(Package)X
8719 4136(for)X
8720 4259(UNIX)X
8721 1 f
8722 720 538(functions)N
8723 1065(provided)X
8724 1397(with)X
8725 1586(the)X
8726 1731(package.)X
8727 2082(The)X
8728 2253(default)X
8729 720 626(function)N
8730 1014(for)X
8731 1135(the)X
8732 1260(package)X
8733 1551(is)X
8734 1631(the)X
8735 1755(one)X
8736 1897(which)X
8737 2119(offered)X
8738 2378(the)X
8739 720 714(best)N
8740 875(performance)X
8741 1308(in)X
8742 1396(terms)X
8743 1600(of)X
8744 1693(cycles)X
8745 1920(executed)X
8746 2232(per)X
8747 2360(call)X
8748 720 802(\(it)N
8749 827(did)X
8750 965(not)X
8751 1103(produce)X
8752 1398(the)X
8753 1531(fewest)X
8754 1776(collisions)X
8755 2117(although)X
8756 2432(it)X
8757 720 890(was)N
8758 866(within)X
8759 1091(a)X
8760 1148(small)X
8761 1341(percentage)X
8762 1710(of)X
8763 1797(the)X
8764 1915(function)X
8765 2202(that)X
8766 2342(pro-)X
8767 720 978(duced)N
8768 947(the)X
8769 1080(fewest)X
8770 1324(collisions\).)X
8771 1731(Again,)X
8772 1981(in)X
8773 2077(time)X
8774 2253(critical)X
8775 720 1066(applications,)N
8776 1152(users)X
8777 1342(are)X
8778 1466(encouraged)X
8779 1862(to)X
8780 1949(experiment)X
8781 2334(with)X
8782 720 1154(a)N
8783 783(variety)X
8784 1032(of)X
8785 1125(hash)X
8786 1298(functions)X
8787 1622(to)X
8788 1710(achieve)X
8789 1982(optimal)X
8790 2252(perfor-)X
8791 720 1242(mance.)N
8792 10 f
8793 720 1330 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
8794 3 f
8795 7 s
8796 1038 2925(Full)N
8797 1149(size)X
8798 1251(table)X
8799 1384(\(left\))X
8800 1547 2718(Fill)N
8801 1643(Factor)X
8802 2268 2662(64)N
8803 1964(32)X
8804 1674(16)X
8805 1384(8)X
8806 1093(4)X
8807 4 Ds
8808 1 Dt
8809 900 2280 MXY
8810 1548 0 Dl
8811 900 1879 MXY
8812 1548 0 Dl
8813 900 1506 MXY
8814 1548 0 Dl
8815 1563 2902 MXY
8816 111 0 Dl
8817 -1 Ds
8818 900 MX
8819 110 0 Dl
8820 1425 2828(System)N
8821 983(User)X
8822 1895 2778 MXY
8823  1895 2778 lineto
8824  1950 2778 lineto
8825  1950 2833 lineto
8826  1895 2833 lineto
8827  1895 2778 lineto
8828 closepath 21 1895 2778 1950 2833 Dp
8829 1342 MX
8830  1342 2778 lineto
8831  1397 2778 lineto
8832  1397 2833 lineto
8833  1342 2833 lineto
8834  1342 2778 lineto
8835 closepath 14 1342 2778 1397 2833 Dp
8836 900 MX
8837  900 2778 lineto
8838  955 2778 lineto
8839  955 2833 lineto
8840  900 2833 lineto
8841  900 2778 lineto
8842 closepath 3 900 2778 955 2833 Dp
8843 5 Dt
8844 2283 2211 MXY
8845 96 0 Dl
8846 1992 MX
8847 97 0 Dl
8848 1702 MX
8849 97 0 Dl
8850 1411 2252 MXY
8851 97 0 Dl
8852 4 Ds
8853 1 Dt
8854 2283 2211 MXY
8855  2283 2211 lineto
8856  2379 2211 lineto
8857  2379 2252 lineto
8858  2283 2252 lineto
8859  2283 2211 lineto
8860 closepath 14 2283 2211 2379 2252 Dp
8861 1992 MX
8862  1992 2211 lineto
8863  2089 2211 lineto
8864  2089 2252 lineto
8865  1992 2252 lineto
8866  1992 2211 lineto
8867 closepath 14 1992 2211 2089 2252 Dp
8868 1702 MX
8869  1702 2211 lineto
8870  1799 2211 lineto
8871  1799 2252 lineto
8872  1702 2252 lineto
8873  1702 2211 lineto
8874 closepath 14 1702 2211 1799 2252 Dp
8875 1411 2252 MXY
8876  1411 2252 lineto
8877  1508 2252 lineto
8878  1508 2294 lineto
8879  1411 2294 lineto
8880  1411 2252 lineto
8881 closepath 14 1411 2252 1508 2294 Dp
8882 2283 MX
8883  2283 2252 lineto
8884  2379 2252 lineto
8885  2379 2612 lineto
8886  2283 2612 lineto
8887  2283 2252 lineto
8888 closepath 3 2283 2252 2379 2612 Dp
8889 1992 MX
8890  1992 2252 lineto
8891  2089 2252 lineto
8892  2089 2612 lineto
8893  1992 2612 lineto
8894  1992 2252 lineto
8895 closepath 3 1992 2252 2089 2612 Dp
8896 1702 MX
8897  1702 2252 lineto
8898  1799 2252 lineto
8899  1799 2612 lineto
8900  1702 2612 lineto
8901  1702 2252 lineto
8902 closepath 3 1702 2252 1799 2612 Dp
8903 1411 2294 MXY
8904  1411 2294 lineto
8905  1508 2294 lineto
8906  1508 2612 lineto
8907  1411 2612 lineto
8908  1411 2294 lineto
8909 closepath 3 1411 2294 1508 2612 Dp
8910 -1 Ds
8911 2158 2238 MXY
8912  2158 2238 lineto
8913  2255 2238 lineto
8914  2255 2252 lineto
8915  2158 2252 lineto
8916  2158 2238 lineto
8917 closepath 21 2158 2238 2255 2252 Dp
8918 1868 MX
8919  1868 2238 lineto
8920  1965 2238 lineto
8921  1965 2280 lineto
8922  1868 2280 lineto
8923  1868 2238 lineto
8924 closepath 21 1868 2238 1965 2280 Dp
8925 1577 MX
8926  1577 2238 lineto
8927  1674 2238 lineto
8928  1674 2308 lineto
8929  1577 2308 lineto
8930  1577 2238 lineto
8931 closepath 21 1577 2238 1674 2308 Dp
8932 1287 2308 MXY
8933  1287 2308 lineto
8934  1287 2280 lineto
8935  1384 2280 lineto
8936  1384 2308 lineto
8937  1287 2308 lineto
8938 closepath 21 1287 2280 1384 2308 Dp
8939 2158 2280 MXY
8940  2158 2280 lineto
8941  2158 2252 lineto
8942  2255 2252 lineto
8943  2255 2280 lineto
8944  2158 2280 lineto
8945 closepath 14 2158 2252 2255 2280 Dp
8946 1868 2308 MXY
8947  1868 2308 lineto
8948  1868 2280 lineto
8949  1965 2280 lineto
8950  1965 2308 lineto
8951  1868 2308 lineto
8952 closepath 14 1868 2280 1965 2308 Dp
8953 1577 2335 MXY
8954  1577 2335 lineto
8955  1577 2308 lineto
8956  1674 2308 lineto
8957  1674 2335 lineto
8958  1577 2335 lineto
8959 closepath 14 1577 2308 1674 2335 Dp
8960 1287 2363 MXY
8961  1287 2363 lineto
8962  1287 2308 lineto
8963  1384 2308 lineto
8964  1384 2363 lineto
8965  1287 2363 lineto
8966 closepath 14 1287 2308 1384 2363 Dp
8967 2158 2280 MXY
8968  2158 2280 lineto
8969  2255 2280 lineto
8970  2255 2612 lineto
8971  2158 2612 lineto
8972  2158 2280 lineto
8973 closepath 3 2158 2280 2255 2612 Dp
8974 1868 2308 MXY
8975  1868 2308 lineto
8976  1965 2308 lineto
8977  1965 2612 lineto
8978  1868 2612 lineto
8979  1868 2308 lineto
8980 closepath 3 1868 2308 1965 2612 Dp
8981 1577 2335 MXY
8982  1577 2335 lineto
8983  1674 2335 lineto
8984  1674 2612 lineto
8985  1577 2612 lineto
8986  1577 2335 lineto
8987 closepath 3 1577 2335 1674 2612 Dp
8988 1287 2363 MXY
8989  1287 2363 lineto
8990  1384 2363 lineto
8991  1384 2612 lineto
8992  1287 2612 lineto
8993  1287 2363 lineto
8994 closepath 3 1287 2363 1384 2612 Dp
8995 4 Ds
8996 1121 2066 MXY
8997  1121 2066 lineto
8998  1218 2066 lineto
8999  1224 2080 lineto
9000  1127 2080 lineto
9001  1121 2066 lineto
9002 closepath 21 1121 2066 1224 2080 Dp
9003 2080 MY
9004  1121 2080 lineto
9005  1218 2080 lineto
9006  1218 2273 lineto
9007  1121 2273 lineto
9008  1121 2080 lineto
9009 closepath 14 1121 2080 1218 2273 Dp
9010 2273 MY
9011  1121 2273 lineto
9012  1218 2273 lineto
9013  1218 2612 lineto
9014  1121 2612 lineto
9015  1121 2273 lineto
9016 closepath 3 1121 2273 1218 2612 Dp
9017 -1 Ds
9018 997 1589 MXY
9019  997 1589 lineto
9020  1093 1589 lineto
9021  1093 1644 lineto
9022  997 1644 lineto
9023  997 1589 lineto
9024 closepath 21 997 1589 1093 1644 Dp
9025 1644 MY
9026  997 1644 lineto
9027  1093 1644 lineto
9028  1093 2280 lineto
9029  997 2280 lineto
9030  997 1644 lineto
9031 closepath 14 997 1644 1093 2280 Dp
9032 2280 MY
9033  997 2280 lineto
9034  1093 2280 lineto
9035  1093 2612 lineto
9036  997 2612 lineto
9037  997 2280 lineto
9038 closepath 3 997 2280 1093 2612 Dp
9039 10 s
9040 719 2093(s)N
9041 712 2037(d)N
9042 712 1982(n)N
9043 714 1927(o)N
9044 716 1872(c)N
9045 716 1816(e)N
9046 712 1761(S)N
9047 804 2286(10)N
9048 804 1899(20)N
9049 804 1540(30)N
9050 3 Dt
9051 900 1506 MXY
9052 0 1106 Dl
9053 1548 0 Dl
9054 7 s
9055 1978 2828(Elapsed)N
9056 1701 2925(Dynamically)N
9057 2018(grown)X
9058 2184(table)X
9059 2317(\(right\))X
9060 3 Dt
9061 -1 Ds
9062 8 s
9063 720 3180(Figure)N
9064 934(6:)X
9065 1 f
9066 1020(The)X
9067 1152(total)X
9068 1299(regions)X
9069 1520(indicate)X
9070 1755(the)X
9071 1865(difference)X
9072 2154(between)X
9073 2398(the)X
9074 720 3268(elapsed)N
9075 931(time)X
9076 1065(and)X
9077 1177(the)X
9078 1275(sum)X
9079 1402(of)X
9080 1475(the)X
9081 1573(system)X
9082 1771(and)X
9083 1883(user)X
9084 2008(time.)X
9085 2173(The)X
9086 2291(left)X
9087 2395(bar)X
9088 720 3356(of)N
9089 798(each)X
9090 939(set)X
9091 1035(depicts)X
9092 1241(the)X
9093 1344(timing)X
9094 1537(of)X
9095 1615(the)X
9096 1718(test)X
9097 1831(run)X
9098 1940(when)X
9099 2102(the)X
9100 2204(number)X
9101 2423(of)X
9102 720 3444(entries)N
9103 910(is)X
9104 973(known)X
9105 1167(in)X
9106 1237(advance.)X
9107 1496(The)X
9108 1614(right)X
9109 1754(bars)X
9110 1879(depict)X
9111 2054(the)X
9112 2151(timing)X
9113 2338(when)X
9114 720 3532(the)N
9115 814(\256le)X
9116 912(is)X
9117 971(grown)X
9118 1150(from)X
9119 1290(a)X
9120 1334(single)X
9121 1503(bucket.)X
9122 10 s
9123 10 f
9124 720 3708 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
9125 1 f
9126 892 3910(Since)N
9127 1131(this)X
9128 1307(hashing)X
9129 1617(package)X
9130 1942(provides)X
9131 2279(buffer)X
9132 720 3998(management,)N
9133 1188(the)X
9134 1323(amount)X
9135 1600(of)X
9136 1704(space)X
9137 1920(allocated)X
9138 2247(for)X
9139 2378(the)X
9140 720 4086(buffer)N
9141 948(pool)X
9142 1121(may)X
9143 1290(be)X
9144 1397(speci\256ed)X
9145 1713(by)X
9146 1824(the)X
9147 1953(user.)X
9148 2157(Using)X
9149 2378(the)X
9150 720 4174(same)N
9151 910(data)X
9152 1069(set)X
9153 1183(and)X
9154 1324(test)X
9155 1459(procedure)X
9156 1805(as)X
9157 1896(used)X
9158 2067(to)X
9159 2153(derive)X
9160 2378(the)X
9161 720 4262(graphs)N
9162 962(in)X
9163 1052(Figures)X
9164 1320(5a-c,)X
9165 1507(Figure)X
9166 1744(7)X
9167 1812(shows)X
9168 2039(the)X
9169 2164(impact)X
9170 2409(of)X
9171 720 4350(varying)N
9172 997(the)X
9173 1126(size)X
9174 1282(of)X
9175 1380(the)X
9176 1509(buffer)X
9177 1737(pool.)X
9178 1950(The)X
9179 2106(bucket)X
9180 2351(size)X
9181 720 4438(was)N
9182 873(set)X
9183 989(to)X
9184 1078(256)X
9185 1225(bytes)X
9186 1421(and)X
9187 1564(the)X
9188 1689(\256ll)X
9189 1804(factor)X
9190 2019(was)X
9191 2171(set)X
9192 2287(to)X
9193 2376(16.)X
9194 720 4526(The)N
9195 869(buffer)X
9196 1090(pool)X
9197 1256(size)X
9198 1404(was)X
9199 1552(varied)X
9200 1776(from)X
9201 1955(0)X
9202 2018(\(the)X
9203 2166(minimum)X
9204 720 4614(number)N
9205 986(of)X
9206 1074(pages)X
9207 1277(required)X
9208 1565(to)X
9209 1647(be)X
9210 1743(buffered\))X
9211 2063(to)X
9212 2145(1M.)X
9213 2316(With)X
9214 720 4702(1M)N
9215 854(of)X
9216 944(buffer)X
9217 1164(space,)X
9218 1386(the)X
9219 1507(package)X
9220 1794(performed)X
9221 2151(no)X
9222 2253(I/O)X
9223 2382(for)X
9224 720 4790(this)N
9225 871(data)X
9226 1040(set.)X
9227 1204(As)X
9228 1328(Figure)X
9229 1572(7)X
9230 1647(illustrates,)X
9231 2013(increasing)X
9232 2378(the)X
9233 720 4878(buffer)N
9234 944(pool)X
9235 1113(size)X
9236 1265(can)X
9237 1404(have)X
9238 1583(a)X
9239 1646(dramatic)X
9240 1954(affect)X
9241 2165(on)X
9242 2271(result-)X
9243 720 4966(ing)N
9244 842(performance.)X
9245 2 f
9246 8 s
9247 1269 4941(7)N
9248 1 f
9249 16 s
9250 720 5353 MXY
9251 864 0 Dl
9252 2 f
9253 8 s
9254 760 5408(7)N
9255 1 f
9256 9 s
9257 826 5433(Some)N
9258 1024(allocators)X
9259 1338(are)X
9260 1460(extremely)X
9261 1782(inef\256cient)X
9262 2107(at)X
9263 2192(allocating)X
9264 720 5513(memory.)N
9265 1029(If)X
9266 1110(you)X
9267 1251(\256nd)X
9268 1396(that)X
9269 1536(applications)X
9270 1916(are)X
9271 2036(running)X
9272 2292(out)X
9273 2416(of)X
9274 720 5593(memory)N
9275 1005(before)X
9276 1234(you)X
9277 1386(think)X
9278 1578(they)X
9279 1746(should,)X
9280 2000(try)X
9281 2124(varying)X
9282 2388(the)X
9283 720 5673(pagesize)N
9284 986(to)X
9285 1060(get)X
9286 1166(better)X
9287 1348(utilization)X
9288 1658(from)X
9289 1816(the)X
9290 1922(memory)X
9291 2180(allocator.)X
9292 10 s
9293 2830 1975 MXY
9294 0 -28 Dl
9295 28 0 Dl
9296 0 28 Dl
9297 -28 0 Dl
9298 2853 2004 MXY
9299 0 -27 Dl
9300 28 0 Dl
9301 0 27 Dl
9302 -28 0 Dl
9303 2876 2016 MXY
9304 0 -27 Dl
9305 27 0 Dl
9306 0 27 Dl
9307 -27 0 Dl
9308 2922 1998 MXY
9309 0 -27 Dl
9310 27 0 Dl
9311 0 27 Dl
9312 -27 0 Dl
9313 2967 2025 MXY
9314 0 -28 Dl
9315 28 0 Dl
9316 0 28 Dl
9317 -28 0 Dl
9318 3013 2031 MXY
9319 0 -28 Dl
9320 28 0 Dl
9321 0 28 Dl
9322 -28 0 Dl
9323 3059 MX
9324 0 -28 Dl
9325 27 0 Dl
9326 0 28 Dl
9327 -27 0 Dl
9328 3196 2052 MXY
9329 0 -28 Dl
9330 27 0 Dl
9331 0 28 Dl
9332 -27 0 Dl
9333 3561 2102 MXY
9334 0 -28 Dl
9335 28 0 Dl
9336 0 28 Dl
9337 -28 0 Dl
9338 4292 2105 MXY
9339 0 -28 Dl
9340 27 0 Dl
9341 0 28 Dl
9342 -27 0 Dl
9343 4 Ds
9344 1 Dt
9345 2844 1961 MXY
9346 23 30 Dl
9347 23 12 Dl
9348 45 -18 Dl
9349 46 26 Dl
9350 46 6 Dl
9351 45 0 Dl
9352 137 21 Dl
9353 366 50 Dl
9354 730 3 Dl
9355 9 s
9356 4227 2158(User)N
9357 -1 Ds
9358 3 Dt
9359 2830 1211 MXY
9360 27 Dc
9361 2853 1261 MXY
9362 27 Dc
9363 2876 1267 MXY
9364 27 Dc
9365 2921 1341 MXY
9366 27 Dc
9367 2967 1385 MXY
9368 27 Dc
9369 3013 1450 MXY
9370 27 Dc
9371 3059 1497 MXY
9372 27 Dc
9373 3196 1686 MXY
9374 27 Dc
9375 3561 2109 MXY
9376 27 Dc
9377 4292 2295 MXY
9378 27 Dc
9379 20 Ds
9380 1 Dt
9381 2844 1211 MXY
9382 23 50 Dl
9383 23 6 Dl
9384 45 74 Dl
9385 46 44 Dl
9386 46 65 Dl
9387 45 47 Dl
9388 137 189 Dl
9389 366 423 Dl
9390 730 186 Dl
9391 4181 2270(System)N
9392 -1 Ds
9393 3 Dt
9394 2844 583 MXY
9395 0 28 Dl
9396 0 -14 Dl
9397 14 0 Dl
9398 -28 0 Dl
9399 2867 672 MXY
9400 0 27 Dl
9401 0 -14 Dl
9402 14 0 Dl
9403 -28 0 Dl
9404 2890 701 MXY
9405 0 28 Dl
9406 0 -14 Dl
9407 13 0 Dl
9408 -27 0 Dl
9409 2935 819 MXY
9410 0 28 Dl
9411 0 -14 Dl
9412 14 0 Dl
9413 -27 0 Dl
9414 2981 849 MXY
9415 0 28 Dl
9416 0 -14 Dl
9417 14 0 Dl
9418 -28 0 Dl
9419 3027 908 MXY
9420 0 27 Dl
9421 0 -13 Dl
9422 14 0 Dl
9423 -28 0 Dl
9424 3072 1026 MXY
9425 0 27 Dl
9426 0 -13 Dl
9427 14 0 Dl
9428 -27 0 Dl
9429 3209 1292 MXY
9430 0 27 Dl
9431 0 -14 Dl
9432 14 0 Dl
9433 -27 0 Dl
9434 3575 1823 MXY
9435 0 28 Dl
9436 0 -14 Dl
9437 14 0 Dl
9438 -28 0 Dl
9439 4305 2059 MXY
9440 0 28 Dl
9441 0 -14 Dl
9442 14 0 Dl
9443 -27 0 Dl
9444 5 Dt
9445 2844 597 MXY
9446 23 88 Dl
9447 23 30 Dl
9448 45 118 Dl
9449 46 30 Dl
9450 46 59 Dl
9451 45 118 Dl
9452 137 265 Dl
9453 366 532 Dl
9454 730 236 Dl
9455 4328 2103(Total)N
9456 2844 2310 MXY
9457 1461 0 Dl
9458 2844 MX
9459 0 -1772 Dl
9460 2310 MY
9461 0 18 Dl
9462 4 Ds
9463 1 Dt
9464 2310 MY
9465 0 -1772 Dl
9466 2826 2416(0)N
9467 -1 Ds
9468 5 Dt
9469 3209 2310 MXY
9470 0 18 Dl
9471 4 Ds
9472 1 Dt
9473 2310 MY
9474 0 -1772 Dl
9475 3155 2416(256)N
9476 -1 Ds
9477 5 Dt
9478 3575 2310 MXY
9479 0 18 Dl
9480 4 Ds
9481 1 Dt
9482 2310 MY
9483 0 -1772 Dl
9484 3521 2416(512)N
9485 -1 Ds
9486 5 Dt
9487 3940 2310 MXY
9488 0 18 Dl
9489 4 Ds
9490 1 Dt
9491 2310 MY
9492 0 -1772 Dl
9493 3886 2416(768)N
9494 -1 Ds
9495 5 Dt
9496 4305 2310 MXY
9497 0 18 Dl
9498 4 Ds
9499 1 Dt
9500 2310 MY
9501 0 -1772 Dl
9502 4233 2416(1024)N
9503 -1 Ds
9504 5 Dt
9505 2844 2310 MXY
9506 -18 0 Dl
9507 4 Ds
9508 1 Dt
9509 2844 MX
9510 1461 0 Dl
9511 2771 2340(0)N
9512 -1 Ds
9513 5 Dt
9514 2844 2014 MXY
9515 -18 0 Dl
9516 2844 1719 MXY
9517 -18 0 Dl
9518 4 Ds
9519 1 Dt
9520 2844 MX
9521 1461 0 Dl
9522 2735 1749(20)N
9523 -1 Ds
9524 5 Dt
9525 2844 1423 MXY
9526 -18 0 Dl
9527 2844 1128 MXY
9528 -18 0 Dl
9529 4 Ds
9530 1 Dt
9531 2844 MX
9532 1461 0 Dl
9533 2735 1158(40)N
9534 -1 Ds
9535 5 Dt
9536 2844 833 MXY
9537 -18 0 Dl
9538 2844 538 MXY
9539 -18 0 Dl
9540 4 Ds
9541 1 Dt
9542 2844 MX
9543 1461 0 Dl
9544 2735 568(60)N
9545 3239 2529(Buffer)N
9546 3445(Pool)X
9547 3595(Size)X
9548 3737(\(in)X
9549 3835(K\))X
9550 2695 1259(S)N
9551 2699 1324(e)N
9552 2699 1388(c)N
9553 2697 1452(o)N
9554 2697 1517(n)N
9555 2697 1581(d)N
9556 2701 1645(s)N
9557 3 Dt
9558 -1 Ds
9559 3 f
9560 8 s
9561 2706 2773(Figure)N
9562 2908(7:)X
9563 1 f
9564 2982(User)X
9565 3123(time)X
9566 3258(is)X
9567 3322(virtually)X
9568 3560(insensitive)X
9569 3854(to)X
9570 3924(the)X
9571 4022(amount)X
9572 4234(of)X
9573 4307(buffer)X
9574 2706 2861(pool)N
9575 2852(available,)X
9576 3130(however,)X
9577 3396(both)X
9578 3541(system)X
9579 3750(time)X
9580 3895(and)X
9581 4018(elapsed)X
9582 4240(time)X
9583 4385(are)X
9584 2706 2949(inversely)N
9585 2960(proportional)X
9586 3296(to)X
9587 3366(the)X
9588 3464(size)X
9589 3583(of)X
9590 3656(the)X
9591 3753(buffer)X
9592 3927(pool.)X
9593 4092(Even)X
9594 4242(for)X
9595 4335(large)X
9596 2706 3037(data)N
9597 2831(sets)X
9598 2946(where)X
9599 3120(one)X
9600 3230(expects)X
9601 3439(few)X
9602 3552(collisions,)X
9603 3832(specifying)X
9604 4116(a)X
9605 4162(large)X
9606 4307(buffer)X
9607 2706 3125(pool)N
9608 2836(dramatically)X
9609 3171(improves)X
9610 3425(performance.)X
9611 10 s
9612 10 f
9613 2706 3301 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
9614 3 f
9615 3175 3543(Enhanced)N
9616 3536(Functionality)X
9617 1 f
9618 2878 3675(This)N
9619 3046(hashing)X
9620 3320(package)X
9621 3609(provides)X
9622 3910(a)X
9623 3971(set)X
9624 4085(of)X
9625 4177(compati-)X
9626 2706 3763(bility)N
9627 2895(routines)X
9628 3174(to)X
9629 3257(implement)X
9630 3620(the)X
9631 2 f
9632 3739(ndbm)X
9633 1 f
9634 3937(interface.)X
9635 4279(How-)X
9636 2706 3851(ever,)N
9637 2893(when)X
9638 3095(the)X
9639 3220(native)X
9640 3443(interface)X
9641 3752(is)X
9642 3832(used,)X
9643 4026(the)X
9644 4151(following)X
9645 2706 3939(additional)N
9646 3046(functionality)X
9647 3475(is)X
9648 3548(provided:)X
9649 10 f
9650 2798 4071(g)N
9651 1 f
9652 2946(Inserts)X
9653 3197(never)X
9654 3413(fail)X
9655 3556(because)X
9656 3847(too)X
9657 3985(many)X
9658 4199(keys)X
9659 2946 4159(hash)N
9660 3113(to)X
9661 3195(the)X
9662 3313(same)X
9663 3498(value.)X
9664 10 f
9665 2798 4247(g)N
9666 1 f
9667 2946(Inserts)X
9668 3187(never)X
9669 3393(fail)X
9670 3527(because)X
9671 3808(key)X
9672 3950(and/or)X
9673 4181(asso-)X
9674 2946 4335(ciated)N
9675 3158(data)X
9676 3312(is)X
9677 3385(too)X
9678 3507(large)X
9679 10 f
9680 2798 4423(g)N
9681 1 f
9682 2946(Hash)X
9683 3131(functions)X
9684 3449(may)X
9685 3607(be)X
9686 3703(user-speci\256ed.)X
9687 10 f
9688 2798 4511(g)N
9689 1 f
9690 2946(Multiple)X
9691 3268(pages)X
9692 3498(may)X
9693 3683(be)X
9694 3806(cached)X
9695 4077(in)X
9696 4186(main)X
9697 2946 4599(memory.)N
9698 2706 4731(It)N
9699 2801(also)X
9700 2976(provides)X
9701 3298(a)X
9702 3380(set)X
9703 3514(of)X
9704 3626(compatibility)X
9705 4097(routines)X
9706 4400(to)X
9707 2706 4819(implement)N
9708 3087(the)X
9709 2 f
9710 3224(hsearch)X
9711 1 f
9712 3516(interface.)X
9713 3876(Again,)X
9714 4130(the)X
9715 4266(native)X
9716 2706 4907(interface)N
9717 3008(offers)X
9718 3216(enhanced)X
9719 3540(functionality:)X
9720 10 f
9721 2798 5039(g)N
9722 1 f
9723 2946(Files)X
9724 3121(may)X
9725 3279(grow)X
9726 3464(beyond)X
9727 2 f
9728 3720(nelem)X
9729 1 f
9730 3932(elements.)X
9731 10 f
9732 2798 5127(g)N
9733 1 f
9734 2946(Multiple)X
9735 3247(hash)X
9736 3420(tables)X
9737 3632(may)X
9738 3795(be)X
9739 3896(accessed)X
9740 4203(con-)X
9741 2946 5215(currently.)N
9742 10 f
9743 2798 5303(g)N
9744 1 f
9745 2946(Hash)X
9746 3134(tables)X
9747 3344(may)X
9748 3505(be)X
9749 3604(stored)X
9750 3823(and)X
9751 3962(accessed)X
9752 4266(on)X
9753 2946 5391(disk.)N
9754 10 f
9755 2798 5479(g)N
9756 1 f
9757 2946(Hash)X
9758 3155(functions)X
9759 3497(may)X
9760 3679(be)X
9761 3799(user-speci\256ed)X
9762 4288(at)X
9763 2946 5567(runtime.)N
9764 3 f
9765 720 5960(USENIX)N
9766 9 f
9767 1042(-)X
9768 3 f
9769 1106(Winter)X
9770 1371('91)X
9771 9 f
9772 1498(-)X
9773 3 f
9774 1562(Dallas,)X
9775 1815(TX)X
9776 4424(9)X
9777
9778 10 p
9779 %%Page: 10 10
9780 0(Courier)xf 0 f
9781 10 s 10 xH 0 xS 0 f
9782 3 f
9783 432 258(A)N
9784 510(New)X
9785 682(Hashing)X
9786 985(Package)X
9787 1290(for)X
9788 1413(UNIX)X
9789 3663(Seltzer)X
9790 3920(&)X
9791 4007(Yigit)X
9792 459 538(Relative)N
9793 760(Performance)X
9794 1227(of)X
9795 1314(the)X
9796 1441(New)X
9797 1613(Implementation)X
9798 1 f
9799 604 670(The)N
9800 761(performance)X
9801 1200(testing)X
9802 1445(of)X
9803 1544(the)X
9804 1674(new)X
9805 1840(package)X
9806 2135(is)X
9807 432 758(divided)N
9808 711(into)X
9809 874(two)X
9810 1033(test)X
9811 1183(suites.)X
9812 1424(The)X
9813 1588(\256rst)X
9814 1751(suite)X
9815 1941(of)X
9816 2046(tests)X
9817 432 846(requires)N
9818 727(that)X
9819 882(the)X
9820 1015(tables)X
9821 1237(be)X
9822 1348(read)X
9823 1522(from)X
9824 1713(and)X
9825 1864(written)X
9826 2126(to)X
9827 432 934(disk.)N
9828 640(In)X
9829 742(these)X
9830 942(tests,)X
9831 1139(the)X
9832 1272(basis)X
9833 1467(for)X
9834 1595(comparison)X
9835 2003(is)X
9836 2090(the)X
9837 432 1022(4.3BSD-Reno)N
9838 908(version)X
9839 1169(of)X
9840 2 f
9841 1260(ndbm)X
9842 1 f
9843 1438(.)X
9844 1502(Based)X
9845 1722(on)X
9846 1826(the)X
9847 1948(designs)X
9848 432 1110(of)N
9849 2 f
9850 521(sdbm)X
9851 1 f
9852 712(and)X
9853 2 f
9854 850(gdbm)X
9855 1 f
9856 1028(,)X
9857 1070(they)X
9858 1230(are)X
9859 1351(expected)X
9860 1659(to)X
9861 1743(perform)X
9862 2024(simi-)X
9863 432 1198(larly)N
9864 605(to)X
9865 2 f
9866 693(ndbm)X
9867 1 f
9868 871(,)X
9869 917(and)X
9870 1059(we)X
9871 1179(do)X
9872 1285(not)X
9873 1413(show)X
9874 1608(their)X
9875 1781(performance)X
9876 432 1286(numbers.)N
9877 800(The)X
9878 977(second)X
9879 1252(suite)X
9880 1454(contains)X
9881 1772(the)X
9882 1921(memory)X
9883 432 1374(resident)N
9884 712(test)X
9885 849(which)X
9886 1071(does)X
9887 1243(not)X
9888 1370(require)X
9889 1623(that)X
9890 1768(the)X
9891 1891(\256les)X
9892 2049(ever)X
9893 432 1462(be)N
9894 533(written)X
9895 784(to)X
9896 870(disk,)X
9897 1047(only)X
9898 1213(that)X
9899 1357(hash)X
9900 1528(tables)X
9901 1739(may)X
9902 1901(be)X
9903 2001(mani-)X
9904 432 1550(pulated)N
9905 692(in)X
9906 778(main)X
9907 961(memory.)X
9908 1291(In)X
9909 1381(this)X
9910 1519(test,)X
9911 1673(we)X
9912 1790(compare)X
9913 2090(the)X
9914 432 1638(performance)N
9915 859(to)X
9916 941(that)X
9917 1081(of)X
9918 1168(the)X
9919 2 f
9920 1286(hsearch)X
9921 1 f
9922 1560(routines.)X
9923 604 1752(For)N
9924 760(both)X
9925 947(suites,)X
9926 1194(two)X
9927 1358(different)X
9928 1679(databases)X
9929 2031(were)X
9930 432 1840(used.)N
9931 656(The)X
9932 818(\256rst)X
9933 979(is)X
9934 1069(the)X
9935 1204(dictionary)X
9936 1566(database)X
9937 1880(described)X
9938 432 1928(previously.)N
9939 836(The)X
9940 987(second)X
9941 1236(was)X
9942 1386(constructed)X
9943 1781(from)X
9944 1962(a)X
9945 2023(pass-)X
9946 432 2016(word)N
9947 647(\256le)X
9948 799(with)X
9949 990(approximately)X
9950 1502(300)X
9951 1671(accounts.)X
9952 2041(Two)X
9953 432 2104(records)N
9954 700(were)X
9955 887(constructed)X
9956 1287(for)X
9957 1411(each)X
9958 1589(account.)X
9959 1909(The)X
9960 2064(\256rst)X
9961 432 2192(used)N
9962 604(the)X
9963 727(logname)X
9964 1028(as)X
9965 1120(the)X
9966 1243(key)X
9967 1384(and)X
9968 1525(the)X
9969 1648(remainder)X
9970 1999(of)X
9971 2090(the)X
9972 432 2280(password)N
9973 768(entry)X
9974 965(for)X
9975 1091(the)X
9976 1221(data.)X
9977 1427(The)X
9978 1584(second)X
9979 1839(was)X
9980 1996(keyed)X
9981 432 2368(by)N
9982 541(uid)X
9983 672(and)X
9984 817(contained)X
9985 1157(the)X
9986 1283(entire)X
9987 1494(password)X
9988 1825(entry)X
9989 2018(as)X
9990 2113(its)X
9991 432 2456(data)N
9992 589(\256eld.)X
9993 794(The)X
9994 942(tests)X
9995 1107(were)X
9996 1287(all)X
9997 1389(run)X
9998 1518(on)X
9999 1620(the)X
10000 1740(HP)X
10001 1864(9000)X
10002 2046(with)X
10003 432 2544(the)N
10004 574(same)X
10005 783(con\256guration)X
10006 1254(previously)X
10007 1636(described.)X
10008 2027(Each)X
10009 432 2632(test)N
10010 576(was)X
10011 734(run)X
10012 874(\256ve)X
10013 1027(times)X
10014 1232(and)X
10015 1380(the)X
10016 1510(timing)X
10017 1750(results)X
10018 1991(of)X
10019 2090(the)X
10020 432 2720(runs)N
10021 602(were)X
10022 791(averaged.)X
10023 1154(The)X
10024 1311(variance)X
10025 1616(across)X
10026 1849(the)X
10027 1979(5)X
10028 2050(runs)X
10029 432 2808(was)N
10030 591(approximately)X
10031 1088(1%)X
10032 1229(of)X
10033 1330(the)X
10034 1462(average)X
10035 1746(yielding)X
10036 2041(95%)X
10037 432 2896(con\256dence)N
10038 800(intervals)X
10039 1096(of)X
10040 1183(approximately)X
10041 1666(2%.)X
10042 3 f
10043 1021 3050(Disk)N
10044 1196(Based)X
10045 1420(Tests)X
10046 1 f
10047 604 3182(In)N
10048 693(these)X
10049 880(tests,)X
10050 1064(we)X
10051 1180(use)X
10052 1308(a)X
10053 1365(bucket)X
10054 1600(size)X
10055 1746(of)X
10056 1834(1024)X
10057 2015(and)X
10058 2152(a)X
10059 432 3270(\256ll)N
10060 540(factor)X
10061 748(of)X
10062 835(32.)X
10063 3 f
10064 432 3384(create)N
10065 663(test)X
10066 1 f
10067 547 3498(The)N
10068 703(keys)X
10069 881(are)X
10070 1011(entered)X
10071 1279(into)X
10072 1433(the)X
10073 1561(hash)X
10074 1738(table,)X
10075 1944(and)X
10076 2090(the)X
10077 547 3586(\256le)N
10078 669(is)X
10079 742(\257ushed)X
10080 993(to)X
10081 1075(disk.)X
10082 3 f
10083 432 3700(read)N
10084 608(test)X
10085 1 f
10086 547 3814(A)N
10087 640(lookup)X
10088 897(is)X
10089 984(performed)X
10090 1353(for)X
10091 1481(each)X
10092 1663(key)X
10093 1813(in)X
10094 1909(the)X
10095 2041(hash)X
10096 547 3902(table.)N
10097 3 f
10098 432 4016(verify)N
10099 653(test)X
10100 1 f
10101 547 4130(A)N
10102 640(lookup)X
10103 897(is)X
10104 984(performed)X
10105 1353(for)X
10106 1481(each)X
10107 1663(key)X
10108 1813(in)X
10109 1909(the)X
10110 2041(hash)X
10111 547 4218(table,)N
10112 759(and)X
10113 911(the)X
10114 1045(data)X
10115 1215(returned)X
10116 1519(is)X
10117 1608(compared)X
10118 1961(against)X
10119 547 4306(that)N
10120 687(originally)X
10121 1018(stored)X
10122 1234(in)X
10123 1316(the)X
10124 1434(hash)X
10125 1601(table.)X
10126 3 f
10127 432 4420(sequential)N
10128 798(retrieve)X
10129 1 f
10130 547 4534(All)N
10131 674(keys)X
10132 846(are)X
10133 970(retrieved)X
10134 1281(in)X
10135 1367(sequential)X
10136 1716(order)X
10137 1910(from)X
10138 2090(the)X
10139 547 4622(hash)N
10140 724(table.)X
10141 950(The)X
10142 2 f
10143 1105(ndbm)X
10144 1 f
10145 1313(interface)X
10146 1625(allows)X
10147 1863(sequential)X
10148 547 4710(retrieval)N
10149 848(of)X
10150 948(the)X
10151 1079(keys)X
10152 1259(from)X
10153 1448(the)X
10154 1578(database,)X
10155 1907(but)X
10156 2041(does)X
10157 547 4798(not)N
10158 701(return)X
10159 945(the)X
10160 1094(data)X
10161 1279(associated)X
10162 1660(with)X
10163 1853(each)X
10164 2052(key.)X
10165 547 4886(Therefore,)N
10166 929(we)X
10167 1067(compare)X
10168 1388(the)X
10169 1530(performance)X
10170 1980(of)X
10171 2090(the)X
10172 547 4974(new)N
10173 703(package)X
10174 989(to)X
10175 1073(two)X
10176 1215(different)X
10177 1514(runs)X
10178 1674(of)X
10179 2 f
10180 1763(ndbm)X
10181 1 f
10182 1941(.)X
10183 2002(In)X
10184 2090(the)X
10185 547 5062(\256rst)N
10186 697(case,)X
10187 2 f
10188 882(ndbm)X
10189 1 f
10190 1086(returns)X
10191 1335(only)X
10192 1503(the)X
10193 1627(keys)X
10194 1800(while)X
10195 2003(in)X
10196 2090(the)X
10197 547 5150(second,)N
10198 2 f
10199 823(ndbm)X
10200 1 f
10201 1034(returns)X
10202 1290(both)X
10203 1465(the)X
10204 1596(keys)X
10205 1776(and)X
10206 1924(the)X
10207 2054(data)X
10208 547 5238(\(requiring)N
10209 894(a)X
10210 956(second)X
10211 1204(call)X
10212 1345(to)X
10213 1432(the)X
10214 1555(library\).)X
10215 1861(There)X
10216 2074(is)X
10217 2152(a)X
10218 547 5326(single)N
10219 764(run)X
10220 897(for)X
10221 1017(the)X
10222 1141(new)X
10223 1300(library)X
10224 1539(since)X
10225 1729(it)X
10226 1798(returns)X
10227 2046(both)X
10228 547 5414(the)N
10229 665(key)X
10230 801(and)X
10231 937(the)X
10232 1055(data.)X
10233 3 f
10234 3014 538(In-Memory)N
10235 3431(Test)X
10236 1 f
10237 2590 670(This)N
10238 2757(test)X
10239 2892(uses)X
10240 3054(a)X
10241 3114(bucket)X
10242 3352(size)X
10243 3501(of)X
10244 3592(256)X
10245 3736(and)X
10246 3876(a)X
10247 3936(\256ll)X
10248 4048(fac-)X
10249 2418 758(tor)N
10250 2527(of)X
10251 2614(8.)X
10252 3 f
10253 2418 872(create/read)N
10254 2827(test)X
10255 1 f
10256 2533 986(In)N
10257 2627(this)X
10258 2769(test,)X
10259 2927(a)X
10260 2989(hash)X
10261 3162(table)X
10262 3344(is)X
10263 3423(created)X
10264 3682(by)X
10265 3788(inserting)X
10266 4094(all)X
10267 2533 1074(the)N
10268 2660(key/data)X
10269 2961(pairs.)X
10270 3186(Then)X
10271 3380(a)X
10272 3445(keyed)X
10273 3666(retrieval)X
10274 3963(is)X
10275 4044(per-)X
10276 2533 1162(formed)N
10277 2801(for)X
10278 2931(each)X
10279 3115(pair,)X
10280 3295(and)X
10281 3446(the)X
10282 3579(hash)X
10283 3761(table)X
10284 3952(is)X
10285 4040(des-)X
10286 2533 1250(troyed.)N
10287 3 f
10288 2938 1404(Performance)N
10289 3405(Results)X
10290 1 f
10291 2590 1536(Figures)N
10292 2866(8a)X
10293 2978(and)X
10294 3130(8b)X
10295 3246(show)X
10296 3451(the)X
10297 3585(user)X
10298 3755(time,)X
10299 3952(system)X
10300 2418 1624(time,)N
10301 2608(and)X
10302 2752(elapsed)X
10303 3021(time)X
10304 3191(for)X
10305 3312(each)X
10306 3487(test)X
10307 3625(for)X
10308 3746(both)X
10309 3915(the)X
10310 4040(new)X
10311 2418 1712(implementation)N
10312 2951(and)X
10313 3098(the)X
10314 3227(old)X
10315 3360(implementation)X
10316 3893(\()X
10317 2 f
10318 3920(hsearch)X
10319 1 f
10320 2418 1800(or)N
10321 2 f
10322 2528(ndbm)X
10323 1 f
10324 2706(,)X
10325 2769(whichever)X
10326 3147(is)X
10327 3243(appropriate\))X
10328 3678(as)X
10329 3787(well)X
10330 3967(as)X
10331 4076(the)X
10332 2418 1888(improvement.)N
10333 2929(The)X
10334 3098(improvement)X
10335 3569(is)X
10336 3666(expressed)X
10337 4027(as)X
10338 4138(a)X
10339 2418 1976(percentage)N
10340 2787(of)X
10341 2874(the)X
10342 2992(old)X
10343 3114(running)X
10344 3383(time:)X
10345 0 f
10346 8 s
10347 2418 2275(%)N
10348 2494(=)X
10349 2570(100)X
10350 2722(*)X
10351 2798 -0.4219(\(old_time)AX
10352 3178(-)X
10353 3254 -0.4219(new_time\))AX
10354 3634(/)X
10355 3710(old_time)X
10356 1 f
10357 10 s
10358 2590 2600(In)N
10359 2700(nearly)X
10360 2944(all)X
10361 3067(cases,)X
10362 3299(the)X
10363 3439(new)X
10364 3615(routines)X
10365 3915(perform)X
10366 2418 2688(better)N
10367 2628(than)X
10368 2793(the)X
10369 2918(old)X
10370 3047(routines)X
10371 3332(\(both)X
10372 2 f
10373 3527(hsearch)X
10374 1 f
10375 3807(and)X
10376 2 f
10377 3949(ndbm)X
10378 1 f
10379 4127(\).)X
10380 2418 2776(Although)N
10381 2755(the)X
10382 3 f
10383 2888(create)X
10384 1 f
10385 3134(tests)X
10386 3311(exhibit)X
10387 3567(superior)X
10388 3864(user)X
10389 4032(time)X
10390 2418 2864(performance,)N
10391 2869(the)X
10392 2991(test)X
10393 3126(time)X
10394 3292(is)X
10395 3369(dominated)X
10396 3731(by)X
10397 3834(the)X
10398 3955(cost)X
10399 4107(of)X
10400 2418 2952(writing)N
10401 2677(the)X
10402 2803(actual)X
10403 3023(\256le)X
10404 3153(to)X
10405 3243(disk.)X
10406 3444(For)X
10407 3583(the)X
10408 3709(large)X
10409 3897(database)X
10410 2418 3040(\(the)N
10411 2564(dictionary\),)X
10412 2957(this)X
10413 3093(completely)X
10414 3470(overwhelmed)X
10415 3927(the)X
10416 4045(sys-)X
10417 2418 3128(tem)N
10418 2570(time.)X
10419 2783(However,)X
10420 3129(for)X
10421 3254(the)X
10422 3383(small)X
10423 3587(data)X
10424 3752(base,)X
10425 3946(we)X
10426 4071(see)X
10427 2418 3216(that)N
10428 2569(differences)X
10429 2958(in)X
10430 3051(both)X
10431 3224(user)X
10432 3389(and)X
10433 3536(system)X
10434 3788(time)X
10435 3960(contri-)X
10436 2418 3304(bute)N
10437 2576(to)X
10438 2658(the)X
10439 2776(superior)X
10440 3059(performance)X
10441 3486(of)X
10442 3573(the)X
10443 3691(new)X
10444 3845(package.)X
10445 2590 3418(The)N
10446 3 f
10447 2764(read)X
10448 1 f
10449 2920(,)X
10450 3 f
10451 2989(verify)X
10452 1 f
10453 3190(,)X
10454 3259(and)X
10455 3 f
10456 3424(sequential)X
10457 1 f
10458 3818(results)X
10459 4075(are)X
10460 2418 3506(deceptive)N
10461 2758(for)X
10462 2883(the)X
10463 3012(small)X
10464 3216(database)X
10465 3524(since)X
10466 3720(the)X
10467 3849(entire)X
10468 4063(test)X
10469 2418 3594(ran)N
10470 2551(in)X
10471 2643(under)X
10472 2856(a)X
10473 2922(second.)X
10474 3215(However,)X
10475 3560(on)X
10476 3669(the)X
10477 3796(larger)X
10478 4013(data-)X
10479 2418 3682(base)N
10480 2590(the)X
10481 3 f
10482 2716(read)X
10483 1 f
10484 2900(and)X
10485 3 f
10486 3044(verify)X
10487 1 f
10488 3273(tests)X
10489 3443(bene\256t)X
10490 3689(from)X
10491 3873(the)X
10492 3999(cach-)X
10493 2418 3770(ing)N
10494 2546(of)X
10495 2639(buckets)X
10496 2910(in)X
10497 2998(the)X
10498 3122(new)X
10499 3282(package)X
10500 3571(to)X
10501 3658(improve)X
10502 3950(perfor-)X
10503 2418 3858(mance)N
10504 2666(by)X
10505 2784(over)X
10506 2965(80%.)X
10507 3169(Since)X
10508 3384(the)X
10509 3519(\256rst)X
10510 3 f
10511 3680(sequential)X
10512 1 f
10513 4063(test)X
10514 2418 3946(does)N
10515 2598(not)X
10516 2733(require)X
10517 2 f
10518 2994(ndbm)X
10519 1 f
10520 3205(to)X
10521 3299(return)X
10522 3523(the)X
10523 3653(data)X
10524 3819(values,)X
10525 4076(the)X
10526 2418 4034(user)N
10527 2573(time)X
10528 2735(is)X
10529 2808(lower)X
10530 3011(than)X
10531 3169(for)X
10532 3283(the)X
10533 3401(new)X
10534 3555(package.)X
10535 3879(However)X
10536 2418 4122(when)N
10537 2613(we)X
10538 2728(require)X
10539 2977(both)X
10540 3139(packages)X
10541 3454(to)X
10542 3536(return)X
10543 3748(data,)X
10544 3922(the)X
10545 4040(new)X
10546 2418 4210(package)N
10547 2702(excels)X
10548 2923(in)X
10549 3005(all)X
10550 3105(three)X
10551 3286(timings.)X
10552 2590 4324(The)N
10553 2773(small)X
10554 3003(database)X
10555 3337(runs)X
10556 3532(so)X
10557 3660(quickly)X
10558 3957(in)X
10559 4076(the)X
10560 2418 4412(memory-resident)N
10561 3000(case)X
10562 3173(that)X
10563 3326(the)X
10564 3457(results)X
10565 3699(are)X
10566 3831(uninterest-)X
10567 2418 4500(ing.)N
10568 2589(However,)X
10569 2933(for)X
10570 3056(the)X
10571 3183(larger)X
10572 3400(database)X
10573 3706(the)X
10574 3833(new)X
10575 3995(pack-)X
10576 2418 4588(age)N
10577 2567(pays)X
10578 2751(a)X
10579 2824(small)X
10580 3033(penalty)X
10581 3305(in)X
10582 3403(system)X
10583 3661(time)X
10584 3839(because)X
10585 4130(it)X
10586 2418 4676(limits)N
10587 2636(its)X
10588 2748(main)X
10589 2944(memory)X
10590 3247(utilization)X
10591 3607(and)X
10592 3759(swaps)X
10593 3991(pages)X
10594 2418 4764(out)N
10595 2550(to)X
10596 2642(temporary)X
10597 3002(storage)X
10598 3264(in)X
10599 3356(the)X
10600 3484(\256le)X
10601 3616(system)X
10602 3868(while)X
10603 4076(the)X
10604 2 f
10605 2418 4852(hsearch)N
10606 1 f
10607 2698(package)X
10608 2988(requires)X
10609 3273(that)X
10610 3419(the)X
10611 3543(application)X
10612 3924(allocate)X
10613 2418 4940(enough)N
10614 2692(space)X
10615 2909(for)X
10616 3041(all)X
10617 3159(key/data)X
10618 3468(pair.)X
10619 3670(However,)X
10620 4022(even)X
10621 2418 5028(with)N
10622 2600(the)X
10623 2738(system)X
10624 3000(time)X
10625 3182(penalty,)X
10626 3477(the)X
10627 3614(resulting)X
10628 3933(elapsed)X
10629 2418 5116(time)N
10630 2580(improves)X
10631 2898(by)X
10632 2998(over)X
10633 3161(50%.)X
10634 3 f
10635 432 5960(10)N
10636 2970(USENIX)X
10637 9 f
10638 3292(-)X
10639 3 f
10640 3356(Winter)X
10641 3621('91)X
10642 9 f
10643 3748(-)X
10644 3 f
10645 3812(Dallas,)X
10646 4065(TX)X
10647
10648 11 p
10649 %%Page: 11 11
10650 0(Courier)xf 0 f
10651 10 s 10 xH 0 xS 0 f
10652 3 f
10653 720 258(Seltzer)N
10654 977(&)X
10655 1064(Yigit)X
10656 3278(A)X
10657 3356(New)X
10658 3528(Hashing)X
10659 3831(Package)X
10660 4136(for)X
10661 4259(UNIX)X
10662 1 f
10663 10 f
10664 908 454(i)N
10665 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10666 2 f
10667 1379 546(hash)N
10668 1652(ndbm)X
10669 1950(%change)X
10670 1 f
10671 10 f
10672 908 550(i)N
10673 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10674 1 f
10675 948 642(CREATE)N
10676 10 f
10677 908 646(i)N
10678 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10679 1 f
10680 1125 738(user)N
10681 1424(6.4)X
10682 1671(12.2)X
10683 2073(48)X
10684 1157 826(sys)N
10685 1384(32.5)X
10686 1671(34.7)X
10687 2113(6)X
10688 3 f
10689 1006 914(elapsed)N
10690 10 f
10691 1310 922(c)N
10692 890(c)Y
10693 810(c)Y
10694 730(c)Y
10695 3 f
10696 1384 914(90.4)N
10697 10 f
10698 1581 922(c)N
10699 890(c)Y
10700 810(c)Y
10701 730(c)Y
10702 3 f
10703 1671 914(99.6)N
10704 10 f
10705 1883 922(c)N
10706 890(c)Y
10707 810(c)Y
10708 730(c)Y
10709 3 f
10710 2113 914(9)N
10711 1 f
10712 10 f
10713 908 910(i)N
10714 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10715 908 926(i)N
10716 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10717 1 f
10718 948 1010(READ)N
10719 10 f
10720 908 1014(i)N
10721 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10722 1 f
10723 1125 1106(user)N
10724 1424(3.4)X
10725 1711(6.1)X
10726 2073(44)X
10727 1157 1194(sys)N
10728 1424(1.2)X
10729 1671(15.3)X
10730 2073(92)X
10731 3 f
10732 1006 1282(elapsed)N
10733 10 f
10734 1310 1290(c)N
10735 1258(c)Y
10736 1178(c)Y
10737 1098(c)Y
10738 3 f
10739 1424 1282(4.0)N
10740 10 f
10741 1581 1290(c)N
10742 1258(c)Y
10743 1178(c)Y
10744 1098(c)Y
10745 3 f
10746 1671 1282(21.2)N
10747 10 f
10748 1883 1290(c)N
10749 1258(c)Y
10750 1178(c)Y
10751 1098(c)Y
10752 3 f
10753 2073 1282(81)N
10754 1 f
10755 10 f
10756 908 1278(i)N
10757 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10758 908 1294(i)N
10759 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10760 1 f
10761 948 1378(VERIFY)N
10762 10 f
10763 908 1382(i)N
10764 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10765 1 f
10766 1125 1474(user)N
10767 1424(3.5)X
10768 1711(6.3)X
10769 2073(44)X
10770 1157 1562(sys)N
10771 1424(1.2)X
10772 1671(15.3)X
10773 2073(92)X
10774 3 f
10775 1006 1650(elapsed)N
10776 10 f
10777 1310 1658(c)N
10778 1626(c)Y
10779 1546(c)Y
10780 1466(c)Y
10781 3 f
10782 1424 1650(4.0)N
10783 10 f
10784 1581 1658(c)N
10785 1626(c)Y
10786 1546(c)Y
10787 1466(c)Y
10788 3 f
10789 1671 1650(21.2)N
10790 10 f
10791 1883 1658(c)N
10792 1626(c)Y
10793 1546(c)Y
10794 1466(c)Y
10795 3 f
10796 2073 1650(81)N
10797 1 f
10798 10 f
10799 908 1646(i)N
10800 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10801 908 1662(i)N
10802 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10803 1 f
10804 948 1746(SEQUENTIAL)N
10805 10 f
10806 908 1750(i)N
10807 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10808 1 f
10809 1125 1842(user)N
10810 1424(2.7)X
10811 1711(1.9)X
10812 2046(-42)X
10813 1157 1930(sys)N
10814 1424(0.7)X
10815 1711(3.9)X
10816 2073(82)X
10817 3 f
10818 1006 2018(elapsed)N
10819 10 f
10820 1310 2026(c)N
10821 1994(c)Y
10822 1914(c)Y
10823 1834(c)Y
10824 3 f
10825 1424 2018(3.0)N
10826 10 f
10827 1581 2026(c)N
10828 1994(c)Y
10829 1914(c)Y
10830 1834(c)Y
10831 3 f
10832 1711 2018(5.0)N
10833 10 f
10834 1883 2026(c)N
10835 1994(c)Y
10836 1914(c)Y
10837 1834(c)Y
10838 3 f
10839 2073 2018(40)N
10840 1 f
10841 10 f
10842 908 2014(i)N
10843 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10844 908 2030(i)N
10845 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10846 1 f
10847 948 2114(SEQUENTIAL)N
10848 1467(\(with)X
10849 1656(data)X
10850 1810(retrieval\))X
10851 10 f
10852 908 2118(i)N
10853 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10854 1 f
10855 1125 2210(user)N
10856 1424(2.7)X
10857 1711(8.2)X
10858 2073(67)X
10859 1157 2298(sys)N
10860 1424(0.7)X
10861 1711(4.3)X
10862 2073(84)X
10863 3 f
10864 1006 2386(elapsed)N
10865 1424(3.0)X
10866 1671(12.0)X
10867 2073(75)X
10868 1 f
10869 10 f
10870 908 2390(i)N
10871 927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10872 899 2394(c)N
10873 2378(c)Y
10874 2298(c)Y
10875 2218(c)Y
10876 2138(c)Y
10877 2058(c)Y
10878 1978(c)Y
10879 1898(c)Y
10880 1818(c)Y
10881 1738(c)Y
10882 1658(c)Y
10883 1578(c)Y
10884 1498(c)Y
10885 1418(c)Y
10886 1338(c)Y
10887 1258(c)Y
10888 1178(c)Y
10889 1098(c)Y
10890 1018(c)Y
10891 938(c)Y
10892 858(c)Y
10893 778(c)Y
10894 698(c)Y
10895 618(c)Y
10896 538(c)Y
10897 1310 2394(c)N
10898 2362(c)Y
10899 2282(c)Y
10900 2202(c)Y
10901 1581 2394(c)N
10902 2362(c)Y
10903 2282(c)Y
10904 2202(c)Y
10905 1883 2394(c)N
10906 2362(c)Y
10907 2282(c)Y
10908 2202(c)Y
10909 2278 2394(c)N
10910 2378(c)Y
10911 2298(c)Y
10912 2218(c)Y
10913 2138(c)Y
10914 2058(c)Y
10915 1978(c)Y
10916 1898(c)Y
10917 1818(c)Y
10918 1738(c)Y
10919 1658(c)Y
10920 1578(c)Y
10921 1498(c)Y
10922 1418(c)Y
10923 1338(c)Y
10924 1258(c)Y
10925 1178(c)Y
10926 1098(c)Y
10927 1018(c)Y
10928 938(c)Y
10929 858(c)Y
10930 778(c)Y
10931 698(c)Y
10932 618(c)Y
10933 538(c)Y
10934 905 2574(i)N
10935 930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10936 2 f
10937 1318 2666(hash)N
10938 1585(hsearch)X
10939 1953(%change)X
10940 1 f
10941 10 f
10942 905 2670(i)N
10943 930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10944 1 f
10945 945 2762(CREATE/READ)N
10946 10 f
10947 905 2766(i)N
10948 930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10949 1 f
10950 1064 2858(user)N
10951 1343(6.6)X
10952 1642(17.2)X
10953 2096(62)X
10954 1096 2946(sys)N
10955 1343(1.1)X
10956 1682(0.3)X
10957 2029(-266)X
10958 3 f
10959 945 3034(elapsed)N
10960 1343(7.8)X
10961 1642(17.0)X
10962 2096(54)X
10963 1 f
10964 10 f
10965 905 3038(i)N
10966 930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10967 896 3050(c)N
10968 2978(c)Y
10969 2898(c)Y
10970 2818(c)Y
10971 2738(c)Y
10972 2658(c)Y
10973 1249 3034(c)N
10974 3010(c)Y
10975 2930(c)Y
10976 2850(c)Y
10977 1520 3034(c)N
10978 3010(c)Y
10979 2930(c)Y
10980 2850(c)Y
10981 1886 3034(c)N
10982 3010(c)Y
10983 2930(c)Y
10984 2850(c)Y
10985 2281 3050(c)N
10986 2978(c)Y
10987 2898(c)Y
10988 2818(c)Y
10989 2738(c)Y
10990 2658(c)Y
10991 3 f
10992 720 3174(Figure)N
10993 967(8a:)X
10994 1 f
10995 1094(Timing)X
10996 1349(results)X
10997 1578(for)X
10998 1692(the)X
10999 1810(dictionary)X
11000 2155(database.)X
11001 10 f
11002 720 3262 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
11003 3 f
11004 1407 3504(Conclusion)N
11005 1 f
11006 892 3636(This)N
11007 1063(paper)X
11008 1271(has)X
11009 1407(presented)X
11010 1744(the)X
11011 1871(design,)X
11012 2129(implemen-)X
11013 720 3724(tation)N
11014 928(and)X
11015 1070(performance)X
11016 1503(of)X
11017 1596(a)X
11018 1658(new)X
11019 1818(hashing)X
11020 2093(package)X
11021 2382(for)X
11022 720 3812(UNIX.)N
11023 993(The)X
11024 1150(new)X
11025 1316(package)X
11026 1612(provides)X
11027 1919(a)X
11028 1986(superset)X
11029 2280(of)X
11030 2378(the)X
11031 720 3900(functionality)N
11032 1159(of)X
11033 1255(existing)X
11034 1537(hashing)X
11035 1815(packages)X
11036 2139(and)X
11037 2284(incor-)X
11038 720 3988(porates)N
11039 975(additional)X
11040 1318(features)X
11041 1596(such)X
11042 1766(as)X
11043 1855(large)X
11044 2038(key)X
11045 2176(handling,)X
11046 720 4076(user)N
11047 876(de\256ned)X
11048 1134(hash)X
11049 1302(functions,)X
11050 1641(multiple)X
11051 1928(hash)X
11052 2096(tables,)X
11053 2324(vari-)X
11054 720 4164(able)N
11055 894(sized)X
11056 1099(pages,)X
11057 1342(and)X
11058 1498(linear)X
11059 1721(hashing.)X
11060 2050(In)X
11061 2156(nearly)X
11062 2396(all)X
11063 720 4252(cases,)N
11064 954(the)X
11065 1096(new)X
11066 1274(package)X
11067 1582(provides)X
11068 1902(improved)X
11069 2252(perfor-)X
11070 720 4340(mance)N
11071 974(on)X
11072 1098(the)X
11073 1240(order)X
11074 1454(of)X
11075 1565(50-80%)X
11076 1863(for)X
11077 2001(the)X
11078 2142(workloads)X
11079 720 4428(shown.)N
11080 990(Applications)X
11081 1420(such)X
11082 1588(as)X
11083 1676(the)X
11084 1794(loader,)X
11085 2035(compiler,)X
11086 2360(and)X
11087 720 4516(mail,)N
11088 921(which)X
11089 1156(currently)X
11090 1485(implement)X
11091 1866(their)X
11092 2051(own)X
11093 2227(hashing)X
11094 720 4604(routines,)N
11095 1032(should)X
11096 1279(be)X
11097 1389(modi\256ed)X
11098 1706(to)X
11099 1801(use)X
11100 1941(the)X
11101 2072(generic)X
11102 2342(rou-)X
11103 720 4692(tines.)N
11104 892 4806(This)N
11105 1087(hashing)X
11106 1389(package)X
11107 1705(is)X
11108 1810(one)X
11109 1978(access)X
11110 2236(method)X
11111 720 4894(which)N
11112 953(is)X
11113 1043(part)X
11114 1205(of)X
11115 1309(a)X
11116 1382(generic)X
11117 1656(database)X
11118 1970(access)X
11119 2212(package)X
11120 720 4982(being)N
11121 955(developed)X
11122 1342(at)X
11123 1457(the)X
11124 1612(University)X
11125 2007(of)X
11126 2131(California,)X
11127 720 5070(Berkeley.)N
11128 1089(It)X
11129 1177(will)X
11130 1340(include)X
11131 1614(a)X
11132 1688(btree)X
11133 1887(access)X
11134 2131(method)X
11135 2409(as)X
11136 720 5158(well)N
11137 916(as)X
11138 1041(\256xed)X
11139 1259(and)X
11140 1433(variable)X
11141 1750(length)X
11142 2007(record)X
11143 2270(access)X
11144 720 5246(methods)N
11145 1024(in)X
11146 1119(addition)X
11147 1414(to)X
11148 1509(the)X
11149 1640(hashed)X
11150 1896(support)X
11151 2168(presented)X
11152 720 5334(here.)N
11153 948(All)X
11154 1099(of)X
11155 1215(the)X
11156 1361(access)X
11157 1615(methods)X
11158 1934(are)X
11159 2081(based)X
11160 2312(on)X
11161 2440(a)X
11162 720 5422(key/data)N
11163 1037(pair)X
11164 1207(interface)X
11165 1533(and)X
11166 1693(appear)X
11167 1952(identical)X
11168 2272(to)X
11169 2378(the)X
11170 720 5510(application)N
11171 1121(layer,)X
11172 1347(allowing)X
11173 1671(application)X
11174 2071(implementa-)X
11175 720 5598(tions)N
11176 906(to)X
11177 999(be)X
11178 1106(largely)X
11179 1360(independent)X
11180 1783(of)X
11181 1881(the)X
11182 2010(database)X
11183 2318(type.)X
11184 720 5686(The)N
11185 873(package)X
11186 1165(is)X
11187 1246(expected)X
11188 1560(to)X
11189 1650(be)X
11190 1754(an)X
11191 1858(integral)X
11192 2131(part)X
11193 2284(of)X
11194 2378(the)X
11195 2706 538(4.4BSD)N
11196 3006(system,)X
11197 3293(with)X
11198 3479(various)X
11199 3759(standard)X
11200 4075(applications)X
11201 2706 626(such)N
11202 2879(as)X
11203 2972(more\(1\),)X
11204 3277(sort\(1\))X
11205 3517(and)X
11206 3659(vi\(1\))X
11207 3841(based)X
11208 4050(on)X
11209 4156(it.)X
11210 4266(While)X
11211 2706 714(the)N
11212 2833(current)X
11213 3089(design)X
11214 3326(does)X
11215 3501(not)X
11216 3631(support)X
11217 3899(multi-user)X
11218 4256(access)X
11219 2706 802(or)N
11220 2804(transactions,)X
11221 3238(they)X
11222 3407(could)X
11223 3616(be)X
11224 3723(incorporated)X
11225 4159(relatively)X
11226 2706 890(easily.)N
11227 10 f
11228 2894 938(i)N
11229 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11230 2 f
11231 3365 1030(hash)N
11232 3638(ndbm)X
11233 3936(%change)X
11234 1 f
11235 10 f
11236 2894 1034(i)N
11237 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11238 1 f
11239 2934 1126(CREATE)N
11240 10 f
11241 2894 1130(i)N
11242 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11243 1 f
11244 3111 1222(user)N
11245 3390(0.2)X
11246 3677(0.4)X
11247 4079(50)X
11248 3143 1310(sys)N
11249 3390(0.1)X
11250 3677(1.0)X
11251 4079(90)X
11252 3 f
11253 2992 1398(elapsed)N
11254 10 f
11255 3296 1406(c)N
11256 1374(c)Y
11257 1294(c)Y
11258 1214(c)Y
11259 3 f
11260 3390 1398(0)N
11261 10 f
11262 3567 1406(c)N
11263 1374(c)Y
11264 1294(c)Y
11265 1214(c)Y
11266 3 f
11267 3677 1398(3.2)N
11268 10 f
11269 3869 1406(c)N
11270 1374(c)Y
11271 1294(c)Y
11272 1214(c)Y
11273 3 f
11274 4039 1398(100)N
11275 1 f
11276 10 f
11277 2894 1394(i)N
11278 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11279 2894 1410(i)N
11280 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11281 1 f
11282 2934 1494(READ)N
11283 10 f
11284 2894 1498(i)N
11285 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11286 1 f
11287 3111 1590(user)N
11288 3390(0.1)X
11289 3677(0.1)X
11290 4119(0)X
11291 3143 1678(sys)N
11292 3390(0.1)X
11293 3677(0.4)X
11294 4079(75)X
11295 3 f
11296 2992 1766(elapsed)N
11297 10 f
11298 3296 1774(c)N
11299 1742(c)Y
11300 1662(c)Y
11301 1582(c)Y
11302 3 f
11303 3390 1766(0.0)N
11304 10 f
11305 3567 1774(c)N
11306 1742(c)Y
11307 1662(c)Y
11308 1582(c)Y
11309 3 f
11310 3677 1766(0.0)N
11311 10 f
11312 3869 1774(c)N
11313 1742(c)Y
11314 1662(c)Y
11315 1582(c)Y
11316 3 f
11317 4119 1766(0)N
11318 1 f
11319 10 f
11320 2894 1762(i)N
11321 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11322 2894 1778(i)N
11323 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11324 1 f
11325 2934 1862(VERIFY)N
11326 10 f
11327 2894 1866(i)N
11328 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11329 1 f
11330 3111 1958(user)N
11331 3390(0.1)X
11332 3677(0.2)X
11333 4079(50)X
11334 3143 2046(sys)N
11335 3390(0.1)X
11336 3677(0.3)X
11337 4079(67)X
11338 3 f
11339 2992 2134(elapsed)N
11340 10 f
11341 3296 2142(c)N
11342 2110(c)Y
11343 2030(c)Y
11344 1950(c)Y
11345 3 f
11346 3390 2134(0.0)N
11347 10 f
11348 3567 2142(c)N
11349 2110(c)Y
11350 2030(c)Y
11351 1950(c)Y
11352 3 f
11353 3677 2134(0.0)N
11354 10 f
11355 3869 2142(c)N
11356 2110(c)Y
11357 2030(c)Y
11358 1950(c)Y
11359 3 f
11360 4119 2134(0)N
11361 1 f
11362 10 f
11363 2894 2130(i)N
11364 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11365 2894 2146(i)N
11366 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11367 1 f
11368 2934 2230(SEQUENTIAL)N
11369 10 f
11370 2894 2234(i)N
11371 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11372 1 f
11373 3111 2326(user)N
11374 3390(0.1)X
11375 3677(0.0)X
11376 4012(-100)X
11377 3143 2414(sys)N
11378 3390(0.1)X
11379 3677(0.1)X
11380 4119(0)X
11381 3 f
11382 2992 2502(elapsed)N
11383 10 f
11384 3296 2510(c)N
11385 2478(c)Y
11386 2398(c)Y
11387 2318(c)Y
11388 3 f
11389 3390 2502(0.0)N
11390 10 f
11391 3567 2510(c)N
11392 2478(c)Y
11393 2398(c)Y
11394 2318(c)Y
11395 3 f
11396 3677 2502(0.0)N
11397 10 f
11398 3869 2510(c)N
11399 2478(c)Y
11400 2398(c)Y
11401 2318(c)Y
11402 3 f
11403 4119 2502(0)N
11404 1 f
11405 10 f
11406 2894 2498(i)N
11407 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11408 2894 2514(i)N
11409 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11410 1 f
11411 2934 2598(SEQUENTIAL)N
11412 3453(\(with)X
11413 3642(data)X
11414 3796(retrieval\))X
11415 10 f
11416 2894 2602(i)N
11417 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11418 1 f
11419 3111 2694(user)N
11420 3390(0.1)X
11421 3677(0.1)X
11422 4119(0)X
11423 3143 2782(sys)N
11424 3390(0.1)X
11425 3677(0.1)X
11426 4119(0)X
11427 3 f
11428 2992 2870(elapsed)N
11429 3390(0.0)X
11430 3677(0.0)X
11431 4119(0)X
11432 1 f
11433 10 f
11434 2894 2874(i)N
11435 2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11436 2885 2878(c)N
11437 2862(c)Y
11438 2782(c)Y
11439 2702(c)Y
11440 2622(c)Y
11441 2542(c)Y
11442 2462(c)Y
11443 2382(c)Y
11444 2302(c)Y
11445 2222(c)Y
11446 2142(c)Y
11447 2062(c)Y
11448 1982(c)Y
11449 1902(c)Y
11450 1822(c)Y
11451 1742(c)Y
11452 1662(c)Y
11453 1582(c)Y
11454 1502(c)Y
11455 1422(c)Y
11456 1342(c)Y
11457 1262(c)Y
11458 1182(c)Y
11459 1102(c)Y
11460 1022(c)Y
11461 3296 2878(c)N
11462 2846(c)Y
11463 2766(c)Y
11464 2686(c)Y
11465 3567 2878(c)N
11466 2846(c)Y
11467 2766(c)Y
11468 2686(c)Y
11469 3869 2878(c)N
11470 2846(c)Y
11471 2766(c)Y
11472 2686(c)Y
11473 4264 2878(c)N
11474 2862(c)Y
11475 2782(c)Y
11476 2702(c)Y
11477 2622(c)Y
11478 2542(c)Y
11479 2462(c)Y
11480 2382(c)Y
11481 2302(c)Y
11482 2222(c)Y
11483 2142(c)Y
11484 2062(c)Y
11485 1982(c)Y
11486 1902(c)Y
11487 1822(c)Y
11488 1742(c)Y
11489 1662(c)Y
11490 1582(c)Y
11491 1502(c)Y
11492 1422(c)Y
11493 1342(c)Y
11494 1262(c)Y
11495 1182(c)Y
11496 1102(c)Y
11497 1022(c)Y
11498 2891 3058(i)N
11499 2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11500 2 f
11501 3304 3150(hash)N
11502 3571(hsearch)X
11503 3939(%change)X
11504 1 f
11505 10 f
11506 2891 3154(i)N
11507 2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11508 1 f
11509 2931 3246(CREATE/READ)N
11510 10 f
11511 2891 3250(i)N
11512 2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11513 1 f
11514 3050 3342(user)N
11515 3329(0.3)X
11516 3648(0.4)X
11517 4048(25)X
11518 3082 3430(sys)N
11519 3329(0.0)X
11520 3648(0.0)X
11521 4088(0)X
11522 3 f
11523 2931 3518(elapsed)N
11524 3329(0.0)X
11525 3648(0.0)X
11526 4088(0)X
11527 1 f
11528 10 f
11529 2891 3522(i)N
11530 2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
11531 2882 3534(c)N
11532 3462(c)Y
11533 3382(c)Y
11534 3302(c)Y
11535 3222(c)Y
11536 3142(c)Y
11537 3235 3518(c)N
11538 3494(c)Y
11539 3414(c)Y
11540 3334(c)Y
11541 3506 3518(c)N
11542 3494(c)Y
11543 3414(c)Y
11544 3334(c)Y
11545 3872 3518(c)N
11546 3494(c)Y
11547 3414(c)Y
11548 3334(c)Y
11549 4267 3534(c)N
11550 3462(c)Y
11551 3382(c)Y
11552 3302(c)Y
11553 3222(c)Y
11554 3142(c)Y
11555 3 f
11556 2706 3658(Figure)N
11557 2953(8b:)X
11558 1 f
11559 3084(Timing)X
11560 3339(results)X
11561 3568(for)X
11562 3682(the)X
11563 3800(password)X
11564 4123(database.)X
11565 10 f
11566 2706 3746 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
11567 3 f
11568 3396 3988(References)N
11569 1 f
11570 2706 4120([ATT79])N
11571 3058(AT&T,)X
11572 3358(DBM\(3X\),)X
11573 2 f
11574 3773(Unix)X
11575 3990(Programmer's)X
11576 2878 4208(Manual,)N
11577 3194(Seventh)X
11578 3491(Edition,)X
11579 3793(Volume)X
11580 4085(1)X
11581 1 f
11582 (,)S
11583 4192(January,)X
11584 2878 4296(1979.)N
11585 2706 4472([ATT85])N
11586 3027(AT&T,)X
11587 3296(HSEARCH\(BA_LIB\),)X
11588 2 f
11589 4053(Unix)X
11590 4239(System)X
11591 2878 4560(User's)N
11592 3112(Manual,)X
11593 3401(System)X
11594 3644(V.3)X
11595 1 f
11596 3753(,)X
11597 3793(pp.)X
11598 3913(506-508,)X
11599 4220(1985.)X
11600 2706 4736([BRE73])N
11601 3025(Brent,)X
11602 3253(Richard)X
11603 3537(P.,)X
11604 3651(``Reducing)X
11605 4041(the)X
11606 4168(Retrieval)X
11607 2878 4824(Time)N
11608 3071(of)X
11609 3162(Scatter)X
11610 3409(Storage)X
11611 3678(Techniques'',)X
11612 2 f
11613 4146(Commun-)X
11614 2878 4912(ications)N
11615 3175(of)X
11616 3281(the)X
11617 3422(ACM)X
11618 1 f
11619 3591(,)X
11620 3654(Volume)X
11621 3955(16,)X
11622 4098(No.)X
11623 4259(2,)X
11624 4362(pp.)X
11625 2878 5000(105-109,)N
11626 3185(February,)X
11627 3515(1973.)X
11628 2706 5176([BSD86])N
11629 3055(NDBM\(3\),)X
11630 2 f
11631 3469(4.3BSD)X
11632 3775(Unix)X
11633 3990(Programmer's)X
11634 2878 5264(Manual)N
11635 3155(Reference)X
11636 3505(Guide)X
11637 1 f
11638 3701(,)X
11639 3749(University)X
11640 4114(of)X
11641 4208(Califor-)X
11642 2878 5352(nia,)N
11643 3016(Berkeley,)X
11644 3346(1986.)X
11645 2706 5528([ENB88])N
11646 3025(Enbody,)X
11647 3319(R.)X
11648 3417(J.,)X
11649 3533(Du,)X
11650 3676(H.)X
11651 3779(C.,)X
11652 3897(``Dynamic)X
11653 4270(Hash-)X
11654 2878 5616(ing)N
11655 3034(Schemes'',)X
11656 2 f
11657 3427(ACM)X
11658 3630(Computing)X
11659 4019(Surveys)X
11660 1 f
11661 4269(,)X
11662 4322(Vol.)X
11663 2878 5704(20,)N
11664 2998(No.)X
11665 3136(2,)X
11666 3216(pp.)X
11667 3336(85-113,)X
11668 3603(June)X
11669 3770(1988.)X
11670 3 f
11671 720 5960(USENIX)N
11672 9 f
11673 1042(-)X
11674 3 f
11675 1106(Winter)X
11676 1371('91)X
11677 9 f
11678 1498(-)X
11679 3 f
11680 1562(Dallas,)X
11681 1815(TX)X
11682 4384(11)X
11683
11684 12 p
11685 %%Page: 12 12
11686 0(Courier)xf 0 f
11687 10 s 10 xH 0 xS 0 f
11688 3 f
11689 432 258(A)N
11690 510(New)X
11691 682(Hashing)X
11692 985(Package)X
11693 1290(for)X
11694 1413(UNIX)X
11695 3663(Seltzer)X
11696 3920(&)X
11697 4007(Yigit)X
11698 1 f
11699 432 538([FAG79])N
11700 776(Ronald)X
11701 1057(Fagin,)X
11702 1308(Jurg)X
11703 1495(Nievergelt,)X
11704 1903(Nicholas)X
11705 604 626(Pippenger,)N
11706 1003(H.)X
11707 1135(Raymond)X
11708 1500(Strong,)X
11709 1787(``Extendible)X
11710 604 714(Hashing)N
11711 901(--)X
11712 985(A)X
11713 1073(Fast)X
11714 1236(Access)X
11715 1493(Method)X
11716 1771(for)X
11717 1894(Dynamic)X
11718 604 802(Files'',)N
11719 2 f
11720 855(ACM)X
11721 1046(Transactions)X
11722 1485(on)X
11723 1586(Database)X
11724 1914(Systems)X
11725 1 f
11726 2168(,)X
11727 604 890(Volume)N
11728 882(4,)X
11729 962(No.)X
11730 1100(3.,)X
11731 1200(September)X
11732 1563(1979,)X
11733 1763(pp)X
11734 1863(315-34)X
11735 432 1066([KNU68],)N
11736 802(Knuth,)X
11737 1064(D.E.,)X
11738 2 f
11739 1273(The)X
11740 1434(Art)X
11741 1577(of)X
11742 1680(Computer)X
11743 2041(Pro-)X
11744 604 1154(gramming)N
11745 971(Vol.)X
11746 1140(3:)X
11747 1245(Sorting)X
11748 1518(and)X
11749 1676(Searching)X
11750 1 f
11751 2001(,)X
11752 2058(sec-)X
11753 604 1242(tions)N
11754 779(6.3-6.4,)X
11755 1046(pp)X
11756 1146(481-550.)X
11757 432 1418([LAR78])N
11758 747(Larson,)X
11759 1011(Per-Ake,)X
11760 1319(``Dynamic)X
11761 1687(Hashing'',)X
11762 2 f
11763 2048(BIT)X
11764 1 f
11765 (,)S
11766 604 1506(Vol.)N
11767 764(18,)X
11768 884(1978,)X
11769 1084(pp.)X
11770 1204(184-201.)X
11771 432 1682([LAR88])N
11772 752(Larson,)X
11773 1021(Per-Ake,)X
11774 1335(``Dynamic)X
11775 1709(Hash)X
11776 1900(Tables'',)X
11777 2 f
11778 604 1770(Communications)N
11779 1183(of)X
11780 1281(the)X
11781 1415(ACM)X
11782 1 f
11783 1584(,)X
11784 1640(Volume)X
11785 1934(31,)X
11786 2070(No.)X
11787 604 1858(4.,)N
11788 704(April)X
11789 893(1988,)X
11790 1093(pp)X
11791 1193(446-457.)X
11792 432 2034([LIT80])N
11793 731(Witold,)X
11794 1013(Litwin,)X
11795 1286(``Linear)X
11796 1590(Hashing:)X
11797 1939(A)X
11798 2036(New)X
11799 604 2122(Tool)N
11800 786(for)X
11801 911(File)X
11802 1065(and)X
11803 1211(Table)X
11804 1424(Addressing'',)X
11805 2 f
11806 1893(Proceed-)X
11807 604 2210(ings)N
11808 761(of)X
11809 847(the)X
11810 969(6th)X
11811 1095(International)X
11812 1540(Conference)X
11813 1933(on)X
11814 2036(Very)X
11815 604 2298(Large)N
11816 815(Databases)X
11817 1 f
11818 1153(,)X
11819 1193(1980.)X
11820 432 2474([NEL90])N
11821 743(Nelson,)X
11822 1011(Philip)X
11823 1222(A.,)X
11824 2 f
11825 1341(Gdbm)X
11826 1558(1.4)X
11827 1679(source)X
11828 1913(distribu-)X
11829 604 2562(tion)N
11830 748(and)X
11831 888(README)X
11832 1 f
11833 1209(,)X
11834 1249(August)X
11835 1500(1990.)X
11836 432 2738([THOM90])N
11837 840(Ken)X
11838 1011(Thompson,)X
11839 1410(private)X
11840 1670(communication,)X
11841 604 2826(Nov.)N
11842 782(1990.)X
11843 432 3002([TOR87])N
11844 790(Torek,)X
11845 1066(C.,)X
11846 1222(``Re:)X
11847 1470(dbm.a)X
11848 1751(and)X
11849 1950(ndbm.a)X
11850 604 3090(archives'',)N
11851 2 f
11852 966(USENET)X
11853 1279(newsgroup)X
11854 1650(comp.unix)X
11855 1 f
11856 2002(1987.)X
11857 432 3266([TOR88])N
11858 760(Torek,)X
11859 1006(C.,)X
11860 1133(``Re:)X
11861 1351(questions)X
11862 1686(regarding)X
11863 2027(data-)X
11864 604 3354(bases)N
11865 826(created)X
11866 1106(with)X
11867 1295(dbm)X
11868 1484(and)X
11869 1647(ndbm)X
11870 1876(routines'')X
11871 2 f
11872 604 3442(USENET)N
11873 937(newsgroup)X
11874 1328(comp.unix.questions)X
11875 1 f
11876 1982(,)X
11877 2041(June)X
11878 604 3530(1988.)N
11879 432 3706([WAL84])N
11880 773(Wales,)X
11881 1018(R.,)X
11882 1135(``Discussion)X
11883 1564(of)X
11884 1655("dbm")X
11885 1887(data)X
11886 2045(base)X
11887 604 3794(system'',)N
11888 2 f
11889 973(USENET)X
11890 1339(newsgroup)X
11891 1762(unix.wizards)X
11892 1 f
11893 2168(,)X
11894 604 3882(January,)N
11895 894(1984.)X
11896 432 4058([YIG89])N
11897 751(Ozan)X
11898 963(S.)X
11899 1069(Yigit,)X
11900 1294(``How)X
11901 1545(to)X
11902 1648(Roll)X
11903 1826(Your)X
11904 2032(Own)X
11905 604 4146(Dbm/Ndbm'',)N
11906 2 f
11907 1087(unpublished)X
11908 1504(manuscript)X
11909 1 f
11910 (,)S
11911 1910(Toronto,)X
11912 604 4234(July,)N
11913 777(1989)X
11914 3 f
11915 432 5960(12)N
11916 2970(USENIX)X
11917 9 f
11918 3292(-)X
11919 3 f
11920 3356(Winter)X
11921 3621('91)X
11922 9 f
11923 3748(-)X
11924 3 f
11925 3812(Dallas,)X
11926 4065(TX)X
11927
11928 13 p
11929 %%Page: 13 13
11930 0(Courier)xf 0 f
11931 10 s 10 xH 0 xS 0 f
11932 3 f
11933 720 258(Seltzer)N
11934 977(&)X
11935 1064(Yigit)X
11936 3278(A)X
11937 3356(New)X
11938 3528(Hashing)X
11939 3831(Package)X
11940 4136(for)X
11941 4259(UNIX)X
11942 1 f
11943 720 538(Margo)N
11944 960(I.)X
11945 1033(Seltzer)X
11946 1282(is)X
11947 1361(a)X
11948 1423(Ph.D.)X
11949 1631(student)X
11950 1887(in)X
11951 1974(the)X
11952 2097(Department)X
11953 720 626(of)N
11954 823(Electrical)X
11955 1167(Engineering)X
11956 1595(and)X
11957 1747(Computer)X
11958 2102(Sciences)X
11959 2418(at)X
11960 720 714(the)N
11961 850(University)X
11962 1220(of)X
11963 1318(California,)X
11964 1694(Berkeley.)X
11965 2055(Her)X
11966 2207(research)X
11967 720 802(interests)N
11968 1017(include)X
11969 1283(\256le)X
11970 1415(systems,)X
11971 1718(databases,)X
11972 2076(and)X
11973 2221(transac-)X
11974 720 890(tion)N
11975 896(processing)X
11976 1291(systems.)X
11977 1636(She)X
11978 1807(spent)X
11979 2027(several)X
11980 2306(years)X
11981 720 978(working)N
11982 1026(at)X
11983 1123(startup)X
11984 1380(companies)X
11985 1762(designing)X
11986 2112(and)X
11987 2267(imple-)X
11988 720 1066(menting)N
11989 1048(\256le)X
11990 1216(systems)X
11991 1535(and)X
11992 1716(transaction)X
11993 2133(processing)X
11994 720 1154(software)N
11995 1026(and)X
11996 1170(designing)X
11997 1509(microprocessors.)X
11998 2103(Ms.)X
11999 2253(Seltzer)X
12000 720 1242(received)N
12001 1057(her)X
12002 1223(AB)X
12003 1397(in)X
12004 1522(Applied)X
12005 1843(Mathematics)X
12006 2320(from)X
12007 720 1330 0.1953(Harvard/Radcliffe)AN
12008 1325(College)X
12009 1594(in)X
12010 1676(1983.)X
12011 720 1444(In)N
12012 810(her)X
12013 936(spare)X
12014 1129(time,)X
12015 1313(Margo)X
12016 1549(can)X
12017 1683(usually)X
12018 1936(be)X
12019 2034(found)X
12020 2243(prepar-)X
12021 720 1532(ing)N
12022 868(massive)X
12023 1171(quantities)X
12024 1527(of)X
12025 1639(food)X
12026 1831(for)X
12027 1970(hungry)X
12028 2242(hoards,)X
12029 720 1620(studying)N
12030 1022(Japanese,)X
12031 1355(or)X
12032 1449(playing)X
12033 1716(soccer)X
12034 1948(with)X
12035 2116(an)X
12036 2218(exciting)X
12037 720 1708(Bay)N
12038 912(Area)X
12039 1132(Women's)X
12040 1507(Soccer)X
12041 1788(team,)X
12042 2026(the)X
12043 2186(Berkeley)X
12044 720 1796(Bruisers.)N
12045 720 1910(Ozan)N
12046 915(\()X
12047 3 f
12048 942(Oz)X
12049 1 f
12050 1040(\))X
12051 1092(Yigit)X
12052 1281(is)X
12053 1358(currently)X
12054 1672(a)X
12055 1732(software)X
12056 2033(engineer)X
12057 2334(with)X
12058 720 1998(the)N
12059 886(Communications)X
12060 1499(Research)X
12061 1861(and)X
12062 2044(Development)X
12063 720 2086(group,)N
12064 948(Computing)X
12065 1328(Services,)X
12066 1641(York)X
12067 1826(University.)X
12068 2224(His)X
12069 2355(for-)X
12070 720 2174(mative)N
12071 967(years)X
12072 1166(were)X
12073 1352(also)X
12074 1510(spent)X
12075 1708(at)X
12076 1795(York,)X
12077 2009(where)X
12078 2234(he)X
12079 2338(held)X
12080 720 2262(system)N
12081 985(programmer)X
12082 1425(and)X
12083 1583(administrator)X
12084 2052(positions)X
12085 2382(for)X
12086 720 2350(various)N
12087 995(mixtures)X
12088 1314(of)X
12089 1420(of)X
12090 1526(UNIX)X
12091 1765(systems)X
12092 2056(starting)X
12093 2334(with)X
12094 720 2438(Berkeley)N
12095 1031(4.1)X
12096 1151(in)X
12097 1233(1982,)X
12098 1433(while)X
12099 1631(at)X
12100 1709(the)X
12101 1827(same)X
12102 2012(time)X
12103 2174(obtaining)X
12104 720 2526(a)N
12105 776(degree)X
12106 1011(in)X
12107 1093(Computer)X
12108 1433(Science.)X
12109 720 2640(In)N
12110 813(his)X
12111 931(copious)X
12112 1205(free)X
12113 1356(time,)X
12114 1543(Oz)X
12115 1662(enjoys)X
12116 1896(working)X
12117 2188(on)X
12118 2293(what-)X
12119 720 2728(ever)N
12120 890(software)X
12121 1197(looks)X
12122 1400(interesting,)X
12123 1788(which)X
12124 2014(often)X
12125 2209(includes)X
12126 720 2816(language)N
12127 1044(interpreters,)X
12128 1464(preprocessors,)X
12129 1960(and)X
12130 2110(lately,)X
12131 2342(pro-)X
12132 720 2904(gram)N
12133 905(generators)X
12134 1260(and)X
12135 1396(expert)X
12136 1617(systems.)X
12137 720 3018(Oz)N
12138 836(has)X
12139 964(authored)X
12140 1266(several)X
12141 1515(public-domain)X
12142 2003(software)X
12143 2301(tools,)X
12144 720 3106(including)N
12145 1069(an)X
12146 1191(nroff-like)X
12147 1545(text)X
12148 1711(formatter)X
12149 2 f
12150 2056(proff)X
12151 1 f
12152 2257(that)X
12153 2423(is)X
12154 720 3194(apparently)N
12155 1083(still)X
12156 1226(used)X
12157 1397(in)X
12158 1483(some)X
12159 1676(basement)X
12160 2002(PCs.)X
12161 2173(His)X
12162 2307(latest)X
12163 720 3282(obsessions)N
12164 1143(include)X
12165 1460(the)X
12166 1639(incredible)X
12167 2040(programming)X
12168 720 3370(language)N
12169 1030(Scheme,)X
12170 1324(and)X
12171 1460(Chinese)X
12172 1738(Brush)X
12173 1949(painting.)X
12174 3 f
12175 720 5960(USENIX)N
12176 9 f
12177 1042(-)X
12178 3 f
12179 1106(Winter)X
12180 1371('91)X
12181 9 f
12182 1498(-)X
12183 3 f
12184 1562(Dallas,)X
12185 1815(TX)X
12186 4384(13)X
12187
12188 14 p
12189 %%Page: 14 14
12190 0(Courier)xf 0 f
12191 10 s 10 xH 0 xS 0 f
12192 3 f
12193 432 5960(14)N
12194 2970(USENIX)X
12195 9 f
12196 3292(-)X
12197 3 f
12198 3356(Winter)X
12199 3621('91)X
12200 9 f
12201 3748(-)X
12202 3 f
12203 3812(Dallas,)X
12204 4065(TX)X
12205
12206 14 p
12207 %%Trailer
12208 xt
12209
12210 xs