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