Oh GACK! src-clean doesn't quite work that easily since cleandist rebuilds the
[unix-history] / lib / libc / db / doc / hash.ps
CommitLineData
fdeaf90b
RG
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: $Header: psdit.pro,v 2.1 85/11/24 12:19:43 shore Rel $
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
247end
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
289end
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)!
29650 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
3020 1 255{Encoding exch /.notdef put}for
303Encoding
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
339CharProcs 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
369end
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
395end
396
397DITfd 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
404end
405end
406/DIThacks exch definefont pop
407ditstart
408(psc)xT
409576 1 1 xr
4101(Times-Roman)xf 1 f
4112(Times-Italic)xf 2 f
4123(Times-Bold)xf 3 f
4134(Times-BoldItalic)xf 4 f
4145(Helvetica)xf 5 f
4156(Helvetica-Bold)xf 6 f
4167(Courier)xf 7 f
4178(Courier-Bold)xf 8 f
4189(Symbol)xf 9 f
41910(DIThacks)xf 10 f
42010 s
4211 f
422xi
423%%EndProlog
424
425%%Page: 1 1
42610 s 10 xH 0 xS 1 f
4273 f
42822 s
4291249 626(A)N
4301420(N)X
4311547(ew)X
4321796(H)X
4331933(ashing)X
4342467(P)X
4352574(ackage)X
4363136(for)X
4373405(U)X
4383532(N)X
4393659(IX)X
4402 f
44120 s
4423855 562(1)N
4431 f
44412 s
4451607 779(Margo)N
4461887(Seltzer)X
4479 f
4482179(-)X
4491 f
4502256(University)X
4512686(of)X
4522790(California,)X
4533229(Berkeley)X
4542015 875(Ozan)N
4552242(Yigit)X
4569 f
4572464(-)X
4581 f
4592541(York)X
4602762(University)X
4613 f
4622331 1086(ABSTRACT)N
4631 f
46410 s
4651152 1222(UNIX)N
4661385(support)X
4671657(of)X
4681756(disk)X
4691921(oriented)X
4702216(hashing)X
4712497(was)X
4722654(originally)X
4732997(provided)X
4743314(by)X
4752 f
4763426(dbm)X
4771 f
4783595([ATT79])X
4793916(and)X
4801152 1310(subsequently)N
4811595(improved)X
4821927(upon)X
4832112(in)X
4842 f
4852199(ndbm)X
4861 f
4872402([BSD86].)X
4882735(In)X
4892826(AT&T)X
4903068(System)X
4913327(V,)X
4923429(in-memory)X
4933809(hashed)X
4941152 1398(storage)N
4951420(and)X
4961572(access)X
4971814(support)X
4982090(was)X
4992251(added)X
5002479(in)X
5012577(the)X
5022 f
5032711(hsearch)X
5041 f
5053000(library)X
5063249(routines)X
5073542([ATT85].)X
5083907(The)X
5091152 1486(result)N
5101367(is)X
5111457(a)X
5121530(system)X
5131789(with)X
5141968(two)X
5152125(incompatible)X
5162580(hashing)X
5172865(schemes,)X
5183193(each)X
5193377(with)X
5203555(its)X
5213666(own)X
5223840(set)X
5233965(of)X
5241152 1574(shortcomings.)N
5251152 1688(This)N
5261316(paper)X
5271517(presents)X
5281802(the)X
5291922(design)X
5302152(and)X
5312289(performance)X
5322717(characteristics)X
5333198(of)X
5343286(a)X
5353343(new)X
5363498(hashing)X
5373768(package)X
5381152 1776(providing)N
5391483(a)X
5401539(superset)X
5411822(of)X
5421909(the)X
5432027(functionality)X
5442456(provided)X
5452761(by)X
5462 f
5472861(dbm)X
5481 f
5493019(and)X
5502 f
5513155(hsearch)X
5521 f
5533409(.)X
5543469(The)X
5553614(new)X
5563768(package)X
5571152 1864(uses)N
5581322(linear)X
5591537(hashing)X
5601818(to)X
5611912(provide)X
5622189(ef\256cient)X
5632484(support)X
5642755(of)X
5652853(both)X
5663026(memory)X
5673324(based)X
5683538(and)X
5693685(disk)X
5703849(based)X
5711152 1952(hash)N
5721319(tables)X
5731526(with)X
5741688(performance)X
5752115(superior)X
5762398(to)X
5772480(both)X
5782 f
5792642(dbm)X
5801 f
5812800(and)X
5822 f
5832936(hsearch)X
5841 f
5853210(under)X
5863413(most)X
5873588(conditions.)X
5883 f
5891380 2128(Introduction)N
5901 f
591892 2260(Current)N
5921196(UNIX)X
5931456(systems)X
5941768(offer)X
5951984(two)X
5962163(forms)X
5972409(of)X
598720 2348(hashed)N
599973(data)X
6001137(access.)X
6012 f
6021413(Dbm)X
6031 f
6041599(and)X
6051745(its)X
6061850(derivatives)X
6072231(provide)X
608720 2436(keyed)N
609939(access)X
6101171(to)X
6111259(disk)X
6121418(resident)X
6131698(data)X
6141858(while)X
6152 f
6162062(hsearch)X
6171 f
6182342(pro-)X
619720 2524(vides)N
620929(access)X
6211175(for)X
6221309(memory)X
6231616(resident)X
6241910(data.)X
6252124(These)X
6262356(two)X
627720 2612(access)N
628979(methods)X
6291302(are)X
6301453(incompatible)X
6311923(in)X
6322037(that)X
6332209(memory)X
634720 2700(resident)N
6351011(hash)X
6361195(tables)X
6371419(may)X
6381593(not)X
6391731(be)X
6401843(stored)X
6412075(on)X
6422191(disk)X
6432360(and)X
644720 2788(disk)N
645884(resident)X
6461169(tables)X
6471387(cannot)X
6481632(be)X
6491739(read)X
6501909(into)X
6512063(memory)X
6522360(and)X
653720 2876(accessed)N
6541022(using)X
6551215(the)X
6561333(in-memory)X
6571709(routines.)X
6582 f
659892 2990(Dbm)N
6601 f
6611091(has)X
6621241(several)X
6631512(shortcomings.)X
6642026(Since)X
6652247(data)X
6662423(is)X
667720 3078(assumed)N
6681032(to)X
6691130(be)X
6701242(disk)X
6711411(resident,)X
6721721(each)X
6731905(access)X
6742146(requires)X
6752440(a)X
676720 3166(system)N
677963(call,)X
6781120(and)X
6791257(almost)X
6801491(certainly,)X
6811813(a)X
6821869(disk)X
6832022(operation.)X
6842365(For)X
685720 3254(extremely)N
6861072(large)X
6871264(databases,)X
6881623(where)X
6891851(caching)X
6902131(is)X
6912214(unlikely)X
692720 3342(to)N
693810(be)X
694914(effective,)X
6951244(this)X
6961386(is)X
6971466(acceptable,)X
6981853(however,)X
6992177(when)X
7002378(the)X
701720 3430(database)N
7021022(is)X
7031100(small)X
7041298(\(i.e.)X
7051447(the)X
7061569(password)X
7071896(\256le\),)X
7082069(performance)X
709720 3518(improvements)N
7101204(can)X
7111342(be)X
7121443(obtained)X
7131744(through)X
7142018(caching)X
7152293(pages)X
716720 3606(of)N
717818(the)X
718947(database)X
7191255(in)X
7201348(memory.)X
7211685(In)X
7221782(addition,)X
7232 f
7242094(dbm)X
7251 f
7262262(cannot)X
727720 3694(store)N
728902(data)X
7291062(items)X
7301261(whose)X
7311492(total)X
7321660(key)X
7331802(and)X
7341943(data)X
7352102(size)X
7362252(exceed)X
737720 3782(the)N
738850(page)X
7391034(size)X
7401191(of)X
7411290(the)X
7421420(hash)X
7431599(table.)X
7441827(Similarly,)X
7452176(if)X
7462257(two)X
7472409(or)X
748720 3870(more)N
749907(keys)X
7501076(produce)X
7511357(the)X
7521477(same)X
7531664(hash)X
7541833(value)X
7552029(and)X
7562166(their)X
7572334(total)X
758720 3958(size)N
759876(exceeds)X
7601162(the)X
7611291(page)X
7621474(size,)X
7631650(the)X
7641779(table)X
7651966(cannot)X
7662210(store)X
7672396(all)X
768720 4046(the)N
769838(colliding)X
7701142(keys.)X
771892 4160(The)N
7721050(in-memory)X
7732 f
7741439(hsearch)X
7751 f
7761725(routines)X
7772015(have)X
7782199(different)X
779720 4248(shortcomings.)N
7801219(First,)X
7811413(the)X
7821539(notion)X
7831771(of)X
7841865(a)X
7851928(single)X
7862146(hash)X
7872320(table)X
788720 4336(is)N
789807(embedded)X
7901171(in)X
7911266(the)X
7921397(interface,)X
7931732(preventing)X
7942108(an)X
7952217(applica-)X
796720 4424(tion)N
797902(from)X
7981116(accessing)X
7991482(multiple)X
8001806(tables)X
8012050(concurrently.)X
802720 4512(Secondly,)N
8031063(the)X
8041186(routine)X
8051438(to)X
8061525(create)X
8071743(a)X
8081804(hash)X
8091976(table)X
8102157(requires)X
8112440(a)X
812720 4600(parameter)N
8131066(which)X
8141286(declares)X
8151573(the)X
8161694(size)X
8171842(of)X
8181932(the)X
8192053(hash)X
8202223(table.)X
8212422(If)X
822720 4688(this)N
823856(size)X
8241001(is)X
8251074(set)X
8261183(too)X
8271305(low,)X
8281465(performance)X
8291892(degradation)X
8302291(or)X
8312378(the)X
832720 4776(inability)N
8331008(to)X
8341092(add)X
8351230(items)X
8361425(to)X
8371509(the)X
8381628(table)X
8391805(may)X
8401964(result.)X
8412223(In)X
8422311(addi-)X
843720 4864(tion,)N
8442 f
845910(hsearch)X
8461 f
8471210(requires)X
8481515(that)X
8491681(the)X
8501825(application)X
8512226(allocate)X
852720 4952(memory)N
8531037(for)X
8541181(the)X
8551329(key)X
8561495(and)X
8571661(data)X
8581845(items.)X
8592108(Lastly,)X
8602378(the)X
8612 f
862720 5040(hsearch)N
8631 f
8641013(routines)X
8651310(provide)X
8661594(no)X
8671713(interface)X
8682034(to)X
8692135(store)X
8702329(hash)X
871720 5128(tables)N
872927(on)X
8731027(disk.)X
87416 s
875720 5593 MXY
876864 0 Dl
8772 f
8788 s
879760 5648(1)N
8801 f
8819 s
8825673(UNIX)Y
883990(is)X
8841056(a)X
8851106(registered)X
8861408(trademark)X
8871718(of)X
8881796(AT&T.)X
88910 s
8902878 2128(The)N
8913032(goal)X
8923199(of)X
8933295(our)X
8943431(work)X
8953625(was)X
8963779(to)X
8973870(design)X
8984108(and)X
8994253(imple-)X
9002706 2216(ment)N
9012900(a)X
9022970(new)X
9033138(package)X
9043436(that)X
9053590(provides)X
9063899(a)X
9073968(superset)X
9084264(of)X
9094364(the)X
9102706 2304(functionality)N
9113144(of)X
9123240(both)X
9132 f
9143411(dbm)X
9151 f
9163578(and)X
9172 f
9183723(hsearch)X
9191 f
9203977(.)X
9214045(The)X
9224198(package)X
9232706 2392(had)N
9242871(to)X
9252982(overcome)X
9263348(the)X
9273495(interface)X
9283826(shortcomings)X
9294306(cited)X
9302706 2480(above)N
9312930(and)X
9323078(its)X
9333185(implementation)X
9343719(had)X
9353867(to)X
9363961(provide)X
9374238(perfor-)X
9382706 2568(mance)N
9392942(equal)X
9403142(or)X
9413235(superior)X
9423524(to)X
9433612(that)X
9443758(of)X
9453851(the)X
9463975(existing)X
9474253(imple-)X
9482706 2656(mentations.)N
9493152(In)X
9503274(order)X
9513498(to)X
9523614(provide)X
9533913(a)X
9544003(compact)X
9554329(disk)X
9562706 2744(representation,)N
9573224(graceful)X
9583531(table)X
9593729(growth,)X
9604018(and)X
9614176(expected)X
9622706 2832(constant)N
9633033(time)X
9643234(performance,)X
9653720(we)X
9663873(selected)X
9674191(Litwin's)X
9682706 2920(linear)N
9692923(hashing)X
9703206(algorithm)X
9713551([LAR88,)X
9723872(LIT80].)X
9734178(We)X
9744324(then)X
9752706 3008(enhanced)N
9763037(the)X
9773161(algorithm)X
9783498(to)X
9793586(handle)X
9803826(page)X
9814004(over\257ows)X
9824346(and)X
9832706 3096(large)N
9842900(key)X
9853049(handling)X
9863362(with)X
9873537(a)X
9883606(single)X
9893830(mechanism,)X
9904248(named)X
9912706 3184(buddy-in-waiting.)N
9923 f
9932975 3338(Existing)N
9943274(UNIX)X
9953499(Hashing)X
9963802(Techniques)X
9971 f
9982878 3470(Over)N
9993076(the)X
10003210(last)X
10013357(decade,)X
10023637(several)X
10033901(dynamic)X
10044213(hashing)X
10052706 3558(schemes)N
10063000(have)X
10073174(been)X
10083348(developed)X
10093700(for)X
10103816(the)X
10113936(UNIX)X
10124159(timeshar-)X
10132706 3646(ing)N
10142856(system,)X
10153146(starting)X
10163433(with)X
10173622(the)X
10183767(inclusion)X
10194107(of)X
10202 f
10214221(dbm)X
10221 f
10234359(,)X
10244426(a)X
10252706 3734(minimal)N
10263008(database)X
10273321(library)X
10283571(written)X
10293834(by)X
10303950(Ken)X
10314120(Thompson)X
10322706 3822([THOM90],)N
10333141(in)X
10343248(the)X
10353391(Seventh)X
10363694(Edition)X
10373974(UNIX)X
10384220(system.)X
10392706 3910(Since)N
10402916(then,)X
10413106(an)X
10423214(extended)X
10433536(version)X
10443804(of)X
10453903(the)X
10464032(same)X
10474228(library,)X
10482 f
10492706 3998(ndbm)N
10501 f
10512884(,)X
10522933(and)X
10533078(a)X
10543142(public-domain)X
10553637(clone)X
10563839(of)X
10573934(the)X
10584060(latter,)X
10592 f
10604273(sdbm)X
10611 f
10624442(,)X
10632706 4086(have)N
10642902(been)X
10653098(developed.)X
10663491(Another)X
10673797 0.1645(interface-compatible)AX
10682706 4174(library)N
10692 f
10702950(gdbm)X
10711 f
10723128(,)X
10733178(was)X
10743333(recently)X
10753622(made)X
10763826(available)X
10774145(as)X
10784241(part)X
10794395(of)X
10802706 4262(the)N
10812829(Free)X
10822997(Software)X
10833312(Foundation's)X
10843759(\(FSF\))X
10853970(software)X
10864271(distri-)X
10872706 4350(bution.)N
10882878 4464(All)N
10893017(of)X
10903121(these)X
10913323(implementations)X
10923893(are)X
10934029(based)X
10944248(on)X
10954364(the)X
10962706 4552(idea)N
10972871(of)X
10982969(revealing)X
10993299(just)X
11003445(enough)X
11013711(bits)X
11023856(of)X
11033953(a)X
11044019(hash)X
11054196(value)X
11064400(to)X
11072706 4640(locate)N
11082920(a)X
11092978(page)X
11103151(in)X
11113234(a)X
11123291(single)X
11133503(access.)X
11143770(While)X
11152 f
11163987(dbm/ndbm)X
11171 f
11184346(and)X
11192 f
11202706 4728(sdbm)N
11211 f
11222908(map)X
11233079(the)X
11243210(hash)X
11253390(value)X
11263597(directly)X
11273874(to)X
11283968(a)X
11294036(disk)X
11304201(address,)X
11312 f
11322706 4816(gdbm)N
11331 f
11342921(uses)X
11353096(the)X
11363231(hash)X
11373414(value)X
11383624(to)X
11393722(index)X
11403936(into)X
11414096(a)X
11422 f
11434168(directory)X
11441 f
11452706 4904([ENB88])N
11463020(containing)X
11473378(disk)X
11483531(addresses.)X
11492878 5018(The)N
11502 f
11513033(hsearch)X
11521 f
11533317(routines)X
11543605(in)X
11553697(System)X
11563962(V)X
11574049(are)X
11584177(designed)X
11592706 5106(to)N
11602804(provide)X
11613085(memory-resident)X
11623669(hash)X
11633852(tables.)X
11644115(Since)X
11654328(data)X
11662706 5194(access)N
11672948(does)X
11683131(not)X
11693269(require)X
11703533(disk)X
11713702(access,)X
11723964(simple)X
11734213(hashing)X
11742706 5282(schemes)N
11753010(which)X
11763238(may)X
11773408(require)X
11783667(multiple)X
11793964(probes)X
11804209(into)X
11814364(the)X
11822706 5370(table)N
11832889(are)X
11843015(used.)X
11853209(A)X
11863294(more)X
11873486(interesting)X
11883851(version)X
11894114(of)X
11902 f
11914208(hsearch)X
11921 f
11932706 5458(is)N
11942784(a)X
11952845(public)X
11963070(domain)X
11973335(library,)X
11982 f
11993594(dynahash)X
12001 f
12013901(,)X
12023945(that)X
12034089(implements)X
12042706 5546(Larson's)N
12053036(in-memory)X
12063440(adaptation)X
12073822([LAR88])X
12084164(of)X
12094279(linear)X
12102706 5634(hashing)N
12112975([LIT80].)X
12123 f
1213720 5960(USENIX)N
12149 f
12151042(-)X
12163 f
12171106(Winter)X
12181371('91)X
12199 f
12201498(-)X
12213 f
12221562(Dallas,)X
12231815(TX)X
12241 f
12254424(1)X
1226
12272 p
1228%%Page: 2 2
122910 s 10 xH 0 xS 1 f
12303 f
1231432 258(A)N
1232510(New)X
1233682(Hashing)X
1234985(Package)X
12351290(for)X
12361413(UNIX)X
12373663(Seltzer)X
12383920(&)X
12394007(Yigit)X
12402 f
12411074 538(dbm)N
12421 f
12431232(and)X
12442 f
12451368(ndbm)X
12461 f
1247604 670(The)N
12482 f
1249760(dbm)X
12501 f
1251928(and)X
12522 f
12531074(ndbm)X
12541 f
12551282(library)X
12561526(implementations)X
12572089(are)X
1258432 758(based)N
1259667(on)X
1260799(the)X
1261949(same)X
12621166(algorithm)X
12631529(by)X
12641661(Ken)X
12651846(Thompson)X
1266432 846([THOM90,)N
1267824(TOR88,)X
12681113(WAL84],)X
12691452(but)X
12701582(differ)X
12711789(in)X
12721879(their)X
12732054(pro-)X
1274432 934(grammatic)N
1275801(interfaces.)X
12761160(The)X
12771311(latter)X
12781502(is)X
12791581(a)X
12801643(modi\256ed)X
12811952(version)X
1282432 1022(of)N
1283533(the)X
1284665(former)X
1285918(which)X
12861148(adds)X
12871328(support)X
12881601(for)X
12891728(multiple)X
12902027(data-)X
1291432 1110(bases)N
1292634(to)X
1293724(be)X
1294828(open)X
12951011(concurrently.)X
12961484(The)X
12971636(discussion)X
12981996(of)X
12992090(the)X
1300432 1198(algorithm)N
1301774(that)X
1302925(follows)X
13031196(is)X
13041280(applicable)X
13051640(to)X
13061732(both)X
13072 f
13081904(dbm)X
13091 f
13102072(and)X
13112 f
1312432 1286(ndbm)N
13131 f
1314610(.)X
1315604 1400(The)N
1316760(basic)X
1317956(structure)X
13181268(of)X
13192 f
13201366(dbm)X
13211 f
13221535(calls)X
13231712(for)X
13241836(\256xed-sized)X
1325432 1488(disk)N
1326612(blocks)X
1327868(\(buckets\))X
13281214(and)X
13291377(an)X
13302 f
13311499(access)X
13321 f
13331755(function)X
13342068(that)X
1335432 1576(maps)N
1336623(a)X
1337681(key)X
1338819(to)X
1339902(a)X
1340959(bucket.)X
13411234(The)X
13421380(interface)X
13431683(routines)X
13441962(use)X
13452090(the)X
13462 f
1347432 1664(access)N
13481 f
1349673(function)X
1350970(to)X
13511062(obtain)X
13521292(the)X
13531420(appropriate)X
13541816(bucket)X
13552060(in)X
13562152(a)X
1357432 1752(single)N
1358643(disk)X
1359796(access.)X
1360604 1866(Within)N
1361869(the)X
13622 f
13631010(access)X
13641 f
13651263(function,)X
13661593(a)X
13671672(bit-randomizing)X
1368432 1954(hash)N
1369610(function)X
13702 f
13718 s
1372877 1929(2)N
13731 f
137410 s
1375940 1954(is)N
13761024(used)X
13771202(to)X
13781294(convert)X
13791565(a)X
13801631(key)X
13811777(into)X
13821931(a)X
13831997(32-bit)X
1384432 2042(hash)N
1385605(value.)X
1386825(Out)X
1387971(of)X
13881064(these)X
13891254(32)X
13901359(bits,)X
13911519(only)X
13921686(as)X
13931778(many)X
13941981(bits)X
13952121(as)X
1396432 2130(necessary)N
1397773(are)X
1398900(used)X
13991075(to)X
14001165(determine)X
14011514(the)X
14021639(particular)X
14031974(bucket)X
1404432 2218(on)N
1405533(which)X
1406750(a)X
1407807(key)X
1408944(resides.)X
14091228(An)X
14101347(in-memory)X
14111724(bitmap)X
14121967(is)X
14132041(used)X
1414432 2306(to)N
1415533(determine)X
1416893(how)X
14171070(many)X
14181287(bits)X
14191441(are)X
14201579(required.)X
14211905(Each)X
14222104(bit)X
1423432 2394(indicates)N
1424746(whether)X
14251033(its)X
14261136(associated)X
14271494(bucket)X
14281736(has)X
14291871(been)X
14302051(split)X
1431432 2482(yet)N
1432562(\(a)X
1433657(0)X
1434728(indicating)X
14351079(that)X
14361230(the)X
14371359(bucket)X
14381604(has)X
14391742(not)X
14401875(yet)X
14412004(split\).)X
1442432 2570(The)N
1443590(use)X
1444730(of)X
1445830(the)X
1446961(hash)X
14471141(function)X
14481441(and)X
14491590(the)X
14501720(bitmap)X
14511974(is)X
14522059(best)X
1453432 2658(described)N
1454769(by)X
1455878(stepping)X
14561177(through)X
14571454(database)X
14581759(creation)X
14592046(with)X
1460432 2746(multiple)N
1461718(invocations)X
14621107(of)X
14631194(a)X
14642 f
14651250(store)X
14661 f
14671430(operation.)X
1468604 2860(Initially,)N
1469906(the)X
14701033(hash)X
14711209(table)X
14721394(contains)X
14731690(a)X
14741755(single)X
14751974(bucket)X
1476432 2948(\(bucket)N
1477711(0\),)X
1478836(the)X
1479972(bit)X
14801094(map)X
14811270(contains)X
14821575(a)X
14831649(single)X
14841878(bit)X
14852000(\(bit)X
14862148(0)X
1487432 3036(corresponding)N
1488913(to)X
1489997(bucket)X
14901233(0\),)X
14911342(and)X
14921480(0)X
14931542(bits)X
14941699(of)X
14951788(a)X
14961846(hash)X
14972014(value)X
1498432 3124(are)N
1499560(examined)X
1500901(to)X
1501992(determine)X
15021342(where)X
15031568(a)X
15041633(key)X
15051778(is)X
15061860(placed)X
15072099(\(in)X
1508432 3212(bucket)N
1509670(0\).)X
1510801(When)X
15111017(bucket)X
15121255(0)X
15131319(is)X
15141396(full,)X
15151551(its)X
15161650(bit)X
15171758(in)X
15181844(the)X
15191966(bitmap)X
1520432 3300(\(bit)N
1521564(0\))X
1522652(is)X
1523726(set,)X
1524856(and)X
1525993(its)X
15261089(contents)X
15271377(are)X
15281497(split)X
15291655(between)X
15301943(buckets)X
1531432 3388(0)N
1532499(and)X
1533641(1,)X
1534727(by)X
1535833(considering)X
15361233(the)X
15371357(0)X
15382 f
15397 s
15403356(th)Y
154110 s
15421 f
15431480 3388(bit)N
15441590(\(the)X
15451741(lowest)X
15461976(bit)X
15472086(not)X
1548432 3476(previously)N
1549800(examined\))X
15501169(of)X
15511266(the)X
15521393(hash)X
15531569(value)X
15541772(for)X
15551895(each)X
15562072(key)X
1557432 3564(within)N
1558668(the)X
1559798(bucket.)X
15601064(Given)X
15611292(a)X
15621359(well-designed)X
15631840(hash)X
15642018(func-)X
1565432 3652(tion,)N
1566613(approximately)X
15671112(half)X
15681273(of)X
15691376(the)X
15701510(keys)X
15711693(will)X
15721853(have)X
15732041(hash)X
1574432 3740(values)N
1575666(with)X
1576837(the)X
1577964(0)X
15782 f
15797 s
15803708(th)Y
158110 s
15821 f
15831090 3740(bit)N
15841203(set.)X
15851341(All)X
15861471(such)X
15871646(keys)X
15881821(and)X
15891965(associ-)X
1590432 3828(ated)N
1591586(data)X
1592740(are)X
1593859(moved)X
15941097(to)X
15951179(bucket)X
15961413(1,)X
15971493(and)X
15981629(the)X
15991747(rest)X
16001883(remain)X
16012126(in)X
1602432 3916(bucket)N
1603666(0.)X
1604604 4030(After)N
1605804(this)X
1606949(split,)X
16071135(the)X
16081262(\256le)X
16091393(now)X
16101560(contains)X
16111856(two)X
16122005(buck-)X
1613432 4118(ets,)N
1614562(and)X
1615699(the)X
1616818(bitmap)X
16171061(contains)X
16181349(three)X
16191530(bits:)X
16201687(the)X
16211805(0)X
16222 f
16237 s
16244086(th)Y
162510 s
16261 f
16271922 4118(bit)N
16282026(is)X
16292099(set)X
1630432 4206(to)N
1631525(indicate)X
1632810(a)X
1633876(bucket)X
16341120(0)X
16351190(split)X
16361357(when)X
16371561(no)X
16381671(bits)X
16391816(of)X
16401913(the)X
16412041(hash)X
1642432 4294(value)N
1643648(are)X
1644789(considered,)X
16451199(and)X
16461357(two)X
16471519(more)X
16481726(unset)X
16491937(bits)X
16502094(for)X
1651432 4382(buckets)N
1652706(0)X
1653775(and)X
1654920(1.)X
16551029(The)X
16561183(placement)X
16571542(of)X
16581638(an)X
16591742(incoming)X
16602072(key)X
1661432 4470(now)N
1662604(requires)X
1663897(examination)X
16641327(of)X
16651428(the)X
16661560(0)X
16672 f
16687 s
16694438(th)Y
167010 s
16711 f
16721691 4470(bit)N
16731809(of)X
16741910(the)X
16752041(hash)X
1676432 4558(value,)N
1677667(and)X
1678824(the)X
1679963(key)X
16801119(is)X
16811212(placed)X
16821462(either)X
16831685(in)X
16841787(bucket)X
16852041(0)X
16862121(or)X
1687432 4646(bucket)N
1688674(1.)X
1689782(If)X
1690864(either)X
16911075(bucket)X
16921317(0)X
16931385(or)X
16941480(bucket)X
16951722(1)X
16961790(\256lls)X
16971937(up,)X
16982064(it)X
16992135(is)X
1700432 4734(split)N
1701598(as)X
1702693(before,)X
1703947(its)X
17041050(bit)X
17051162(is)X
17061243(set)X
17071360(in)X
17081450(the)X
17091576(bitmap,)X
17101846(and)X
17111990(a)X
17122054(new)X
1713432 4822(set)N
1714541(of)X
1715628(unset)X
1716817(bits)X
1717952(are)X
17181071(added)X
17191283(to)X
17201365(the)X
17211483(bitmap.)X
1722604 4936(Each)N
1723791(time)X
1724959(we)X
17251079(consider)X
17261376(a)X
17271437(new)X
17281596(bit)X
17291705(\(bit)X
17301841(n\),)X
17311953(we)X
17322072(add)X
1733432 5024(2)N
17342 f
17357 s
17364992(n)Y
17379 f
1738509(+)X
17391 f
1740540(1)X
174110 s
1742595 5024(bits)N
1743737(to)X
1744826(the)X
1745951(bitmap)X
17461199(and)X
17471341(obtain)X
17481567(2)X
17492 f
17507 s
17514992(n)Y
17529 f
17531644(+)X
17541 f
17551675(1)X
175610 s
17571729 5024(more)N
17581920(address-)X
1759432 5112(able)N
1760595(buckets)X
1761869(in)X
1762960(the)X
17631087(\256le.)X
17641258(As)X
17651376(a)X
17661441(result,)X
17671668(the)X
17681795(bitmap)X
17692045(con-)X
1770432 5200(tains)N
1771618(the)X
1772751(previous)X
17731062(2)X
17742 f
17757 s
17765168(n)Y
17779 f
17781139(+)X
17791 f
17801170(1)X
17812 f
178210 s
17839 f
17845200(-)Y
17851 f
17861242(1)X
17871317(bits)X
17881467(\(1)X
17892 f
17909 f
17911534(+)X
17921 f
17931578(2)X
17942 f
17959 f
1796(+)S
17971 f
17981662(4)X
17992 f
18009 f
1801(+)S
18021 f
18031746(...)X
18042 f
18059 f
1806(+)S
18071 f
18081850(2)X
18092 f
18107 s
18115168(n)Y
181210 s
18131 f
18141931 5200(\))N
18151992(which)X
1816432 5288(trace)N
1817649(the)X
1818807(entire)X
18192 f
18201050(split)X
18211247(history)X
18221 f
18231529(of)X
18241656(the)X
18251813(addressable)X
182616 s
1827432 5433 MXY
1828864 0 Dl
18292 f
18308 s
1831472 5488(2)N
18321 f
18339 s
1834523 5513(This)N
1835670(bit-randomizing)X
18361153(property)X
18371416(is)X
18381482(important)X
18391780(to)X
18401854(obtain)X
18412052(radi-)X
1842432 5593(cally)N
1843599(different)X
1844874(hash)X
18451033(values)X
18461244(for)X
18471355(nearly)X
18481562(identical)X
18491836(keys,)X
18502012(which)X
1851432 5673(in)N
1852506(turn)X
1853640(avoids)X
1854846(clustering)X
18551148(of)X
18561226(such)X
18571376(keys)X
18581526(in)X
18591600(a)X
18601650(single)X
18611840(bucket.)X
186210 s
18632418 538(buckets.)N
18642590 652(Given)N
18652809(a)X
18662868(key)X
18673007(and)X
18683146(the)X
18693267(bitmap)X
18703512(created)X
18713768(by)X
18723871(this)X
18734009(algo-)X
18742418 740(rithm,)N
18752638(we)X
18762759(\256rst)X
18772910(examine)X
18783209(bit)X
18793320(0)X
18803386(of)X
18813479(the)X
18823603(bitmap)X
18833851(\(the)X
18844002(bit)X
18854112(to)X
18862418 828(consult)N
18872673(when)X
18882871(0)X
18892934(bits)X
18903072(of)X
18913162(the)X
18923283(hash)X
18933453(value)X
18943650(are)X
18953772(being)X
18963973(exam-)X
18972418 916(ined\).)N
18982631(If)X
18992713(it)X
19002785(is)X
19012866(set)X
19022982(\(indicating)X
19033356(that)X
19043503(the)X
19053628(bucket)X
19063869(split\),)X
19074080(we)X
19082418 1004(begin)N
19092617(considering)X
19103012(the)X
19113131(bits)X
19123267(of)X
19133355(the)X
19143473(32-bit)X
19153684(hash)X
19163851(value.)X
19174085(As)X
19182418 1092(bit)N
19192525(n)X
19202587(is)X
19212662(revealed,)X
19222977(a)X
19233035(mask)X
19243226(equal)X
19253422(to)X
19263506(2)X
19272 f
19287 s
19291060(n)Y
19309 f
19313583(+)X
19321 f
19333614(1)X
19342 f
193510 s
19369 f
19371092(-)Y
19381 f
19393686(1)X
19403748(will)X
19413894(yield)X
19424076(the)X
19432418 1180(current)N
19442675(bucket)X
19452918(address.)X
19463228(Adding)X
19473496(2)X
19482 f
19497 s
19501148(n)Y
19519 f
19523573(+)X
19531 f
19543604(1)X
19552 f
195610 s
19579 f
19581180(-)Y
19591 f
19603676(1)X
19613744(to)X
19623834(the)X
19633960(bucket)X
19642418 1268(address)N
19652701(identi\256es)X
19663035(which)X
19673272(bit)X
19683397(in)X
19693500(the)X
19703639(bitmap)X
19713902(must)X
19724098(be)X
19732418 1356(checked.)N
19742743(We)X
19752876(continue)X
19763173(revealing)X
19773493(bits)X
19783628(of)X
19793715(the)X
19803833(hash)X
19814000(value)X
19822418 1444(until)N
19832591(all)X
19842698(set)X
19852814(bits)X
19862955(in)X
19873043(the)X
19883167(bitmap)X
19893415(are)X
19903540(exhausted.)X
19913907(The)X
19924058(fol-)X
19932418 1532(lowing)N
19942682(algorithm,)X
19953055(a)X
19963133(simpli\256cation)X
19973614(of)X
19983723(the)X
19993863(algorithm)X
20002418 1620(due)N
20012565(to)X
20022658(Ken)X
20032823(Thompson)X
20043196([THOM90,)X
20053590(TOR88],)X
20063908(uses)X
20074076(the)X
20082418 1708(hash)N
20092625(value)X
20102839(and)X
20112995(the)X
20123133(bitmap)X
20133395(to)X
20143497(calculate)X
20153823(the)X
20163960(bucket)X
20172418 1796(address)N
20182679(as)X
20192766(discussed)X
20203093(above.)X
20210(Courier)xf 0 f
20221 f
20230 f
20248 s
20252418 2095(hash)N
20262608(=)X
20272684 -0.4038(calchash\(key\);)AX
20282418 2183(mask)N
20292608(=)X
20302684(0;)X
20312418 2271(while)N
20322646 -0.4018(\(isbitset\(\(hash)AX
20333254(&)X
20343330(mask\))X
20353558(+)X
20363634(mask\)\))X
20372706 2359(mask)N
20382896(=)X
20392972(\(mask)X
20403200(<<)X
20413314(1\))X
20423428(+)X
20433504(1;)X
20442418 2447(bucket)N
20452684(=)X
20462760(hash)X
20472950(&)X
20483026(mask;)X
20492 f
205010 s
20513211 2812(sdbm)N
20521 f
20532590 2944(The)N
20542 f
20552738(sdbm)X
20561 f
20572930(library)X
20583167(is)X
20593243(a)X
20603302(public-domain)X
20613791(clone)X
20623987(of)X
20634076(the)X
20642 f
20652418 3032(ndbm)N
20661 f
20672638(library,)X
20682914(developed)X
20693286(by)X
20703408(Ozan)X
20713620(Yigit)X
20723826(to)X
20733929(provide)X
20742 f
20752418 3120(ndbm)N
20761 f
20772596('s)X
20782692(functionality)X
20793139(under)X
20803359(some)X
20813565(versions)X
20823869(of)X
20833973(UNIX)X
20842418 3208(that)N
20852559(exclude)X
20862830(it)X
20872894(for)X
20883008(licensing)X
20893317(reasons)X
20903578([YIG89].)X
20913895(The)X
20924040(pro-)X
20932418 3296(grammer)N
20942735(interface,)X
20953064(and)X
20963207(the)X
20973332(basic)X
20983524(structure)X
20993832(of)X
21002 f
21013926(sdbm)X
21021 f
21034121(is)X
21042418 3384(identical)N
21052733(to)X
21062 f
21072834(ndbm)X
21081 f
21093051(but)X
21103192(internal)X
21113476(details)X
21123723(of)X
21133828(the)X
21142 f
21153964(access)X
21161 f
21172418 3472(function,)N
21182726(such)X
21192894(as)X
21202982(the)X
21213101(calculation)X
21223474(of)X
21233561(the)X
21243679(bucket)X
21253913(address,)X
21262418 3560(and)N
21272563(the)X
21282690(use)X
21292825(of)X
21302920(different)X
21313225(hash)X
21323400(functions)X
21333726(make)X
21343928(the)X
21354054(two)X
21362418 3648(incompatible)N
21372856(at)X
21382934(the)X
21393052(database)X
21403349(level.)X
21412590 3762(The)N
21422 f
21432740(sdbm)X
21441 f
21452934(library)X
21463173(is)X
21473251(based)X
21483458(on)X
21493562(a)X
21503622(simpli\256ed)X
21513965(imple-)X
21522418 3850(mentation)N
21532778(of)X
21542885(Larson's)X
21553206(1978)X
21562 f
21573406(dynamic)X
21583717(hashing)X
21591 f
21604009(algo-)X
21612418 3938(rithm)N
21622616(including)X
21632943(the)X
21642 f
21653066(re\256nements)X
21663461(and)X
21673605(variations)X
21681 f
21693953(of)X
21704044(sec-)X
21712418 4026(tion)N
21722562(5)X
21732622([LAR78].)X
21742956(Larson's)X
21753257(original)X
21763526(algorithm)X
21773857(calls)X
21784024(for)X
21794138(a)X
21802418 4114(forest)N
21812635(of)X
21822736(binary)X
21832975(hash)X
21843156(trees)X
21853341(that)X
21863494(are)X
21873626(accessed)X
21883941(by)X
21894054(two)X
21902418 4202(hash)N
21912586(functions.)X
21922925(The)X
21933071(\256rst)X
21943216(hash)X
21953384(function)X
21963672(selects)X
21973907(a)X
21983964(partic-)X
21992418 4290(ular)N
22002571(tree)X
22012720(within)X
22022952(the)X
22033078(forest.)X
22043309(The)X
22053462(second)X
22063713(hash)X
22073887(function,)X
22082418 4378(which)N
22092659(is)X
22102757(required)X
22113070(to)X
22123177(be)X
22133297(a)X
22143377(boolean)X
22153675(pseudo-random)X
22162418 4466(number)N
22172687(generator)X
22183015(that)X
22193159(is)X
22203236(seeded)X
22213479(by)X
22223583(the)X
22233705(key,)X
22243865(is)X
22253942(used)X
22264112(to)X
22272418 4554(traverse)N
22282733(the)X
22292890(tree)X
22303070(until)X
22313275(internal)X
22323579(\(split\))X
22333829(nodes)X
22344075(are)X
22352418 4642(exhausted)N
22362763(and)X
22372903(an)X
22383003(external)X
22393286(\(non-split\))X
22403648(node)X
22413827(is)X
22423903(reached.)X
22432418 4730(The)N
22442571(bucket)X
22452813(addresses)X
22463149(are)X
22473276(stored)X
22483500(directly)X
22493772(in)X
22503861(the)X
22513986(exter-)X
22522418 4818(nal)N
22532536(nodes.)X
22542590 4932(Larson's)N
22552903(re\256nements)X
22563309(are)X
22573440(based)X
22583655(on)X
22593767(the)X
22603897(observa-)X
22612418 5020(tion)N
22622570(that)X
22632718(the)X
22642844(nodes)X
22653059(can)X
22663199(be)X
22673303(represented)X
22683702(by)X
22693809(a)X
22703872(single)X
22714090(bit)X
22722418 5108(that)N
22732569(is)X
22742653(set)X
22752773(for)X
22762898(internal)X
22773174(nodes)X
22783392(and)X
22793539(not)X
22803672(set)X
22813791(for)X
22823915(external)X
22832418 5196(nodes,)N
22842652(resulting)X
22852959(in)X
22863048(a)X
22873111(radix)X
22883303(search)X
22893536(trie.)X
22903709(Figure)X
22913944(1)X
22924010(illus-)X
22932418 5284(trates)N
22942621(this.)X
22952804(Nodes)X
22963037(A)X
22973123(and)X
22983267(B)X
22993348(are)X
23003475(internal)X
23013748(\(split\))X
23023967(nodes,)X
23032418 5372(thus)N
23042573(having)X
23052813(no)X
23062915(bucket)X
23073151(addresses)X
23083480(associated)X
23093831(with)X
23103994(them.)X
23112418 5460(Instead,)N
23122693(the)X
23132814(external)X
23143096(nodes)X
23153306(\(C,)X
23163429(D,)X
23173530(and)X
23183669(E\))X
23193768(each)X
23203938(need)X
23214112(to)X
23222418 5548(refer)N
23232594(to)X
23242679(a)X
23252738(bucket)X
23262975(address.)X
23273279(These)X
23283494(bucket)X
23293731(addresses)X
23304062(can)X
23312418 5636(be)N
23322529(stored)X
23332760(in)X
23342857(the)X
23352990(trie)X
23363132(itself)X
23373327(where)X
23383559(the)X
23393691(subtries)X
23403974(would)X
23413 f
2342432 5960(2)N
23432970(USENIX)X
23449 f
23453292(-)X
23463 f
23473356(Winter)X
23483621('91)X
23499 f
23503748(-)X
23513 f
23523812(Dallas,)X
23534065(TX)X
2354
23553 p
2356%%Page: 3 3
23570(Courier)xf 0 f
235810 s 10 xH 0 xS 0 f
23593 f
2360720 258(Seltzer)N
2361977(&)X
23621064(Yigit)X
23633278(A)X
23643356(New)X
23653528(Hashing)X
23663831(Package)X
23674136(for)X
23684259(UNIX)X
23691 f
2370720 538(live)N
2371862(if)X
2372933(they)X
23731092(existed)X
23741340([KNU68].)X
23751709(For)X
23761841(example,)X
23772154(if)X
23782224(nodes)X
23792432(F)X
2380720 626(and)N
2381858(G)X
2382938(were)X
23831117(the)X
23841237(children)X
23851522(of)X
23861610(node)X
23871787(C,)X
23881881(the)X
23892000(bucket)X
23902235(address)X
2391720 714(L00)N
2392886(could)X
23931101(reside)X
23941330(in)X
23951429(the)X
23961563(bits)X
23971714(that)X
23981870(will)X
23992030(eventually)X
24002400(be)X
2401720 802(used)N
2402887(to)X
2403969(store)X
24041145(nodes)X
24051352(F)X
24061416(and)X
24071552(G)X
24081630(and)X
24091766(all)X
24101866(their)X
24112033(children.)X
241210 f
2413720 890 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
24143 f
24151894 2247(L1)N
2416784 1925(A)N
24171431(E)X
24181106 2247(D)N
24191428 1281(C)N
24201109 1603(B)N
24211884 1930(L01)N
24221879 1286(L00)N
24231221 1814(1)N
2424903 2131(1)N
24251221 1402(0)N
2426903 1714(0)N
24271 Dt
24281397 1821 MXY
2429-8 -32 Dl
2430-5 19 Dl
2431-20 6 Dl
243233 7 Dl
2433-187 -182 Dl
24341397 1322 MXY
2435-33 7 Dl
243620 6 Dl
24375 19 Dl
24388 -32 Dl
2439-187 182 Dl
24401069 1639 MXY
2441-32 7 Dl
244220 6 Dl
24435 19 Dl
24447 -32 Dl
2445-186 182 Dl
24461374 1891 MXY
2447185 Dc
24481779 2133 MXY
24490 161 Dl
2450322 0 Dl
24510 -161 Dl
2452-322 0 Dl
24531811 MY
24540 161 Dl
2455322 0 Dl
24560 -161 Dl
2457-322 0 Dl
24581166 MY
24590 161 Dl
2460322 0 Dl
24610 -161 Dl
2462-322 0 Dl
24631052 2213 MXY
2464185 Dc
24651569 MY
2466185 Dc
2467720 1881 MXY
2468185 Dc
24691779 2213 MXY
2470-28 -17 Dl
247110 17 Dl
2472-10 18 Dl
247328 -18 Dl
2474-543 0 Dl
24751769 1891 MXY
2476-28 -18 Dl
247710 18 Dl
2478-10 18 Dl
247928 -18 Dl
2480-201 0 Dl
24811364 1247 MXY
2482185 Dc
24831769 MX
2484-28 -18 Dl
248510 18 Dl
2486-10 18 Dl
248728 -18 Dl
2488-201 0 Dl
24891064 2143 MXY
2490-7 -32 Dl
2491-5 19 Dl
2492-20 6 Dl
249332 7 Dl
2494-181 -181 Dl
24953 Dt
2496-1 Ds
24978 s
2498720 2482(Figure)N
2499925(1:)X
25001 f
25011002(Radix)X
25021179(search)X
25031365(trie)X
25041474(with)X
25051612(internal)X
25061831(nodes)X
25072004(A)X
25082074(and)X
25092189(B,)X
25102271(external)X
2511720 2570(nodes)N
2512891(C,)X
2513972(D,)X
25141056(and)X
25151170(E,)X
25161247(and)X
25171361(bucket)X
25181553(addresses)X
25191819(stored)X
25201997(in)X
25212069(the)X
25222168(unused)X
25232370(por-)X
2524720 2658(tion)N
2525836(of)X
2526905(the)X
2527999(trie.)X
252810 s
252910 f
2530720 2922 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
25311 f
2532892 3124(Further)N
25331153(simpli\256cations)X
25341647(of)X
25351738(the)X
25361860(above)X
25372076([YIG89])X
25382377(are)X
2539720 3212(possible.)N
25401038(Using)X
25411265(a)X
25421337(single)X
25431564(radix)X
25441765(trie)X
25451908(to)X
25462006(avoid)X
25472219(the)X
25482352(\256rst)X
2549720 3300(hash)N
2550904(function,)X
25511227(replacing)X
25521562(the)X
25531696(pseudo-random)X
25542231(number)X
2555720 3388(generator)N
25561052(with)X
25571222(a)X
25581286(well)X
25591452(designed,)X
25601785(bit-randomizing)X
25612329(hash)X
2562720 3476(function,)N
25631053(and)X
25641215(using)X
25651434(the)X
25661578(portion)X
25671855(of)X
25681967(the)X
25692110(hash)X
25702302(value)X
2571720 3564(exposed)N
25721021(during)X
25731268(the)X
25741404(trie)X
25751549(traversal)X
25761864(as)X
25771969(a)X
25782042(direct)X
25792262(bucket)X
2580720 3652(address)N
2581990(results)X
25821228(in)X
25831319(an)X
25842 f
25851424(access)X
25861 f
25871663(function)X
25881959(that)X
25892108(works)X
25902333(very)X
2591720 3740(similar)N
2592974(to)X
25931068(Thompson's)X
25941499(algorithm)X
25951841(above.)X
25962084(The)X
25972240(follow-)X
2598720 3828(ing)N
2599847(algorithm)X
26001183(uses)X
26011346(the)X
26021469(hash)X
26031641(value)X
26041840(to)X
26051927(traverse)X
26062206(a)X
26072266(linear-)X
2608720 3916(ized)N
2609874(radix)X
26101059(trie)X
26112 f
26128 s
26131166 3891(3)N
26141 f
261510 s
26161218 3916(starting)N
26171478(at)X
26181556(the)X
26191674(0)X
26202 f
26217 s
26223884(th)Y
262310 s
26241 f
26251791 3916(bit.)N
26260 f
26278 s
2628720 4215(tbit)N
2629910(=)X
2630986(0;)X
26311296(/*)X
26321410(radix)X
26331638(trie)X
26341828(index)X
26352056(*/)X
2636720 4303(hbit)N
2637910(=)X
2638986(0;)X
26391296(/*)X
26401410(hash)X
26411600(bit)X
26421752(index)X
26432056(*/)X
2644720 4391(mask)N
2645910(=)X
2646986(0;)X
2647720 4479(hash)N
2648910(=)X
2649986 -0.4038(calchash\(key\);)AX
2650720 4655(for)N
2651872(\(mask)X
26521100(=)X
26531176(0;)X
2654910 4743 -0.4018(isbitset\(tbit\);)AN
2655910 4831(mask)N
26561100(=)X
26571176(\(mask)X
26581404(<<)X
26591518(1\))X
26601632(+)X
26611708(1\))X
26621008 4919(if)N
26631122(\(hash)X
26641350(&)X
26651426(\(1)X
26661540(<<)X
26671654 -0.4219(hbit++\)\)\))AX
26681160 5007(/*)N
26691274(right)X
26701502(son)X
26711692(*/)X
26721160 5095(tbit)N
26731350(=)X
26741426(2)X
26751502(*)X
26761578(tbit)X
26771768(+)X
26781844(2;)X
26791008 5183(else)N
26801 f
268116 s
2682720 5353 MXY
2683864 0 Dl
26842 f
26858 s
2686760 5408(3)N
26871 f
26889 s
2689818 5433(A)N
2690896(linearized)X
26911206(radix)X
26921380(trie)X
26931502(is)X
26941576(merely)X
26951802(an)X
26961895(array)X
26972068(representation)X
2698720 5513(of)N
2699800(the)X
2700908(radix)X
27011076(search)X
27021280(trie)X
27031396(described)X
27041692(above.)X
27051920(The)X
27062052(children)X
27072308(of)X
27082388(the)X
2709720 5593(node)N
2710885(with)X
27111038(index)X
27121223(i)X
27131267(can)X
27141391(be)X
27151483(found)X
27161675(at)X
27171751(the)X
27181863(nodes)X
27192055(indexed)X
27202307(2*i+1)X
2721720 5673(and)N
2722842(2*i+2.)X
27230 f
27248 s
27253146 538(/*)N
27263260(left)X
27273450(son)X
27283678(*/)X
27293146 626(tbit)N
27303336(=)X
27313412(2)X
27323488(*)X
27333564(tbit)X
27343754(+)X
27353830(1;)X
27362706 802(bucket)N
27372972(=)X
27383048(hash)X
27393238(&)X
27403314(mask;)X
27412 f
274210 s
27433495 1167(gdbm)N
27441 f
27452878 1299(The)N
27463027(gdbm)X
27473233(\(GNU)X
27483458(data)X
27493616(base)X
27503783(manager\))X
27514111(library)X
27524349(is)X
27534426(a)X
27542706 1387(UNIX)N
27552933(database)X
27563236(manager)X
27573539(written)X
27583792(by)X
27593897(Philip)X
27604112(A.)X
27614215(Nelson,)X
27622706 1475(and)N
27632848(made)X
27643048(available)X
27653364(as)X
27663457(a)X
27673518(part)X
27683668(of)X
27693760(the)X
27703883(FSF)X
27714040(software)X
27724342(dis-)X
27732706 1563(tribution.)N
27743052(The)X
27753207(gdbm)X
27763419(library)X
27773663(provides)X
27783969(the)X
27794097(same)X
27804292(func-)X
27812706 1651(tionality)N
27823028(of)X
27833151(the)X
27842 f
27853304(dbm)X
27861 f
27873442(/)X
27882 f
27893464(ndbm)X
27901 f
27913697(libraries)X
27924015([NEL90])X
27934360(but)X
27942706 1739(attempts)N
27953018(to)X
27963121(avoid)X
27973340(some)X
27983550(of)X
27993658(their)X
28003846(shortcomings.)X
28014337(The)X
28022706 1827(gdbm)N
28032918(library)X
28043162(allows)X
28053401(for)X
28063525(arbitrary-length)X
28074059(data,)X
28084242(and)X
28094387(its)X
28102706 1915(database)N
28113027(is)X
28123124(a)X
28133203(singular,)X
28143524(non-sparse)X
28152 f
28168 s
28173872 1890(4)N
28181 f
281910 s
28203947 1915(\256le.)N
28214112(The)X
28224280(gdbm)X
28232706 2003(library)N
28242947(also)X
28253103(includes)X
28262 f
28273396(dbm)X
28281 f
28293560(and)X
28302 f
28313702(ndbm)X
28321 f
28333906(compatible)X
28344288(inter-)X
28352706 2091(faces.)N
28362878 2205(The)N
28373025(gdbm)X
28383229(library)X
28393465(is)X
28403540(based)X
28413745(on)X
28422 f
28433847(extensible)X
28444189(hashing)X
28451 f
28464442(,)X
28472706 2293(a)N
28482766(dynamic)X
28493066(hashing)X
28503339(algorithm)X
28513674(by)X
28523778(Fagin)X
28533984(et)X
28544066(al)X
28554148([FAG79].)X
28562706 2381(This)N
28572881(algorithm)X
28583225(differs)X
28593467(from)X
28603655(the)X
28613785(previously)X
28624155(discussed)X
28632706 2469(algorithms)N
28643069(in)X
28653152(that)X
28663293(it)X
28673358(uses)X
28683517(a)X
28692 f
28703574(directory)X
28711 f
28723889(that)X
28734030(is)X
28744103(a)X
28754159(collapsed)X
28762706 2557(representation)N
28773192([ENB88])X
28783517(of)X
28793615(the)X
28803744(radix)X
28813940(search)X
28824177(trie)X
28834315(used)X
28842706 2645(by)N
28852 f
28862806(sdbm)X
28871 f
28882975(.)X
288910 f
28902706 2733 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
28913 f
28927 s
28933572 3761(L1)N
28941 Dt
28953485 3738 MXY
2896-20 -13 Dl
28977 13 Dl
2898-7 13 Dl
289920 -13 Dl
2900-400 0 Dl
29013180 3027 MXY
2902136 Dc
29032706 3494 MXY
2904136 Dc
29052950 3264 MXY
2906136 Dc
29073738 MY
2908136 Dc
29093485 2968 MXY
29100 118 Dl
2911238 0 Dl
29120 -118 Dl
2913-238 0 Dl
29143442 MY
29150 119 Dl
2916238 0 Dl
29170 -119 Dl
2918-238 0 Dl
29193679 MY
29200 119 Dl
2921238 0 Dl
29220 -119 Dl
2923-238 0 Dl
29243187 3501 MXY
2925136 Dc
29262963 3316 MXY
2927-24 5 Dl
292815 4 Dl
29294 15 Dl
29305 -24 Dl
2931-137 134 Dl
29323204 3083 MXY
2933-24 5 Dl
293415 4 Dl
29353 14 Dl
29366 -23 Dl
2937-137 133 Dl
29383204 3450 MXY
2939-6 -24 Dl
2940-3 14 Dl
2941-15 5 Dl
294224 5 Dl
2943-137 -134 Dl
29442842 3369(0)N
29453075 3139(0)N
29462842 3676(1)N
29473075 3443(1)N
29483562 3054(L00)N
29493565 3528(L01)N
29504197 2968 MXY
29510 118 Dl
2952237 0 Dl
29530 -118 Dl
2954-237 0 Dl
29553205 MY
29560 119 Dl
2957237 0 Dl
29580 -119 Dl
2959-237 0 Dl
29603561 MY
29610 118 Dl
2962237 0 Dl
29630 -118 Dl
2964-237 0 Dl
29653960 2909 MXY
29660 237 Dl
2967118 0 Dl
29680 -237 Dl
2969-118 0 Dl
29703146 MY
29710 237 Dl
2972118 0 Dl
29730 -237 Dl
2974-118 0 Dl
29753383 MY
29760 237 Dl
2977118 0 Dl
29780 -237 Dl
2979-118 0 Dl
29803620 MY
29810 237 Dl
2982118 0 Dl
29830 -237 Dl
2984-118 0 Dl
29854197 3027 MXY
2986-21 -13 Dl
29878 13 Dl
2988-8 13 Dl
298921 -13 Dl
2990-119 0 Dl
29914197 3264 MXY
2992-21 -13 Dl
29938 13 Dl
2994-8 13 Dl
299521 -13 Dl
2996-119 0 Dl
29973501 MY
299859 0 Dl
29990 89 Dl
30004078 3738 MXY
300159 0 Dl
30020 -88 Dl
30034197 3590 MXY
3004-21 -13 Dl
30058 13 Dl
3006-8 13 Dl
300721 -13 Dl
3008-60 0 Dl
30094197 3650 MXY
3010-21 -13 Dl
30118 13 Dl
3012-8 13 Dl
301321 -13 Dl
3014-60 0 Dl
30153991 3050(00)N
30163991 3287(01)N
30173991 3524(10)N
30183991 3761(11)N
30194269 3050(L00)N
30204269 3287(L01)N
30214283 3643(L1)N
30223485 3501 MXY
3023-20 -13 Dl
30247 13 Dl
3025-7 13 Dl
302620 -13 Dl
3027-155 0 Dl
30283485 3027 MXY
3029-20 -13 Dl
30307 13 Dl
3031-7 13 Dl
303220 -13 Dl
3033-163 0 Dl
30342967 3687 MXY
3035-5 -24 Dl
3036-4 14 Dl
3037-15 4 Dl
303824 6 Dl
3039-141 -141 Dl
30403 Dt
3041-1 Ds
30428 s
30432706 4033(Figure)N
30442903(2:)X
30451 f
30462972(A)X
30473034(radix)X
30483181(search)X
30493359(trie)X
30503460(and)X
30513568(a)X
30523612(directory)X
30533858(representing)X
30544189(the)X
30554283(trie.)X
305610 s
305710 f
30582706 4209 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
30591 f
30602878 4411(In)N
30612968(this)X
30623106(algorithm,)X
30633460(a)X
30643519(directory)X
30653832(consists)X
30664108(of)X
30674198(a)X
30684256(search)X
30692706 4499(trie)N
30702847(of)X
30712947(depth)X
30722 f
30733158(n)X
30741 f
30753211(,)X
30763264(containing)X
30773635(2)X
30782 f
30797 s
30804467(n)Y
308110 s
30821 f
30833749 4499(bucket)N
30843996(addresses)X
30854337(\(i.e.)X
30862706 4587(each)N
30872897(element)X
30883194(of)X
30893304(the)X
30903445(trie)X
30913594(is)X
30923689(a)X
30933767(bucket)X
30944023(address\).)X
30954373(To)X
30962706 4675(access)N
30972935(the)X
30983056(hash)X
30993226(table,)X
31003425(a)X
31013483(32-bit)X
31023696(hash)X
31033865(value)X
31044061(is)X
31054136(calculated)X
31062706 4763(and)N
31072 f
31082861(n)X
31091 f
31102953(bits)X
31113107(of)X
31123213(the)X
31133350(value)X
31143563(are)X
31153701(used)X
31163886(to)X
31173986(index)X
31184202(into)X
31194364(the)X
31202706 4851(directory)N
31213018(to)X
31223102(obtain)X
31233324(a)X
31243382(bucket)X
31253618(address.)X
31263921(It)X
31273992(is)X
31284067(important)X
31294400(to)X
31302706 4939(note)N
31312866(that)X
31323008(multiple)X
31333296(entries)X
31343532(of)X
31353620(this)X
31363756(directory)X
31374067(may)X
31384226(contain)X
31392706 5027(the)N
31402833(same)X
31413026(bucket)X
31423268(address)X
31433537(as)X
31443632(a)X
31453696(result)X
31463902(of)X
31473997(directory)X
31484315(dou-)X
31492706 5115(bling)N
31502903(during)X
31513145(bucket)X
31523392(splitting.)X
31533706(Figure)X
31543948(2)X
31554021(illustrates)X
31564364(the)X
31572706 5203(relationship)N
31583126(between)X
31593436(a)X
31603513(typical)X
31613772(\(skewed\))X
31624108(search)X
31634355(trie)X
31642706 5291(and)N
31652850(its)X
31662953(directory)X
31673271(representation.)X
31683774(The)X
31693927(formation)X
31704270(of)X
31714364(the)X
31722706 5379(directory)N
31733016(shown)X
31743245(in)X
31753327(the)X
31763445(\256gure)X
31773652(is)X
31783725(as)X
31793812(follows.)X
318016 s
31812706 5593 MXY
3182864 0 Dl
31832 f
31848 s
31852746 5648(4)N
31861 f
31879 s
31882796 5673(It)N
31892858(does)X
31903008(not)X
31913118(contain)X
31923348(holes.)X
31933 f
319410 s
3195720 5960(USENIX)N
31969 f
31971042(-)X
31983 f
31991106(Winter)X
32001371('91)X
32019 f
32021498(-)X
32033 f
32041562(Dallas,)X
32051815(TX)X
32064424(3)X
3207
32084 p
3209%%Page: 4 4
32100(Courier)xf 0 f
321110 s 10 xH 0 xS 0 f
32123 f
3213432 258(A)N
3214510(New)X
3215682(Hashing)X
3216985(Package)X
32171290(for)X
32181413(UNIX)X
32193663(Seltzer)X
32203920(&)X
32214007(Yigit)X
32221 f
3223604 538(Initially,)N
3224937(there)X
32251158(is)X
32261271(one)X
32271446(slot)X
32281620(in)X
32291741(the)X
32301898(directory)X
3231432 626(addressing)N
3232802(a)X
3233865(single)X
32341083(bucket.)X
32351364(The)X
32361515(depth)X
32371719(of)X
32381812(the)X
32391936(trie)X
32402069(is)X
32412148(0)X
3242432 714(and)N
3243577(0)X
3244646(bits)X
3245790(of)X
3246886(each)X
32471063(hash)X
32481239(value)X
32491442(are)X
32501570(examined)X
32511910(to)X
32522000(deter-)X
3253432 802(mine)N
3254624(in)X
3255718(which)X
3256946(bucket)X
32571192(to)X
32581286(place)X
32591488(a)X
32601556(key;)X
32611726(all)X
32621837(keys)X
32632015(go)X
32642126(in)X
3265432 890(bucket)N
3266682(0.)X
3267797(When)X
32681024(this)X
32691174(bucket)X
32701423(is)X
32711511(full,)X
32721677(its)X
32731787(contents)X
32742089(are)X
3275432 978(divided)N
3276698(between)X
3277992(L0)X
32781107(and)X
32791249(L1)X
32801363(as)X
32811455(was)X
32821605(done)X
32831786(in)X
32841873(the)X
32851996(previ-)X
3286432 1066(ously)N
3287664(discussed)X
32881030(algorithms.)X
32891471(After)X
32901700(this)X
32911874(split,)X
32922090(the)X
3293432 1154(address)N
3294710(of)X
3295814(the)X
3296948(second)X
32971207(bucket)X
32981457(must)X
32991648(be)X
33001760(stored)X
33011992(in)X
33022090(the)X
3303432 1242(directory.)N
3304796(To)X
3305939(accommodate)X
33061438(the)X
33071589(new)X
33081776(address,)X
33092090(the)X
3310432 1330(directory)N
3311752(is)X
3312835(split)X
33132 f
33148 s
3315972 1305(5)N
33161 f
331710 s
33181330(,)Y
33191054(by)X
33201163(doubling)X
33211476(it,)X
33221569(thus)X
33231731(increasing)X
33242090(the)X
3325432 1418(depth)N
3326630(of)X
3327717(the)X
3328835(directory)X
33291145(by)X
33301245(one.)X
3331604 1532(After)N
3332813(this)X
3333967(split,)X
33341163(a)X
33351237(single)X
33361466(bit)X
33371588(of)X
33381693(the)X
33391829(hash)X
33402014(value)X
3341432 1620(needs)N
3342663(to)X
3343773(be)X
3344896(examined)X
33451255(to)X
33461364(decide)X
33471621(whether)X
33481927(the)X
33492072(key)X
3350432 1708(belongs)N
3351711(to)X
3352803(L0)X
3353922(or)X
33541019(L1.)X
33551158(Once)X
33561358(one)X
33571504(of)X
33581601(these)X
33591795(buckets)X
33602069(\256lls)X
3361432 1796(\(L0)N
3362578(for)X
3363702(example\),)X
33641051(it)X
33651125(is)X
33661208(split)X
33671375(as)X
33681472(before,)X
33691728(and)X
33701873(the)X
33712000(direc-)X
3372432 1884(tory)N
3373585(is)X
3374662(split)X
3375823(again)X
33761021(to)X
33771107(make)X
33781305(room)X
33791498(for)X
33801615(the)X
33811736(address)X
33822000(of)X
33832090(the)X
3384432 1972(third)N
3385618(bucket.)X
3386927(This)X
33871104(splitting)X
33881400(causes)X
33891645(the)X
33901778(addresses)X
33912121(of)X
3392432 2060(the)N
3393567(non-splitting)X
33941012(bucket)X
33951263(\(L1\))X
33961443(to)X
33971541(be)X
33981653(duplicated.)X
33992063(The)X
3400432 2148(directory)N
3401766(now)X
3402948(has)X
34031099(four)X
34041277(entries,)X
34051555(a)X
34061635(depth)X
34071857(of)X
34081968(2,)X
34092072(and)X
3410432 2236(indexes)N
3411700(the)X
3412821(buckets)X
34131089(L00,)X
34141261(L01)X
34151413(and)X
34161552(L1,)X
34171684(as)X
34181774(shown)X
34192006(in)X
34202090(the)X
3421432 2324(Figure)N
3422661(2.)X
3423604 2438(The)N
3424756(crucial)X
34251002(part)X
34261154(of)X
34271247(the)X
34281371(algorithm)X
34291708(is)X
34301787(the)X
34311911(observa-)X
3432432 2526(tion)N
3433580(that)X
3434724(L1)X
3435837(is)X
3436914(addressed)X
34371255(twice)X
34381453(in)X
34391539(the)X
34401661(directory.)X
34411995(If)X
34422073(this)X
3443432 2614(bucket)N
3444679(were)X
3445869(to)X
3446964(split)X
34471134(now,)X
34481324(the)X
34491454(directory)X
34501776(already)X
34512045(con-)X
3452432 2702(tains)N
3453611(room)X
3454808(to)X
3455898(hold)X
34561067(the)X
34571192(address)X
34581460(of)X
34591554(the)X
34601679(new)X
34611840(bucket.)X
34622121(In)X
3463432 2790(general,)N
3464711(the)X
3465831(relationship)X
34661231(between)X
34671521(the)X
34681641(directory)X
34691953(and)X
34702090(the)X
3471432 2878(number)N
3472704(of)X
3473798(bucket)X
34741039(addresses)X
34751374(contained)X
34761713(therein)X
34771962(is)X
34782041(used)X
3479432 2966(to)N
3480517(decide)X
3481750(when)X
3482947(to)X
34831031(split)X
34841190(the)X
34851310(directory.)X
34861662(Each)X
34871845(bucket)X
34882081(has)X
3489432 3054(a)N
3490505(depth,)X
3491740(\()X
34922 f
3493767(n)X
34947 s
34953070(b)Y
349610 s
34971 f
3498848 3054(\),)N
3499932(associated)X
35001299(with)X
35011478(it)X
35021558(and)X
35031710(appears)X
35041992(in)X
35052090(the)X
3506432 3142(directory)N
3507744(exactly)X
3508998(2)X
35092 f
35107 s
35113106(n)Y
35129 f
35131075(-)X
35142 f
35151106(n)X
35164 s
35173110(b)Y
35187 s
35191 f
352010 s
35211181 3142(times.)N
35221396(When)X
35231610(a)X
35241668(bucket)X
35251904(splits,)X
35262113(its)X
3527432 3230(depth)N
3528638(increases)X
3529961(by)X
35301069(one.)X
35311253(The)X
35321406(directory)X
35331724(must)X
35341907(split)X
35352072(any)X
3536432 3318(time)N
3537602(a)X
3538665(bucket's)X
3539964(depth)X
35401169(exceeds)X
35411451(the)X
35421576(depth)X
35431781(of)X
35441875(the)X
35452000(direc-)X
3546432 3406(tory.)N
3547630(The)X
3548784(following)X
35491123(code)X
35501303(fragment)X
35511621(helps)X
35521818(to)X
35531908(illustrate)X
3554432 3494(the)N
3555554(extendible)X
3556912(hashing)X
35571185(algorithm)X
35581520([FAG79])X
35591838(for)X
35601955(access-)X
3561432 3582(ing)N
3562554(individual)X
3563898(buckets)X
35641163(and)X
35651299(maintaining)X
35661701(the)X
35671819(directory.)X
35680 f
35698 s
3570432 3881(hash)N
3571622(=)X
3572698 -0.4038(calchash\(key\);)AX
3573432 3969(mask)N
3574622(=)X
3575698 -0.4018(maskvec[depth];)AX
3576432 4145(bucket)N
3577698(=)X
3578774 -0.4038(directory[hash)AX
35791344(&)X
35801420(mask];)X
3581432 4321(/*)N
3582546(Key)X
3583698 -0.4219(Insertion)AX
35841078(*/)X
3585432 4409(if)N
3586546 -0.4038(\(store\(bucket,)AX
35871116(key,)X
35881306(data\))X
35891534(==)X
35901648(FAIL\))X
35911876({)X
3592720 4497(newbl)N
3593948(=)X
35941024 -0.4167(getpage\(\);)AX
3595720 4585 -0.4000(bucket->depth++;)AN
3596720 4673 -0.4091(newbl->depth)AN
35971214(=)X
35981290 -0.4038(bucket->depth;)AX
3599720 4761(if)N
3600834 -0.4038(\(bucket->depth)AX
36011404(>)X
36021480(depth\))X
36031746({)X
36041008 4849(/*)N
36051122(double)X
36061388 -0.4219(directory)AX
36071768(*/)X
36081008 4937(depth++;)N
36091 f
361016 s
3611432 5033 MXY
3612864 0 Dl
36132 f
36148 s
3615472 5088(5)N
36161 f
36179 s
3618534 5113(This)N
3619692(decision)X
3620962(to)X
36211048(split)X
36221202(the)X
36231319(directory)X
36241608(is)X
36251685(based)X
36261878(on)X
36271979(a)X
36282040(com-)X
3629432 5193(parison)N
3630666(of)X
3631748(the)X
3632858(depth)X
36331040(of)X
36341121(the)X
36351230(page)X
36361387(being)X
36371568(split)X
36381713(and)X
36391838(the)X
36401947(depth)X
36412128(of)X
3642432 5273(the)N
3643543(trie.)X
3644698(In)X
3645781(Figure)X
3646992(2,)X
36471069(the)X
36481180(depths)X
36491390(of)X
36501472(both)X
36511622(L00)X
36521760(and)X
36531886(L01)X
36542024(are)X
36552134(2,)X
3656432 5353(whereas)N
3657689(the)X
3658798(depth)X
3659979(of)X
36601060(L1)X
36611161(is)X
36621230(1.)X
36631323(Therefore,)X
36641646(if)X
36651710(L1)X
36661810(were)X
36671970(to)X
36682046(split,)X
3669432 5433(the)N
3670543(directory)X
3671826(would)X
36721029(not)X
36731144(need)X
36741303(to)X
36751382(split.)X
36761565(In)X
36771648(reality,)X
36781872(a)X
36791926(bucket)X
36802140(is)X
3681432 5513(allocated)N
3682727(for)X
3683846(the)X
3684969(directory)X
36851264(at)X
36861351(the)X
36871474(time)X
36881637(of)X
36891732(\256le)X
36901858(creation)X
36912124(so)X
3692432 5593(although)N
3693707(the)X
3694818(directory)X
36951100(splits)X
36961274(logically,)X
36971566(physical)X
36981828(splits)X
36992002(do)X
37002096(not)X
3701432 5673(occur)N
3702610(until)X
3703760(the)X
3704866(\256le)X
3705976(becomes)X
37061246(quite)X
37071408(large.)X
37080 f
37098 s
37102994 538 -0.4219(directory)AN
37113374(=)X
37123450 -0.3971(double\(directory\);)AX
37132706 626(})N
37142706 714 -0.3958(splitbucket\(bucket,)AN
37153466(newbl\))X
37162706 802(...)N
37172418 890(})N
37182 f
371910 s
37203169 1255(hsearch)N
37211 f
37222590 1387(Since)N
37232 f
37242807(hsearch)X
37251 f
37263100(does)X
37273286(not)X
37283427(have)X
37293617(to)X
37303717(translate)X
37314027(hash)X
37322418 1475(values)N
37332659(into)X
37342819(disk)X
37352988(addresses,)X
37363352(it)X
37373432(can)X
37383579(use)X
37393721(much)X
37403934(simpler)X
37412418 1563(algorithms)N
37422808(than)X
37432994(those)X
37443211(de\256ned)X
37453495(above.)X
37463775(System)X
37474058(V's)X
37482 f
37492418 1651(hsearch)N
37501 f
37512708(constructs)X
37523069(a)X
37533141(\256xed-size)X
37543489(hash)X
37553671(table)X
37563862(\(speci\256ed)X
37572418 1739(by)N
37582519(the)X
37592637(user)X
37602791(at)X
37612869(table)X
37623045(creation\).)X
37633391(By)X
37643504(default,)X
37653767(a)X
37663823(multiplica-)X
37672418 1827(tive)N
37682570(hash)X
37692748(function)X
37703046(based)X
37713260(on)X
37723371(that)X
37733522(described)X
37743861(in)X
37753954(Knuth,)X
37762418 1915(Volume)N
37772710(3,)X
37782804(section)X
37793065(6.4)X
37803199([KNU68])X
37813541(is)X
37823628(used)X
37833809(to)X
37843905(obtain)X
37854138(a)X
37862418 2003(primary)N
37872694(bucket)X
37882930(address.)X
37893233(If)X
37903309(this)X
37913446(bucket)X
37923681(is)X
37933755(full,)X
37943907(a)X
37953964(secon-)X
37962418 2091(dary)N
37972593(multiplicative)X
37983069(hash)X
37993248(value)X
38003454(is)X
38013538(computed)X
38023885(to)X
38033978(de\256ne)X
38042418 2179(the)N
38052542(probe)X
38062751(interval.)X
38073062(The)X
38083213(probe)X
38093422(interval)X
38103693(is)X
38113772(added)X
38123989(to)X
38134076(the)X
38142418 2267(original)N
38152712(bucket)X
38162971(address)X
38173257(\(modulo)X
38183573(the)X
38193716(table)X
38203916(size\))X
38214112(to)X
38222418 2355(obtain)N
38232658(a)X
38242734(new)X
38252908(bucket)X
38263162(address.)X
38273483(This)X
38283665(process)X
38293946(repeats)X
38302418 2443(until)N
38312588(an)X
38322688(empty)X
38332911(bucket)X
38343148(is)X
38353224(found.)X
38363474(If)X
38373551(no)X
38383654(bucket)X
38393891(is)X
38403967(found,)X
38412418 2531(an)N
38422514(insertion)X
38432814(fails)X
38442972(with)X
38453134(a)X
38463190(``table)X
38473420(full'')X
38483605(condition.)X
38492590 2645(The)N
38502768(basic)X
38512986(algorithm)X
38523350(may)X
38533541(be)X
38543670(modi\256ed)X
38554006(by)X
38564138(a)X
38572418 2733(number)N
38582705(of)X
38592813(compile)X
38603112(time)X
38613295(options)X
38623571(available)X
38633902(to)X
38644005(those)X
38652418 2821(users)N
38662604(with)X
38672767(AT&T)X
38683006(source)X
38693237(code.)X
38703450(First,)X
38713637(the)X
38723756(package)X
38734040(pro-)X
38742418 2909(vides)N
38752638(two)X
38762809(options)X
38773094(for)X
38783238(hash)X
38793435(functions.)X
38803803(Users)X
38814036(may)X
38822418 2997(specify)N
38832690(their)X
38842877(own)X
38853055(hash)X
38863242(function)X
38873549(by)X
38883669(compiling)X
38894032(with)X
38902418 3085(``USCR'')N
38912757(de\256ned)X
38923016(and)X
38933155(declaring)X
38943477(and)X
38953616(de\256ning)X
38963901(the)X
38974022(vari-)X
38982418 3173(able)N
38992 f
39002578(hcompar)X
39011 f
39022863(,)X
39032909(a)X
39042971(function)X
39053263(taking)X
39063488(two)X
39073633(string)X
39083840(arguments)X
39092418 3261(and)N
39102560(returning)X
39112880(an)X
39122982(integer.)X
39133271(Users)X
39143480(may)X
39153643(also)X
39163797(request)X
39174054(that)X
39182418 3349(hash)N
39192587(values)X
39202814(be)X
39212912(computed)X
39223250(simply)X
39233489(by)X
39243590(taking)X
39253811(the)X
39263930(modulo)X
39272418 3437(of)N
39282521(key)X
39292673(\(using)X
39302909(division)X
39313201(rather)X
39323424(than)X
39333597(multiplication)X
39344080(for)X
39352418 3525(hash)N
39362589(value)X
39372787(calculation\).)X
39383230(If)X
39393308(this)X
39403447(technique)X
39413783(is)X
39423859(used,)X
39434049(col-)X
39442418 3613(lisions)N
39452651(are)X
39462775(resolved)X
39473072(by)X
39483176(scanning)X
39493485(sequentially)X
39503896(from)X
39514076(the)X
39522418 3701(selected)N
39532702(bucket)X
39542941(\(linear)X
39553176(probing\).)X
39563517(This)X
39573684(option)X
39583913(is)X
39593991(avail-)X
39602418 3789(able)N
39612572(by)X
39622672(de\256ning)X
39632954(the)X
39643072(variable)X
39653351(``DIV'')X
39663622(at)X
39673700(compile)X
39683978(time.)X
39692590 3903(A)N
39702720(second)X
39713015(option,)X
39723311(based)X
39733565(on)X
39743716(an)X
39753863(algorithm)X
39762418 3991(discovered)N
39772787(by)X
39782888(Richard)X
39793163(P.)X
39803248(Brent,)X
39813466(rearranges)X
39823822(the)X
39833940(table)X
39844116(at)X
39852418 4079(the)N
39862549(time)X
39872724(of)X
39882824(insertion)X
39893137(in)X
39903232(order)X
39913434(to)X
39923528(speed)X
39933743(up)X
39943855(retrievals.)X
39952418 4167(The)N
39962571(basic)X
39972764(idea)X
39982926(is)X
39993007(to)X
40003097(shorten)X
40013361(long)X
40023531(probe)X
40033741(sequences)X
40044094(by)X
40052418 4255(lengthening)N
40062833(short)X
40073030(probe)X
40083249(sequences.)X
40093651(Once)X
40103857(the)X
40113991(probe)X
40122418 4343(chain)N
40132613(has)X
40142741(exceeded)X
40153062(some)X
40163252(threshold)X
40173571(\(Brent)X
40183796(suggests)X
40194087(2\),)X
40202418 4431(we)N
40212541(attempt)X
40222809(to)X
40232899(shuf\257e)X
40243145(any)X
40253289(colliding)X
40263601(keys)X
40273776(\(keys)X
40283978(which)X
40292418 4519(appeared)N
40302734(in)X
40312821(the)X
40322944(probe)X
40333152(sequence)X
40343471(of)X
40353562(the)X
40363684(new)X
40373842(key\).)X
40384049(The)X
40392418 4607(details)N
40402652(of)X
40412744(this)X
40422884(key)X
40433025(shuf\257ing)X
40443333(can)X
40453469(be)X
40463569(found)X
40473780(in)X
40483866([KNU68])X
40492418 4695(and)N
40502576([BRE73].)X
40512946(This)X
40523129(algorithm)X
40533481(may)X
40543660(be)X
40553777(obtained)X
40564094(by)X
40572418 4783(de\256ning)N
40582700(the)X
40592818(variable)X
40603097(``BRENT'')X
40613487(at)X
40623565(compile)X
40633843(time.)X
40642590 4897(A)N
40652698(third)X
40662899(set)X
40673038(of)X
40683154(options,)X
40693458(obtained)X
40703783(by)X
40713912(de\256ning)X
40722418 4985(``CHAINED'',)N
40732943(use)X
40743086(linked)X
40753321(lists)X
40763484(to)X
40773581(resolve)X
40783848(collisions.)X
40792418 5073(Either)N
40802647(of)X
40812747(the)X
40822878(primary)X
40833164(hash)X
40843343(function)X
40853642(described)X
40863982(above)X
40872418 5161(may)N
40882584(be)X
40892688(used,)X
40902882(but)X
40913011(all)X
40923118(collisions)X
40933451(are)X
40943577(resolved)X
40953876(by)X
40963983(build-)X
40972418 5249(ing)N
40982554(a)X
40992623(linked)X
41002856(list)X
41012986(of)X
41023086(entries)X
41033333(from)X
41043522(the)X
41053653(primary)X
41063940(bucket.)X
41072418 5337(By)N
41082542(default,)X
41092816(new)X
41102981(entries)X
41113226(will)X
41123381(be)X
41133488(added)X
41143711(to)X
41153804(a)X
41163871(bucket)X
41174116(at)X
41182418 5425(the)N
41192541(beginning)X
41202886(of)X
41212978(the)X
41223101(bucket)X
41233339(chain.)X
41243577(However,)X
41253916(compile)X
41262418 5513(options)N
41272706(``SORTUP'')X
41283173(or)X
41293293(``SORTDOWN'')X
41303908(may)X
41314098(be)X
41322418 5601(speci\256ed)N
41332723(to)X
41342805(order)X
41352995(the)X
41363113(hash)X
41373280(chains)X
41383505(within)X
41393729(each)X
41403897(bucket.)X
41413 f
4142432 5960(4)N
41432970(USENIX)X
41449 f
41453292(-)X
41463 f
41473356(Winter)X
41483621('91)X
41499 f
41503748(-)X
41513 f
41523812(Dallas,)X
41534065(TX)X
4154
41555 p
4156%%Page: 5 5
41570(Courier)xf 0 f
415810 s 10 xH 0 xS 0 f
41593 f
4160720 258(Seltzer)N
4161977(&)X
41621064(Yigit)X
41633278(A)X
41643356(New)X
41653528(Hashing)X
41663831(Package)X
41674136(for)X
41684259(UNIX)X
41692 f
41701444 538(dynahash)N
41711 f
4172892 670(The)N
41732 f
41741054(dynahash)X
41751 f
41761398(library,)X
41771669(written)X
41781932(by)X
41792048(Esmond)X
41802346(Pitt,)X
4181720 758(implements)N
41821183(Larson's)X
41831554(linear)X
41841827(hashing)X
41852165(algorithm)X
4186720 846([LAR88])N
41871097(with)X
41881302(an)X
41892 f
41901440(hsearch)X
41911 f
41921756(compatible)X
41932174(interface.)X
4194720 934(Intuitively,)N
41951099(a)X
41961161(hash)X
41971334(table)X
41981516(begins)X
41991751(as)X
42001844(a)X
42011905(single)X
42022121(bucket)X
42032360(and)X
4204720 1022(grows)N
4205941(in)X
42061028(generations,)X
42071443(where)X
42081665(a)X
42091725(generation)X
42102088(corresponds)X
4211720 1110(to)N
4212815(a)X
4213884(doubling)X
42141201(in)X
42151296(the)X
42161427(size)X
42171585(of)X
42181685(the)X
42191815(hash)X
42201994(table.)X
42212222(The)X
42222379(0)X
42232 f
42247 s
42251078(th)Y
422610 s
42271 f
4228720 1198(generation)N
42291085(occurs)X
42301321(as)X
42311414(the)X
42321538(table)X
42331719(grows)X
42341940(from)X
42352121(one)X
42362262(bucket)X
4237720 1286(to)N
4238814(two.)X
42391006(In)X
42401105(the)X
42411235(next)X
42421405(generation)X
42431776(the)X
42441906(table)X
42452093(grows)X
42462320(from)X
4247720 1374(two)N
4248862(to)X
4249946(four.)X
42501122(During)X
42511371(each)X
42521541(generation,)X
42531921(every)X
42542121(bucket)X
42552356(that)X
4256720 1462(existed)N
4257967(at)X
42581045(the)X
42591163(beginning)X
42601503(of)X
42611590(the)X
42621708(generation)X
42632067(is)X
42642140(split.)X
4265892 1576(The)N
42661041(table)X
42671221(starts)X
42681414(as)X
42691505(a)X
42701565(single)X
42711780(bucket)X
42722018(\(numbered)X
42732389(0\),)X
4274720 1664(the)N
4275839(current)X
42761088(split)X
42771245(bucket)X
42781479(is)X
42791552(set)X
42801661(to)X
42811743(bucket)X
42821977(0,)X
42832057(and)X
42842193(the)X
42852311(max-)X
4286720 1752(imum)N
4287933(split)X
42881097(point)X
42891288(is)X
42901368(set)X
42911483(to)X
42921571(twice)X
42931771(the)X
42941895(current)X
42952149(split)X
42962312(point)X
4297720 1840(\(0\).)N
4298863(When)X
42991084(it)X
43001157(is)X
43011239(time)X
43021410(for)X
43031532(a)X
43041596(bucket)X
43051838(to)X
43061928(split,)X
43072113(the)X
43082239(keys)X
43092414(in)X
4310720 1928(the)N
4311872(current)X
43121154(split)X
43131345(bucket)X
43141612(are)X
43151764(divided)X
43162057(between)X
43172378(the)X
4318720 2016(current)N
4319981(split)X
43201151(bucket)X
43211397(and)X
43221545(a)X
43231613(new)X
43241779(bucket)X
43252025(whose)X
43262262(bucket)X
4327720 2104(number)N
43281000(is)X
43291088(equal)X
43301297(to)X
43311394(1)X
43321469(+)X
43331549(current)X
43341812(split)X
43351984(bucket)X
43362232(+)X
43372311(max-)X
4338720 2192(imum)N
4339927(split)X
43401085(point.)X
43411310(We)X
43421442(can)X
43431574(determine)X
43441915(which)X
43452131(keys)X
43462298(move)X
4347720 2280(to)N
4348807(the)X
4349929(new)X
43501087(bucket)X
43511325(by)X
43521429(examining)X
43531791(the)X
43542 f
43551913(n)X
43567 s
43571962 2248(th)N
435810 s
43591 f
43602043 2280(bit)N
43612151(of)X
43622242(a)X
43632302(key's)X
4364720 2368(hash)N
4365899(value)X
43661105(where)X
43671334(n)X
43681406(is)X
43691491(the)X
43701620(generation)X
43711990(number.)X
43722306(After)X
4373720 2456(the)N
4374846(bucket)X
43751088(at)X
43761174(the)X
43771300(maximum)X
43781651(split)X
43791815(point)X
43802006(has)X
43812140(been)X
43822319(split,)X
4383720 2544(the)N
4384839(generation)X
43851198(number)X
43861463(is)X
43871536(incremented,)X
43881973(the)X
43892091(current)X
43902339(split)X
4391720 2632(point)N
4392908(is)X
4393985(set)X
43941098(back)X
43951274(to)X
43961360(zero,)X
43971543(and)X
43981683(the)X
43991805(maximum)X
44002152(split)X
44012312(point)X
4402720 2720(is)N
4403815(set)X
4404946(to)X
44051050(the)X
44061190(number)X
44071477(of)X
44081586(the)X
44091725(last)X
44101877(bucket)X
44112132(in)X
44122235(the)X
44132374(\256le)X
4414720 2808(\(which)N
4415971(is)X
44161052(equal)X
44171253(to)X
44181342(twice)X
44191543(the)X
44201668(old)X
44211797(maximum)X
44222148(split)X
44232312(point)X
4424720 2896(plus)N
4425873(1\).)X
4426892 3010(To)N
44271031(facilitate)X
44281361(locating)X
44291668(keys,)X
44301884(we)X
44312027(maintain)X
44322356(two)X
4433720 3098(masks.)N
4434989(The)X
44351143(low)X
44361291(mask)X
44371488(is)X
44381569(equal)X
44391771(to)X
44401861(the)X
44411987(maximum)X
44422339(split)X
4443720 3186(bucket)N
4444967(and)X
44451116(the)X
44461247(high)X
44471422(mask)X
44481624(is)X
44491710(equal)X
44501917(to)X
44512011(the)X
44522141(next)X
44532311(max-)X
4454720 3274(imum)N
4455931(split)X
44561093(bucket.)X
44571372(To)X
44581486(locate)X
44591703(a)X
44601764(speci\256c)X
44612033(key,)X
44622193(we)X
44632311(com-)X
4464720 3362(pute)N
4465881(a)X
4466940(32-bit)X
44671154(hash)X
44681324(value)X
44691520(using)X
44701715(a)X
44711773(bit-randomizing)X
44722311(algo-)X
4473720 3450(rithm)N
4474932(such)X
44751118(as)X
44761224(the)X
44771361(one)X
44781516(described)X
44791862(in)X
44801962([LAR88].)X
44812334(This)X
4482720 3538(hash)N
4483893(value)X
44841093(is)X
44851172(then)X
44861336(masked)X
44871607(with)X
44881775(the)X
44891898(high)X
44902065(mask.)X
44912299(If)X
44922378(the)X
4493720 3626(resulting)N
44941026(number)X
44951297(is)X
44961376(greater)X
44971626(than)X
44981790(the)X
44991913(maximum)X
45002262(bucket)X
4501720 3714(in)N
4502823(the)X
4503962(table)X
45041159(\(current)X
45051455(split)X
45061633(bucket)X
45071888(+)X
45081974(maximum)X
45092339(split)X
4510720 3802(point\),)N
4511962(the)X
45121091(hash)X
45131269(value)X
45141474(is)X
45151558(masked)X
45161834(with)X
45172007(the)X
45182136(low)X
45192287(mask.)X
4520720 3890(In)N
4521825(either)X
45221046(case,)X
45231242(the)X
45241377(result)X
45251592(of)X
45261696(the)X
45271831(mask)X
45282037(is)X
45292127(the)X
45302262(bucket)X
4531720 3978(number)N
4532989(for)X
45331107(the)X
45341229(given)X
45351431(key.)X
45361611(The)X
45371759(algorithm)X
45382093(below)X
45392312(illus-)X
4540720 4066(trates)N
4541914(this)X
45421049(process.)X
45430 f
45448 s
4545720 4365(h)N
4546796(=)X
4547872 -0.4038(calchash\(key\);)AX
4548720 4453(bucket)N
4549986(=)X
45501062(h)X
45511138(&)X
45521214 -0.4167(high_mask;)AX
4553720 4541(if)N
4554834(\()X
4555910(bucket)X
45561176(>)X
45571252 -0.4167(max_bucket)AX
45581670(\))X
45591008 4629(bucket)N
45601274(=)X
45611350(h)X
45621426(&)X
45631502 -0.4219(low_mask;)AX
4564720 4717 -0.4018(return\(bucket\);)AN
45651 f
456610 s
4567892 5042(In)N
45681013(order)X
45691237(to)X
45701353(decide)X
45711617(when)X
45721845(to)X
45731961(split)X
45742152(a)X
45752242(bucket,)X
45762 f
4577720 5130(dynahash)N
45781 f
45791050(uses)X
45802 f
45811210(controlled)X
45821561(splitting)X
45831 f
45841822(.)X
45851884(A)X
45861964(hash)X
45872133(table)X
45882311(has)X
45892440(a)X
4590720 5218(\256ll)N
4591837(factor)X
45921054(which)X
45931279(is)X
45941361(expressed)X
45951707(in)X
45961798(terms)X
45972004(of)X
45982099(the)X
45992225(average)X
4600720 5306(number)N
4601990(of)X
46021082(keys)X
46031253(in)X
46041339(each)X
46051511(bucket.)X
46061789(Each)X
46071974(time)X
46082140(the)X
46092262(table's)X
4610720 5394(total)N
4611885(number)X
46121153(of)X
46131243(keys)X
46141413(divided)X
46151676(by)X
46161778(its)X
46171875(number)X
46182142(of)X
46192231(buckets)X
4620720 5482(exceeds)N
4621995(this)X
46221130(\256ll)X
46231238(factor,)X
46241466(a)X
46251522(bucket)X
46261756(is)X
46271829(split.)X
46282878 538(Since)N
46293079(the)X
46302 f
46313200(hsearch)X
46321 f
46333477(create)X
46343693(interface)X
46353998(\()X
46362 f
46374025(hcreate)X
46381 f
46394266(\))X
46404315(calls)X
46412706 626(for)N
46422842(an)X
46432960(estimate)X
46443269(of)X
46453378(the)X
46463518(\256nal)X
46473702(size)X
46483869(of)X
46493978(the)X
46504118(hash)X
46514306(table)X
46522706 714(\()N
46532 f
46542733(nelem)X
46551 f
46562925(\),)X
46572 f
46583007(dynahash)X
46591 f
46603349(uses)X
46613522(this)X
46623672(information)X
46634085(to)X
46644182(initialize)X
46652706 802(the)N
46662848(table.)X
46673088(The)X
46683257(initial)X
46693486(number)X
46703774(of)X
46713884(buckets)X
46724172(is)X
46734268(set)X
46744400(to)X
46752 f
46762706 890(nelem)N
46771 f
46782926(rounded)X
46793217(to)X
46803306(the)X
46813431(next)X
46823596(higher)X
46833828(power)X
46844056(of)X
46854150(two.)X
46864337(The)X
46872706 978(current)N
46882958(split)X
46893118(point)X
46903305(is)X
46913381(set)X
46923493(to)X
46933578(0)X
46943641(and)X
46953780(the)X
46963901(maximum)X
46974248(bucket)X
46982706 1066(and)N
46992842(maximum)X
47003186(split)X
47013343(point)X
47023527(are)X
47033646(set)X
47043755(to)X
47053837(this)X
47063972(rounded)X
47074255(value.)X
47083 f
47093148 1220(The)N
47103301(New)X
47113473(Implementation)X
47121 f
47132878 1352(Our)N
47143042(implementation)X
47153583(is)X
47163675(also)X
47173842(based)X
47184063(on)X
47194181(Larson's)X
47202706 1440(linear)N
47212939(hashing)X
47223238([LAR88])X
47233582(algorithm)X
47243943(as)X
47254060(well)X
47264248(as)X
47274364(the)X
47282 f
47292706 1528(dynahash)N
47301 f
47313047(implementation.)X
47323623(The)X
47332 f
47343782(dbm)X
47351 f
47363954(family)X
47374197(of)X
47384297(algo-)X
47392706 1616(rithms)N
47402942(decide)X
47413184(dynamically)X
47423612(which)X
47433840(bucket)X
47444085(to)X
47454178(split)X
47464346(and)X
47472706 1704(when)N
47482914(to)X
47493010(split)X
47503180(it)X
47513257(\(when)X
47523491(it)X
47533568(over\257ows\))X
47543944(while)X
47552 f
47564155(dynahash)X
47571 f
47582706 1792(splits)N
47592933(in)X
47603054(a)X
47613149(prede\256ned)X
47623547(order)X
47633776(\(linearly\))X
47644134(and)X
47654309(at)X
47664426(a)X
47672706 1880(prede\256ned)N
47683116(time)X
47693328(\(when)X
47703599(the)X
47713767(table)X
47723993(\256ll)X
47734151(factor)X
47744409(is)X
47752706 1968(exceeded\).)N
47763121(We)X
47773280(use)X
47783434(a)X
47793517(hybrid)X
47803773(of)X
47813887(these)X
47824099(techniques.)X
47832706 2056(Splits)N
47842913(occur)X
47853118(in)X
47863206(the)X
47873330(prede\256ned)X
47883695(order)X
47893891(of)X
47903984(linear)X
47914193(hashing,)X
47922706 2144(but)N
47932845(the)X
47942980(time)X
47953159(at)X
47963253(which)X
47973485(pages)X
47983704(are)X
47993839(split)X
48004012(is)X
48014101(determined)X
48022706 2232(both)N
48032869(by)X
48042970(page)X
48053143(over\257ows)X
48063480(\()X
48072 f
48083507(uncontrolled)X
48093937(splitting)X
48101 f
48114198(\))X
48124246(and)X
48134382(by)X
48142706 2320(exceeding)N
48153052(the)X
48163170(\256ll)X
48173278(factor)X
48183486(\()X
48192 f
48203513(controlled)X
48213862(splitting)X
48221 f
48234123(\))X
48242878 2434(A)N
48252962(hash)X
48263135(table)X
48273317(is)X
48283395(parameterized)X
48293876(by)X
48303981(both)X
48314148(its)X
48324248(bucket)X
48332706 2522(size)N
48342904(\()X
48352 f
48362931(bsize)X
48371 f
4838(\))S
48393191(and)X
48403380(\256ll)X
48413541(factor)X
48423801(\()X
48432 f
48443828(ffactor)X
48451 f
48464041(\).)X
48474180(Whereas)X
48482 f
48492706 2610(dynahash's)N
48501 f
48513095(buckets)X
48523364(can)X
48533500(be)X
48543599(represented)X
48553993(as)X
48564083(a)X
48574142(linked)X
48584365(list)X
48592706 2698(of)N
48602798(elements)X
48613108(in)X
48623195(memory,)X
48633507(our)X
48643639(package)X
48653928(needs)X
48664136(to)X
48674222(support)X
48682706 2786(disk)N
48692874(access,)X
48703135(and)X
48713286(must)X
48723476(represent)X
48733806(buckets)X
48744086(in)X
48754183(terms)X
48764395(of)X
48772706 2874(pages.)N
48782955(The)X
48792 f
48803106(bsize)X
48811 f
48823291(is)X
48833369(the)X
48843492(size)X
48853642(\(in)X
48863756(bytes\))X
48873977(of)X
48884069(these)X
48894259(pages.)X
48902706 2962(As)N
48912833(in)X
48922933(linear)X
48933154(hashing,)X
48943461(the)X
48953597(number)X
48963879(of)X
48973983(buckets)X
48984265(in)X
48994364(the)X
49002706 3050(table)N
49012906(is)X
49023003(equal)X
49033221(to)X
49043327(the)X
49053469(number)X
49063758(of)X
49073869(keys)X
49084060(in)X
49094165(the)X
49104306(table)X
49112706 3138(divided)N
49122988(by)X
49132 f
49143110(ffactor)X
49151 f
49163323(.)X
49172 f
49188 s
49193113(6)Y
49201 f
492110 s
49223417 3138(The)N
49233584(controlled)X
49243950(splitting)X
49254252(occurs)X
49262706 3226(each)N
49272878(time)X
49283044(the)X
49293166(number)X
49303435(of)X
49313526(keys)X
49323697(in)X
49333783(the)X
49343905(table)X
49354085(exceeds)X
49364364(the)X
49372706 3314(\256ll)N
49382814(factor)X
49393022(multiplied)X
49403370(by)X
49413470(the)X
49423588(number)X
49433853(of)X
49443940(buckets.)X
49452878 3428(Inserting)N
49463187(keys)X
49473358(and)X
49483498(splitting)X
49493783(buckets)X
49504051(is)X
49514127(performed)X
49522706 3516(precisely)N
49533018(as)X
49543107(described)X
49553437(previously)X
49563796(for)X
49572 f
49583911(dynahash)X
49591 f
49604218(.)X
49614279(How-)X
49622706 3604(ever,)N
49632897(since)X
49643094(buckets)X
49653371(are)X
49663502(now)X
49673671(comprised)X
49684036(of)X
49694134(pages,)X
49704368(we)X
49712706 3692(must)N
49722883(be)X
49732981(prepared)X
49743284(to)X
49753367(handle)X
49763602(cases)X
49773793(where)X
49784011(the)X
49794130(size)X
49804276(of)X
49814364(the)X
49822706 3780(keys)N
49832873(and)X
49843009(data)X
49853163(in)X
49863245(a)X
49873301(bucket)X
49883535(exceed)X
49893779(the)X
49903897(bucket)X
49914131(size.)X
49923 f
49933318 3934(Over\257ow)N
49943654(Pages)X
49951 f
49962878 4066(There)N
49973095(are)X
49983223(two)X
49993372(cases)X
50003571(where)X
50013797(a)X
50023862(key)X
50034007(may)X
50044174(not)X
50054305(\256t)X
50064400(in)X
50072706 4154(its)N
50082802(designated)X
50093166(bucket.)X
50103441(In)X
50113529(the)X
50123647(\256rst)X
50133791(case,)X
50143970(the)X
50154088(total)X
50164250(size)X
50174395(of)X
50182706 4242(the)N
50192833(key)X
50202978(and)X
50213123(data)X
50223286(may)X
50233453(exceed)X
50243706(the)X
50253833(bucket)X
50264076(size.)X
50274269(In)X
50284364(the)X
50292706 4330(second,)N
50303008(addition)X
50313328(of)X
50323453(a)X
50333547(new)X
50343739(key)X
50353913(could)X
50364149(cause)X
50374386(an)X
50382706 4418(over\257ow,)N
50393068(but)X
50403227(the)X
50413382(bucket)X
50423652(in)X
50433770(question)X
50444097(is)X
50454206(not)X
50464364(yet)X
50472706 4506(scheduled)N
50483049(to)X
50493133(be)X
50503230(split.)X
50513428(In)X
50523516(existing)X
50533790(implementations,)X
50544364(the)X
50552706 4594(second)N
50562953(case)X
50573115(never)X
50583317(arises)X
50593523(\(since)X
50603738(buckets)X
50614006(are)X
50624128(split)X
50634288(when)X
50642706 4682(they)N
50652871(over\257ow\))X
50663210(and)X
50673352(the)X
50683476(\256rst)X
50693626(case)X
50703791(is)X
50713870(not)X
50723998(handled)X
50734278(at)X
50744362(all.)X
50752706 4770(Although)N
50763036(large)X
50773225(key/data)X
50783525(pair)X
50793678(handling)X
50803986(is)X
50814066(dif\256cult)X
50824346(and)X
50832706 4858(expensive,)N
50843083(it)X
50853163(is)X
50863252(essential.)X
50873604(In)X
50883706(a)X
50893777(linear)X
50903995(hashed)X
50914253(imple-)X
50922706 4946(mentation,)N
50933087(over\257ow)X
50943413(pages)X
50953636(are)X
50963775(required)X
50974083(for)X
50984217(buckets)X
50992706 5034(which)N
51002935(over\257ow)X
51013253(before)X
51023492(they)X
51033662(are)X
51043793(split,)X
51053982(so)X
51064085(we)X
51074211(can)X
51084355(use)X
51092706 5122(the)N
51102833(same)X
51113027(mechanism)X
51123421(for)X
51133544(large)X
51143734(key/data)X
51154035(pairs)X
51164220(that)X
51174368(we)X
51182706 5210(use)N
51192837(for)X
51202955(over\257ow)X
51213264(pages.)X
51223511(Logically,)X
51233862(we)X
51243980(chain)X
51254177(over\257ow)X
512616 s
51272706 5353 MXY
5128864 0 Dl
51292 f
51308 s
51312746 5408(6)N
51321 f
51339 s
51342801 5433(This)N
51352952(is)X
51363023(not)X
51373138(strictly)X
51383361(true.)X
51393532(The)X
51403667(\256le)X
51413782(does)X
51423937(not)X
51434052(contract)X
51444306(when)X
51452706 5513(keys)N
51462861(are)X
51472972(deleted,)X
51483221(so)X
51493308(the)X
51503419(number)X
51513662(of)X
51523744(buckets)X
51533986(is)X
51544056(actually)X
51554306(equal)X
51562706 5593(to)N
51572782(the)X
51582890(maximum)X
51593202(number)X
51603441(of)X
51613520(keys)X
51623671(ever)X
51633814(present)X
51644041(in)X
51654116(the)X
51664223(table)X
51674382(di-)X
51682706 5673(vided)N
51692884(by)X
51702974(the)X
51713080(\256ll)X
51723178(factor.)X
51733 f
517410 s
5175720 5960(USENIX)N
51769 f
51771042(-)X
51783 f
51791106(Winter)X
51801371('91)X
51819 f
51821498(-)X
51833 f
51841562(Dallas,)X
51851815(TX)X
51864424(5)X
5187
51886 p
5189%%Page: 6 6
51900(Courier)xf 0 f
519110 s 10 xH 0 xS 0 f
51923 f
5193432 258(A)N
5194510(New)X
5195682(Hashing)X
5196985(Package)X
51971290(for)X
51981413(UNIX)X
51993663(Seltzer)X
52003920(&)X
52014007(Yigit)X
52021 f
5203432 538(pages)N
5204639(to)X
5205725(the)X
5206847(buckets)X
52071116(\(also)X
52081296(called)X
52091512(primary)X
52101789(pages\).)X
52112062(In)X
52122152(a)X
5213432 626(memory)N
5214730(based)X
5215943(representation,)X
52161448(over\257ow)X
52171763(pages)X
52181976(do)X
52192086(not)X
5220432 714(pose)N
5221628(any)X
5222792(special)X
52231063(problems)X
52241409(because)X
52251712(we)X
52261854(can)X
52272014(chain)X
5228432 802(over\257ow)N
5229776(pages)X
52301017(to)X
52311137(primary)X
52321449(pages)X
52331690(using)X
52341921(memory)X
5235432 890(pointers.)N
5236776(However,)X
52371137(mapping)X
52381463(these)X
52391674(over\257ow)X
52402005(pages)X
5241432 978(into)N
5242584(a)X
5243648(disk)X
5244809(\256le)X
5245939(is)X
52461019(more)X
52471211(of)X
52481305(a)X
52491368(challenge,)X
52501723(since)X
52511915(we)X
52522036(need)X
5253432 1066(to)N
5254547(be)X
5255675(able)X
5256861(to)X
5257975(address)X
52581268(both)X
52591462(bucket)X
52601728(pages,)X
52611983(whose)X
5262432 1154(numbers)N
5263729(are)X
5264849(growing)X
52651137(linearly,)X
52661422(and)X
52671558(some)X
52681747(indeterminate)X
5269432 1242(number)N
5270715(of)X
5271820(over\257ow)X
52721143(pages)X
52731364(without)X
52741646(reorganizing)X
52752090(the)X
5276432 1330(\256le.)N
5277604 1444(One)N
5278789(simple)X
52791053(solution)X
52801361(would)X
52811612(be)X
52821739(to)X
52831852(allocate)X
52842152(a)X
5285432 1532(separate)N
5286737(\256le)X
5287880(for)X
52881015(over\257ow)X
52891341(pages.)X
52901604(The)X
52911769(disadvantage)X
5292432 1620(with)N
5293605(such)X
5294783(a)X
5295850(technique)X
52961193(is)X
52971276(that)X
52981426(it)X
52991500(requires)X
53001789(an)X
53011895(extra)X
53022086(\256le)X
5303432 1708(descriptor,)N
5304794(an)X
5305891(extra)X
53061073(system)X
53071316(call)X
53081453(on)X
53091554(open)X
53101731(and)X
53111867(close,)X
53122072(and)X
5313432 1796(logically)N
5314739(associating)X
53151122(two)X
53161269(independent)X
53171687(\256les.)X
53181886(For)X
53192023(these)X
5320432 1884(reasons,)N
5321728(we)X
5322857(wanted)X
53231123(to)X
53241219(map)X
53251391(both)X
53261567(primary)X
53271855(pages)X
53282072(and)X
5329432 1972(over\257ow)N
5330737(pages)X
5331940(into)X
53321084(the)X
53331202(same)X
53341387(\256le)X
53351509(space.)X
5336604 2086(The)N
5337799(buddy-in-waiting)X
53381425(algorithm)X
53391806(provides)X
53402152(a)X
5341432 2174(mechanism)N
5342851(to)X
5343966(support)X
53441259(multiple)X
53451578(pages)X
53461814(per)X
53471970(logical)X
5348432 2262(bucket)N
5349685(while)X
5350902(retaining)X
53511226(the)X
53521362(simple)X
53531613(split)X
53541788(sequence)X
53552121(of)X
5356432 2350(linear)N
5357681(hashing.)X
53581015(Over\257ow)X
53591383(pages)X
53601631(are)X
53611795(preallocated)X
5362432 2438(between)N
5363781(generations)X
53641232(of)X
53651379(primary)X
53661713(pages.)X
53671996(These)X
5368432 2526(over\257ow)N
5369759(pages)X
5370984(are)X
53711125(used)X
53721314(by)X
53731436(any)X
53741594(bucket)X
53751850(containing)X
5376432 2614(more)N
5377646(keys)X
5378842(than)X
53791029(\256t)X
53801144(on)X
53811273(the)X
53821420(primary)X
53831723(page)X
53841924(and)X
53852089(are)X
5386432 2702(reclaimed,)N
5387808(if)X
5388896(possible,)X
53891217(when)X
53901430(the)X
53911567(bucket)X
53921819(later)X
53932000(splits.)X
5394432 2790(Figure)N
5395687(3)X
5396773(depicts)X
53971045(the)X
53981188(layout)X
53991433(of)X
54001545(primary)X
54011844(pages)X
54022072(and)X
5403432 2878(over\257ow)N
5404752(pages)X
5405970(within)X
54061209(the)X
54071342(same)X
54081542(\256le.)X
54091699(Over\257ow)X
54102036(page)X
5411432 2966(use)N
5412586(information)X
54131011(is)X
54141111(recorded)X
54151440(in)X
54161548(bitmaps)X
54171847(which)X
54182089(are)X
5419432 3054(themselves)N
5420819(stored)X
54211046(on)X
54221157(over\257ow)X
54231472(pages.)X
54241725(The)X
54251880(addresses)X
5426432 3142(of)N
5427520(the)X
5428639(bitmap)X
5429882(pages)X
54301086(and)X
54311223(the)X
54321342(number)X
54331608(of)X
54341695(pages)X
54351898(allocated)X
5436432 3230(at)N
5437515(each)X
5438688(split)X
5439850(point)X
54401039(are)X
54411163(stored)X
54421384(in)X
54431470(the)X
54441592(\256le)X
54451718(header.)X
54461997(Using)X
5447432 3318(this)N
5448577(information,)X
54491005(both)X
54501177(over\257ow)X
54511492(addresses)X
54521829(and)X
54531974(bucket)X
5454432 3406(addresses)N
5455764(can)X
5456900(be)X
5457999(mapped)X
54581276(to)X
54591361(disk)X
54601517(addresses)X
54611848(by)X
54621951(the)X
54632072(fol-)X
5464432 3494(lowing)N
5465674(calculation:)X
54660 f
54678 s
5468432 3793(int)N
5469736(bucket;)X
54701192(/*)X
54711306(bucket)X
54721572(address)X
54731876(*/)X
5474432 3881(u_short)N
5475736(oaddr;)X
54761192(/*)X
54771306(OVERFLOW)X
54781648(address)X
54791952(*/)X
5480432 3969(int)N
5481736 -0.4125(nhdr_pages;)AX
54821192(/*)X
54831306(npages)X
54841572(in)X
54851686 -112.4062(\256le)AX
54861838(header)X
54872104(*/)X
5488432 4057(int)N
5489736 -0.4125(spares[32];)AX
54901192(/*)X
54911306(npages)X
54921572(at)X
54931686(each)X
54941876(split)X
54952104(*/)X
5496432 4145(int)N
5497736(log2\(\);)X
54981198(/*)X
54991312(ceil\(log)X
55001654(base)X
55011844(2\))X
55021958(*/)X
5503432 4321(#DEFINE)N
5504736 -0.3929(BUCKET_TO_PAGE\(bucket\))AX
55051610(\\)X
5506584 4409(bucket)N
5507850(+)X
5508926 -0.4167(nhdr_pages)AX
55091344(+)X
55101420(\\)X
5511584 4497 -0.3894(\(bucket?spares[logs2\(bucket)AN
55121648(+)X
55131724(1\)-1]:0\))X
5514432 4673(#DEFINE)N
5515736 -0.3947(OADDR_TO_PAGE\(oaddr\))AX
55161534(\\)X
5517584 4761 -0.3984(BUCKET_TO_PAGE\(\(1)AN
55181268(<<)X
55191382 -0.4091(\(oaddr>>11\)\))AX
55201876(-)X
55211952(1\))X
55222066(+)X
55232142(\\)X
5524584 4849(oaddr)N
5525812(&)X
5526888(0x7ff;)X
55271 f
552810 s
5529604 5262(An)N
5530728(over\257ow)X
55311039(page)X
55321217(is)X
55331295(addressed)X
55341637(by)X
55351742(its)X
55361842(split)X
55372004(point,)X
5538432 5350(identifying)N
5539858(the)X
55401031(generations)X
55411476(between)X
55421819(which)X
55432090(the)X
5544432 5438(over\257ow)N
5545740(page)X
5546915(is)X
5547991(allocated,)X
55481324(and)X
55491463(its)X
55501561(page)X
55511736(number,)X
55522023(iden-)X
5553432 5526(tifying)N
5554665(the)X
5555783(particular)X
55561111(page)X
55571283(within)X
55581507(the)X
55591625(split)X
55601782(point.)X
55611986(In)X
55622073(this)X
5563432 5614(implementation,)N
5564983(offsets)X
55651225(within)X
55661457(pages)X
55671668(are)X
55681795(16)X
55691903(bits)X
55702046(long)X
5571432 5702(\(limiting)N
5572732(the)X
5573851(maximum)X
55741196(page)X
55751368(size)X
55761513(to)X
55771595(32K\),)X
55781800(so)X
55791891(we)X
55802005(select)X
55812418 538(an)N
55822535(over\257ow)X
55832860(page)X
55843052(addressing)X
55853435(algorithm)X
55863786(that)X
55873946(can)X
55884098(be)X
55892418 626(expressed)N
55902760(in)X
55912847(16)X
55922952(bits)X
55933091(and)X
55943231(which)X
55953451(allows)X
55963684(quick)X
55973886(retrieval.)X
55982418 714(The)N
55992568(top)X
56002695(\256ve)X
56012840(bits)X
56022980(indicate)X
56033258(the)X
56043380(split)X
56053541(point)X
56063729(and)X
56073869(the)X
56083991(lower)X
56092418 802(eleven)N
56102650(indicate)X
56112926(the)X
56123046(page)X
56133220(number)X
56143487(within)X
56153713(the)X
56163832(split)X
56173990(point.)X
56182418 890(Since)N
56192633(\256ve)X
56202789(bits)X
56212940(are)X
56223075(reserved)X
56233384(for)X
56243514(the)X
56253648(split)X
56263821(point,)X
56274041(\256les)X
56282418 978(may)N
56292578(split)X
56302737(32)X
56312839(times)X
56323034(yielding)X
56333318(a)X
56343376(maximum)X
56353721(\256le)X
56363844(size)X
56373990(of)X
56384078(2)X
56397 s
5640946(32)Y
564110 s
56422418 1066(buckets)N
56432698(and)X
56442849(32)X
56452 f
5646(*)S
56471 f
56482982(2)X
56497 s
56501034(11)Y
565110 s
56523113 1066(over\257ow)N
56533433(pages.)X
56543691(The)X
56553850(maximum)X
56562418 1154(page)N
56572597(size)X
56582749(is)X
56592829(2)X
56607 s
56611122(15)Y
566210 s
56631154(,)Y
56642971(yielding)X
56653259(a)X
56663321(maximum)X
56673671(\256le)X
56683799(size)X
56693950(greater)X
56702418 1242(than)N
56712601(131,000)X
56722906(GB)X
56733061(\(on)X
56743212(\256le)X
56753358(systems)X
56763655(supporting)X
56774041(\256les)X
56782418 1330(larger)N
56792626(than)X
56802784(4GB\).)X
568110 f
56822418 1418 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
56831 Dt
56844014 2275 MXY
56850 133 Dl
56863881 2275 MXY
56870 133 Dl
56883748 2275 MXY
56890 133 Dl
56903083 2275 MXY
56910 133 Dl
56925 s
56931 f
56943523 2475(2/3)N
56953390(2/2)X
56963257(2/1)X
56972859(1/2)X
56982726(1/1)X
56995 Dt
57003814 1743 MXY
57010 133 Dl
57023282 1743 MXY
57030 133 Dl
57043017 1743 MXY
57050 133 Dl
57062884 1743 MXY
57070 133 Dl
57081 Dt
57093681 1743 MXY
57100 133 Dl
5711133 0 Dl
57120 -133 Dl
5713-133 0 Dl
57143548 MX
57150 133 Dl
5716133 0 Dl
57170 -133 Dl
5718-133 0 Dl
57193415 MX
57200 133 Dl
5721133 0 Dl
57220 -133 Dl
5723-133 0 Dl
57243282 MX
57250 133 Dl
5726133 0 Dl
57270 -133 Dl
5728-133 0 Dl
57293150 MX
57300 133 Dl
5731132 0 Dl
57320 -133 Dl
5733-132 0 Dl
57343017 MX
57350 133 Dl
5736133 0 Dl
57370 -133 Dl
5738-133 0 Dl
57392884 MX
57400 133 Dl
5741133 0 Dl
57420 -133 Dl
5743-133 0 Dl
57443 f
57458 s
57463017 2601(Over\257ow)N
57473285(Addresses)X
57483515 2833(Over\257ow)N
57493783(Pages)X
57502850(Buckets)X
57511 Di
57523349 2740 MXY
5753 3349 2740 lineto
5754 3482 2740 lineto
5755 3482 2873 lineto
5756 3349 2873 lineto
5757 3349 2740 lineto
5758closepath 3 3349 2740 3482 2873 Dp
57592684 MX
57600 133 Dl
5761133 0 Dl
57620 -133 Dl
5763-133 0 Dl
57645 Dt
57654146 2275 MXY
57660 133 Dl
57673216 2275 MXY
57680 133 Dl
57692684 2275 MXY
57700 133 Dl
57712551 2275 MXY
57720 133 Dl
57731 f
57743798 1963(3)N
57753266 1980(2)N
57763001(1)X
57772868(0)X
57781 Dt
57792751 1743 MXY
57800 133 Dl
5781133 0 Dl
57820 -133 Dl
5783-133 0 Dl
57843548 2275 MXY
5785-15 -22 Dl
57862 16 Dl
5787-13 11 Dl
578826 -5 Dl
5789-282 -117 Dl
57903432 2275 MXY
5791-10 -25 Dl
5792-2 16 Dl
5793-15 8 Dl
579427 1 Dl
5795-166 -117 Dl
57963282 2275 MXY
579712 -25 Dl
5798-14 10 Dl
5799-15 -6 Dl
580017 21 Dl
5801-16 -117 Dl
58022884 2275 MXY
580326 7 Dl
5804-12 -12 Dl
58053 -16 Dl
5806-17 21 Dl
5807382 -117 Dl
58082751 2275 MXY
580925 9 Dl
5810-11 -12 Dl
58115 -17 Dl
5812-19 20 Dl
5813515 -117 Dl
58143 f
58153070 2152(Over\257ow)N
58163338(Pages)X
58173482 2275 MXY
5818 3482 2275 lineto
5819 3615 2275 lineto
5820 3615 2408 lineto
5821 3482 2408 lineto
5822 3482 2275 lineto
5823closepath 3 3482 2275 3615 2408 Dp
58243349 MX
5825 3349 2275 lineto
5826 3482 2275 lineto
5827 3482 2408 lineto
5828 3349 2408 lineto
5829 3349 2275 lineto
5830closepath 3 3349 2275 3482 2408 Dp
58313216 MX
5832 3216 2275 lineto
5833 3349 2275 lineto
5834 3349 2408 lineto
5835 3216 2408 lineto
5836 3216 2275 lineto
5837closepath 3 3216 2275 3349 2408 Dp
58382817 MX
5839 2817 2275 lineto
5840 2950 2275 lineto
5841 2950 2408 lineto
5842 2817 2408 lineto
5843 2817 2275 lineto
5844closepath 3 2817 2275 2950 2408 Dp
58452684 MX
5846 2684 2275 lineto
5847 2817 2275 lineto
5848 2817 2408 lineto
5849 2684 2408 lineto
5850 2684 2275 lineto
5851closepath 3 2684 2275 2817 2408 Dp
58523615 MX
58530 133 Dl
5854531 0 Dl
58550 -133 Dl
5856-531 0 Dl
58572950 MX
58580 133 Dl
5859266 0 Dl
58600 -133 Dl
5861-266 0 Dl
58622551 MX
58630 133 Dl
5864133 0 Dl
58650 -133 Dl
5866-133 0 Dl
58673798 1726 MXY
5868-21 -18 Dl
58696 16 Dl
5870-10 13 Dl
587125 -11 Dl
5872-599 -99 Dl
58733266 1726 MXY
5874-1 -27 Dl
5875-7 15 Dl
5876-17 1 Dl
587725 11 Dl
5878-67 -99 Dl
58793033 1726 MXY
588027 1 Dl
5881-14 -8 Dl
5882-1 -17 Dl
5883-12 24 Dl
5884166 -99 Dl
58852900 1726 MXY
588627 7 Dl
5887-13 -11 Dl
58883 -17 Dl
5889-17 21 Dl
5890299 -99 Dl
58913058 1621(Split)N
58923203(Points)X
58932418 2275 MXY
58940 133 Dl
5895133 0 Dl
58960 -133 Dl
5897-133 0 Dl
58983 Dt
5899-1 Ds
59003137(Figure)Y
59012619(3:)X
59021 f
59032691(Split)X
59042832(points)X
59053008(occur)X
59063168(between)X
59073399(generations)X
59083712(and)X
59093823(are)X
59103919(numbered)X
59112418 3225(from)N
59122560(0.)X
59132642(In)X
59142713(this)X
59152824(\256gure)X
59162991(there)X
59173136(are)X
59183231(two)X
59193345(over\257ow)X
59203590(pages)X
59213753(allocated)X
59224000(at)X
59234063(split)X
59242418 3313(point)N
59252566(1)X
59262614(and)X
59272722(three)X
59282865(allocated)X
59293111(at)X
59303173(split)X
59313300(point)X
59323448(2.)X
593310 s
593410 f
59352418 3489 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
59363 f
59372949 3731(Buffer)N
59383192(Management)X
59391 f
59402590 3863(The)N
59412744(hash)X
59422920(table)X
59433105(is)X
59443187(stored)X
59453412(in)X
59463502(memory)X
59473797(as)X
59483892(a)X
59493956(logical)X
59502418 3951(array)N
59512633(of)X
59522749(bucket)X
59533012(pointers.)X
59543359(Physically,)X
59553761(the)X
59563907(array)X
59574121(is)X
59582418 4039(arranged)N
59592728(in)X
59602818(segments)X
59613144(of)X
59623239(256)X
59633387(pointers.)X
59643713(Initially,)X
59654013(there)X
59662418 4127(is)N
59672530(space)X
59682767(to)X
59692887(allocate)X
59703195(256)X
59713373(segments.)X
59723769(Reallocation)X
59732418 4215(occurs)N
59742651(when)X
59752847(the)X
59762967(number)X
59773234(of)X
59783323(buckets)X
59793590(exceeds)X
59803867(32K)X
59814027(\(256)X
59822418 4303(*)N
59832508(256\).)X
59842745(Primary)X
59853053(pages)X
59863286(may)X
59873473(be)X
59883598(accessed)X
59893929(directly)X
59902418 4391(through)N
59912711(the)X
59922853(array)X
59933062(by)X
59943185(bucket)X
59953442(number)X
59963730(and)X
59973889(over\257ow)X
59982418 4479(pages)N
59992628(are)X
60002754 0.4028(referenced)AX
60013122(logically)X
60023429(by)X
60033536(their)X
60043710(over\257ow)X
60054022(page)X
60062418 4567(address.)N
60072726(For)X
60082864(small)X
60093063(hash)X
60103236(tables,)X
60113469(it)X
60123539(is)X
60133618(desirable)X
60143934(to)X
60154022(keep)X
60162418 4655(all)N
60172525(pages)X
60182735(in)X
60192823(main)X
60203009(memory)X
60213302(while)X
60223506(on)X
60233612(larger)X
60243826(tables,)X
60254059(this)X
60262418 4743(is)N
60272523(probably)X
60282860(impossible.)X
60293298(To)X
60303438(satisfy)X
60313698(both)X
60323891(of)X
60334009(these)X
60342418 4831(requirements,)N
60352900(the)X
60363041(package)X
60373348(includes)X
60383658(buffer)X
60393897(manage-)X
60402418 4919(ment)N
60412598(with)X
60422760(LRU)X
60432940(\(least)X
60443134(recently)X
60453413(used\))X
60463607(replacement.)X
60472590 5033(By)N
60482730(default,)X
60493020(the)X
60503165(package)X
60513475(allocates)X
60523802(up)X
60533928(to)X
60544036(64K)X
60552418 5121(bytes)N
60562616(of)X
60572712(buffered)X
60583014(pages.)X
60593246(All)X
60603377(pages)X
60613589(in)X
60623680(the)X
60633807(buffer)X
60644032(pool)X
60652418 5209(are)N
60662542(linked)X
60672766(in)X
60682852(LRU)X
60693036(order)X
60703230(to)X
60713316(facilitate)X
60723621(fast)X
60733761(replacement.)X
60742418 5297(Whereas)N
60752724(ef\256cient)X
60763011(access)X
60773241(to)X
60783327(primary)X
60793605(pages)X
60803812(is)X
60813889(provided)X
60822418 5385(by)N
60832521(the)X
60842642(bucket)X
60852879(array,)X
60863087(ef\256cient)X
60873372(access)X
60883600(to)X
60893684(over\257ow)X
60903991(pages)X
60912418 5473(is)N
60922501(provided)X
60932816(by)X
60942926(linking)X
60953182(over\257ow)X
60963497(page)X
60973679(buffers)X
60983936(to)X
60994027(their)X
61002418 5561(predecessor)N
61012827(page)X
61023008(\(either)X
61033247(the)X
61043374(primary)X
61053657(page)X
61063838(or)X
61073933(another)X
61082418 5649(over\257ow)N
61092742(page\).)X
61103000(This)X
61113181(means)X
61123425(that)X
61133584(an)X
61143699(over\257ow)X
61154022(page)X
61163 f
6117432 5960(6)N
61182970(USENIX)X
61199 f
61203292(-)X
61213 f
61223356(Winter)X
61233621('91)X
61249 f
61253748(-)X
61263 f
61273812(Dallas,)X
61284065(TX)X
6129
61307 p
6131%%Page: 7 7
61320(Courier)xf 0 f
613310 s 10 xH 0 xS 0 f
61343 f
6135720 258(Seltzer)N
6136977(&)X
61371064(Yigit)X
61383278(A)X
61393356(New)X
61403528(Hashing)X
61413831(Package)X
61424136(for)X
61434259(UNIX)X
61441 f
6145720 538(cannot)N
6146955(be)X
61471052(present)X
61481305(in)X
61491388(the)X
61501507(buffer)X
61511724(pool)X
61521886(if)X
61531955(its)X
61542050(primary)X
61552324(page)X
6156720 626(is)N
6157804(not)X
6158937(present.)X
61591240(This)X
61601413(does)X
61611591(not)X
61621724(impact)X
61631972(performance)X
61642409(or)X
6165720 714(functionality,)N
61661209(because)X
61671524(an)X
61681660(over\257ow)X
61692005(page)X
61702217(will)X
61712400(be)X
6172720 802(accessed)N
61731048(only)X
61741236(after)X
61751430(its)X
61761550(predecessor)X
61771975(page)X
61782172(has)X
61792324(been)X
6180720 890(accessed.)N
61811068(Figure)X
61821303(4)X
61831369(depicts)X
61841622(the)X
61851746(data)X
61861905(structures)X
61872242(used)X
61882414(to)X
6189720 978(manage)N
6190990(the)X
61911108(buffer)X
61921325(pool.)X
6193892 1092(The)N
61941040(in-memory)X
61951419(bucket)X
61961656(array)X
61971845(contains)X
61982134(pointers)X
61992414(to)X
6200720 1180(buffer)N
6201975(header)X
62021248(structures)X
62031617(which)X
62041870(represent)X
62052222(primary)X
6206720 1268(pages.)N
6207968(Buffer)X
62081203(headers)X
62091474(contain)X
62101735(modi\256ed)X
62112043(bits,)X
62122202(the)X
62132324(page)X
6214720 1356(address)N
6215995(of)X
62161096(the)X
62171228(buffer,)X
62181479(a)X
62191548(pointer)X
62201808(to)X
62211903(the)X
62222034(actual)X
62232259(buffer,)X
6224720 1444(and)N
6225875(a)X
6226950(pointer)X
62271216(to)X
62281317(the)X
62291454(buffer)X
62301690(header)X
62311944(for)X
62322077(an)X
62332191(over\257ow)X
6234720 1532(page)N
6235901(if)X
6236979(it)X
62371052(exists,)X
62381283(in)X
62391374(addition)X
62401665(to)X
62411756(the)X
62421883(LRU)X
62432072(links.)X
62442296(If)X
62452378(the)X
6246720 1620(buffer)N
6247950(corresponding)X
62481442(to)X
62491537(a)X
62501606(particular)X
62511947(bucket)X
62522194(is)X
62532280(not)X
62542414(in)X
6255720 1708(memory,)N
62561048(its)X
62571164(pointer)X
62581432(is)X
62591526(NULL.)X
62601801(In)X
62611909(effect,)X
62622154(pages)X
62632377(are)X
6264720 1796(linked)N
6265950(in)X
62661042(three)X
62671233(ways.)X
62681468(Using)X
62691689(the)X
62701817(buffer)X
62712043(headers,)X
62722338(they)X
6273720 1884(are)N
6274851(linked)X
62751083(physically)X
62761444(through)X
62771725(the)X
62781854(LRU)X
62792045(links)X
62802231(and)X
62812378(the)X
6282720 1972(over\257ow)N
62831036(links.)X
62841241(Using)X
62851462(the)X
62861590(pages)X
62871803(themselves,)X
62882209(they)X
62892377(are)X
6290720 2060(linked)N
6291943(logically)X
62921246(through)X
62931518(the)X
62941639(over\257ow)X
62951946(addresses)X
62962276(on)X
62972378(the)X
6298720 2148(page.)N
6299948(Since)X
63001162(over\257ow)X
63011482(pages)X
63021700(are)X
63031834(accessed)X
63042151(only)X
63052328(after)X
6306720 2236(their)N
6307904(predecessor)X
63081321(pages,)X
63091560(they)X
63101734(are)X
63111869(removed)X
63122186(from)X
63132378(the)X
6314720 2324(buffer)N
6315937(pool)X
63161099(when)X
63171293(their)X
63181460(primary)X
63191734(is)X
63201807(removed.)X
632110 f
6322720 2412 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
63231 Dt
63242309 3177 MXY
632524 15 Dl
6326-8 -15 Dl
63278 -15 Dl
6328-24 15 Dl
632952 0 Dl
6330789 3160 MXY
6331-35 0 Dl
63320 -156 Dl
63331607 0 Dl
63340 173 Dl
6335789 3091 MXY
6336-24 -15 Dl
63379 15 Dl
6338-9 15 Dl
633924 -15 Dl
6340-69 0 Dl
63412309 3125 MXY
6342104 0 Dl
63430 -155 Dl
6344-1693 0 Dl
63450 121 Dl
6346927 3160 MXY
634724 15 Dl
6348-9 -15 Dl
63499 -15 Dl
6350-24 15 Dl
6351553 0 Dl
63521618 3177 MXY
63538 27 Dl
63544 -17 Dl
635516 -6 Dl
6356-28 -4 Dl
6357138 121 Dl
63581895 3315 MXY
635928 3 Dl
6360-15 -9 Dl
63611 -18 Dl
6362-14 24 Dl
6363276 -138 Dl
63643108 MY
6365-28 -3 Dl
636615 10 Dl
6367-1 17 Dl
636814 -24 Dl
6369-276 138 Dl
63701756 3229 MXY
6371-8 -27 Dl
6372-3 17 Dl
6373-16 6 Dl
637427 4 Dl
6375-138 -121 Dl
63761480 MX
6377-24 -15 Dl
63789 15 Dl
6379-9 15 Dl
638024 -15 Dl
6381-553 0 Dl
63823 f
63835 s
63841083 3073(LRU)N
63851178(chain)X
63864 Ds
63871402 3851 MXY
6388 1402 3851 lineto
6389 1471 3851 lineto
6390 1471 3920 lineto
6391 1402 3920 lineto
6392 1402 3851 lineto
6393closepath 19 1402 3851 1471 3920 Dp
63941445 3747(Over\257ow)N
63951613(Address)X
63961549 3609 MXY
63970 69 Dl
63981756 MX
6399-23 -15 Dl
64008 15 Dl
6401-8 15 Dl
640223 -15 Dl
6403-207 0 Dl
6404-1 Ds
64053 Dt
64061756 3419 MXY
6407-6 -28 Dl
6408-4 17 Dl
6409-17 5 Dl
641027 6 Dl
6411-138 -138 Dl
64122240 3471 MXY
641315 -24 Dl
6414-15 9 Dl
6415-15 -9 Dl
641615 24 Dl
64170 -138 Dl
64181826 3609 MXY
641915 -24 Dl
6420-15 9 Dl
6421-16 -9 Dl
642216 24 Dl
64230 -138 Dl
64241549 MX
642515 -24 Dl
6426-15 9 Dl
6427-15 -9 Dl
642815 24 Dl
64290 -138 Dl
6430858 3471 MXY
643115 -24 Dl
6432-15 9 Dl
6433-15 -9 Dl
643415 24 Dl
64350 -138 Dl
64362240 3056 MXY
643715 -24 Dl
6438-15 9 Dl
6439-15 -9 Dl
644015 24 Dl
64410 -138 Dl
64421549 3056 MXY
644315 -24 Dl
6444-15 9 Dl
6445-15 -9 Dl
644615 24 Dl
64470 -138 Dl
6448858 3056 MXY
644915 -24 Dl
6450-15 9 Dl
6451-15 -9 Dl
645215 24 Dl
64530 -138 Dl
64541 Dt
64552171 3471 MXY
6456 2171 3471 lineto
6457 2448 3471 lineto
6458 2448 3609 lineto
6459 2171 3609 lineto
6460 2171 3471 lineto
6461closepath 19 2171 3471 2448 3609 Dp
64621756 3609 MXY
6463 1756 3609 lineto
6464 2033 3609 lineto
6465 2033 3747 lineto
6466 1756 3747 lineto
6467 1756 3609 lineto
6468closepath 3 1756 3609 2033 3747 Dp
64691480 3471 MXY
6470 1480 3471 lineto
6471 1756 3471 lineto
6472 1756 3609 lineto
6473 1480 3609 lineto
6474 1480 3471 lineto
6475closepath 19 1480 3471 1756 3609 Dp
6476789 MX
6477 789 3471 lineto
6478 1065 3471 lineto
6479 1065 3609 lineto
6480 789 3609 lineto
6481 789 3471 lineto
6482closepath 19 789 3471 1065 3609 Dp
6483962 3903(Buffer)N
64841083(Header)X
6485849 3851 MXY
6486 849 3851 lineto
6487 918 3851 lineto
6488 918 3920 lineto
6489 849 3920 lineto
6490 849 3851 lineto
6491closepath 14 849 3851 918 3920 Dp
64921756 3194 MXY
6493 1756 3194 lineto
6494 1895 3194 lineto
6495 1895 3471 lineto
6496 1756 3471 lineto
6497 1756 3194 lineto
6498closepath 14 1756 3194 1895 3471 Dp
64992171 3056 MXY
6500 2171 3056 lineto
6501 2309 3056 lineto
6502 2309 3333 lineto
6503 2171 3333 lineto
6504 2171 3056 lineto
6505closepath 14 2171 3056 2309 3333 Dp
65061480 MX
6507 1480 3056 lineto
6508 1618 3056 lineto
6509 1618 3333 lineto
6510 1480 3333 lineto
6511 1480 3056 lineto
6512closepath 14 1480 3056 1618 3333 Dp
6513789 MX
6514 789 3056 lineto
6515 927 3056 lineto
6516 927 3333 lineto
6517 789 3333 lineto
6518 789 3056 lineto
6519closepath 14 789 3056 927 3333 Dp
65202780 MY
65210 138 Dl
6522138 0 Dl
65230 -138 Dl
6524-138 0 Dl
6525927 MX
65260 138 Dl
6527138 0 Dl
65280 -138 Dl
6529-138 0 Dl
65301065 MX
65310 138 Dl
6532138 0 Dl
65330 -138 Dl
6534-138 0 Dl
65351203 MX
65360 138 Dl
6537139 0 Dl
65380 -138 Dl
6539-139 0 Dl
65401342 MX
65410 138 Dl
6542138 0 Dl
65430 -138 Dl
6544-138 0 Dl
65451480 MX
65460 138 Dl
6547138 0 Dl
65480 -138 Dl
6549-138 0 Dl
65501618 MX
65510 138 Dl
6552138 0 Dl
65530 -138 Dl
6554-138 0 Dl
65551756 MX
65560 138 Dl
6557139 0 Dl
65580 -138 Dl
6559-139 0 Dl
65601895 MX
65610 138 Dl
6562138 0 Dl
65630 -138 Dl
6564-138 0 Dl
65652033 MX
65660 138 Dl
6567138 0 Dl
65680 -138 Dl
6569-138 0 Dl
65702171 MX
65710 138 Dl
6572138 0 Dl
65730 -138 Dl
6574-138 0 Dl
65752309 MX
65760 138 Dl
6577139 0 Dl
65780 -138 Dl
6579-139 0 Dl
658013 s
65811048 2720(In)N
65821173(Memory)X
65831580(Bucket)X
65841918(Array)X
6585867 3584(B0)N
65861558(B5)X
65872223(B10)X
65881788 3722(O1/1)N
65895 s
65901515 3903(Primay)N
65911651(Buffer)X
65924 Ds
65931990 3851 MXY
6594 1990 3851 lineto
6595 2059 3851 lineto
6596 2059 3920 lineto
6597 1990 3920 lineto
6598 1990 3851 lineto
6599closepath 3 1990 3851 2059 3920 Dp
66002102 3903(Over\257ow)N
66012270(Buffer)X
66023 Dt
6603-1 Ds
66048 s
6605720 4184(Figure)N
6606922(4:)X
66071 f
6608996(Three)X
66091164(primary)X
66101386(pages)X
66111551(\(B0,)X
66121683(B5,)X
66131794(B10\))X
66141942(are)X
66152039(accessed)X
66162281(directly)X
6617720 4272(from)N
6618862(the)X
6619958(bucket)X
66201146(array.)X
66211326(The)X
66221443(one)X
66231553(over\257ow)X
66241798(page)X
66251935(\(O1/1\))X
66262122(is)X
66272182(linked)X
66282359(phy-)X
6629720 4360(sically)N
6630915(from)X
66311067(its)X
66321155(primary)X
66331384(page's)X
66341577(buffer)X
66351759(header)X
66361955(as)X
66372035(well)X
66382172(as)X
66392252(logically)X
6640720 4448(from)N
6641860(its)X
6642937(predecessor)X
66431253(page)X
66441389(buffer)X
66451560(\(B5\).)X
664610 s
664710 f
6648720 4624 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
66493 f
66501191 4954(Table)N
66511406(Parameterization)X
66521 f
6653892 5086(When)N
66541107(a)X
66551166(hash)X
66561336(table)X
66571515(is)X
66581590(created,)X
66591865(the)X
66601985(bucket)X
66612221(size,)X
66622388(\256ll)X
6663720 5174(factor,)N
6664953(initial)X
66651164(number)X
66661434(of)X
66671526(elements,)X
66681856(number)X
66692125(of)X
66702216(bytes)X
66712409(of)X
6672720 5262(main)N
6673919(memory)X
66741225(used)X
66751411(for)X
66761543(caching,)X
66771851(and)X
66782005(a)X
66792079(user-de\256ned)X
6680720 5350(hash)N
6681892(function)X
66821184(may)X
66831347(be)X
66841448(speci\256ed.)X
66851797(The)X
66861946(bucket)X
66872184(size)X
66882333(\(and)X
6689720 5438(page)N
6690906(size)X
66911064(for)X
66921191(over\257ow)X
66931509(pages\))X
66941752(defaults)X
66952039(to)X
66962134(256)X
66972287(bytes.)X
6698720 5526(For)N
6699858(tables)X
67001072(with)X
67011241(large)X
67021429(data)X
67031590(items,)X
67041810(it)X
67051881(may)X
67062046(be)X
67072149(preferable)X
6708720 5614(to)N
6709803(increase)X
67101088(the)X
67111207(page)X
67121380(size,)X
67131545(and,)X
67141701(conversely,)X
67152089(applications)X
6716720 5702(storing)N
67171002(small)X
67181235(items)X
67191467(exclusively)X
67201891(in)X
67212012(memory)X
67222338(may)X
67232706 538(bene\256t)N
67242966(from)X
67253164(a)X
67263242(smaller)X
67273520(bucket)X
67283776(size.)X
67293983(A)X
67304082(bucket)X
67314337(size)X
67322706 626(smaller)N
67332962(than)X
67343120(64)X
67353220(bytes)X
67363409(is)X
67373482(not)X
67383604(recommended.)X
67392878 740(The)N
67403031(\256ll)X
67413147(factor)X
67423363(indicates)X
67433676(a)X
67443740(desired)X
67454000(density)X
67464258(within)X
67472706 828(the)N
67482833(hash)X
67493009(table.)X
67503234(It)X
67513312(is)X
67523394(an)X
67533499(approximation)X
67543995(of)X
67554091(the)X
67564217(number)X
67572706 916(of)N
67582815(keys)X
67593004(allowed)X
67603300(to)X
67613404(accumulate)X
67623811(in)X
67633914(any)X
67644071(one)X
67654228(bucket,)X
67662706 1004(determining)N
67673119(when)X
67683319(the)X
67693442(hash)X
67703614(table)X
67713795(grows.)X
67724056(Its)X
67734161(default)X
67744409(is)X
67752706 1092(eight.)N
67762953(If)X
67773054(the)X
67783199(user)X
67793380(knows)X
67803636(the)X
67813781(average)X
67824079(size)X
67834251(of)X
67844364(the)X
67852706 1180(key/data)N
67863008(pairs)X
67873194(being)X
67883402(stored)X
67893627(in)X
67903718(the)X
67913845(table,)X
67924050(near)X
67934218(optimal)X
67942706 1268(bucket)N
67952943(sizes)X
67963122(and)X
67973261(\256ll)X
67983372(factors)X
67993614(may)X
68003775(be)X
68013874(selected)X
68024155(by)X
68034257(apply-)X
68042706 1356(ing)N
68052828(the)X
68062946(equation:)X
68070 f
68088 s
68092706 1655(\(1\))N
68102994 -0.3938(\(\(average_pair_length)AX
68113830(+)X
68123906(4\))X
68134020(*)X
68143032 1743(ffactor\))N
68153374(>=)X
68163488(bsize)X
68171 f
681810 s
68192706 2042(For)N
68202859(highly)X
68213104(time)X
68223287(critical)X
68233551(applications,)X
68243999(experimenting)X
68252706 2130(with)N
68262919(different)X
68273266(bucket)X
68283550(sizes)X
68293776(and)X
68303962(\256ll)X
68314120(factors)X
68324409(is)X
68332706 2218(encouraged.)N
68342878 2332(Figures)N
68353144(5a,b,)X
68363326(and)X
68373468(c)X
68383530(illustrate)X
68393836(the)X
68403960(effects)X
68414200(of)X
68424292(vary-)X
68432706 2420(ing)N
68442841(page)X
68453026(sizes)X
68463215(and)X
68473363(\256ll)X
68483483(factors)X
68493734(for)X
68503860(the)X
68513990(same)X
68524187(data)X
68534353(set.)X
68542706 2508(The)N
68552864(data)X
68563031(set)X
68573152(consisted)X
68583482(of)X
68593581(24474)X
68603813(keys)X
68613992(taken)X
68624198(from)X
68634386(an)X
68642706 2596(online)N
68652931(dictionary.)X
68663301(The)X
68673451(data)X
68683609(value)X
68693807(for)X
68703925(each)X
68714097(key)X
68724237(was)X
68734386(an)X
68742706 2684(ASCII)N
68752938(string)X
68763143(for)X
68773260(an)X
68783359(integer)X
68793605(from)X
68803784(1)X
68813847(to)X
68823931(24474)X
68834153(inclusive.)X
68842706 2772(The)N
68852867(test)X
68863013(run)X
68873155(consisted)X
68883488(of)X
68893590(creating)X
68903884(a)X
68913955(new)X
68924124(hash)X
68934306(table)X
68942706 2860(\(where)N
68952966(the)X
68963100(ultimate)X
68973398(size)X
68983559(of)X
68993662(the)X
69003796(table)X
69013987(was)X
69024147(known)X
69034400(in)X
69042706 2948(advance\),)N
69053054(entering)X
69063354(each)X
69073539(key/data)X
69083848(pair)X
69094010(into)X
69104171(the)X
69114306(table)X
69122706 3036(and)N
69132849(then)X
69143014(retrieving)X
69153353(each)X
69163528(key/data)X
69173827(pair)X
69183979(from)X
69194162(the)X
69204286(table.)X
69212706 3124(Each)N
69222898(of)X
69232996(the)X
69243125(graphs)X
69253369(shows)X
69263599(the)X
69273727(timings)X
69283996(resulting)X
69294306(from)X
69302706 3212(varying)N
69312973(the)X
69323093(pagesize)X
69333392(from)X
69343570(128)X
69353712(bytes)X
69363903(to)X
69373986(1M)X
69384118(and)X
69394255(the)X
69404374(\256ll)X
69412706 3300(factor)N
69422929(from)X
69433120(1)X
69443195(to)X
69453292(128.)X
69463486(For)X
69473631(each)X
69483813(run,)X
69493974(the)X
69504106(buffer)X
69514337(size)X
69522706 3388(was)N
69532874(set)X
69543006(at)X
69553106(1M.)X
69563299(The)X
69573466(tests)X
69583650(were)X
69593849(all)X
69603971(run)X
69614120(on)X
69624242(an)X
69634360(HP)X
69642706 3476(9000/370)N
69653077(\(33.3)X
69663312(Mhz)X
69673527(MC68030\),)X
69683966(with)X
69694176(16M)X
69704395(of)X
69712706 3564(memory,)N
69723042(64K)X
69733228(physically)X
69743605(addressed)X
69753970(cache,)X
69764222(and)X
69774386(an)X
69782706 3652(HP7959S)N
69793055(disk)X
69803231(drive,)X
69813459(running)X
69823751(4.3BSD-Reno)X
69834244(single-)X
69842706 3740(user.)N
69852878 3854(Both)N
69863066(system)X
69873321(time)X
69883496(\(Figure)X
69893764(5a\))X
69903899(and)X
69914047(elapsed)X
69924320(time)X
69932706 3942(\(Figure)N
69942966(5b\))X
69953097(show)X
69963290(that)X
69973434(for)X
69983552(all)X
69993655(bucket)X
70003892(sizes,)X
70014091(the)X
70024212(greatest)X
70032706 4030(performance)N
70043137(gains)X
70053329(are)X
70063451(made)X
70073648(by)X
70083751(increasing)X
70094104(the)X
70104225(\256ll)X
70114336(fac-)X
70122706 4118(tor)N
70132822(until)X
70142995(equation)X
70153298(1)X
70163365(is)X
70173445(satis\256ed.)X
70183774(The)X
70193925(user)X
70204085(time)X
70214253(shown)X
70222706 4206(in)N
70232791(Figure)X
70243023(5c)X
70253122(gives)X
70263314(a)X
70273373(more)X
70283561(detailed)X
70293838(picture)X
70304083(of)X
70314172(how)X
70324332(per-)X
70332706 4294(formance)N
70343054(varies.)X
70353330(The)X
70363499(smaller)X
70373778(bucket)X
70384035(sizes)X
70394234(require)X
70402706 4382(fewer)N
70412921(keys)X
70423099(per)X
70433233(page)X
70443416(to)X
70453509(satisfy)X
70463749(equation)X
70474056(1)X
70484127(and)X
70494274(there-)X
70502706 4470(fore)N
70512860(incur)X
70523049(fewer)X
70533257(collisions.)X
70543607(However,)X
70553946(when)X
70564144(the)X
70574265(buffer)X
70582706 4558(pool)N
70592884(size)X
70603045(is)X
70613134(\256xed,)X
70623349(smaller)X
70633620(pages)X
70643838(imply)X
70654059(more)X
70664259(pages.)X
70672706 4646(An)N
70682830(increased)X
70693160(number)X
70703430(of)X
70713522(pages)X
70723730(means)X
70733960(more)X
70742 f
70754150(malloc\(3\))X
70761 f
70772706 4734(calls)N
70782879(and)X
70793021(more)X
70803212(overhead)X
70813533(in)X
70823621(the)X
70833745(hash)X
70843918(package's)X
70854265(buffer)X
70862706 4822(manager)N
70873003(to)X
70883085(manage)X
70893355(the)X
70903473(additional)X
70913813(pages.)X
70922878 4936(The)N
70933028(tradeoff)X
70943308(works)X
70953529(out)X
70963655(most)X
70973834(favorably)X
70984166(when)X
70994364(the)X
71002706 5024(page)N
71012886(size)X
71023039(is)X
71033120(256)X
71043268(and)X
71053412(the)X
71063538(\256ll)X
71073654(factor)X
71083870(is)X
71093950(8.)X
71104057(Similar)X
71114319(con-)X
71122706 5112(clusions)N
71133009(were)X
71143207(obtained)X
71153524(if)X
71163614(the)X
71173753(test)X
71183905(was)X
71194071(run)X
71204218(without)X
71212706 5200(knowing)N
71223007(the)X
71233126(\256nal)X
71243289(table)X
71253466(size)X
71263612(in)X
71273695(advance.)X
71284020(If)X
71294095(the)X
71304214(\256le)X
71314337(was)X
71322706 5288(closed)N
71332942(and)X
71343088(written)X
71353345(to)X
71363437(disk,)X
71373620(the)X
71383748(conclusions)X
71394156(were)X
71404343(still)X
71412706 5376(the)N
71422832(same.)X
71433065(However,)X
71443408(rereading)X
71453740(the)X
71463865(\256le)X
71473994(from)X
71484177(disk)X
71494337(was)X
71502706 5464(slightly)N
71512983(faster)X
71523199(if)X
71533285(a)X
71543358(larger)X
71553583(bucket)X
71563834(size)X
71573996(and)X
71584149(\256ll)X
71594274(factor)X
71602706 5552(were)N
71612898(used)X
71623079(\(1K)X
71633238(bucket)X
71643486(size)X
71653645(and)X
71663795(32)X
71673909(\256ll)X
71684031(factor\).)X
71694320(This)X
71702706 5640(follows)N
71712987(intuitively)X
71723356(from)X
71733553(the)X
71743691(improved)X
71754038(ef\256ciency)X
71764395(of)X
71773 f
7178720 5960(USENIX)N
71799 f
71801042(-)X
71813 f
71821106(Winter)X
71831371('91)X
71849 f
71851498(-)X
71863 f
71871562(Dallas,)X
71881815(TX)X
71894424(7)X
7190
71918 p
7192%%Page: 8 8
71930(Courier)xf 0 f
719410 s 10 xH 0 xS 0 f
71953 f
7196432 258(A)N
7197510(New)X
7198682(Hashing)X
7199985(Package)X
72001290(for)X
72011413(UNIX)X
72023663(Seltzer)X
72033920(&)X
72044007(Yigit)X
72051 f
7206432 538(performing)N
7207830(1K)X
7208965(reads)X
72091172(from)X
72101365(the)X
72111500(disk)X
72121670(rather)X
72131894(than)X
72142068(256)X
7215432 626(byte)N
7216609(reads.)X
7217857(In)X
7218962(general,)X
72191257(performance)X
72201702(for)X
72211834(disk)X
72222005(based)X
7223432 714(tables)N
7224639(is)X
7225712(best)X
7226861(when)X
72271055(the)X
72281173(page)X
72291345(size)X
72301490(is)X
72311563(approximately)X
72322046(1K.)X
723310 f
7234432 802 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
7235619 2380 MXY
7236-12 24 Dl
723724 0 Dl
7238-12 -24 Dl
7239629 2437 MXY
7240-12 24 Dl
724124 0 Dl
7242-12 -24 Dl
7243648 2504 MXY
7244-12 25 Dl
724524 0 Dl
7246-12 -25 Dl
7247686 2515 MXY
7248-12 24 Dl
724924 0 Dl
7250-12 -24 Dl
7251762 2516 MXY
7252-12 24 Dl
725325 0 Dl
7254-13 -24 Dl
7255916 2515 MXY
7256-13 24 Dl
725725 0 Dl
7258-12 -24 Dl
72591222 2516 MXY
7260-12 24 Dl
726124 0 Dl
7262-12 -24 Dl
72631834 2515 MXY
7264-12 24 Dl
726524 0 Dl
7266-12 -24 Dl
72671 Dt
7268619 2392 MXY
726910 57 Dl
727019 67 Dl
727138 11 Dl
727276 1 Dl
7273154 -1 Dl
7274306 1 Dl
7275612 -1 Dl
72768 s
72771 f
72781628 2522(128)N
72793 Dt
7280607 2245 MXY
728124 Dc
7282617 2375 MXY
728323 Dc
7284635 2442 MXY
728524 Dc
7286674 2525 MXY
728723 Dc
7288750 2529 MXY
728924 Dc
7290904 2527 MXY
729123 Dc
72921210 MX
729323 Dc
72941822 2528 MXY
729523 Dc
729620 Ds
72971 Dt
7298619 2245 MXY
729910 130 Dl
730019 67 Dl
730138 83 Dl
730276 4 Dl
7303154 -2 Dl
7304306 0 Dl
7305612 1 Dl
7306678 2482(256)N
7307-1 Ds
73083 Dt
7309619 2127 MXY
73100 24 Dl
73110 -12 Dl
731212 0 Dl
7313-24 0 Dl
7314629 2191 MXY
73150 25 Dl
73160 -12 Dl
731712 0 Dl
7318-24 0 Dl
7319648 2334 MXY
73200 24 Dl
73210 -12 Dl
732212 0 Dl
7323-24 0 Dl
7324686 2409 MXY
73250 25 Dl
73260 -13 Dl
732712 0 Dl
7328-24 0 Dl
7329762 2516 MXY
73300 25 Dl
73310 -12 Dl
733213 0 Dl
7333-25 0 Dl
7334916 2516 MXY
73350 24 Dl
73360 -12 Dl
733712 0 Dl
7338-25 0 Dl
73391222 2515 MXY
73400 24 Dl
73410 -12 Dl
734212 0 Dl
7343-24 0 Dl
73441834 2515 MXY
73450 24 Dl
73460 -12 Dl
734712 0 Dl
7348-24 0 Dl
73495 Dt
7350619 2139 MXY
735110 65 Dl
735219 142 Dl
735338 75 Dl
735476 108 Dl
7355154 -1 Dl
7356306 -1 Dl
7357612 0 Dl
7358694 2401(512)N
73593 Dt
7360631 2064 MXY
7361-24 24 Dl
736212 -12 Dl
7363-12 -12 Dl
736424 24 Dl
7365641 2077 MXY
7366-24 25 Dl
736712 -12 Dl
7368-12 -13 Dl
736924 25 Dl
7370660 2132 MXY
7371-24 24 Dl
737212 -12 Dl
7373-12 -12 Dl
737424 24 Dl
7375698 2292 MXY
7376-24 24 Dl
737712 -12 Dl
7378-12 -12 Dl
737924 24 Dl
7380775 2382 MXY
7381-25 24 Dl
738212 -12 Dl
7383-12 -12 Dl
738425 24 Dl
7385928 2516 MXY
7386-25 24 Dl
738713 -12 Dl
7388-13 -12 Dl
738925 24 Dl
73901234 2516 MXY
7391-24 25 Dl
739212 -12 Dl
7393-12 -13 Dl
739424 25 Dl
73951846 2516 MXY
7396-24 24 Dl
739712 -12 Dl
7398-12 -12 Dl
739924 24 Dl
740016 Ds
74011 Dt
7402619 2076 MXY
740310 14 Dl
740419 54 Dl
740538 160 Dl
740676 90 Dl
7407154 134 Dl
7408306 1 Dl
7409612 -1 Dl
7410694 2257(1024)N
7411-1 Ds
74123 Dt
7413619 1877 MXY
741412 -24 Dl
7415-24 0 Dl
741612 24 Dl
7417629 1855 MXY
741812 -24 Dl
7419-24 0 Dl
742012 24 Dl
7421648 1838 MXY
742212 -24 Dl
7423-24 0 Dl
742412 24 Dl
7425686 1860 MXY
742612 -25 Dl
7427-24 0 Dl
742812 25 Dl
7429762 1923 MXY
743013 -24 Dl
7431-25 0 Dl
743212 24 Dl
7433916 2087 MXY
743412 -24 Dl
7435-25 0 Dl
743613 24 Dl
74371222 2256 MXY
743812 -24 Dl
7439-24 0 Dl
744012 24 Dl
74411834 2541 MXY
744212 -25 Dl
7443-24 0 Dl
744412 25 Dl
7445619 1865 MXY
744610 -22 Dl
744719 -17 Dl
744838 21 Dl
744976 64 Dl
7450154 164 Dl
7451306 169 Dl
7452612 285 Dl
74531645 2427(4096)N
7454619 1243 MXY
74550 24 Dl
74560 -12 Dl
745712 0 Dl
7458-24 0 Dl
7459629 1196 MXY
74600 24 Dl
74610 -12 Dl
746212 0 Dl
7463-24 0 Dl
7464648 1146 MXY
74650 24 Dl
74660 -12 Dl
746712 0 Dl
7468-24 0 Dl
7469686 1174 MXY
74700 25 Dl
74710 -13 Dl
747212 0 Dl
7473-24 0 Dl
7474762 1249 MXY
74750 24 Dl
74760 -12 Dl
747713 0 Dl
7478-25 0 Dl
7479916 1371 MXY
74800 24 Dl
74810 -12 Dl
748212 0 Dl
7483-25 0 Dl
74841222 1680 MXY
74850 24 Dl
74860 -12 Dl
748712 0 Dl
7488-24 0 Dl
74891834 1999 MXY
74900 24 Dl
74910 -12 Dl
749212 0 Dl
7493-24 0 Dl
7494619 1255 MXY
749510 -47 Dl
749619 -50 Dl
749738 28 Dl
749876 75 Dl
7499154 122 Dl
7500306 309 Dl
7501612 319 Dl
75021741 1934(8192)N
75035 Dt
7504609 2531 MXY
75051225 0 Dl
7506609 MX
75070 -1553 Dl
75082531 MY
75090 16 Dl
75104 Ds
75111 Dt
75122531 MY
75130 -1553 Dl
7514593 2625(0)N
7515-1 Ds
75165 Dt
7517916 2531 MXY
75180 16 Dl
75194 Ds
75201 Dt
75212531 MY
75220 -1553 Dl
7523884 2625(32)N
7524-1 Ds
75255 Dt
75261222 2531 MXY
75270 16 Dl
75284 Ds
75291 Dt
75302531 MY
75310 -1553 Dl
75321190 2625(64)N
7533-1 Ds
75345 Dt
75351528 2531 MXY
75360 16 Dl
75374 Ds
75381 Dt
75392531 MY
75400 -1553 Dl
75411496 2625(96)N
7542-1 Ds
75435 Dt
75441834 2531 MXY
75450 16 Dl
75464 Ds
75471 Dt
75482531 MY
75490 -1553 Dl
75501786 2625(128)N
7551-1 Ds
75525 Dt
7553609 2531 MXY
7554-16 0 Dl
75554 Ds
75561 Dt
7557609 MX
75581225 0 Dl
7559545 2558(0)N
7560-1 Ds
75615 Dt
7562609 2013 MXY
7563-16 0 Dl
75644 Ds
75651 Dt
7566609 MX
75671225 0 Dl
7568481 2040(100)N
7569-1 Ds
75705 Dt
7571609 1496 MXY
7572-16 0 Dl
75734 Ds
75741 Dt
7575609 MX
75761225 0 Dl
7577481 1523(200)N
7578-1 Ds
75795 Dt
7580609 978 MXY
7581-16 0 Dl
75824 Ds
75831 Dt
7584609 MX
75851225 0 Dl
7586481 1005(300)N
75871088 2724(Fill)N
75881194(Factor)X
7589422 1611(S)N
7590426 1667(e)N
7591426 1724(c)N
7592424 1780(o)N
7593424 1837(n)N
7594424 1893(d)N
7595428 1949(s)N
75963 Dt
7597-1 Ds
75983 f
7599432 2882(Figure)N
7600636(5a:)X
76011 f
7602744(System)X
7603956(Time)X
76041113(for)X
76051209(dictionary)X
76061490(data)X
76071618(set)X
76081711(with)X
76091847(1M)X
76101958(of)X
76112033(buffer)X
7612432 2970(space)N
7613594(and)X
7614707(varying)X
7615923(bucket)X
76161114(sizes)X
76171259(and)X
76181372(\256ll)X
76191465(factors.)X
76201675(Each)X
76211823(line)X
76221940(is)X
76232004(labeled)X
7624432 3058(with)N
7625562(its)X
7626639(bucket)X
7627825(size.)X
762810 s
762910 f
7630432 3234 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
76318 s
76321 f
7633428 4381(s)N
7634424 4325(d)N
7635424 4269(n)N
7636424 4212(o)N
7637426 4156(c)N
7638426 4099(e)N
7639422 4043(S)N
76401116 5156(Fill)N
76411222(Factor)X
7642506 3437(3200)N
76434 Ds
76441 Dt
7645666 3410 MXY
76461168 0 Dl
7647-1 Ds
76485 Dt
7649666 MX
7650-16 0 Dl
7651506 3825(2400)N
76524 Ds
76531 Dt
7654666 3799 MXY
76551168 0 Dl
7656-1 Ds
76575 Dt
7658666 MX
7659-16 0 Dl
7660506 4214(1600)N
76614 Ds
76621 Dt
7663666 4186 MXY
76641168 0 Dl
7665-1 Ds
76665 Dt
7667666 MX
7668-16 0 Dl
7669538 4602(800)N
76704 Ds
76711 Dt
7672666 4575 MXY
76731168 0 Dl
7674-1 Ds
76755 Dt
7676666 MX
7677-16 0 Dl
7678602 4990(0)N
76794 Ds
76801 Dt
7681666 4963 MXY
76821168 0 Dl
7683-1 Ds
76845 Dt
7685666 MX
7686-16 0 Dl
76871786 5057(128)N
76884 Ds
76891 Dt
76901834 4963 MXY
76910 -1553 Dl
7692-1 Ds
76935 Dt
76944963 MY
76950 16 Dl
76961510 5057(96)N
76974 Ds
76981 Dt
76991542 4963 MXY
77000 -1553 Dl
7701-1 Ds
77025 Dt
77034963 MY
77040 16 Dl
77051218 5057(64)N
77064 Ds
77071 Dt
77081250 4963 MXY
77090 -1553 Dl
7710-1 Ds
77115 Dt
77124963 MY
77130 16 Dl
7714926 5057(32)N
77154 Ds
77161 Dt
7717958 4963 MXY
77180 -1553 Dl
7719-1 Ds
77205 Dt
77214963 MY
77220 16 Dl
7723650 5057(0)N
77244 Ds
77251 Dt
7726666 4963 MXY
77270 -1553 Dl
7728-1 Ds
77295 Dt
77304963 MY
77310 16 Dl
77324963 MY
77330 -1553 Dl
77344963 MY
77351168 0 Dl
77361741 4752(8192)N
77373 Dt
7738675 3732 MXY
77399 -172 Dl
774018 -118 Dl
774137 128 Dl
774273 -121 Dl
7743146 623 Dl
7744292 497 Dl
7745584 245 Dl
77464802 MY
77470 24 Dl
77480 -12 Dl
774912 0 Dl
7750-24 0 Dl
77511250 4557 MXY
77520 25 Dl
77530 -13 Dl
775412 0 Dl
7755-24 0 Dl
7756958 4060 MXY
77570 24 Dl
77580 -12 Dl
775912 0 Dl
7760-24 0 Dl
7761812 3437 MXY
77620 24 Dl
77630 -12 Dl
776412 0 Dl
7765-24 0 Dl
7766739 3558 MXY
77670 24 Dl
77680 -12 Dl
776912 0 Dl
7770-24 0 Dl
7771702 3430 MXY
77720 25 Dl
77730 -13 Dl
777413 0 Dl
7775-25 0 Dl
7776684 3548 MXY
77770 24 Dl
77780 -12 Dl
777912 0 Dl
7780-24 0 Dl
7781675 3720 MXY
77820 24 Dl
77830 -12 Dl
778412 0 Dl
7785-24 0 Dl
77861637 4912(4096)N
7787675 4307 MXY
77889 -58 Dl
778918 30 Dl
779037 89 Dl
779173 144 Dl
7792146 235 Dl
7793292 122 Dl
7794584 89 Dl
77954970 MY
779612 -24 Dl
7797-24 0 Dl
779812 24 Dl
77991250 4881 MXY
780012 -24 Dl
7801-24 0 Dl
780212 24 Dl
7803958 4759 MXY
780412 -24 Dl
7805-24 0 Dl
780612 24 Dl
7807812 4524 MXY
780812 -24 Dl
7809-24 0 Dl
781012 24 Dl
7811739 4380 MXY
781212 -24 Dl
7813-24 0 Dl
781412 24 Dl
7815702 4291 MXY
781613 -24 Dl
7817-25 0 Dl
781812 24 Dl
7819684 4261 MXY
782012 -24 Dl
7821-24 0 Dl
782212 24 Dl
7823675 4319 MXY
782412 -24 Dl
7825-24 0 Dl
782612 24 Dl
7827734 4662(1024)N
782816 Ds
78291 Dt
7830675 4352 MXY
78319 60 Dl
783218 134 Dl
783337 266 Dl
783473 117 Dl
7835146 30 Dl
7836292 0 Dl
7837584 -1 Dl
7838-1 Ds
78393 Dt
78401846 4946 MXY
7841-24 24 Dl
784212 -12 Dl
7843-12 -12 Dl
784424 24 Dl
78451262 4946 MXY
7846-24 25 Dl
784712 -12 Dl
7848-12 -13 Dl
784924 25 Dl
7850970 4947 MXY
7851-24 24 Dl
785212 -12 Dl
7853-12 -12 Dl
785424 24 Dl
7855824 4917 MXY
7856-24 24 Dl
785712 -12 Dl
7858-12 -12 Dl
785924 24 Dl
7860751 4800 MXY
7861-24 24 Dl
786212 -12 Dl
7863-12 -12 Dl
786424 24 Dl
7865715 4534 MXY
7866-25 25 Dl
786712 -13 Dl
7868-12 -12 Dl
786925 25 Dl
7870696 4400 MXY
7871-24 24 Dl
787212 -12 Dl
7873-12 -12 Dl
787424 24 Dl
7875687 4339 MXY
7876-24 25 Dl
787712 -12 Dl
7878-12 -13 Dl
787924 25 Dl
7880718 4792(512)N
78815 Dt
7882675 4422 MXY
78839 137 Dl
788418 278 Dl
788537 105 Dl
788673 18 Dl
7887146 -1 Dl
7888292 0 Dl
7889584 -1 Dl
78903 Dt
78914946 MY
78920 24 Dl
78930 -12 Dl
789412 0 Dl
7895-24 0 Dl
78961250 4946 MXY
78970 25 Dl
78980 -12 Dl
789912 0 Dl
7900-24 0 Dl
7901958 4947 MXY
79020 24 Dl
79030 -12 Dl
790412 0 Dl
7905-24 0 Dl
7906812 4948 MXY
79070 24 Dl
79080 -12 Dl
790912 0 Dl
7910-24 0 Dl
7911739 4930 MXY
79120 24 Dl
79130 -12 Dl
791412 0 Dl
7915-24 0 Dl
7916702 4824 MXY
79170 25 Dl
79180 -12 Dl
791913 0 Dl
7920-25 0 Dl
7921684 4547 MXY
79220 24 Dl
79230 -12 Dl
792412 0 Dl
7925-24 0 Dl
7926675 4410 MXY
79270 25 Dl
79280 -13 Dl
792912 0 Dl
7930-24 0 Dl
7931750 4921(256)N
793220 Ds
79331 Dt
7934675 4597 MXY
79359 246 Dl
793618 106 Dl
793737 10 Dl
793873 0 Dl
7939146 0 Dl
7940292 0 Dl
7941584 -1 Dl
7942-1 Ds
79433 Dt
79441822 MX
794523 Dc
79461238 4959 MXY
794723 Dc
7948946 MX
794923 Dc
7950800 MX
795123 Dc
7952727 MX
795323 Dc
7954691 4949 MXY
795523 Dc
7956672 4843 MXY
795724 Dc
7958663 4597 MXY
795924 Dc
79601395 4961(128)N
79611 Dt
7962675 4855 MXY
79639 93 Dl
796418 10 Dl
796537 1 Dl
796673 0 Dl
7967146 -1 Dl
7968292 0 Dl
7969584 0 Dl
79703 Dt
79714946 MY
7972-12 24 Dl
797324 0 Dl
7974-12 -24 Dl
79751250 MX
7976-12 24 Dl
797724 0 Dl
7978-12 -24 Dl
7979958 MX
7980-12 24 Dl
798124 0 Dl
7982-12 -24 Dl
7983812 MX
7984-12 25 Dl
798524 0 Dl
7986-12 -25 Dl
7987739 4947 MXY
7988-12 24 Dl
798924 0 Dl
7990-12 -24 Dl
7991702 4946 MXY
7992-12 24 Dl
799325 0 Dl
7994-13 -24 Dl
7995684 4936 MXY
7996-12 24 Dl
799724 0 Dl
7998-12 -24 Dl
7999675 4843 MXY
8000-12 24 Dl
800124 0 Dl
8002-12 -24 Dl
80033 Dt
8004-1 Ds
80053 f
8006432 5314(Figure)N
8007634(5b:)X
80081 f
8009744(Elapsed)X
8010967(Time)X
80111123(for)X
80121218(dictionary)X
80131498(data)X
80141625(set)X
80151717(with)X
80161851(1M)X
80171960(of)X
80182033(buffer)X
8019432 5402(space)N
8020593(and)X
8021705(varying)X
8022920(bucket)X
80231110(sizes)X
80241254(and)X
80251366(\256ll)X
80261457(factors.)X
80271681(Each)X
80281827(line)X
80291942(is)X
80302004(labeled)X
8031432 5490(with)N
8032562(its)X
8033639(bucket)X
8034825(size.)X
803510 s
80362590 538(If)N
80372677(an)X
80382785(approximation)X
80393284(of)X
80403383(the)X
80413513(number)X
80423790(of)X
80433889(elements)X
80442418 626(ultimately)N
80452773(to)X
80462866(be)X
80472973(stored)X
80483200(in)X
80493293(the)X
80503422(hash)X
80513599(table)X
80523785(is)X
80533868(known)X
80544116(at)X
80552418 714(the)N
80562564(time)X
80572754(of)X
80582869(creation,)X
80593196(the)X
80603342(hash)X
80613536(package)X
80623847(takes)X
80634059(this)X
80642418 802(number)N
80652688(as)X
80662779(a)X
80672839(parameter)X
80683185(and)X
80693325(uses)X
80703487(it)X
80713555(to)X
80723641(hash)X
80733812(entries)X
80744050(into)X
80752418 890(the)N
80762541(full)X
80772677(sized)X
80782867(table)X
80793048(rather)X
80803261(than)X
80813424(growing)X
80823716(the)X
80833838(table)X
80844018(from)X
80852418 978(a)N
80862477(single)X
80872691(bucket.)X
80882968(If)X
80893044(this)X
80903181(number)X
80913448(is)X
80923523(not)X
80933647(known,)X
80943907(the)X
80954027(hash)X
80962418 1066(table)N
80972632(starts)X
80982859(with)X
80993059(a)X
81003153(single)X
81013402(bucket)X
81023674(and)X
81033848(gracefully)X
81042418 1154(expands)N
81052707(as)X
81062800(elements)X
81073111(are)X
81083236(added,)X
81093474(although)X
81103780(a)X
81113842(slight)X
81124044(per-)X
81132418 1242(formance)N
81142747(degradation)X
81153151(may)X
81163313(be)X
81173413(noticed.)X
81183713(Figure)X
81193946(6)X
81204010(illus-)X
81212418 1330(trates)N
81222625(the)X
81232756(difference)X
81243116(in)X
81253211(performance)X
81263651(between)X
81273952(storing)X
81282418 1418(keys)N
81292588(in)X
81302673(a)X
81312732(\256le)X
81322857(when)X
81333054(the)X
81343174(ultimate)X
81353458(size)X
81363605(is)X
81373680(known)X
81383920(\(the)X
81394067(left)X
81402418 1506(bars)N
81412581(in)X
81422672(each)X
81432849(set\),)X
81443014(compared)X
81453360(to)X
81463450(building)X
81473744(the)X
81483870(\256le)X
81494000(when)X
81502418 1594(the)N
81512550(ultimate)X
81522846(size)X
81533005(is)X
81543091(unknown)X
81553422(\(the)X
81563580(right)X
81573764(bars)X
81583931(in)X
81594026(each)X
81602418 1682(set\).)N
81612609(Once)X
81622814(the)X
81632947(\256ll)X
81643069(factor)X
81653291(is)X
81663378(suf\256ciently)X
81673772(high)X
81683948(for)X
81694076(the)X
81702418 1770(page)N
81712596(size)X
81722747(\(8\),)X
81732887(growing)X
81743180(the)X
81753304(table)X
81763486(dynamically)X
81773908(does)X
81784081(lit-)X
81792418 1858(tle)N
81802518(to)X
81812600(degrade)X
81822875(performance.)X
818310 f
81842418 1946 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
81859 s
81861 f
81872413 3238(s)N
81882409 3173(d)N
81892409 3108(n)N
81902409 3043(o)N
81912411 2979(c)N
81922411 2914(e)N
81932407 2849(S)N
81943143 4129(Fill)N
81953261(Factor)X
81962448 2152(15)N
81974 Ds
81981 Dt
81992557 2122 MXY
82001473 0 Dl
8201-1 Ds
82025 Dt
82032557 MX
8204-19 0 Dl
82052448 2747(10)N
82064 Ds
82071 Dt
82082557 2717 MXY
82091473 0 Dl
8210-1 Ds
82115 Dt
82122557 MX
8213-19 0 Dl
82142484 3343(5)N
82154 Ds
82161 Dt
82172557 3313 MXY
82181473 0 Dl
8219-1 Ds
82205 Dt
82212557 MX
8222-19 0 Dl
82232484 3938(0)N
82244 Ds
82251 Dt
82262557 3908 MXY
82271473 0 Dl
8228-1 Ds
82295 Dt
82302557 MX
8231-19 0 Dl
82323976 4015(128)N
82334 Ds
82341 Dt
82354030 3908 MXY
82360 -1786 Dl
8237-1 Ds
82385 Dt
82393908 MY
82400 19 Dl
82413626 4015(96)N
82424 Ds
82431 Dt
82443662 3908 MXY
82450 -1786 Dl
8246-1 Ds
82475 Dt
82483908 MY
82490 19 Dl
82503258 4015(64)N
82514 Ds
82521 Dt
82533294 3908 MXY
82540 -1786 Dl
8255-1 Ds
82565 Dt
82573908 MY
82580 19 Dl
82592889 4015(32)N
82604 Ds
82611 Dt
82622925 3908 MXY
82630 -1786 Dl
8264-1 Ds
82655 Dt
82663908 MY
82670 19 Dl
82682539 4015(0)N
82694 Ds
82701 Dt
82712557 3908 MXY
82720 -1786 Dl
8273-1 Ds
82745 Dt
82753908 MY
82760 19 Dl
82773908 MY
82780 -1786 Dl
82793908 MY
82801473 0 Dl
82814053 2378(8192)N
82823 Dt
82832569 2277 MXY
828411 0 Dl
828523 48 Dl
828646 -167 Dl
828792 35 Dl
8288184 12 Dl
8289369 143 Dl
8290736 0 Dl
82912334 MY
82920 28 Dl
82930 -14 Dl
829414 0 Dl
8295-28 0 Dl
82963294 2334 MXY
82970 28 Dl
82980 -14 Dl
829913 0 Dl
8300-27 0 Dl
83012925 2192 MXY
83020 27 Dl
83030 -14 Dl
830414 0 Dl
8305-28 0 Dl
83062741 2180 MXY
83070 27 Dl
83080 -14 Dl
830914 0 Dl
8310-28 0 Dl
83112649 2144 MXY
83120 28 Dl
83130 -14 Dl
831414 0 Dl
8315-28 0 Dl
83162603 2311 MXY
83170 27 Dl
83180 -13 Dl
831914 0 Dl
8320-28 0 Dl
83212580 2263 MXY
83220 28 Dl
83230 -14 Dl
832414 0 Dl
8325-28 0 Dl
83262569 2263 MXY
83270 28 Dl
83280 -14 Dl
832913 0 Dl
8330-27 0 Dl
83314053 2591(4096)N
83322569 2348 MXY
833311 -11 Dl
833423 -96 Dl
833546 71 Dl
833692 72 Dl
8337184 226 Dl
8338369 48 Dl
8339736 -60 Dl
83402612 MY
834114 -28 Dl
8342-28 0 Dl
834314 28 Dl
83443294 2672 MXY
834513 -28 Dl
8346-27 0 Dl
834714 28 Dl
83482925 2624 MXY
834914 -28 Dl
8350-28 0 Dl
835114 28 Dl
83522741 2398 MXY
835314 -28 Dl
8354-28 0 Dl
835514 28 Dl
83562649 2326 MXY
835714 -27 Dl
8358-28 0 Dl
835914 27 Dl
83602603 2255 MXY
836114 -28 Dl
8362-28 0 Dl
836314 28 Dl
83642580 2350 MXY
836514 -27 Dl
8366-28 0 Dl
836714 27 Dl
83682569 2362 MXY
836913 -28 Dl
8370-27 0 Dl
837114 28 Dl
83724053 2681(1024)N
837316 Ds
83741 Dt
83752569 2300 MXY
837611 48 Dl
837723 96 Dl
837846 95 Dl
837992 274 Dl
8380184 202 Dl
8381369 -155 Dl
8382736 -190 Dl
8383-1 Ds
83843 Dt
83854044 2656 MXY
8386-28 28 Dl
838714 -14 Dl
8388-14 -14 Dl
838928 28 Dl
83903307 2846 MXY
8391-27 28 Dl
839214 -14 Dl
8393-14 -14 Dl
839427 28 Dl
83952939 3001 MXY
8396-28 28 Dl
839714 -14 Dl
8398-14 -14 Dl
839928 28 Dl
84002755 2799 MXY
8401-28 28 Dl
840214 -14 Dl
8403-14 -14 Dl
840428 28 Dl
84052663 2525 MXY
8406-28 28 Dl
840714 -14 Dl
8408-14 -14 Dl
840928 28 Dl
84102617 2430 MXY
8411-28 28 Dl
841214 -14 Dl
8413-14 -14 Dl
841428 28 Dl
84152594 2334 MXY
8416-28 28 Dl
841714 -14 Dl
8418-14 -14 Dl
841928 28 Dl
84202582 2287 MXY
8421-27 27 Dl
842214 -14 Dl
8423-14 -13 Dl
842427 27 Dl
84254053 2851(512)N
84265 Dt
84272569 2372 MXY
842811 -24 Dl
842923 405 Dl
843046 83 Dl
843192 227 Dl
8432184 -72 Dl
8433369 -119 Dl
8434736 -107 Dl
84353 Dt
84362751 MY
84370 28 Dl
84380 -14 Dl
843914 0 Dl
8440-28 0 Dl
84413294 2858 MXY
84420 28 Dl
84430 -14 Dl
844413 0 Dl
8445-27 0 Dl
84462925 2977 MXY
84470 28 Dl
84480 -14 Dl
844914 0 Dl
8450-28 0 Dl
84512741 3049 MXY
84520 27 Dl
84530 -13 Dl
845414 0 Dl
8455-28 0 Dl
84562649 2823 MXY
84570 27 Dl
84580 -14 Dl
845914 0 Dl
8460-28 0 Dl
84612603 2739 MXY
84620 28 Dl
84630 -14 Dl
846414 0 Dl
8465-28 0 Dl
84662580 2334 MXY
84670 28 Dl
84680 -14 Dl
846914 0 Dl
8470-28 0 Dl
84712569 2358 MXY
84720 28 Dl
84730 -14 Dl
847413 0 Dl
8475-27 0 Dl
84764053 2795(256)N
847720 Ds
84781 Dt
84792569 2456 MXY
848011 285 Dl
848123 95 Dl
848246 251 Dl
848392 -60 Dl
8484184 -84 Dl
8485369 -107 Dl
8486736 -71 Dl
8487-1 Ds
84883 Dt
84894016 MX
849027 Dc
84913280 2836 MXY
849227 Dc
84932912 2943 MXY
849427 Dc
84952728 3027 MXY
849627 Dc
84972635 3087 MXY
849828 Dc
84992589 2836 MXY
850028 Dc
85012566 2741 MXY
850227 Dc
85032554 2456 MXY
850428 Dc
85054053 2741(128)N
85061 Dt
85072569 2729 MXY
850811 203 Dl
850923 131 Dl
851046 -60 Dl
851192 -119 Dl
8512184 -60 Dl
8513369 -83 Dl
8514736 -12 Dl
85153 Dt
85162716 MY
8517-14 27 Dl
851828 0 Dl
8519-14 -27 Dl
85203294 2727 MXY
8521-14 28 Dl
852227 0 Dl
8523-13 -28 Dl
85242925 2811 MXY
8525-14 27 Dl
852628 0 Dl
8527-14 -27 Dl
85282741 2870 MXY
8529-14 28 Dl
853028 0 Dl
8531-14 -28 Dl
85322649 2989 MXY
8533-14 28 Dl
853428 0 Dl
8535-14 -28 Dl
85362603 3049 MXY
8537-14 27 Dl
853828 0 Dl
8539-14 -27 Dl
85402580 2918 MXY
8541-14 28 Dl
854228 0 Dl
8543-14 -28 Dl
85442569 2716 MXY
8545-14 27 Dl
854627 0 Dl
8547-13 -27 Dl
85483 Dt
8549-1 Ds
85503 f
85518 s
85522418 4286(Figure)N
85532628(5c:)X
85541 f
85552738(User)X
85562887(Time)X
85573051(for)X
85583154(dictionary)X
85593442(data)X
85603577(set)X
85613677(with)X
85623820(1M)X
85633938(of)X
85644019(buffer)X
85652418 4374(space)N
85662579(and)X
85672691(varying)X
85682906(bucket)X
85693096(sizes)X
85703240(and)X
85713352(\256ll)X
85723443(factors.)X
85733667(Each)X
85743813(line)X
85753928(is)X
85763990(labeled)X
85772418 4462(with)N
85782548(its)X
85792625(bucket)X
85802811(size.)X
858110 s
858210 f
85832418 4638 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
85841 f
85852590 4840(Since)N
85862796(no)X
85872904(known)X
85883150(hash)X
85893325(function)X
85903620(performs)X
85913938(equally)X
85922418 4928(well)N
85932589(on)X
85942702(all)X
85952815(possible)X
85963110(data,)X
85973297(the)X
85983428(user)X
85993595(may)X
86003766(\256nd)X
86013923(that)X
86024076(the)X
86032418 5016(built-in)N
86042678(hash)X
86052849(function)X
86063140(does)X
86073311(poorly)X
86083544(on)X
86093648(a)X
86103708(particular)X
86114040(data)X
86122418 5104(set.)N
86132548(In)X
86142636(this)X
86152771(case,)X
86162950(a)X
86173006(hash)X
86183173(function,)X
86193480(taking)X
86203700(two)X
86213840(arguments)X
86222418 5192(\(a)N
86232507(pointer)X
86242760(to)X
86252848(a)X
86262910(byte)X
86273074(string)X
86283282(and)X
86293424(a)X
86303486(length\))X
86313739(and)X
86323880(returning)X
86332418 5280(an)N
86342517(unsigned)X
86352829(long)X
86362993(to)X
86373077(be)X
86383175(used)X
86393344(as)X
86403433(the)X
86413553(hash)X
86423722(value,)X
86433938(may)X
86444098(be)X
86452418 5368(speci\256ed)N
86462731(at)X
86472817(hash)X
86482992(table)X
86493176(creation)X
86503463(time.)X
86513673(When)X
86523893(an)X
86533996(exist-)X
86542418 5456(ing)N
86552570(hash)X
86562767(table)X
86572973(is)X
86583076(opened)X
86593358(and)X
86603524(a)X
86613609(hash)X
86623805(function)X
86634121(is)X
86642418 5544(speci\256ed,)N
86652752(the)X
86662879(hash)X
86673054(package)X
86683346(will)X
86693498(try)X
86703615(to)X
86713705(determine)X
86724054(that)X
86732418 5632(the)N
86742546(hash)X
86752723(function)X
86763020(supplied)X
86773321(is)X
86783404(the)X
86793532(one)X
86803678(with)X
86813850(which)X
86824076(the)X
86832418 5720(table)N
86842630(was)X
86852811(created.)X
86863139(There)X
86873382(are)X
86883536(a)X
86893627(variety)X
86903905(of)X
86914027(hash)X
86923 f
8693432 5960(8)N
86942970(USENIX)X
86959 f
86963292(-)X
86973 f
86983356(Winter)X
86993621('91)X
87009 f
87013748(-)X
87023 f
87033812(Dallas,)X
87044065(TX)X
8705
87069 p
8707%%Page: 9 9
87080(Courier)xf 0 f
870910 s 10 xH 0 xS 0 f
87103 f
8711720 258(Seltzer)N
8712977(&)X
87131064(Yigit)X
87143278(A)X
87153356(New)X
87163528(Hashing)X
87173831(Package)X
87184136(for)X
87194259(UNIX)X
87201 f
8721720 538(functions)N
87221065(provided)X
87231397(with)X
87241586(the)X
87251731(package.)X
87262082(The)X
87272253(default)X
8728720 626(function)N
87291014(for)X
87301135(the)X
87311260(package)X
87321551(is)X
87331631(the)X
87341755(one)X
87351897(which)X
87362119(offered)X
87372378(the)X
8738720 714(best)N
8739875(performance)X
87401308(in)X
87411396(terms)X
87421600(of)X
87431693(cycles)X
87441920(executed)X
87452232(per)X
87462360(call)X
8747720 802(\(it)N
8748827(did)X
8749965(not)X
87501103(produce)X
87511398(the)X
87521531(fewest)X
87531776(collisions)X
87542117(although)X
87552432(it)X
8756720 890(was)N
8757866(within)X
87581091(a)X
87591148(small)X
87601341(percentage)X
87611710(of)X
87621797(the)X
87631915(function)X
87642202(that)X
87652342(pro-)X
8766720 978(duced)N
8767947(the)X
87681080(fewest)X
87691324(collisions\).)X
87701731(Again,)X
87711981(in)X
87722077(time)X
87732253(critical)X
8774720 1066(applications,)N
87751152(users)X
87761342(are)X
87771466(encouraged)X
87781862(to)X
87791949(experiment)X
87802334(with)X
8781720 1154(a)N
8782783(variety)X
87831032(of)X
87841125(hash)X
87851298(functions)X
87861622(to)X
87871710(achieve)X
87881982(optimal)X
87892252(perfor-)X
8790720 1242(mance.)N
879110 f
8792720 1330 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
87933 f
87947 s
87951038 2925(Full)N
87961149(size)X
87971251(table)X
87981384(\(left\))X
87991547 2718(Fill)N
88001643(Factor)X
88012268 2662(64)N
88021964(32)X
88031674(16)X
88041384(8)X
88051093(4)X
88064 Ds
88071 Dt
8808900 2280 MXY
88091548 0 Dl
8810900 1879 MXY
88111548 0 Dl
8812900 1506 MXY
88131548 0 Dl
88141563 2902 MXY
8815111 0 Dl
8816-1 Ds
8817900 MX
8818110 0 Dl
88191425 2828(System)N
8820983(User)X
88211895 2778 MXY
8822 1895 2778 lineto
8823 1950 2778 lineto
8824 1950 2833 lineto
8825 1895 2833 lineto
8826 1895 2778 lineto
8827closepath 21 1895 2778 1950 2833 Dp
88281342 MX
8829 1342 2778 lineto
8830 1397 2778 lineto
8831 1397 2833 lineto
8832 1342 2833 lineto
8833 1342 2778 lineto
8834closepath 14 1342 2778 1397 2833 Dp
8835900 MX
8836 900 2778 lineto
8837 955 2778 lineto
8838 955 2833 lineto
8839 900 2833 lineto
8840 900 2778 lineto
8841closepath 3 900 2778 955 2833 Dp
88425 Dt
88432283 2211 MXY
884496 0 Dl
88451992 MX
884697 0 Dl
88471702 MX
884897 0 Dl
88491411 2252 MXY
885097 0 Dl
88514 Ds
88521 Dt
88532283 2211 MXY
8854 2283 2211 lineto
8855 2379 2211 lineto
8856 2379 2252 lineto
8857 2283 2252 lineto
8858 2283 2211 lineto
8859closepath 14 2283 2211 2379 2252 Dp
88601992 MX
8861 1992 2211 lineto
8862 2089 2211 lineto
8863 2089 2252 lineto
8864 1992 2252 lineto
8865 1992 2211 lineto
8866closepath 14 1992 2211 2089 2252 Dp
88671702 MX
8868 1702 2211 lineto
8869 1799 2211 lineto
8870 1799 2252 lineto
8871 1702 2252 lineto
8872 1702 2211 lineto
8873closepath 14 1702 2211 1799 2252 Dp
88741411 2252 MXY
8875 1411 2252 lineto
8876 1508 2252 lineto
8877 1508 2294 lineto
8878 1411 2294 lineto
8879 1411 2252 lineto
8880closepath 14 1411 2252 1508 2294 Dp
88812283 MX
8882 2283 2252 lineto
8883 2379 2252 lineto
8884 2379 2612 lineto
8885 2283 2612 lineto
8886 2283 2252 lineto
8887closepath 3 2283 2252 2379 2612 Dp
88881992 MX
8889 1992 2252 lineto
8890 2089 2252 lineto
8891 2089 2612 lineto
8892 1992 2612 lineto
8893 1992 2252 lineto
8894closepath 3 1992 2252 2089 2612 Dp
88951702 MX
8896 1702 2252 lineto
8897 1799 2252 lineto
8898 1799 2612 lineto
8899 1702 2612 lineto
8900 1702 2252 lineto
8901closepath 3 1702 2252 1799 2612 Dp
89021411 2294 MXY
8903 1411 2294 lineto
8904 1508 2294 lineto
8905 1508 2612 lineto
8906 1411 2612 lineto
8907 1411 2294 lineto
8908closepath 3 1411 2294 1508 2612 Dp
8909-1 Ds
89102158 2238 MXY
8911 2158 2238 lineto
8912 2255 2238 lineto
8913 2255 2252 lineto
8914 2158 2252 lineto
8915 2158 2238 lineto
8916closepath 21 2158 2238 2255 2252 Dp
89171868 MX
8918 1868 2238 lineto
8919 1965 2238 lineto
8920 1965 2280 lineto
8921 1868 2280 lineto
8922 1868 2238 lineto
8923closepath 21 1868 2238 1965 2280 Dp
89241577 MX
8925 1577 2238 lineto
8926 1674 2238 lineto
8927 1674 2308 lineto
8928 1577 2308 lineto
8929 1577 2238 lineto
8930closepath 21 1577 2238 1674 2308 Dp
89311287 2308 MXY
8932 1287 2308 lineto
8933 1287 2280 lineto
8934 1384 2280 lineto
8935 1384 2308 lineto
8936 1287 2308 lineto
8937closepath 21 1287 2280 1384 2308 Dp
89382158 2280 MXY
8939 2158 2280 lineto
8940 2158 2252 lineto
8941 2255 2252 lineto
8942 2255 2280 lineto
8943 2158 2280 lineto
8944closepath 14 2158 2252 2255 2280 Dp
89451868 2308 MXY
8946 1868 2308 lineto
8947 1868 2280 lineto
8948 1965 2280 lineto
8949 1965 2308 lineto
8950 1868 2308 lineto
8951closepath 14 1868 2280 1965 2308 Dp
89521577 2335 MXY
8953 1577 2335 lineto
8954 1577 2308 lineto
8955 1674 2308 lineto
8956 1674 2335 lineto
8957 1577 2335 lineto
8958closepath 14 1577 2308 1674 2335 Dp
89591287 2363 MXY
8960 1287 2363 lineto
8961 1287 2308 lineto
8962 1384 2308 lineto
8963 1384 2363 lineto
8964 1287 2363 lineto
8965closepath 14 1287 2308 1384 2363 Dp
89662158 2280 MXY
8967 2158 2280 lineto
8968 2255 2280 lineto
8969 2255 2612 lineto
8970 2158 2612 lineto
8971 2158 2280 lineto
8972closepath 3 2158 2280 2255 2612 Dp
89731868 2308 MXY
8974 1868 2308 lineto
8975 1965 2308 lineto
8976 1965 2612 lineto
8977 1868 2612 lineto
8978 1868 2308 lineto
8979closepath 3 1868 2308 1965 2612 Dp
89801577 2335 MXY
8981 1577 2335 lineto
8982 1674 2335 lineto
8983 1674 2612 lineto
8984 1577 2612 lineto
8985 1577 2335 lineto
8986closepath 3 1577 2335 1674 2612 Dp
89871287 2363 MXY
8988 1287 2363 lineto
8989 1384 2363 lineto
8990 1384 2612 lineto
8991 1287 2612 lineto
8992 1287 2363 lineto
8993closepath 3 1287 2363 1384 2612 Dp
89944 Ds
89951121 2066 MXY
8996 1121 2066 lineto
8997 1218 2066 lineto
8998 1224 2080 lineto
8999 1127 2080 lineto
9000 1121 2066 lineto
9001closepath 21 1121 2066 1224 2080 Dp
90022080 MY
9003 1121 2080 lineto
9004 1218 2080 lineto
9005 1218 2273 lineto
9006 1121 2273 lineto
9007 1121 2080 lineto
9008closepath 14 1121 2080 1218 2273 Dp
90092273 MY
9010 1121 2273 lineto
9011 1218 2273 lineto
9012 1218 2612 lineto
9013 1121 2612 lineto
9014 1121 2273 lineto
9015closepath 3 1121 2273 1218 2612 Dp
9016-1 Ds
9017997 1589 MXY
9018 997 1589 lineto
9019 1093 1589 lineto
9020 1093 1644 lineto
9021 997 1644 lineto
9022 997 1589 lineto
9023closepath 21 997 1589 1093 1644 Dp
90241644 MY
9025 997 1644 lineto
9026 1093 1644 lineto
9027 1093 2280 lineto
9028 997 2280 lineto
9029 997 1644 lineto
9030closepath 14 997 1644 1093 2280 Dp
90312280 MY
9032 997 2280 lineto
9033 1093 2280 lineto
9034 1093 2612 lineto
9035 997 2612 lineto
9036 997 2280 lineto
9037closepath 3 997 2280 1093 2612 Dp
903810 s
9039719 2093(s)N
9040712 2037(d)N
9041712 1982(n)N
9042714 1927(o)N
9043716 1872(c)N
9044716 1816(e)N
9045712 1761(S)N
9046804 2286(10)N
9047804 1899(20)N
9048804 1540(30)N
90493 Dt
9050900 1506 MXY
90510 1106 Dl
90521548 0 Dl
90537 s
90541978 2828(Elapsed)N
90551701 2925(Dynamically)N
90562018(grown)X
90572184(table)X
90582317(\(right\))X
90593 Dt
9060-1 Ds
90618 s
9062720 3180(Figure)N
9063934(6:)X
90641 f
90651020(The)X
90661152(total)X
90671299(regions)X
90681520(indicate)X
90691755(the)X
90701865(difference)X
90712154(between)X
90722398(the)X
9073720 3268(elapsed)N
9074931(time)X
90751065(and)X
90761177(the)X
90771275(sum)X
90781402(of)X
90791475(the)X
90801573(system)X
90811771(and)X
90821883(user)X
90832008(time.)X
90842173(The)X
90852291(left)X
90862395(bar)X
9087720 3356(of)N
9088798(each)X
9089939(set)X
90901035(depicts)X
90911241(the)X
90921344(timing)X
90931537(of)X
90941615(the)X
90951718(test)X
90961831(run)X
90971940(when)X
90982102(the)X
90992204(number)X
91002423(of)X
9101720 3444(entries)N
9102910(is)X
9103973(known)X
91041167(in)X
91051237(advance.)X
91061496(The)X
91071614(right)X
91081754(bars)X
91091879(depict)X
91102054(the)X
91112151(timing)X
91122338(when)X
9113720 3532(the)N
9114814(\256le)X
9115912(is)X
9116971(grown)X
91171150(from)X
91181290(a)X
91191334(single)X
91201503(bucket.)X
912110 s
912210 f
9123720 3708 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
91241 f
9125892 3910(Since)N
91261131(this)X
91271307(hashing)X
91281617(package)X
91291942(provides)X
91302279(buffer)X
9131720 3998(management,)N
91321188(the)X
91331323(amount)X
91341600(of)X
91351704(space)X
91361920(allocated)X
91372247(for)X
91382378(the)X
9139720 4086(buffer)N
9140948(pool)X
91411121(may)X
91421290(be)X
91431397(speci\256ed)X
91441713(by)X
91451824(the)X
91461953(user.)X
91472157(Using)X
91482378(the)X
9149720 4174(same)N
9150910(data)X
91511069(set)X
91521183(and)X
91531324(test)X
91541459(procedure)X
91551805(as)X
91561896(used)X
91572067(to)X
91582153(derive)X
91592378(the)X
9160720 4262(graphs)N
9161962(in)X
91621052(Figures)X
91631320(5a-c,)X
91641507(Figure)X
91651744(7)X
91661812(shows)X
91672039(the)X
91682164(impact)X
91692409(of)X
9170720 4350(varying)N
9171997(the)X
91721126(size)X
91731282(of)X
91741380(the)X
91751509(buffer)X
91761737(pool.)X
91771950(The)X
91782106(bucket)X
91792351(size)X
9180720 4438(was)N
9181873(set)X
9182989(to)X
91831078(256)X
91841225(bytes)X
91851421(and)X
91861564(the)X
91871689(\256ll)X
91881804(factor)X
91892019(was)X
91902171(set)X
91912287(to)X
91922376(16.)X
9193720 4526(The)N
9194869(buffer)X
91951090(pool)X
91961256(size)X
91971404(was)X
91981552(varied)X
91991776(from)X
92001955(0)X
92012018(\(the)X
92022166(minimum)X
9203720 4614(number)N
9204986(of)X
92051074(pages)X
92061277(required)X
92071565(to)X
92081647(be)X
92091743(buffered\))X
92102063(to)X
92112145(1M.)X
92122316(With)X
9213720 4702(1M)N
9214854(of)X
9215944(buffer)X
92161164(space,)X
92171386(the)X
92181507(package)X
92191794(performed)X
92202151(no)X
92212253(I/O)X
92222382(for)X
9223720 4790(this)N
9224871(data)X
92251040(set.)X
92261204(As)X
92271328(Figure)X
92281572(7)X
92291647(illustrates,)X
92302013(increasing)X
92312378(the)X
9232720 4878(buffer)N
9233944(pool)X
92341113(size)X
92351265(can)X
92361404(have)X
92371583(a)X
92381646(dramatic)X
92391954(affect)X
92402165(on)X
92412271(result-)X
9242720 4966(ing)N
9243842(performance.)X
92442 f
92458 s
92461269 4941(7)N
92471 f
924816 s
9249720 5353 MXY
9250864 0 Dl
92512 f
92528 s
9253760 5408(7)N
92541 f
92559 s
9256826 5433(Some)N
92571024(allocators)X
92581338(are)X
92591460(extremely)X
92601782(inef\256cient)X
92612107(at)X
92622192(allocating)X
9263720 5513(memory.)N
92641029(If)X
92651110(you)X
92661251(\256nd)X
92671396(that)X
92681536(applications)X
92691916(are)X
92702036(running)X
92712292(out)X
92722416(of)X
9273720 5593(memory)N
92741005(before)X
92751234(you)X
92761386(think)X
92771578(they)X
92781746(should,)X
92792000(try)X
92802124(varying)X
92812388(the)X
9282720 5673(pagesize)N
9283986(to)X
92841060(get)X
92851166(better)X
92861348(utilization)X
92871658(from)X
92881816(the)X
92891922(memory)X
92902180(allocator.)X
929110 s
92922830 1975 MXY
92930 -28 Dl
929428 0 Dl
92950 28 Dl
9296-28 0 Dl
92972853 2004 MXY
92980 -27 Dl
929928 0 Dl
93000 27 Dl
9301-28 0 Dl
93022876 2016 MXY
93030 -27 Dl
930427 0 Dl
93050 27 Dl
9306-27 0 Dl
93072922 1998 MXY
93080 -27 Dl
930927 0 Dl
93100 27 Dl
9311-27 0 Dl
93122967 2025 MXY
93130 -28 Dl
931428 0 Dl
93150 28 Dl
9316-28 0 Dl
93173013 2031 MXY
93180 -28 Dl
931928 0 Dl
93200 28 Dl
9321-28 0 Dl
93223059 MX
93230 -28 Dl
932427 0 Dl
93250 28 Dl
9326-27 0 Dl
93273196 2052 MXY
93280 -28 Dl
932927 0 Dl
93300 28 Dl
9331-27 0 Dl
93323561 2102 MXY
93330 -28 Dl
933428 0 Dl
93350 28 Dl
9336-28 0 Dl
93374292 2105 MXY
93380 -28 Dl
933927 0 Dl
93400 28 Dl
9341-27 0 Dl
93424 Ds
93431 Dt
93442844 1961 MXY
934523 30 Dl
934623 12 Dl
934745 -18 Dl
934846 26 Dl
934946 6 Dl
935045 0 Dl
9351137 21 Dl
9352366 50 Dl
9353730 3 Dl
93549 s
93554227 2158(User)N
9356-1 Ds
93573 Dt
93582830 1211 MXY
935927 Dc
93602853 1261 MXY
936127 Dc
93622876 1267 MXY
936327 Dc
93642921 1341 MXY
936527 Dc
93662967 1385 MXY
936727 Dc
93683013 1450 MXY
936927 Dc
93703059 1497 MXY
937127 Dc
93723196 1686 MXY
937327 Dc
93743561 2109 MXY
937527 Dc
93764292 2295 MXY
937727 Dc
937820 Ds
93791 Dt
93802844 1211 MXY
938123 50 Dl
938223 6 Dl
938345 74 Dl
938446 44 Dl
938546 65 Dl
938645 47 Dl
9387137 189 Dl
9388366 423 Dl
9389730 186 Dl
93904181 2270(System)N
9391-1 Ds
93923 Dt
93932844 583 MXY
93940 28 Dl
93950 -14 Dl
939614 0 Dl
9397-28 0 Dl
93982867 672 MXY
93990 27 Dl
94000 -14 Dl
940114 0 Dl
9402-28 0 Dl
94032890 701 MXY
94040 28 Dl
94050 -14 Dl
940613 0 Dl
9407-27 0 Dl
94082935 819 MXY
94090 28 Dl
94100 -14 Dl
941114 0 Dl
9412-27 0 Dl
94132981 849 MXY
94140 28 Dl
94150 -14 Dl
941614 0 Dl
9417-28 0 Dl
94183027 908 MXY
94190 27 Dl
94200 -13 Dl
942114 0 Dl
9422-28 0 Dl
94233072 1026 MXY
94240 27 Dl
94250 -13 Dl
942614 0 Dl
9427-27 0 Dl
94283209 1292 MXY
94290 27 Dl
94300 -14 Dl
943114 0 Dl
9432-27 0 Dl
94333575 1823 MXY
94340 28 Dl
94350 -14 Dl
943614 0 Dl
9437-28 0 Dl
94384305 2059 MXY
94390 28 Dl
94400 -14 Dl
944114 0 Dl
9442-27 0 Dl
94435 Dt
94442844 597 MXY
944523 88 Dl
944623 30 Dl
944745 118 Dl
944846 30 Dl
944946 59 Dl
945045 118 Dl
9451137 265 Dl
9452366 532 Dl
9453730 236 Dl
94544328 2103(Total)N
94552844 2310 MXY
94561461 0 Dl
94572844 MX
94580 -1772 Dl
94592310 MY
94600 18 Dl
94614 Ds
94621 Dt
94632310 MY
94640 -1772 Dl
94652826 2416(0)N
9466-1 Ds
94675 Dt
94683209 2310 MXY
94690 18 Dl
94704 Ds
94711 Dt
94722310 MY
94730 -1772 Dl
94743155 2416(256)N
9475-1 Ds
94765 Dt
94773575 2310 MXY
94780 18 Dl
94794 Ds
94801 Dt
94812310 MY
94820 -1772 Dl
94833521 2416(512)N
9484-1 Ds
94855 Dt
94863940 2310 MXY
94870 18 Dl
94884 Ds
94891 Dt
94902310 MY
94910 -1772 Dl
94923886 2416(768)N
9493-1 Ds
94945 Dt
94954305 2310 MXY
94960 18 Dl
94974 Ds
94981 Dt
94992310 MY
95000 -1772 Dl
95014233 2416(1024)N
9502-1 Ds
95035 Dt
95042844 2310 MXY
9505-18 0 Dl
95064 Ds
95071 Dt
95082844 MX
95091461 0 Dl
95102771 2340(0)N
9511-1 Ds
95125 Dt
95132844 2014 MXY
9514-18 0 Dl
95152844 1719 MXY
9516-18 0 Dl
95174 Ds
95181 Dt
95192844 MX
95201461 0 Dl
95212735 1749(20)N
9522-1 Ds
95235 Dt
95242844 1423 MXY
9525-18 0 Dl
95262844 1128 MXY
9527-18 0 Dl
95284 Ds
95291 Dt
95302844 MX
95311461 0 Dl
95322735 1158(40)N
9533-1 Ds
95345 Dt
95352844 833 MXY
9536-18 0 Dl
95372844 538 MXY
9538-18 0 Dl
95394 Ds
95401 Dt
95412844 MX
95421461 0 Dl
95432735 568(60)N
95443239 2529(Buffer)N
95453445(Pool)X
95463595(Size)X
95473737(\(in)X
95483835(K\))X
95492695 1259(S)N
95502699 1324(e)N
95512699 1388(c)N
95522697 1452(o)N
95532697 1517(n)N
95542697 1581(d)N
95552701 1645(s)N
95563 Dt
9557-1 Ds
95583 f
95598 s
95602706 2773(Figure)N
95612908(7:)X
95621 f
95632982(User)X
95643123(time)X
95653258(is)X
95663322(virtually)X
95673560(insensitive)X
95683854(to)X
95693924(the)X
95704022(amount)X
95714234(of)X
95724307(buffer)X
95732706 2861(pool)N
95742852(available,)X
95753130(however,)X
95763396(both)X
95773541(system)X
95783750(time)X
95793895(and)X
95804018(elapsed)X
95814240(time)X
95824385(are)X
95832706 2949(inversely)N
95842960(proportional)X
95853296(to)X
95863366(the)X
95873464(size)X
95883583(of)X
95893656(the)X
95903753(buffer)X
95913927(pool.)X
95924092(Even)X
95934242(for)X
95944335(large)X
95952706 3037(data)N
95962831(sets)X
95972946(where)X
95983120(one)X
95993230(expects)X
96003439(few)X
96013552(collisions,)X
96023832(specifying)X
96034116(a)X
96044162(large)X
96054307(buffer)X
96062706 3125(pool)N
96072836(dramatically)X
96083171(improves)X
96093425(performance.)X
961010 s
961110 f
96122706 3301 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
96133 f
96143175 3543(Enhanced)N
96153536(Functionality)X
96161 f
96172878 3675(This)N
96183046(hashing)X
96193320(package)X
96203609(provides)X
96213910(a)X
96223971(set)X
96234085(of)X
96244177(compati-)X
96252706 3763(bility)N
96262895(routines)X
96273174(to)X
96283257(implement)X
96293620(the)X
96302 f
96313739(ndbm)X
96321 f
96333937(interface.)X
96344279(How-)X
96352706 3851(ever,)N
96362893(when)X
96373095(the)X
96383220(native)X
96393443(interface)X
96403752(is)X
96413832(used,)X
96424026(the)X
96434151(following)X
96442706 3939(additional)N
96453046(functionality)X
96463475(is)X
96473548(provided:)X
964810 f
96492798 4071(g)N
96501 f
96512946(Inserts)X
96523197(never)X
96533413(fail)X
96543556(because)X
96553847(too)X
96563985(many)X
96574199(keys)X
96582946 4159(hash)N
96593113(to)X
96603195(the)X
96613313(same)X
96623498(value.)X
966310 f
96642798 4247(g)N
96651 f
96662946(Inserts)X
96673187(never)X
96683393(fail)X
96693527(because)X
96703808(key)X
96713950(and/or)X
96724181(asso-)X
96732946 4335(ciated)N
96743158(data)X
96753312(is)X
96763385(too)X
96773507(large)X
967810 f
96792798 4423(g)N
96801 f
96812946(Hash)X
96823131(functions)X
96833449(may)X
96843607(be)X
96853703(user-speci\256ed.)X
968610 f
96872798 4511(g)N
96881 f
96892946(Multiple)X
96903268(pages)X
96913498(may)X
96923683(be)X
96933806(cached)X
96944077(in)X
96954186(main)X
96962946 4599(memory.)N
96972706 4731(It)N
96982801(also)X
96992976(provides)X
97003298(a)X
97013380(set)X
97023514(of)X
97033626(compatibility)X
97044097(routines)X
97054400(to)X
97062706 4819(implement)N
97073087(the)X
97082 f
97093224(hsearch)X
97101 f
97113516(interface.)X
97123876(Again,)X
97134130(the)X
97144266(native)X
97152706 4907(interface)N
97163008(offers)X
97173216(enhanced)X
97183540(functionality:)X
971910 f
97202798 5039(g)N
97211 f
97222946(Files)X
97233121(may)X
97243279(grow)X
97253464(beyond)X
97262 f
97273720(nelem)X
97281 f
97293932(elements.)X
973010 f
97312798 5127(g)N
97321 f
97332946(Multiple)X
97343247(hash)X
97353420(tables)X
97363632(may)X
97373795(be)X
97383896(accessed)X
97394203(con-)X
97402946 5215(currently.)N
974110 f
97422798 5303(g)N
97431 f
97442946(Hash)X
97453134(tables)X
97463344(may)X
97473505(be)X
97483604(stored)X
97493823(and)X
97503962(accessed)X
97514266(on)X
97522946 5391(disk.)N
975310 f
97542798 5479(g)N
97551 f
97562946(Hash)X
97573155(functions)X
97583497(may)X
97593679(be)X
97603799(user-speci\256ed)X
97614288(at)X
97622946 5567(runtime.)N
97633 f
9764720 5960(USENIX)N
97659 f
97661042(-)X
97673 f
97681106(Winter)X
97691371('91)X
97709 f
97711498(-)X
97723 f
97731562(Dallas,)X
97741815(TX)X
97754424(9)X
9776
977710 p
9778%%Page: 10 10
97790(Courier)xf 0 f
978010 s 10 xH 0 xS 0 f
97813 f
9782432 258(A)N
9783510(New)X
9784682(Hashing)X
9785985(Package)X
97861290(for)X
97871413(UNIX)X
97883663(Seltzer)X
97893920(&)X
97904007(Yigit)X
9791459 538(Relative)N
9792760(Performance)X
97931227(of)X
97941314(the)X
97951441(New)X
97961613(Implementation)X
97971 f
9798604 670(The)N
9799761(performance)X
98001200(testing)X
98011445(of)X
98021544(the)X
98031674(new)X
98041840(package)X
98052135(is)X
9806432 758(divided)N
9807711(into)X
9808874(two)X
98091033(test)X
98101183(suites.)X
98111424(The)X
98121588(\256rst)X
98131751(suite)X
98141941(of)X
98152046(tests)X
9816432 846(requires)N
9817727(that)X
9818882(the)X
98191015(tables)X
98201237(be)X
98211348(read)X
98221522(from)X
98231713(and)X
98241864(written)X
98252126(to)X
9826432 934(disk.)N
9827640(In)X
9828742(these)X
9829942(tests,)X
98301139(the)X
98311272(basis)X
98321467(for)X
98331595(comparison)X
98342003(is)X
98352090(the)X
9836432 1022(4.3BSD-Reno)N
9837908(version)X
98381169(of)X
98392 f
98401260(ndbm)X
98411 f
98421438(.)X
98431502(Based)X
98441722(on)X
98451826(the)X
98461948(designs)X
9847432 1110(of)N
98482 f
9849521(sdbm)X
98501 f
9851712(and)X
98522 f
9853850(gdbm)X
98541 f
98551028(,)X
98561070(they)X
98571230(are)X
98581351(expected)X
98591659(to)X
98601743(perform)X
98612024(simi-)X
9862432 1198(larly)N
9863605(to)X
98642 f
9865693(ndbm)X
98661 f
9867871(,)X
9868917(and)X
98691059(we)X
98701179(do)X
98711285(not)X
98721413(show)X
98731608(their)X
98741781(performance)X
9875432 1286(numbers.)N
9876800(The)X
9877977(second)X
98781252(suite)X
98791454(contains)X
98801772(the)X
98811921(memory)X
9882432 1374(resident)N
9883712(test)X
9884849(which)X
98851071(does)X
98861243(not)X
98871370(require)X
98881623(that)X
98891768(the)X
98901891(\256les)X
98912049(ever)X
9892432 1462(be)N
9893533(written)X
9894784(to)X
9895870(disk,)X
98961047(only)X
98971213(that)X
98981357(hash)X
98991528(tables)X
99001739(may)X
99011901(be)X
99022001(mani-)X
9903432 1550(pulated)N
9904692(in)X
9905778(main)X
9906961(memory.)X
99071291(In)X
99081381(this)X
99091519(test,)X
99101673(we)X
99111790(compare)X
99122090(the)X
9913432 1638(performance)N
9914859(to)X
9915941(that)X
99161081(of)X
99171168(the)X
99182 f
99191286(hsearch)X
99201 f
99211560(routines.)X
9922604 1752(For)N
9923760(both)X
9924947(suites,)X
99251194(two)X
99261358(different)X
99271679(databases)X
99282031(were)X
9929432 1840(used.)N
9930656(The)X
9931818(\256rst)X
9932979(is)X
99331069(the)X
99341204(dictionary)X
99351566(database)X
99361880(described)X
9937432 1928(previously.)N
9938836(The)X
9939987(second)X
99401236(was)X
99411386(constructed)X
99421781(from)X
99431962(a)X
99442023(pass-)X
9945432 2016(word)N
9946647(\256le)X
9947799(with)X
9948990(approximately)X
99491502(300)X
99501671(accounts.)X
99512041(Two)X
9952432 2104(records)N
9953700(were)X
9954887(constructed)X
99551287(for)X
99561411(each)X
99571589(account.)X
99581909(The)X
99592064(\256rst)X
9960432 2192(used)N
9961604(the)X
9962727(logname)X
99631028(as)X
99641120(the)X
99651243(key)X
99661384(and)X
99671525(the)X
99681648(remainder)X
99691999(of)X
99702090(the)X
9971432 2280(password)N
9972768(entry)X
9973965(for)X
99741091(the)X
99751221(data.)X
99761427(The)X
99771584(second)X
99781839(was)X
99791996(keyed)X
9980432 2368(by)N
9981541(uid)X
9982672(and)X
9983817(contained)X
99841157(the)X
99851283(entire)X
99861494(password)X
99871825(entry)X
99882018(as)X
99892113(its)X
9990432 2456(data)N
9991589(\256eld.)X
9992794(The)X
9993942(tests)X
99941107(were)X
99951287(all)X
99961389(run)X
99971518(on)X
99981620(the)X
99991740(HP)X
100001864(9000)X
100012046(with)X
10002432 2544(the)N
10003574(same)X
10004783(con\256guration)X
100051254(previously)X
100061636(described.)X
100072027(Each)X
10008432 2632(test)N
10009576(was)X
10010734(run)X
10011874(\256ve)X
100121027(times)X
100131232(and)X
100141380(the)X
100151510(timing)X
100161750(results)X
100171991(of)X
100182090(the)X
10019432 2720(runs)N
10020602(were)X
10021791(averaged.)X
100221154(The)X
100231311(variance)X
100241616(across)X
100251849(the)X
100261979(5)X
100272050(runs)X
10028432 2808(was)N
10029591(approximately)X
100301088(1%)X
100311229(of)X
100321330(the)X
100331462(average)X
100341746(yielding)X
100352041(95%)X
10036432 2896(con\256dence)N
10037800(intervals)X
100381096(of)X
100391183(approximately)X
100401666(2%.)X
100413 f
100421021 3050(Disk)N
100431196(Based)X
100441420(Tests)X
100451 f
10046604 3182(In)N
10047693(these)X
10048880(tests,)X
100491064(we)X
100501180(use)X
100511308(a)X
100521365(bucket)X
100531600(size)X
100541746(of)X
100551834(1024)X
100562015(and)X
100572152(a)X
10058432 3270(\256ll)N
10059540(factor)X
10060748(of)X
10061835(32.)X
100623 f
10063432 3384(create)N
10064663(test)X
100651 f
10066547 3498(The)N
10067703(keys)X
10068881(are)X
100691011(entered)X
100701279(into)X
100711433(the)X
100721561(hash)X
100731738(table,)X
100741944(and)X
100752090(the)X
10076547 3586(\256le)N
10077669(is)X
10078742(\257ushed)X
10079993(to)X
100801075(disk.)X
100813 f
10082432 3700(read)N
10083608(test)X
100841 f
10085547 3814(A)N
10086640(lookup)X
10087897(is)X
10088984(performed)X
100891353(for)X
100901481(each)X
100911663(key)X
100921813(in)X
100931909(the)X
100942041(hash)X
10095547 3902(table.)N
100963 f
10097432 4016(verify)N
10098653(test)X
100991 f
10100547 4130(A)N
10101640(lookup)X
10102897(is)X
10103984(performed)X
101041353(for)X
101051481(each)X
101061663(key)X
101071813(in)X
101081909(the)X
101092041(hash)X
10110547 4218(table,)N
10111759(and)X
10112911(the)X
101131045(data)X
101141215(returned)X
101151519(is)X
101161608(compared)X
101171961(against)X
10118547 4306(that)N
10119687(originally)X
101201018(stored)X
101211234(in)X
101221316(the)X
101231434(hash)X
101241601(table.)X
101253 f
10126432 4420(sequential)N
10127798(retrieve)X
101281 f
10129547 4534(All)N
10130674(keys)X
10131846(are)X
10132970(retrieved)X
101331281(in)X
101341367(sequential)X
101351716(order)X
101361910(from)X
101372090(the)X
10138547 4622(hash)N
10139724(table.)X
10140950(The)X
101412 f
101421105(ndbm)X
101431 f
101441313(interface)X
101451625(allows)X
101461863(sequential)X
10147547 4710(retrieval)N
10148848(of)X
10149948(the)X
101501079(keys)X
101511259(from)X
101521448(the)X
101531578(database,)X
101541907(but)X
101552041(does)X
10156547 4798(not)N
10157701(return)X
10158945(the)X
101591094(data)X
101601279(associated)X
101611660(with)X
101621853(each)X
101632052(key.)X
10164547 4886(Therefore,)N
10165929(we)X
101661067(compare)X
101671388(the)X
101681530(performance)X
101691980(of)X
101702090(the)X
10171547 4974(new)N
10172703(package)X
10173989(to)X
101741073(two)X
101751215(different)X
101761514(runs)X
101771674(of)X
101782 f
101791763(ndbm)X
101801 f
101811941(.)X
101822002(In)X
101832090(the)X
10184547 5062(\256rst)N
10185697(case,)X
101862 f
10187882(ndbm)X
101881 f
101891086(returns)X
101901335(only)X
101911503(the)X
101921627(keys)X
101931800(while)X
101942003(in)X
101952090(the)X
10196547 5150(second,)N
101972 f
10198823(ndbm)X
101991 f
102001034(returns)X
102011290(both)X
102021465(the)X
102031596(keys)X
102041776(and)X
102051924(the)X
102062054(data)X
10207547 5238(\(requiring)N
10208894(a)X
10209956(second)X
102101204(call)X
102111345(to)X
102121432(the)X
102131555(library\).)X
102141861(There)X
102152074(is)X
102162152(a)X
10217547 5326(single)N
10218764(run)X
10219897(for)X
102201017(the)X
102211141(new)X
102221300(library)X
102231539(since)X
102241729(it)X
102251798(returns)X
102262046(both)X
10227547 5414(the)N
10228665(key)X
10229801(and)X
10230937(the)X
102311055(data.)X
102323 f
102333014 538(In-Memory)N
102343431(Test)X
102351 f
102362590 670(This)N
102372757(test)X
102382892(uses)X
102393054(a)X
102403114(bucket)X
102413352(size)X
102423501(of)X
102433592(256)X
102443736(and)X
102453876(a)X
102463936(\256ll)X
102474048(fac-)X
102482418 758(tor)N
102492527(of)X
102502614(8.)X
102513 f
102522418 872(create/read)N
102532827(test)X
102541 f
102552533 986(In)N
102562627(this)X
102572769(test,)X
102582927(a)X
102592989(hash)X
102603162(table)X
102613344(is)X
102623423(created)X
102633682(by)X
102643788(inserting)X
102654094(all)X
102662533 1074(the)N
102672660(key/data)X
102682961(pairs.)X
102693186(Then)X
102703380(a)X
102713445(keyed)X
102723666(retrieval)X
102733963(is)X
102744044(per-)X
102752533 1162(formed)N
102762801(for)X
102772931(each)X
102783115(pair,)X
102793295(and)X
102803446(the)X
102813579(hash)X
102823761(table)X
102833952(is)X
102844040(des-)X
102852533 1250(troyed.)N
102863 f
102872938 1404(Performance)N
102883405(Results)X
102891 f
102902590 1536(Figures)N
102912866(8a)X
102922978(and)X
102933130(8b)X
102943246(show)X
102953451(the)X
102963585(user)X
102973755(time,)X
102983952(system)X
102992418 1624(time,)N
103002608(and)X
103012752(elapsed)X
103023021(time)X
103033191(for)X
103043312(each)X
103053487(test)X
103063625(for)X
103073746(both)X
103083915(the)X
103094040(new)X
103102418 1712(implementation)N
103112951(and)X
103123098(the)X
103133227(old)X
103143360(implementation)X
103153893(\()X
103162 f
103173920(hsearch)X
103181 f
103192418 1800(or)N
103202 f
103212528(ndbm)X
103221 f
103232706(,)X
103242769(whichever)X
103253147(is)X
103263243(appropriate\))X
103273678(as)X
103283787(well)X
103293967(as)X
103304076(the)X
103312418 1888(improvement.)N
103322929(The)X
103333098(improvement)X
103343569(is)X
103353666(expressed)X
103364027(as)X
103374138(a)X
103382418 1976(percentage)N
103392787(of)X
103402874(the)X
103412992(old)X
103423114(running)X
103433383(time:)X
103440 f
103458 s
103462418 2275(%)N
103472494(=)X
103482570(100)X
103492722(*)X
103502798 -0.4219(\(old_time)AX
103513178(-)X
103523254 -0.4219(new_time\))AX
103533634(/)X
103543710(old_time)X
103551 f
1035610 s
103572590 2600(In)N
103582700(nearly)X
103592944(all)X
103603067(cases,)X
103613299(the)X
103623439(new)X
103633615(routines)X
103643915(perform)X
103652418 2688(better)N
103662628(than)X
103672793(the)X
103682918(old)X
103693047(routines)X
103703332(\(both)X
103712 f
103723527(hsearch)X
103731 f
103743807(and)X
103752 f
103763949(ndbm)X
103771 f
103784127(\).)X
103792418 2776(Although)N
103802755(the)X
103813 f
103822888(create)X
103831 f
103843134(tests)X
103853311(exhibit)X
103863567(superior)X
103873864(user)X
103884032(time)X
103892418 2864(performance,)N
103902869(the)X
103912991(test)X
103923126(time)X
103933292(is)X
103943369(dominated)X
103953731(by)X
103963834(the)X
103973955(cost)X
103984107(of)X
103992418 2952(writing)N
104002677(the)X
104012803(actual)X
104023023(\256le)X
104033153(to)X
104043243(disk.)X
104053444(For)X
104063583(the)X
104073709(large)X
104083897(database)X
104092418 3040(\(the)N
104102564(dictionary\),)X
104112957(this)X
104123093(completely)X
104133470(overwhelmed)X
104143927(the)X
104154045(sys-)X
104162418 3128(tem)N
104172570(time.)X
104182783(However,)X
104193129(for)X
104203254(the)X
104213383(small)X
104223587(data)X
104233752(base,)X
104243946(we)X
104254071(see)X
104262418 3216(that)N
104272569(differences)X
104282958(in)X
104293051(both)X
104303224(user)X
104313389(and)X
104323536(system)X
104333788(time)X
104343960(contri-)X
104352418 3304(bute)N
104362576(to)X
104372658(the)X
104382776(superior)X
104393059(performance)X
104403486(of)X
104413573(the)X
104423691(new)X
104433845(package.)X
104442590 3418(The)N
104453 f
104462764(read)X
104471 f
104482920(,)X
104493 f
104502989(verify)X
104511 f
104523190(,)X
104533259(and)X
104543 f
104553424(sequential)X
104561 f
104573818(results)X
104584075(are)X
104592418 3506(deceptive)N
104602758(for)X
104612883(the)X
104623012(small)X
104633216(database)X
104643524(since)X
104653720(the)X
104663849(entire)X
104674063(test)X
104682418 3594(ran)N
104692551(in)X
104702643(under)X
104712856(a)X
104722922(second.)X
104733215(However,)X
104743560(on)X
104753669(the)X
104763796(larger)X
104774013(data-)X
104782418 3682(base)N
104792590(the)X
104803 f
104812716(read)X
104821 f
104832900(and)X
104843 f
104853044(verify)X
104861 f
104873273(tests)X
104883443(bene\256t)X
104893689(from)X
104903873(the)X
104913999(cach-)X
104922418 3770(ing)N
104932546(of)X
104942639(buckets)X
104952910(in)X
104962998(the)X
104973122(new)X
104983282(package)X
104993571(to)X
105003658(improve)X
105013950(perfor-)X
105022418 3858(mance)N
105032666(by)X
105042784(over)X
105052965(80%.)X
105063169(Since)X
105073384(the)X
105083519(\256rst)X
105093 f
105103680(sequential)X
105111 f
105124063(test)X
105132418 3946(does)N
105142598(not)X
105152733(require)X
105162 f
105172994(ndbm)X
105181 f
105193205(to)X
105203299(return)X
105213523(the)X
105223653(data)X
105233819(values,)X
105244076(the)X
105252418 4034(user)N
105262573(time)X
105272735(is)X
105282808(lower)X
105293011(than)X
105303169(for)X
105313283(the)X
105323401(new)X
105333555(package.)X
105343879(However)X
105352418 4122(when)N
105362613(we)X
105372728(require)X
105382977(both)X
105393139(packages)X
105403454(to)X
105413536(return)X
105423748(data,)X
105433922(the)X
105444040(new)X
105452418 4210(package)N
105462702(excels)X
105472923(in)X
105483005(all)X
105493105(three)X
105503286(timings.)X
105512590 4324(The)N
105522773(small)X
105533003(database)X
105543337(runs)X
105553532(so)X
105563660(quickly)X
105573957(in)X
105584076(the)X
105592418 4412(memory-resident)N
105603000(case)X
105613173(that)X
105623326(the)X
105633457(results)X
105643699(are)X
105653831(uninterest-)X
105662418 4500(ing.)N
105672589(However,)X
105682933(for)X
105693056(the)X
105703183(larger)X
105713400(database)X
105723706(the)X
105733833(new)X
105743995(pack-)X
105752418 4588(age)N
105762567(pays)X
105772751(a)X
105782824(small)X
105793033(penalty)X
105803305(in)X
105813403(system)X
105823661(time)X
105833839(because)X
105844130(it)X
105852418 4676(limits)N
105862636(its)X
105872748(main)X
105882944(memory)X
105893247(utilization)X
105903607(and)X
105913759(swaps)X
105923991(pages)X
105932418 4764(out)N
105942550(to)X
105952642(temporary)X
105963002(storage)X
105973264(in)X
105983356(the)X
105993484(\256le)X
106003616(system)X
106013868(while)X
106024076(the)X
106032 f
106042418 4852(hsearch)N
106051 f
106062698(package)X
106072988(requires)X
106083273(that)X
106093419(the)X
106103543(application)X
106113924(allocate)X
106122418 4940(enough)N
106132692(space)X
106142909(for)X
106153041(all)X
106163159(key/data)X
106173468(pair.)X
106183670(However,)X
106194022(even)X
106202418 5028(with)N
106212600(the)X
106222738(system)X
106233000(time)X
106243182(penalty,)X
106253477(the)X
106263614(resulting)X
106273933(elapsed)X
106282418 5116(time)N
106292580(improves)X
106302898(by)X
106312998(over)X
106323161(50%.)X
106333 f
10634432 5960(10)N
106352970(USENIX)X
106369 f
106373292(-)X
106383 f
106393356(Winter)X
106403621('91)X
106419 f
106423748(-)X
106433 f
106443812(Dallas,)X
106454065(TX)X
10646
1064711 p
10648%%Page: 11 11
106490(Courier)xf 0 f
1065010 s 10 xH 0 xS 0 f
106513 f
10652720 258(Seltzer)N
10653977(&)X
106541064(Yigit)X
106553278(A)X
106563356(New)X
106573528(Hashing)X
106583831(Package)X
106594136(for)X
106604259(UNIX)X
106611 f
1066210 f
10663908 454(i)N
10664927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
106652 f
106661379 546(hash)N
106671652(ndbm)X
106681950(%change)X
106691 f
1067010 f
10671908 550(i)N
10672927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
106731 f
10674948 642(CREATE)N
1067510 f
10676908 646(i)N
10677927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
106781 f
106791125 738(user)N
106801424(6.4)X
106811671(12.2)X
106822073(48)X
106831157 826(sys)N
106841384(32.5)X
106851671(34.7)X
106862113(6)X
106873 f
106881006 914(elapsed)N
1068910 f
106901310 922(c)N
10691890(c)Y
10692810(c)Y
10693730(c)Y
106943 f
106951384 914(90.4)N
1069610 f
106971581 922(c)N
10698890(c)Y
10699810(c)Y
10700730(c)Y
107013 f
107021671 914(99.6)N
1070310 f
107041883 922(c)N
10705890(c)Y
10706810(c)Y
10707730(c)Y
107083 f
107092113 914(9)N
107101 f
1071110 f
10712908 910(i)N
10713927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10714908 926(i)N
10715927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
107161 f
10717948 1010(READ)N
1071810 f
10719908 1014(i)N
10720927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
107211 f
107221125 1106(user)N
107231424(3.4)X
107241711(6.1)X
107252073(44)X
107261157 1194(sys)N
107271424(1.2)X
107281671(15.3)X
107292073(92)X
107303 f
107311006 1282(elapsed)N
1073210 f
107331310 1290(c)N
107341258(c)Y
107351178(c)Y
107361098(c)Y
107373 f
107381424 1282(4.0)N
1073910 f
107401581 1290(c)N
107411258(c)Y
107421178(c)Y
107431098(c)Y
107443 f
107451671 1282(21.2)N
1074610 f
107471883 1290(c)N
107481258(c)Y
107491178(c)Y
107501098(c)Y
107513 f
107522073 1282(81)N
107531 f
1075410 f
10755908 1278(i)N
10756927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10757908 1294(i)N
10758927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
107591 f
10760948 1378(VERIFY)N
1076110 f
10762908 1382(i)N
10763927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
107641 f
107651125 1474(user)N
107661424(3.5)X
107671711(6.3)X
107682073(44)X
107691157 1562(sys)N
107701424(1.2)X
107711671(15.3)X
107722073(92)X
107733 f
107741006 1650(elapsed)N
1077510 f
107761310 1658(c)N
107771626(c)Y
107781546(c)Y
107791466(c)Y
107803 f
107811424 1650(4.0)N
1078210 f
107831581 1658(c)N
107841626(c)Y
107851546(c)Y
107861466(c)Y
107873 f
107881671 1650(21.2)N
1078910 f
107901883 1658(c)N
107911626(c)Y
107921546(c)Y
107931466(c)Y
107943 f
107952073 1650(81)N
107961 f
1079710 f
10798908 1646(i)N
10799927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10800908 1662(i)N
10801927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
108021 f
10803948 1746(SEQUENTIAL)N
1080410 f
10805908 1750(i)N
10806927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
108071 f
108081125 1842(user)N
108091424(2.7)X
108101711(1.9)X
108112046(-42)X
108121157 1930(sys)N
108131424(0.7)X
108141711(3.9)X
108152073(82)X
108163 f
108171006 2018(elapsed)N
1081810 f
108191310 2026(c)N
108201994(c)Y
108211914(c)Y
108221834(c)Y
108233 f
108241424 2018(3.0)N
1082510 f
108261581 2026(c)N
108271994(c)Y
108281914(c)Y
108291834(c)Y
108303 f
108311711 2018(5.0)N
1083210 f
108331883 2026(c)N
108341994(c)Y
108351914(c)Y
108361834(c)Y
108373 f
108382073 2018(40)N
108391 f
1084010 f
10841908 2014(i)N
10842927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10843908 2030(i)N
10844927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
108451 f
10846948 2114(SEQUENTIAL)N
108471467(\(with)X
108481656(data)X
108491810(retrieval\))X
1085010 f
10851908 2118(i)N
10852927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
108531 f
108541125 2210(user)N
108551424(2.7)X
108561711(8.2)X
108572073(67)X
108581157 2298(sys)N
108591424(0.7)X
108601711(4.3)X
108612073(84)X
108623 f
108631006 2386(elapsed)N
108641424(3.0)X
108651671(12.0)X
108662073(75)X
108671 f
1086810 f
10869908 2390(i)N
10870927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10871899 2394(c)N
108722378(c)Y
108732298(c)Y
108742218(c)Y
108752138(c)Y
108762058(c)Y
108771978(c)Y
108781898(c)Y
108791818(c)Y
108801738(c)Y
108811658(c)Y
108821578(c)Y
108831498(c)Y
108841418(c)Y
108851338(c)Y
108861258(c)Y
108871178(c)Y
108881098(c)Y
108891018(c)Y
10890938(c)Y
10891858(c)Y
10892778(c)Y
10893698(c)Y
10894618(c)Y
10895538(c)Y
108961310 2394(c)N
108972362(c)Y
108982282(c)Y
108992202(c)Y
109001581 2394(c)N
109012362(c)Y
109022282(c)Y
109032202(c)Y
109041883 2394(c)N
109052362(c)Y
109062282(c)Y
109072202(c)Y
109082278 2394(c)N
109092378(c)Y
109102298(c)Y
109112218(c)Y
109122138(c)Y
109132058(c)Y
109141978(c)Y
109151898(c)Y
109161818(c)Y
109171738(c)Y
109181658(c)Y
109191578(c)Y
109201498(c)Y
109211418(c)Y
109221338(c)Y
109231258(c)Y
109241178(c)Y
109251098(c)Y
109261018(c)Y
10927938(c)Y
10928858(c)Y
10929778(c)Y
10930698(c)Y
10931618(c)Y
10932538(c)Y
10933905 2574(i)N
10934930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
109352 f
109361318 2666(hash)N
109371585(hsearch)X
109381953(%change)X
109391 f
1094010 f
10941905 2670(i)N
10942930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
109431 f
10944945 2762(CREATE/READ)N
1094510 f
10946905 2766(i)N
10947930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
109481 f
109491064 2858(user)N
109501343(6.6)X
109511642(17.2)X
109522096(62)X
109531096 2946(sys)N
109541343(1.1)X
109551682(0.3)X
109562029(-266)X
109573 f
10958945 3034(elapsed)N
109591343(7.8)X
109601642(17.0)X
109612096(54)X
109621 f
1096310 f
10964905 3038(i)N
10965930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
10966896 3050(c)N
109672978(c)Y
109682898(c)Y
109692818(c)Y
109702738(c)Y
109712658(c)Y
109721249 3034(c)N
109733010(c)Y
109742930(c)Y
109752850(c)Y
109761520 3034(c)N
109773010(c)Y
109782930(c)Y
109792850(c)Y
109801886 3034(c)N
109813010(c)Y
109822930(c)Y
109832850(c)Y
109842281 3050(c)N
109852978(c)Y
109862898(c)Y
109872818(c)Y
109882738(c)Y
109892658(c)Y
109903 f
10991720 3174(Figure)N
10992967(8a:)X
109931 f
109941094(Timing)X
109951349(results)X
109961578(for)X
109971692(the)X
109981810(dictionary)X
109992155(database.)X
1100010 f
11001720 3262 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
110023 f
110031407 3504(Conclusion)N
110041 f
11005892 3636(This)N
110061063(paper)X
110071271(has)X
110081407(presented)X
110091744(the)X
110101871(design,)X
110112129(implemen-)X
11012720 3724(tation)N
11013928(and)X
110141070(performance)X
110151503(of)X
110161596(a)X
110171658(new)X
110181818(hashing)X
110192093(package)X
110202382(for)X
11021720 3812(UNIX.)N
11022993(The)X
110231150(new)X
110241316(package)X
110251612(provides)X
110261919(a)X
110271986(superset)X
110282280(of)X
110292378(the)X
11030720 3900(functionality)N
110311159(of)X
110321255(existing)X
110331537(hashing)X
110341815(packages)X
110352139(and)X
110362284(incor-)X
11037720 3988(porates)N
11038975(additional)X
110391318(features)X
110401596(such)X
110411766(as)X
110421855(large)X
110432038(key)X
110442176(handling,)X
11045720 4076(user)N
11046876(de\256ned)X
110471134(hash)X
110481302(functions,)X
110491641(multiple)X
110501928(hash)X
110512096(tables,)X
110522324(vari-)X
11053720 4164(able)N
11054894(sized)X
110551099(pages,)X
110561342(and)X
110571498(linear)X
110581721(hashing.)X
110592050(In)X
110602156(nearly)X
110612396(all)X
11062720 4252(cases,)N
11063954(the)X
110641096(new)X
110651274(package)X
110661582(provides)X
110671902(improved)X
110682252(perfor-)X
11069720 4340(mance)N
11070974(on)X
110711098(the)X
110721240(order)X
110731454(of)X
110741565(50-80%)X
110751863(for)X
110762001(the)X
110772142(workloads)X
11078720 4428(shown.)N
11079990(Applications)X
110801420(such)X
110811588(as)X
110821676(the)X
110831794(loader,)X
110842035(compiler,)X
110852360(and)X
11086720 4516(mail,)N
11087921(which)X
110881156(currently)X
110891485(implement)X
110901866(their)X
110912051(own)X
110922227(hashing)X
11093720 4604(routines,)N
110941032(should)X
110951279(be)X
110961389(modi\256ed)X
110971706(to)X
110981801(use)X
110991941(the)X
111002072(generic)X
111012342(rou-)X
11102720 4692(tines.)N
11103892 4806(This)N
111041087(hashing)X
111051389(package)X
111061705(is)X
111071810(one)X
111081978(access)X
111092236(method)X
11110720 4894(which)N
11111953(is)X
111121043(part)X
111131205(of)X
111141309(a)X
111151382(generic)X
111161656(database)X
111171970(access)X
111182212(package)X
11119720 4982(being)N
11120955(developed)X
111211342(at)X
111221457(the)X
111231612(University)X
111242007(of)X
111252131(California,)X
11126720 5070(Berkeley.)N
111271089(It)X
111281177(will)X
111291340(include)X
111301614(a)X
111311688(btree)X
111321887(access)X
111332131(method)X
111342409(as)X
11135720 5158(well)N
11136916(as)X
111371041(\256xed)X
111381259(and)X
111391433(variable)X
111401750(length)X
111412007(record)X
111422270(access)X
11143720 5246(methods)N
111441024(in)X
111451119(addition)X
111461414(to)X
111471509(the)X
111481640(hashed)X
111491896(support)X
111502168(presented)X
11151720 5334(here.)N
11152948(All)X
111531099(of)X
111541215(the)X
111551361(access)X
111561615(methods)X
111571934(are)X
111582081(based)X
111592312(on)X
111602440(a)X
11161720 5422(key/data)N
111621037(pair)X
111631207(interface)X
111641533(and)X
111651693(appear)X
111661952(identical)X
111672272(to)X
111682378(the)X
11169720 5510(application)N
111701121(layer,)X
111711347(allowing)X
111721671(application)X
111732071(implementa-)X
11174720 5598(tions)N
11175906(to)X
11176999(be)X
111771106(largely)X
111781360(independent)X
111791783(of)X
111801881(the)X
111812010(database)X
111822318(type.)X
11183720 5686(The)N
11184873(package)X
111851165(is)X
111861246(expected)X
111871560(to)X
111881650(be)X
111891754(an)X
111901858(integral)X
111912131(part)X
111922284(of)X
111932378(the)X
111942706 538(4.4BSD)N
111953006(system,)X
111963293(with)X
111973479(various)X
111983759(standard)X
111994075(applications)X
112002706 626(such)N
112012879(as)X
112022972(more\(1\),)X
112033277(sort\(1\))X
112043517(and)X
112053659(vi\(1\))X
112063841(based)X
112074050(on)X
112084156(it.)X
112094266(While)X
112102706 714(the)N
112112833(current)X
112123089(design)X
112133326(does)X
112143501(not)X
112153631(support)X
112163899(multi-user)X
112174256(access)X
112182706 802(or)N
112192804(transactions,)X
112203238(they)X
112213407(could)X
112223616(be)X
112233723(incorporated)X
112244159(relatively)X
112252706 890(easily.)N
1122610 f
112272894 938(i)N
112282913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
112292 f
112303365 1030(hash)N
112313638(ndbm)X
112323936(%change)X
112331 f
1123410 f
112352894 1034(i)N
112362913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
112371 f
112382934 1126(CREATE)N
1123910 f
112402894 1130(i)N
112412913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
112421 f
112433111 1222(user)N
112443390(0.2)X
112453677(0.4)X
112464079(50)X
112473143 1310(sys)N
112483390(0.1)X
112493677(1.0)X
112504079(90)X
112513 f
112522992 1398(elapsed)N
1125310 f
112543296 1406(c)N
112551374(c)Y
112561294(c)Y
112571214(c)Y
112583 f
112593390 1398(0)N
1126010 f
112613567 1406(c)N
112621374(c)Y
112631294(c)Y
112641214(c)Y
112653 f
112663677 1398(3.2)N
1126710 f
112683869 1406(c)N
112691374(c)Y
112701294(c)Y
112711214(c)Y
112723 f
112734039 1398(100)N
112741 f
1127510 f
112762894 1394(i)N
112772913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
112782894 1410(i)N
112792913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
112801 f
112812934 1494(READ)N
1128210 f
112832894 1498(i)N
112842913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
112851 f
112863111 1590(user)N
112873390(0.1)X
112883677(0.1)X
112894119(0)X
112903143 1678(sys)N
112913390(0.1)X
112923677(0.4)X
112934079(75)X
112943 f
112952992 1766(elapsed)N
1129610 f
112973296 1774(c)N
112981742(c)Y
112991662(c)Y
113001582(c)Y
113013 f
113023390 1766(0.0)N
1130310 f
113043567 1774(c)N
113051742(c)Y
113061662(c)Y
113071582(c)Y
113083 f
113093677 1766(0.0)N
1131010 f
113113869 1774(c)N
113121742(c)Y
113131662(c)Y
113141582(c)Y
113153 f
113164119 1766(0)N
113171 f
1131810 f
113192894 1762(i)N
113202913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
113212894 1778(i)N
113222913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
113231 f
113242934 1862(VERIFY)N
1132510 f
113262894 1866(i)N
113272913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
113281 f
113293111 1958(user)N
113303390(0.1)X
113313677(0.2)X
113324079(50)X
113333143 2046(sys)N
113343390(0.1)X
113353677(0.3)X
113364079(67)X
113373 f
113382992 2134(elapsed)N
1133910 f
113403296 2142(c)N
113412110(c)Y
113422030(c)Y
113431950(c)Y
113443 f
113453390 2134(0.0)N
1134610 f
113473567 2142(c)N
113482110(c)Y
113492030(c)Y
113501950(c)Y
113513 f
113523677 2134(0.0)N
1135310 f
113543869 2142(c)N
113552110(c)Y
113562030(c)Y
113571950(c)Y
113583 f
113594119 2134(0)N
113601 f
1136110 f
113622894 2130(i)N
113632913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
113642894 2146(i)N
113652913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
113661 f
113672934 2230(SEQUENTIAL)N
1136810 f
113692894 2234(i)N
113702913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
113711 f
113723111 2326(user)N
113733390(0.1)X
113743677(0.0)X
113754012(-100)X
113763143 2414(sys)N
113773390(0.1)X
113783677(0.1)X
113794119(0)X
113803 f
113812992 2502(elapsed)N
1138210 f
113833296 2510(c)N
113842478(c)Y
113852398(c)Y
113862318(c)Y
113873 f
113883390 2502(0.0)N
1138910 f
113903567 2510(c)N
113912478(c)Y
113922398(c)Y
113932318(c)Y
113943 f
113953677 2502(0.0)N
1139610 f
113973869 2510(c)N
113982478(c)Y
113992398(c)Y
114002318(c)Y
114013 f
114024119 2502(0)N
114031 f
1140410 f
114052894 2498(i)N
114062913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
114072894 2514(i)N
114082913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
114091 f
114102934 2598(SEQUENTIAL)N
114113453(\(with)X
114123642(data)X
114133796(retrieval\))X
1141410 f
114152894 2602(i)N
114162913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
114171 f
114183111 2694(user)N
114193390(0.1)X
114203677(0.1)X
114214119(0)X
114223143 2782(sys)N
114233390(0.1)X
114243677(0.1)X
114254119(0)X
114263 f
114272992 2870(elapsed)N
114283390(0.0)X
114293677(0.0)X
114304119(0)X
114311 f
1143210 f
114332894 2874(i)N
114342913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
114352885 2878(c)N
114362862(c)Y
114372782(c)Y
114382702(c)Y
114392622(c)Y
114402542(c)Y
114412462(c)Y
114422382(c)Y
114432302(c)Y
114442222(c)Y
114452142(c)Y
114462062(c)Y
114471982(c)Y
114481902(c)Y
114491822(c)Y
114501742(c)Y
114511662(c)Y
114521582(c)Y
114531502(c)Y
114541422(c)Y
114551342(c)Y
114561262(c)Y
114571182(c)Y
114581102(c)Y
114591022(c)Y
114603296 2878(c)N
114612846(c)Y
114622766(c)Y
114632686(c)Y
114643567 2878(c)N
114652846(c)Y
114662766(c)Y
114672686(c)Y
114683869 2878(c)N
114692846(c)Y
114702766(c)Y
114712686(c)Y
114724264 2878(c)N
114732862(c)Y
114742782(c)Y
114752702(c)Y
114762622(c)Y
114772542(c)Y
114782462(c)Y
114792382(c)Y
114802302(c)Y
114812222(c)Y
114822142(c)Y
114832062(c)Y
114841982(c)Y
114851902(c)Y
114861822(c)Y
114871742(c)Y
114881662(c)Y
114891582(c)Y
114901502(c)Y
114911422(c)Y
114921342(c)Y
114931262(c)Y
114941182(c)Y
114951102(c)Y
114961022(c)Y
114972891 3058(i)N
114982916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
114992 f
115003304 3150(hash)N
115013571(hsearch)X
115023939(%change)X
115031 f
1150410 f
115052891 3154(i)N
115062916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
115071 f
115082931 3246(CREATE/READ)N
1150910 f
115102891 3250(i)N
115112916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
115121 f
115133050 3342(user)N
115143329(0.3)X
115153648(0.4)X
115164048(25)X
115173082 3430(sys)N
115183329(0.0)X
115193648(0.0)X
115204088(0)X
115213 f
115222931 3518(elapsed)N
115233329(0.0)X
115243648(0.0)X
115254088(0)X
115261 f
1152710 f
115282891 3522(i)N
115292916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
115302882 3534(c)N
115313462(c)Y
115323382(c)Y
115333302(c)Y
115343222(c)Y
115353142(c)Y
115363235 3518(c)N
115373494(c)Y
115383414(c)Y
115393334(c)Y
115403506 3518(c)N
115413494(c)Y
115423414(c)Y
115433334(c)Y
115443872 3518(c)N
115453494(c)Y
115463414(c)Y
115473334(c)Y
115484267 3534(c)N
115493462(c)Y
115503382(c)Y
115513302(c)Y
115523222(c)Y
115533142(c)Y
115543 f
115552706 3658(Figure)N
115562953(8b:)X
115571 f
115583084(Timing)X
115593339(results)X
115603568(for)X
115613682(the)X
115623800(password)X
115634123(database.)X
1156410 f
115652706 3746 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
115663 f
115673396 3988(References)N
115681 f
115692706 4120([ATT79])N
115703058(AT&T,)X
115713358(DBM\(3X\),)X
115722 f
115733773(Unix)X
115743990(Programmer's)X
115752878 4208(Manual,)N
115763194(Seventh)X
115773491(Edition,)X
115783793(Volume)X
115794085(1)X
115801 f
11581(,)S
115824192(January,)X
115832878 4296(1979.)N
115842706 4472([ATT85])N
115853027(AT&T,)X
115863296(HSEARCH\(BA_LIB\),)X
115872 f
115884053(Unix)X
115894239(System)X
115902878 4560(User's)N
115913112(Manual,)X
115923401(System)X
115933644(V.3)X
115941 f
115953753(,)X
115963793(pp.)X
115973913(506-508,)X
115984220(1985.)X
115992706 4736([BRE73])N
116003025(Brent,)X
116013253(Richard)X
116023537(P.,)X
116033651(``Reducing)X
116044041(the)X
116054168(Retrieval)X
116062878 4824(Time)N
116073071(of)X
116083162(Scatter)X
116093409(Storage)X
116103678(Techniques'',)X
116112 f
116124146(Commun-)X
116132878 4912(ications)N
116143175(of)X
116153281(the)X
116163422(ACM)X
116171 f
116183591(,)X
116193654(Volume)X
116203955(16,)X
116214098(No.)X
116224259(2,)X
116234362(pp.)X
116242878 5000(105-109,)N
116253185(February,)X
116263515(1973.)X
116272706 5176([BSD86])N
116283055(NDBM\(3\),)X
116292 f
116303469(4.3BSD)X
116313775(Unix)X
116323990(Programmer's)X
116332878 5264(Manual)N
116343155(Reference)X
116353505(Guide)X
116361 f
116373701(,)X
116383749(University)X
116394114(of)X
116404208(Califor-)X
116412878 5352(nia,)N
116423016(Berkeley,)X
116433346(1986.)X
116442706 5528([ENB88])N
116453025(Enbody,)X
116463319(R.)X
116473417(J.,)X
116483533(Du,)X
116493676(H.)X
116503779(C.,)X
116513897(``Dynamic)X
116524270(Hash-)X
116532878 5616(ing)N
116543034(Schemes'',)X
116552 f
116563427(ACM)X
116573630(Computing)X
116584019(Surveys)X
116591 f
116604269(,)X
116614322(Vol.)X
116622878 5704(20,)N
116632998(No.)X
116643136(2,)X
116653216(pp.)X
116663336(85-113,)X
116673603(June)X
116683770(1988.)X
116693 f
11670720 5960(USENIX)N
116719 f
116721042(-)X
116733 f
116741106(Winter)X
116751371('91)X
116769 f
116771498(-)X
116783 f
116791562(Dallas,)X
116801815(TX)X
116814384(11)X
11682
1168312 p
11684%%Page: 12 12
116850(Courier)xf 0 f
1168610 s 10 xH 0 xS 0 f
116873 f
11688432 258(A)N
11689510(New)X
11690682(Hashing)X
11691985(Package)X
116921290(for)X
116931413(UNIX)X
116943663(Seltzer)X
116953920(&)X
116964007(Yigit)X
116971 f
11698432 538([FAG79])N
11699776(Ronald)X
117001057(Fagin,)X
117011308(Jurg)X
117021495(Nievergelt,)X
117031903(Nicholas)X
11704604 626(Pippenger,)N
117051003(H.)X
117061135(Raymond)X
117071500(Strong,)X
117081787(``Extendible)X
11709604 714(Hashing)N
11710901(--)X
11711985(A)X
117121073(Fast)X
117131236(Access)X
117141493(Method)X
117151771(for)X
117161894(Dynamic)X
11717604 802(Files'',)N
117182 f
11719855(ACM)X
117201046(Transactions)X
117211485(on)X
117221586(Database)X
117231914(Systems)X
117241 f
117252168(,)X
11726604 890(Volume)N
11727882(4,)X
11728962(No.)X
117291100(3.,)X
117301200(September)X
117311563(1979,)X
117321763(pp)X
117331863(315-34)X
11734432 1066([KNU68],)N
11735802(Knuth,)X
117361064(D.E.,)X
117372 f
117381273(The)X
117391434(Art)X
117401577(of)X
117411680(Computer)X
117422041(Pro-)X
11743604 1154(gramming)N
11744971(Vol.)X
117451140(3:)X
117461245(Sorting)X
117471518(and)X
117481676(Searching)X
117491 f
117502001(,)X
117512058(sec-)X
11752604 1242(tions)N
11753779(6.3-6.4,)X
117541046(pp)X
117551146(481-550.)X
11756432 1418([LAR78])N
11757747(Larson,)X
117581011(Per-Ake,)X
117591319(``Dynamic)X
117601687(Hashing'',)X
117612 f
117622048(BIT)X
117631 f
11764(,)S
11765604 1506(Vol.)N
11766764(18,)X
11767884(1978,)X
117681084(pp.)X
117691204(184-201.)X
11770432 1682([LAR88])N
11771752(Larson,)X
117721021(Per-Ake,)X
117731335(``Dynamic)X
117741709(Hash)X
117751900(Tables'',)X
117762 f
11777604 1770(Communications)N
117781183(of)X
117791281(the)X
117801415(ACM)X
117811 f
117821584(,)X
117831640(Volume)X
117841934(31,)X
117852070(No.)X
11786604 1858(4.,)N
11787704(April)X
11788893(1988,)X
117891093(pp)X
117901193(446-457.)X
11791432 2034([LIT80])N
11792731(Witold,)X
117931013(Litwin,)X
117941286(``Linear)X
117951590(Hashing:)X
117961939(A)X
117972036(New)X
11798604 2122(Tool)N
11799786(for)X
11800911(File)X
118011065(and)X
118021211(Table)X
118031424(Addressing'',)X
118042 f
118051893(Proceed-)X
11806604 2210(ings)N
11807761(of)X
11808847(the)X
11809969(6th)X
118101095(International)X
118111540(Conference)X
118121933(on)X
118132036(Very)X
11814604 2298(Large)N
11815815(Databases)X
118161 f
118171153(,)X
118181193(1980.)X
11819432 2474([NEL90])N
11820743(Nelson,)X
118211011(Philip)X
118221222(A.,)X
118232 f
118241341(Gdbm)X
118251558(1.4)X
118261679(source)X
118271913(distribu-)X
11828604 2562(tion)N
11829748(and)X
11830888(README)X
118311 f
118321209(,)X
118331249(August)X
118341500(1990.)X
11835432 2738([THOM90])N
11836840(Ken)X
118371011(Thompson,)X
118381410(private)X
118391670(communication,)X
11840604 2826(Nov.)N
11841782(1990.)X
11842432 3002([TOR87])N
11843790(Torek,)X
118441066(C.,)X
118451222(``Re:)X
118461470(dbm.a)X
118471751(and)X
118481950(ndbm.a)X
11849604 3090(archives'',)N
118502 f
11851966(USENET)X
118521279(newsgroup)X
118531650(comp.unix)X
118541 f
118552002(1987.)X
11856432 3266([TOR88])N
11857760(Torek,)X
118581006(C.,)X
118591133(``Re:)X
118601351(questions)X
118611686(regarding)X
118622027(data-)X
11863604 3354(bases)N
11864826(created)X
118651106(with)X
118661295(dbm)X
118671484(and)X
118681647(ndbm)X
118691876(routines'')X
118702 f
11871604 3442(USENET)N
11872937(newsgroup)X
118731328(comp.unix.questions)X
118741 f
118751982(,)X
118762041(June)X
11877604 3530(1988.)N
11878432 3706([WAL84])N
11879773(Wales,)X
118801018(R.,)X
118811135(``Discussion)X
118821564(of)X
118831655("dbm")X
118841887(data)X
118852045(base)X
11886604 3794(system'',)N
118872 f
11888973(USENET)X
118891339(newsgroup)X
118901762(unix.wizards)X
118911 f
118922168(,)X
11893604 3882(January,)N
11894894(1984.)X
11895432 4058([YIG89])N
11896751(Ozan)X
11897963(S.)X
118981069(Yigit,)X
118991294(``How)X
119001545(to)X
119011648(Roll)X
119021826(Your)X
119032032(Own)X
11904604 4146(Dbm/Ndbm'',)N
119052 f
119061087(unpublished)X
119071504(manuscript)X
119081 f
11909(,)S
119101910(Toronto,)X
11911604 4234(July,)N
11912777(1989)X
119133 f
11914432 5960(12)N
119152970(USENIX)X
119169 f
119173292(-)X
119183 f
119193356(Winter)X
119203621('91)X
119219 f
119223748(-)X
119233 f
119243812(Dallas,)X
119254065(TX)X
11926
1192713 p
11928%%Page: 13 13
119290(Courier)xf 0 f
1193010 s 10 xH 0 xS 0 f
119313 f
11932720 258(Seltzer)N
11933977(&)X
119341064(Yigit)X
119353278(A)X
119363356(New)X
119373528(Hashing)X
119383831(Package)X
119394136(for)X
119404259(UNIX)X
119411 f
11942720 538(Margo)N
11943960(I.)X
119441033(Seltzer)X
119451282(is)X
119461361(a)X
119471423(Ph.D.)X
119481631(student)X
119491887(in)X
119501974(the)X
119512097(Department)X
11952720 626(of)N
11953823(Electrical)X
119541167(Engineering)X
119551595(and)X
119561747(Computer)X
119572102(Sciences)X
119582418(at)X
11959720 714(the)N
11960850(University)X
119611220(of)X
119621318(California,)X
119631694(Berkeley.)X
119642055(Her)X
119652207(research)X
11966720 802(interests)N
119671017(include)X
119681283(\256le)X
119691415(systems,)X
119701718(databases,)X
119712076(and)X
119722221(transac-)X
11973720 890(tion)N
11974896(processing)X
119751291(systems.)X
119761636(She)X
119771807(spent)X
119782027(several)X
119792306(years)X
11980720 978(working)N
119811026(at)X
119821123(startup)X
119831380(companies)X
119841762(designing)X
119852112(and)X
119862267(imple-)X
11987720 1066(menting)N
119881048(\256le)X
119891216(systems)X
119901535(and)X
119911716(transaction)X
119922133(processing)X
11993720 1154(software)N
119941026(and)X
119951170(designing)X
119961509(microprocessors.)X
119972103(Ms.)X
119982253(Seltzer)X
11999720 1242(received)N
120001057(her)X
120011223(AB)X
120021397(in)X
120031522(Applied)X
120041843(Mathematics)X
120052320(from)X
12006720 1330 0.1953(Harvard/Radcliffe)AN
120071325(College)X
120081594(in)X
120091676(1983.)X
12010720 1444(In)N
12011810(her)X
12012936(spare)X
120131129(time,)X
120141313(Margo)X
120151549(can)X
120161683(usually)X
120171936(be)X
120182034(found)X
120192243(prepar-)X
12020720 1532(ing)N
12021868(massive)X
120221171(quantities)X
120231527(of)X
120241639(food)X
120251831(for)X
120261970(hungry)X
120272242(hoards,)X
12028720 1620(studying)N
120291022(Japanese,)X
120301355(or)X
120311449(playing)X
120321716(soccer)X
120331948(with)X
120342116(an)X
120352218(exciting)X
12036720 1708(Bay)N
12037912(Area)X
120381132(Women's)X
120391507(Soccer)X
120401788(team,)X
120412026(the)X
120422186(Berkeley)X
12043720 1796(Bruisers.)N
12044720 1910(Ozan)N
12045915(\()X
120463 f
12047942(Oz)X
120481 f
120491040(\))X
120501092(Yigit)X
120511281(is)X
120521358(currently)X
120531672(a)X
120541732(software)X
120552033(engineer)X
120562334(with)X
12057720 1998(the)N
12058886(Communications)X
120591499(Research)X
120601861(and)X
120612044(Development)X
12062720 2086(group,)N
12063948(Computing)X
120641328(Services,)X
120651641(York)X
120661826(University.)X
120672224(His)X
120682355(for-)X
12069720 2174(mative)N
12070967(years)X
120711166(were)X
120721352(also)X
120731510(spent)X
120741708(at)X
120751795(York,)X
120762009(where)X
120772234(he)X
120782338(held)X
12079720 2262(system)N
12080985(programmer)X
120811425(and)X
120821583(administrator)X
120832052(positions)X
120842382(for)X
12085720 2350(various)N
12086995(mixtures)X
120871314(of)X
120881420(of)X
120891526(UNIX)X
120901765(systems)X
120912056(starting)X
120922334(with)X
12093720 2438(Berkeley)N
120941031(4.1)X
120951151(in)X
120961233(1982,)X
120971433(while)X
120981631(at)X
120991709(the)X
121001827(same)X
121012012(time)X
121022174(obtaining)X
12103720 2526(a)N
12104776(degree)X
121051011(in)X
121061093(Computer)X
121071433(Science.)X
12108720 2640(In)N
12109813(his)X
12110931(copious)X
121111205(free)X
121121356(time,)X
121131543(Oz)X
121141662(enjoys)X
121151896(working)X
121162188(on)X
121172293(what-)X
12118720 2728(ever)N
12119890(software)X
121201197(looks)X
121211400(interesting,)X
121221788(which)X
121232014(often)X
121242209(includes)X
12125720 2816(language)N
121261044(interpreters,)X
121271464(preprocessors,)X
121281960(and)X
121292110(lately,)X
121302342(pro-)X
12131720 2904(gram)N
12132905(generators)X
121331260(and)X
121341396(expert)X
121351617(systems.)X
12136720 3018(Oz)N
12137836(has)X
12138964(authored)X
121391266(several)X
121401515(public-domain)X
121412003(software)X
121422301(tools,)X
12143720 3106(including)N
121441069(an)X
121451191(nroff-like)X
121461545(text)X
121471711(formatter)X
121482 f
121492056(proff)X
121501 f
121512257(that)X
121522423(is)X
12153720 3194(apparently)N
121541083(still)X
121551226(used)X
121561397(in)X
121571483(some)X
121581676(basement)X
121592002(PCs.)X
121602173(His)X
121612307(latest)X
12162720 3282(obsessions)N
121631143(include)X
121641460(the)X
121651639(incredible)X
121662040(programming)X
12167720 3370(language)N
121681030(Scheme,)X
121691324(and)X
121701460(Chinese)X
121711738(Brush)X
121721949(painting.)X
121733 f
12174720 5960(USENIX)N
121759 f
121761042(-)X
121773 f
121781106(Winter)X
121791371('91)X
121809 f
121811498(-)X
121823 f
121831562(Dallas,)X
121841815(TX)X
121854384(13)X
12186
1218714 p
12188%%Page: 14 14
121890(Courier)xf 0 f
1219010 s 10 xH 0 xS 0 f
121913 f
12192432 5960(14)N
121932970(USENIX)X
121949 f
121953292(-)X
121963 f
121973356(Winter)X
121983621('91)X
121999 f
122003748(-)X
122013 f
122023812(Dallas,)X
122034065(TX)X
12204
1220514 p
12206%%Trailer
12207xt
12208
12209xs