CSLNotebookEntryToCedarusersDateNovember10,1983FromEdTaftLocationPaloAltoSubjectBTreepackageOrganizationPARC/CSLXEROXReleaseas[Indigo]Documentation>BTreeDoc.tiogaDraft[Indigo]Documentation>BTreeDoc.tiogaLasteditedbyTaft,November10,19831:56pmAbstractThisCedarpackagemaintainsanorderedcollectionofobjectsasaBTree.Theobjectsmaybeofdifferentsizes,andtheremaybealargenumberofthem(tensorhundredsofthousands).TheamountofvirtualmemoryrequireddoesnotdependonthesizeoftheBTree,andthecostoffinding,inserting,anddeletingobjectsincreasesonlyveryslowlyastheBTreegetslarger.Thepackagemakesveryfewassumptionsabouttherepresentationoftheobjectsbeingstoredoraboutthepropertiesofthestorageitself.ThismemogivesanoverviewoftheoperationoftheBTreepackageandpresentstheresultsofsomeperformancemeasurements.pîÆï^õî§î ?qî ìï[ rî1ï[ îIqî(îï[ rî3Cï[ î:î;î Vî¯sî¬ï>;îþîÐîî!Tî$bqî ®ï;´sî¬ï;´îÂî×îî$Pî&<î+Y î1Šî3?î7Øî9‚î:¨î?îAòîF‹î ìï: î òî Áî}îîçî†î  î"¦î#æî'cî,¥î.tî2î5…î7_î=‰î?X îF·î ìï8fîÿîÁî#î™î 1î#jî%çî*Úî,èî/Pî2î3Åî6-î:°î=oî?×îB­îDnî ìï6¾ îîÎî'îÛî"¸î%èî)î-]î/"î1˜î5Ñî8µî=î?ýîEVî ìï5î ÷î” îRî/î‹ î&~î(3î*�î/(î2ïî7î8Îî<¬î? îEzîG/î ìï3pîÇî£îæîGîâîûî%óî'Õî*]î0¯î2‘î5î9dî>ÎîA®îG/î ìï1Èî;îôîˆ îŒ TVm$�2IntroductionABTreeisadatastructureformaintaininganorderedcollectionofobjects(orentries)storedasatreeoffixed-sizepages.Theentriesareeachsmallerthanapageandarestoredmanyperpage;thus,eachinteriorpageofthetreehasmanybranches,soevenaverylargetreeisquiteshallow(adepthof3or4istypical).Thismeansthatfindinganarbitraryentryisrelativelyinexpensiveintermsofthenumberofpagesthatmustbeaccessed.Thecostofanupdateisalsoreasonableandhasanupperboundwhichislinearinthedepthofthetree.Finally,thetreehasverygoodlocality,soreferencestoconsecutiveentriesusuallyaccessthesamepage.ForfurtherinformationonthepropertiesofBTreesingeneral,pleasereadKnuth,TheArtofComputerProgramming,vol.3,section6.2.4.ThisBTreepackageisaCedartransliterationofonewritteninBCPLbyEdMcCreightandusedformaintainingthefiledirectoryinIFS.TheimportantpropertiesthatdistinguishitfromexistingMesaBTreepackagesare:GeneralitytheBTreepackagemakesnoassumptionsabouttherepresentationofentries;itsimplystoresuninterpretedblocksofwords.Itneedknownothingaboutwhatportionofanentrycontainsthekey''orthevalue''.Allknowledgeabouttherepresentationofentriesisvestedinclient-providedprocedures.ThepackagealsomakesnoassumptionsaboutthemeansusedtostoretheBTreepages,butinsteadcallsclient-providedprocedurestoaccessthem.Capacitythereisnopracticallimittothenumberofentriesthatcanbestored.Inparticular,thereisnorequirementthatallofthepagesoftheBTreeoccupyvirtualmemoryatthesametime.Theultimatelimittothesizeofthetreeis65,535pages,whichshouldbesufficienttostoreatleastamillionentries(evenmoreifpages''largerthan256wordsareused).Storageefficiencyoverheadconsistsofonlyonewordperentryandtwowordsperpage;andthepackagemaintainspagesbetween60and80percentfullontheaverage.Thepackagealsoattemptstokeeplargerentriesintheleafpagesandsmalleronesintheinteriorpagessoastominimizethetree'sdepth.Provenreliabilitysincethelast''bugwasfixedintheBCPLversionofthepackage,therehavebeenmanytensofthousandsofIFS-hoursofoperationwithnosuspicionofaBTree-relatedproblem.NochangesweremadetotheBTreemaintenancealgorithmsduringthetransliterationtoCedar.Itisintendedthatthispackagebesuitableforuseinmaintaininganyordereddatastructurethatmustbestoredexternally,i.e.,iseitherpermanentoris(potentially)toolargetokeepinvirtualmemory.Themostobviousapplicationisafiledirectory.Forsmallerapplicationsinvolvingtemporarydataonly,aninternaldatastructuresuchasaRedBlackTreeismoreefficienttoaccessandmaintain.uîHDïg/pî ìï^õ rî ®ï[�î@îhîÚî îîØî  î'¶î)­î.Ô î5î6Îî;qvî=´ï[�î>Oï[�rîA„ï[�îBˆï[�îF±îHeî ìïYõî ¿î‰ î¸îëîÔî Vî"ºî%üî*Õî. î/Gî2žî5fî7Ëî;ÿî?ÛîB`îF1î ìïXNî "îî]îî€îGîÁî"‘î(¶î*î-Ëî.úî2î5zî8Aî9²î=AîB;îCãîGÖî ìïV§î Aî %îzîîiî£îîöî$ßî&ðî,µî0iî1ö î8 î?œîAkîEVîG/î ìïTÿîî«îcîîsîQî"î$Õî'�î)5î+î/’î0ëî3¤ î:`î=î?fîADîE4î ìïSXî Ùî$îäîqî¯î|îîSî!Lî&5î(tî+î-iî0Wî3©î8©î:L î@­îB: î ìïQ±î\îîî|îùî ®ïO.î�îj î)îcî ÷ î'£î)�î.kî0Nî5®î:î=TvîBIïO.îC0ïO.îEAîGëî ìïM‡î1 rî0ïM‡î ïM‡î·îDî!áî ®ïKîØî î]îÙîî <î) î*Öî-’î2Uî4î8Fî:Rî<•îC‹îFSî ìïI]î " î±î îlî7îÞî"åî%¶î, î2�î5I î<3î=‚î@âîEåî ìïG¶îîÕwî ®ïE3 rîáïE3îAïE3îŸî¿îÿî$6î&: î-úî1Úî47 î=,î>ãîCËîEî ìïCŒî Ì îlî°îhî Ìî"Cî% î)^î.tî2Uî5²î:�î9îAÌîG/î ìïAäîî îš î-î±î!Çî%Ûî(k î1”î3~î8 î9½î>(î@î ìï@= îAîîIî î ;î"8 î)ñî-Êî0 î4Zî7�î92î<…î>ÛîBôîGî ìï>–îŸî®î5 î"<î#ëî'øwî ®ï<rîÙï<î:ï<î»îîîšî"Øî$î&Öî+ûî-«î2î4Úî7]î9Fî=¹î?€ îFî ìï:lî †î » î¶î³îÑî¸îFî#?î%'î'´î,î0çî5pî; î<Òî?`îC îF·î ìï8ÄîHî†î,î„î'îØî0îêî!Nî%”î)¯î-µî2)î4 î:î;®î?î@“îC±îDÒî ìï7î\îî¯îî;î 'î#Mî%âî)ïî,Cwî ®ï4›îÎ rîgï4›îÈï4›î»î#»î%uî(�î+<î.Åî1;î4Ïî7‡î:4î>Aî@·îDwîG/î ìï2óî?î�îkîëî áî#©î%Ÿî*›î-6î/Nî1¾î7%î:î?bîB?îGàî ìï1Lî Iî@î¼îuîàî—î nî#1î(î+?î,ùî/dî4Yî8/î9ÿî;¸î=rîC…îEðî ìï/¥wî ®ï-"îh rîï-"îaï-"îèî[î"Oî%&î'åî+wî-8î/¬î3âî8½î:Šî<ýîB«îFHî ìï+{î Vî-îîäîiî/î$¾î&„î,ºî/âî1õî8î9Æî:ý îC³î ìï)Óî Nî{îÌîŒî:îšî ¼ î(À î/„î3õî6Tî?î@Âî ®ï'Qî9î¹î‰îkî!î wî"|î'§î)øî,�î.C î5íî8¡î=×î@ðîFÁî ìï%ªî Fî)î? îßîeîÄî!¢î(zî*0î+� î3Cî5Ÿî8øî:™î=Ýî?}îCÊî ìï$î Âîî< îMî·îßî!F î'nî*î.Þ î6sîFîCðîGRî ìïXMî ®ïUÊî�îYîÊîßî”î!>î# î*jî.jvî0ÓïUÊî1XïUÊ î9� rî?¼ïUÊî@bïUÊîB}vîDæïUÊîEjïUÊî ìïT" rîŠïT"îYïT"î$î:îoîÎî'•î*î+9î/ î6ãî8�î:âî@îDôîF–î ìïR{î îíî�îµîiîŸî#°î&bî)Žî,Äî0Øî6!î8§î;èî=Ô îE¾îGÖî ìïPÔ îãîšîM î ¸ î'%î*?î ®ïNQî¯ îÏ îdî#óî&|î+çî-¿î0×î3u î:cî;âî?íîAÅîE­î ìïL©î&î­î|îîôîgî%àî(K î.úî3î6¨î9î;âî=²î?¹îCeîE*î ìïKî ÉîDîwîî“î!„î#bî*Wî+¦î.aî1¡î3·î7pî:ýî?;îA$îF·î ìïI[îvîíîªîøîðî!Rî$³î)Ãî0î3Ùî5Îî:Þ îCkîG;î ìïG³ îóî0 îõqîcïG³î 7ïG³rî"ïG³î"¹ïG³qî$ËïG³î%„ïG³î(¡rî.'ïG³î.¡ïG³î15î4î6¹î;� îBîC½î ®ïE0î�îM îÃî"îŒî#Úî%àî)ùî,cî1°î6òî9\î=1î>êîCîElî ìïC‰î oîîòîLîìî î!×î$Nî)Õî+¦î,çî0Fî2Yî6Öî9M îB´ î ìïAáî ÿî·qîåïAáîžïAáî¿rîJïAáî¸ïAáîýî ,î#ðî%®î* î/€ î6>î7lî:Ãî<�î?TîB÷îGî ìï@:îDîÅîîMîÂîvî âî$ î,m î5î7Œî:èî?° î ìï>“î ðî—î÷î=îìîÑî$„î&^î*)î,àî1¿î4î8xî ®ï<îÐî]îÕîÎîÄî"Îî%ñî)¹î-? î7]î<{î?%îC’ î ìï:h îHîçîhînîý î(òî*Àî-6î0’î5Z î;Üî?é î ìï8Áî,î1îÂîj î"™î%å î/õî1’î7€î9ïî?›î@öîGËî ìï7îåîî5îõî î#‘î&êî(uî.Èî0î2ñî6Ðî;î=Ñî?PîE îG/î ìï5rî9îîlîîéîýîpî!ì î(?î+üî2Yî5# î<î@OîCî ìï3Ëî ?î|î8îŸîþîî Kî#|î ®ï1HîzîhîÉîŒîàî•î"î$åî'é î2Jî7î81î:� î@ÄîCpî ìï/ î îÍîWîî=î]îî Î î'“î+ðî/²î2Ðî52î9Ñ îBË î ìï-ùîuî¨î¥îîÓ î!ùî&î*Óî, î/Rî3åî7†î;¡î?Ð îF‹î ìï,Rî Ý î ®ï)ÎîÓîbî‹î‚îp î$î'î*nî-Hî2î7Lî9à î@hîE�î ìï('î3îàî8qî°ï('î„ï('rîöï('î÷ï('îžî î%¤î*î+Tî,¸î2l î8ýî;Ãî>îAÈîG“î ìï&€î RîÎî¡îRîJîäî"Ÿî%î)¾î.Kî/¾î3xî5éî7êî=îCîE¨îGî ìï$Øî Øvîœï$Øî7ï$ØrîÓï$Øvîï$Øîwï$Ørî!­ï$Øî"tï$Øî%xî'1î* î,\ÿ 8TVm$4PerformanceTheperformanceoftheBTreepackagedependsonmanyvariables:treesize,pagesize,accesspatterns,cachingbehaviorofthestorageprimitives,andothers.Afewgeneralstatementsaboutperformanceareofferedhere,followedbysomemeasuredresults.Itiscrucialthatthestorageimplementationincludeasubstantialamountofcaching,managedinanLRUfashion.Inmanysituations,theBTreepackagereferencesagivenpagemultipletimesinthecourseofasingleupdate.Evenignoringthis,inmostapplicationsitiscommonforclientstomakereferencestothesameorclosely-relatedentriesoverashortintervaloftime;theresultinglocalityofreferencehasaperformancebenefitonlywhenredundantstoragereadsareavoidedbyuseofacache.ThesizeofthecacherelativetothesizeoftheBTreecanhaveasubstantialeffectonperformance,astheresultsbelowshow.Additionally,itshouldbenotedthatforalargeBTreeitisdesirabletohavealargepagesize;givenareasonablylargeamountofspaceforacache,itisbettertohaveamodestnumberofrelativelylargepagesthanalargernumberofsmallpages.ThisisbecausethemaincostofperforminganoperationonalargeBTreestoredonadiskisdiskaccesstime(asopposedtotransfertime);andlargerpagesmeanmoreentriesperpage,ashallowertree,andfeweraccessesperoperation.WhenupdatingaBTree,atradeoffmustbemadebetweenthedesireforgoodperformanceandthedesiretomaintainaconsistentpermanentstateofthetree.Ifitisdesiredthatthepermanentstatebeconsistentbetweeneveryupdatethenmorewritesarerequired,thusreducingperformance.TheclientprogramcontrolsthistradeoffbyuseofthemaintainRecomputableStateargumentofBTree.OpenandtheBTree.SetUpdateInProgressprocedure.Ofcourse,ifconsistencyisbeingmaintainedatalowerlevel,e.g.,bykeepingtheBTreeinanAlpinefileunderatransaction,thennoprovisionsneedbemadeattheBTreelevelformaintainingconsistency.ThemeasurementsbelowwereobtainedusingtheBTreeTesttool,whichisavailableasBTreeTest.bcdfromBTree.df.(ThesenumbersareforCedar4.4,usingPilotfilefacilities;nocorrespondingmeasurementshaveyetbeenmadeforCedar5.0.)ThisprogramusesBTreeVMtomanageaBTreestoredinatemporaryfile(whichisdeletedwhenthetoolisdestroyed).Itobtainsparametersfromtheuser,randomlyperformsvariousoperationsonthetree,anddisplaysanumberofperformancestatistics.RunningBTreeTestfromtheUserExecopensaviewercontainingacommandmenu,severaluser-adjustableparameters,andatableofresults.Theparametersare:DiskPages/BTreePagethenumberoffilepages(256words)perlogicalBTreepage.Thelegalrangeis[1..16].CacheSizethenumberoflogicalBTreepageskeptinBTreeVM'scache[8..255].MaxTreeEntriesthemaximumnumberofentriesthetestprogramwilleverpermitthetreetocontain[100..65535].(Notethattheupperlimitisarestrictionofthetestprogram,notoneimposedbytheBTreepackageitself.)LongUpdatethisbooleanswitchcontrolswhetherornottheBTreepackageistokeepthepermanentstateconsistentbetweenupdates.LongUpdate:yes''meansthatwritesareperformedonlywhennecessarytoobtainafreecacheentry.ValidateEveryUpdateturningonthisswitchcausestheentiretreetobecheckedaftereachupdate;thisisusefulonlyduringbasicdebuggingoftheBTreepackage,andisverycostly.AtestisstartedbyclickingStart,andisendedbyclickingStop.Theresultsareupdatedeveryfewsecondswhilethetestisrunning.ClickingInitTreeresetsthetreetoemptybeforethebeginningofatest.(ItisnecessarytodothisafterchangingDiskPages/BTreePageorMaxTreeEntries.)ResetStatsresetsthestatisticstozerobutdoesnotchangethetree.Theresultsare:Treesize,Levels,Entriesthesedescribethecurrentstateofthetree.ThetreesizeisinunitsofuîHDïg/pî ìï^õ rî ®ï[¦î¼ îöîåî{î Ôî&Lî+ñî..î2. î8™î;‘î>ËîBHîE�î ìïYÿîéîLî^îyî :î%O î,uî/Žî4kî6Yî9\î>‘ îE­î ìïXX îðîDî îî"#î$î'²î-çî ®ïUÝîî{îáî¥îùî¡ î'tî,Iî-h î4-î9.î:Üî@*îEûîGžî ìïT5î nî‡îEîþ îdî ²î$Ãî)ô î0dî1|î5î8Tî=¼îAUîBñîE?î ìïRŽî ¬î ÝîÏîÀîPîÏî!Ðî#…î&è î.†î/ãî1Uî7 î9Qî=œî?RîC î ìïPçî ˜î ôîoî0î/î œî#³î$Úî(Uî-Rî/î2¤î5î:£î?iîAîGî ìïO?î  îîÂîÜî‘î%5î)çî-†î/Úî5î7î9vî;/îÄîD˜îFHî ìïIuî .î­î îHîîW î!Hî$Èî)ëî+¼î/‰î1ßî3!î7]î8Ëî:Oî>_î@%îC„îDÆî ìïGÎî"îå îàîQî%î!Uî"‰î&~î+´î-vî1î5Jî8nî9ãî?îAxîDÿîGÖî ìïF' î3î8îvî‘îÐî Kî$‚î(»î*Öî,î/î0—î3šî7¼î:öî=3îBÁîD„î ìïDîî»î§îrî1îÄî$5î&ªî*Hî+rî1�î4ªî7bî;,î@dîBÙ î ®ïBîºîvî•îî"î"Nî%«î'�î+Dî0¨î2üî6òî9$î<‹ îDƒîG/î ìï@]î ÿî¾îŠîÄ î+î$!î'cî)-î+�î.Çî0Zî1Áî3=î8î:öî=fîD\îGžî ìï>¶ îUî×îžîDî!}î%#î)8î+žî1™î4±î:u îBäîEÏî ìï=î”îåî îñîî!•î#hvî%áï=î&÷ï=rî6çï=î7�ï=î=+î>ý îFØî ìï;gî Dî6 î$î&î*²î, î35î4™î8\ î?|îA îB/îEñî ìï9Àî Äî¶îØî.îGîìîÓî"Oî$¯î(¨î)È î1î40î6- î<¯î@îAêîE îG/î ìï8îîTî‘ î' î ®ï5�îb î5îîKî$Øî(^î*šî1î4î8î9Kî>âî@l î ìï3öî 'î î\îàîî!î%î'nî*ëî.î0C î5óî7Í î@˜ î ìï2Nî jîëî€îwîìî<î">î%�î+Vî.‡î55î7îîDî¤î"¾î%vî*¬î+Öî1î2¼ î:À î ®ï,…î¾î¶îrî 'î&¦î*òî,qî1+ î8:î9¹î@oîDþî ìï*Ýî] î¼îsî�î"î#¾î(eî+= î2Dvî ®ï(brîÿï(bî`ï(bîóî#Tî%Aî'ßî+Þî/!î3Üî6…î;î?jîC<îFIî ìï&»î ¶î"vî ®ï$@rîÃï$@î$ï$@î„î°îiî!Ãî%åî)°î,Ëî.yî5Ëî9—vî ®ï!Ä rîCï!Äî¤ï!Äî1î ßî&9î(î,¼î/Iî2î7½î:–î=ÇîBdîDñîGàî ìï îÐ î©î�îpîÕî#Üî''î(˜î)Æ î0Bî2î4dî6ôî<àî?ZîB îG“î ìïvî Kînî°vî ®ïû rîðïûîPïûîÍîÞî óî&î+.î,Íî/î1Xî5Uî:rî;¹î=Bî@oîB©î ìïSî õ î#îiî¯ î&µî)œî-·î0]î47î6bî<ýî?ïîC{î ìï¬î šîßî îÖî¡vî ®ï1rîï1îqï1îJî!Jî#åî(î,Lî.¦î2‹î5Gî6ðî8Úî>"îAXîDƒî ìï‰î �î ùîî+îœîî#Éî%‚î'áî,î1žî4Uî5Áî8Ðî ®ïî:îÅî0î¬î§vî¼ïî˜ïrî ­ïî!‰ïî$@î%«î)Ïî+Êvî0ßïî1»ïrî3Œïî4hïî7?î;Žî=áîC:îFîî ìïgîîßîSîòîrîvî$¡ïgî%<ïgrî*ïgî*Œïgî-çî0[î31î4ôî9Aî=¥î@îF˜îHeî ìïÀî ûîî¯îïîÉîûîÉî!0vî'9ïÀî(MïÀrî5:ïÀî5öïÀvî7*ïÀî8ïÀ rî@ÀïÀîAïÀvîBñïÀîCïïÀrî ìï î ·î îzî)î,î­îÞî"Sî&ûî)Zî,tî/Lî3œvî ®ï �îíîî¢rîÊï �î+ï �î Îî&Lî(Åî-©î0óî2Æî5@î8sî;eî>AîAîBŒîDTîGÖÿ &TVm$á5logicalBTreepages.Operations,ms/opthesearethenumberofeachtypeofBTreeoperation(lookup,enumerate,insert,delete,replace)thathavebeenperformedandtheaveragenumberofmillisecondstakenbyeach.Inthecaseofenumerate,whatiscountedisthetotalnumberofentriesenumeratedandtheaveragetimeperentry.Aninsertisanupdatethatinsertsanentrynotpreviouslypresent,whileareplaceisanupdatethatreplacesanexistingentrywithanewonehavingthesamekey.Insertedandreplacemententrieshavesizesselectedatrandomfrom[2..33].CacheRefs,Hit%thetotalnumberofcallstoBTreeVM.ReferencePage,andthepercentageofthosecallsthataccessedapagealreadypresentinthecache.StorageReads,WritesthenumberoftimesBTreeVMtransferredaBTreepagebetweenthecacheandpermanentstorage.Writes/updatetheaveragenumberofstoragewritesperupdateoperation(insert,delete,orreplace).Totalelapsedtimethetotalnumberofsecondsthetesthasrun,excludingtestoverheadsuchasupdatingtheresultsintheviewer,butincludinganyconcurrentactivityelsewhereinCedar.%R+Wtime,ms/(RorW)thepercentageofthetotalelapsedtimespentwaitingforstoragereadsandwrites,andtheaveragenumberofmillisecondstakenbyeachone.Herearesomeresults,obtainedonaDorado(Cedar4.2,runningonPilot):Testnumber1234567DiskPgs/BTreePg1111114CacheSize200200202020020050MaxTreeEntries2500250025002500600006000060000LongUpdateYesNoYesNoYesNoNoTreeSize190190190190436143601037Levels3333443Entries1961194919441940469134702747048ms/opLookup1.901.9138.826.272.855.040.1ms/opEnumerate0.080.081.821.682.752.990.84ms/opInsert4.7248.848.075.786.411971.9ms/opDelete6.6360.869.510112015485.9ms/opReplace3.9630.144.652.879.885.562.4Hit%1001008281818185Writes/update01.741.281.781.351.801.16%R+Wtime0879193949491ms/(RorW)21.717.018.727.428.328.8Afewthingsareworthnotingabouttheseresults.Test1usesacachelargeenoughtoholdtheentiretreeandneverwritesanypagestopermanentstorage(exceptattheendofthetest,whereitisn'tmeasured).ThisgivesagoodapproximationoftheCPUcostofoperationsperformedona3-levelBTree.Asisevidentfromcomparingtest1'sresultswiththeothers,normallymostofthetimerequiredforaBTreeoperationisspentwaitingforthedisk.Test2isthesameastest1exceptthatthepermanentstateiswrittentostorageattheendofeveryupdate.Tests3and4aresimilarto1and2exceptthatthecacheismuchsmallerthanthetree,somanymorereadsandwritesoccur.Interestingly,thechoiceofwhetherornottowritestorageaftereachupdatehasonlyamodesteffecton%R+Wtimeintests3and4.Thisispresumablybecausemostdirtypagesgetwrittenanywayasaresultofbeingdisplacedduringlaterreferencestootherpartsofthetree.(Thedecreaseinlookuptimefromtest3totest4isagoodindicationthatthisiswhatishappening.)Tests5through7areforamuchlargerBTree.Tests6and7showtheeffectofvaryingthepageuîHDïg/rî ìï_/îFîhvî ®ï\´ îrîÈï\´î(ï\´îêîuî" î'qî)cî,Ìî0î2î6_î<ÁîBr î ìï[ î îhî™îaî¡î øî'¶î*gî,Àî1¹î6ßî8‘ î@WîDîFî ìïYeî ÕîOîWî* îaîÙî^î$¼î&Bî(»î+ûî1Bî3î7Ÿ î?EîBîD�î ìïW¾î îŒîzîÏî�î îþî!”î$eî(·î*ªî.@î0¸ î7]î<Œî@CîApîF0îGžî ìïVî—î}îÖîßîî!¬î$ßî& î)&î+éî0|î2ôî6ˆî9�î>ýîAÌ î ìïToî\î£îÒîÿî˜î ¸î$vî ®ïQó îžrîÎïQóî.ïQóîuîƒî"—î$7î'.î(Äî8œî;;î=‚ îDOîEðî ìïPLî ûîÉîCîmî´î‡î#[î% î'ivî ®ïMÑîªîÿrî×ïMÑî8ïMÑî’î"ºî$nî(î.„ î5zî6Ÿî:½î=þîChîEÃî ìïL)î £î‰vî ®ïI® rîïI®îoïI®î±î“î"£î$>î(Óî,¸î/î3…î9’î>îBYîDvî ®ïG2îbî*rî®ïG2îïG2î„î¿î$î%Îî*úî-nî0î2™î5œî;òî>“îDšîGáî ìïE‹î´îîcîîpî-î!®î'Âî*c î1Iî6î<]î> vî ®ïCîîiî¡îLrî'ïCî‡ïCî Ù î'±î)\î+®î.Æî3¢î6ºî:Vî?îALîEðî ìïAhî £îýîµîîî @î!ù î)Åî-…î/�î2²î ®ï>íî!îtîî¯î `î"fî#�î(›î-,î/Áî4øî6þvî ®ïîrîmï*>î!-ï*>î(îï*>î0®ï*>î8nï*>î@/ï*>îGïï*>vî ìï(—îrîmï(—î!-ï(—î(îï(—î0®ï(—î8nï(—î@/ï(—îGïï(—vî ìï&ïrîmï&ïî!-ï&ïî(îï&ïî0®ï&ïî8nï&ïî@/ï&ïîGïï&ïvî ìï%H rîmï%Hî!-ï%Hî(îï%Hî0®ï%Hî8nï%Hî@/ï%HîGïï%Hvî ìï# îbrîmï# î!-ï# î(îï# î0®ï# î8nï# î@/ï# îGïï# vî ìï!ùî2îërîmï!ùî!-ï!ùî(îï!ùî0®ï!ùî8nï!ùî@/ï!ùîGïï!ùî ®ï}îZîîRîÅîÜî Kî$Lî'õî,»î/ßî13î4Lî5–î9�î=îBîCßîG/î ìïÖî Öî—îMîîîµî!î#+î*î.Àî3ˆî5î7}î:3î;êî>HîA*îEAîF–î ìï. îÜîáî>îRî¯ î$Èî&kî(µî,î.Ëî0n î7î=µî?¦î@»îEî ìï‡î î îjîÜî·îNî!jî%Åî(ìî+Vî/Ýî5¹î9!î:åî=Pî@�îFîHeî ìïàîî8î¤îNî!î _î"¾î ®ïdî¯îàîIî¦î îËîTî…î!Òî$žî&úî-Ýî1 î2tî7$î8Ïî=~î?îApîD%îEÛî ìï½îÉîEîmîî?î†îþî î Èî#rî$šî(Ýî+Ÿî-ñî1°î3î6Ùî;”î>­îAîD îEÄî ìïî jîóî–î‚î… î#¶î&î*0î+Ôî1 î2»î5î6´î:î>ºîAàîDüî ìïnî bî}î§îqî>îEî �î#Äî%sî(ƒî)¹î,qî-þî1î2† î9ñî?îBqîEÄî ìïÇî 8îíîäî•îÂî�îKî"î(%î,˜î/Á î6Eî7öî;˜î?î@¿îC!îF=vî ìï rîEï î¨ï îóîšîÀî'î²îçî!–î$!î%Vî&Âî'ëî+^ î1Êî4˜î7:î8¥î<î=n î ®ï ¤îDî‡îÍîîrî½îõî!Úî%Ôî*\î-óî/6î1ûî3>î6Õî9Bî=î>ãîCÛîFH QTVm$ë6size,givenafixed-sizecache.Itisevidentthatthelargerpagesizeyieldsbetterperformanceinallrespects.Thevariationsintimeperreadorwriteacrossallthetestsarepartiallyexplainableasbeingrelatedtothesizeofthetree(alargertreemeansincreasedtimespentseekingbetweendifferentpagesofit).Variationsamongtestswithequal-sizetreesareprobablyPilotartifacts.Finally,itshouldbenotedthatthetestprogramprobestheBTreeatrandom.Realapplicationsmaybeexpectedtoexhibitmorelocalityintreereferences,andconsequentlyahigherhitrateandlesstimespentreadingandwritingstorage.uîHDïg/rî ìï_/î îî] î«îþî¥î Aî%Pî(Nî*Ýî.øî2oî5Jî9eî=� îEÁîGŸî ìï]ˆî ®ï[ î� î»îeî…îöî î!Ëî%Cî)Lî+7î-’î0�î2ìî8J î?ŽîA7îDýî ìïYeî ¨îîÏî–îîÓî„î}î Mî$Ÿî*¶î-éî1¡î6˜î<îAÈîE¡îGhî ìïW¾ îxîþîî) î!Šî$Ðî'$î,õî0< î ®ïUCî¨îîî[î<îîÍî"î$™î*î.„î0Ôî4çî6pî;Øî? îF‹î ìïSœî àî îRîóî‰î Uî"î$Ì î+ªî.e î6¯î7ÜîPîAîCÑîFiî ìïQôî –î‹îBîõÿTVm$ñÿ TIMESROMANþŸÿ TIMESROMANþŸÿ HELVETICAþŸÿLOGOü´ÿLAURELþŸÿ TIMESROMANþŸÿ TIMESROMANþæÿ TIMESROMANþYï G ‹# ë/1j/42›ÚºÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBTreeDoc.tioga10-Nov-83 14:09:27