The Magma Database file formats
|
|
- Dina Deborah Barnett
- 5 years ago
- Views:
Transcription
1 The Magma Database file formats Adrew Gaylard, Bret Pikey, ad Mart-Mari Breedt Johaesburg, South Africa 15th May Summary Magma is a ope-source object database created by Chris Muller, of Kasas City, U.S.A. Magma is implemeted etirely i Smalltalk. These otes explai the formats of the files used by Magma to store its data. This iformatio was obtaied by reverse-egieerig the Magma source code with Chris Muller s permissio. It is sufficiet 1 to allow for a clea-room implemetatio of readig ad writig the raw data files. This work was doe usig the versio MagmaTester-157 ad its depedecies. 2 Backgroud The core idea behid Magma ad other object databases is to allow for objects to be saved to stable storage i a database ( persisted ) ad later re-created. I Magma, object persistece is trasparet, that is there is o eed to explicitly map ay object from its memory represetatio to its file-based represetatio. Magma uses Smalltalk s detailed class ispectio features ( reflectio ) to persist objects automatically. It makes use of lightweight proxy-objects to re-create the objects o-demad from the database: whe a proxy-object is agitated, that is whe ay access to it is performed, the proxy-object is replaced by the dyamically-created real object. Magma also allows objects to be persisted i collectios, which are aalogous to tables i a covetioal relatioal database. These collectios may be idexed o oe or more give member-variables to facilitate rapid (that is, better tha liear) access. 3 Object idetifiers I Magma, each object is idetified by a object idetifier, abbreviated to OID. I the revisio of Magma used for this work, OIDs are 48 bits wide. They are aalogous to poiters i laguages such as C, but exist ot oly i the computer s memory, but also i Magma s data files. OIDs are cetral to the way Magma maages its object data. There is a oe-to-oe mappig betwee istaces ad OIDs. OIDs are used ot oly to idetify istaces. For certai objects which are both small ad frequetly-used, the OID ot oly idetifies the object, it also cotais the object. This is possible because 31-bit itegers ad 32-bit IEEE-754 floatig poit umbers, amog other classes, fit easily ito a 48-bit OID. To make this scheme work, the 48-bit OID-space is divided ito rages which are set apart for each class of object that ca be represeted. The 1 well, early sufficiet 1
2 Table 1: Rages i OID-space start of rage ed of rage object 0 0 il 1 1 false 2 2 true 3 3 Sigifies a uused hash idex slot = DB character set = Reserved for future use = New-object OIDs; up to four millio ad oe i a sigle commit User objects bit IEEE floatig poit umbers Small (31-bit) itegers details are cotaied i table 1, which was obtaied from the MaOidCalculator Smalltalk class. 4 The objects.idx file format OID ad offset size offset for OID f + 1 = offset for OID f + 2 = offset for OID f + 3 = array of further offsets Figure 1: Biary layout of the objects.idx file This file ca be cosidered to be the master idex. It is used to map ay give OID to a offset i the objects file. The first byte i the file is the OID width i bytes. For this versio of Magma, it is always the value 6. Refer to figure 1. The rest of the file is a array of offsets, each oe OID-width (i.e. 6) bytes wide. Each array etry correspods to a OID. The array is offset from the costat firstuserobjectoid i accordace with the formula = o f 1 where is the array etry umber, o is the OID i questio, ad f is the firstuserobjectoid costat. Each array etry cotais the offset ito the objects file where the object correspodig to this OID ca be foud. The offset is i little-edia byte-order, as are all other biary data i Magma. Sice the offsets are 48-bit umbers, the objects file is limited to a maximum 2
3 Table 2: Metadata i the objects file header startig offset size i bytes sigature 0 8 versio 8 2 boolea flags 10 1 defiitio OID 11 8 class defiitio OID 27 8 achor object OID 43 8 legth of bytes 2. 5 The objects file format 0 The Magma objects file header 0x400 a MaObjectBuffer a MaObjectBuffer a MaObjectBuffer (further MaObjectBuffers) Figure 2: Biary layout of the objects file This file is the oly place where objects are actually stored. It cosists of a 1024-byte header, ad a list of variable-legth records. Each record represets oe istace. For details, see figure 2. The header cotais a biary sigature, a versio umber, the defiitio OID, the class defiitio OID, ad the achor object OID. For details, refer to table 2. Note that the OIDs are 64-bit umbers i this header; some older versios of Magma used 64-bit OIDs, ad the possibility remais of doig so agai i the future. After the header, the objects file is a flat list of variable-legth records. Each record represets oe object istace. Whe a record eeds to be updated, it ca be updated i-place if the ew size is idetical to the old size. If the ew size differs 3, the a ew record is simply appeded to the file s ed, ad the offset i the master idex is updated to poit to the ew record. While this scheme does leave stale objects i the file, it does have some beefits: appedig to a file is a quick operatio, ad if the system should fail before writig the offset, the old offset will still poit to the old object. Tools also exist for removig stale records. 2 Strictly speakig, the last record i the objects file must start o further tha bytes from the frot of the file. It might exted up to bytes beyod that limit. 3 It s ot clear to me what happes if the ew object is smaller tha the old oe. While the ew oe would fit i the space, there would be uused bytes left, ad it might be difficult to discover where the ext record started (it would o loger be related to the legth field). 3
4 Each record is oe of the five possible types show i figure 3 (solid lies deote cocrete classes). Magma uses each type of record for persistig certai types of objects; for istace, strigs are always saved as MaByteObjectBuffer records. MaObjectBuffer MaFixedObjectBuffer MaVariableBuffer MaByteObjectBuffer MaVariableObjectBuffer MaStorageObjectBuffer MaVariableWordBuffer Figure 3: Hierarchy of Magma object record classes All of these records cosist of a size, a cotrol-field, a class ID umber, ad a class versio umber. After the header comes either a array of OIDs (each 48 bits wide, as usual), or biary data. For details, see figure 4. Note that all umbers, such as the 24-bit size, are stored i biary, with the MSB first. Sice the size field has the OID width (i bytes) added to it, the maximum size of ay istace is = bytes. The cotrol field maps to the type of object buffer which this record represets. The class ID is used to idetify which class to build whe re-creatig a object from a record. The class versio allows for classes to evolve over time; each time a class structure is chaged, the versio umber is icremeted. I the case of MaByteObjectBuffer records, the header is followed by biary data. I the case of MaFixedObjectBuffer ad MaVariableObjectBuffer records, the header is a array of OIDs, which may be immediate objects (small itegers or 32-bit floats), or may poit to other objects. MaStorageObjectBuffer ad MaVariableWordBuffer records were ot upacked beyod the header fields durig this work, ad are likely to differ from this layout. 6 The hash-idex (OID-member.hdx) file format The other files which are part of Magma s data storage are hash-idex files. They allow for large collectios of objects to be searched rapidly. The hash-idex files do ot themselves store objects the objects are stored oly i the mai objects file. Istead, they store keys (which are a hashed represetatio of some member variable), ad values, which are the OIDs. The OIDs i tur allow for the object to be located. Thus, give a value of a particular member variable, the correspodig OID ca be quickly looked up i a hash-idex. Each file is amed with the OID of the collectio it idexes, ad the relevat membervariable. Each idexed collectio has a idex storig purely the OIDs it cotais, to eable rapid cofirmatio that a OID is i a collectio. This file is simply amed OID.hdx. For example, a collectio which has the OID , idexed o the foo member variable, would thus be stored as two files: hdx ad foo.hdx. 4
5 record header object data (variable legth) first OID h e l l o, secod ad subsequet OIDs Strig text or biary data class versio class ID cotrol field size + OID width Figure 4: Biary layout of a Magma object record byte 0: key size k i bits - 1 byte 1: value size i bits - 1 byte 2: umber of slots record 0 record 1 record 2 a MaHashIdexRecord a MaHashIdexRecord a MaHashIdexRecord recordsize (further MaHashIdexRecords) Figure 5: The biary format of Magma s hash-idex files Each hash-idex file cosists of a three-byte header, ad a array of hash-idex records, as show i figure 5. Each record i tur cosists of a header ad a array of slots, which may be uused or may be hash-idex record etries. Each etry cotais a sigle key ad value pair. It also cotais the umber of child etries ad a record-umber where these may be foud. For details, see figure The process of addig records to a hash idex file The process of addig records to a hash idex file is best illustrated by meas of examples. We cosider 4 scearios, as depicted i figure 7. I sceario 1, we have a empty idex, cosistig of a sigle record. The hash of the key ca rage from 0 to 999 (for simplicity s sake). We add a item where the key hashes to 777. A etry is created cotaiig the hash ad the OID. All the other etries which are uused will cotai a record umber of zero ad the OID value 3, both of which reflect a uused hash idex slot. 5
6 a MaHashIdexRecord rage start rage ed etry slot etry a array of size oofetries slot keysize/8 keysize/8 recordsize a Etry value rec# key o of kids valuesize/8 keysize/8 keysize/8 sizeofrecordnumber Figure 6: Biary layout of a Magma hash idex record I sceario 2, we start with the idex from sceario 1, still cosistig of a sigle record. We add a item where the key hashes to 744; the existig etry is updated to idicate that there are two childre, oe i this etry, ad aother oe i a subsequet record. A ew record is cotaied to hold etries with keys i the rage 700 to 799. A ew etry is created to hold the hash of 777 its ad OID. Thus the existig etry is bumped dow to a ew record whe a ew etry with a lower hash takes its place. The record umber field i the origial slot is updated to reflect the record umber where further child etries ca be foud. Record umbers are zero-based (i.e. the first record i the hash-idex after the three-byte header is umber 0). I sceario 3, we start with the idex from sceario 2, ow cosistig of two records. We add a item where the key hashes to 721. A ew etry is created ad added to the secod record sice it falls withi the record s rage of 700 to 799. Agai, the higher-valued hash etry is bumped dow. The first record (i.e. the paret record) gets its umberofetriesiteger 4 set accordigly. I sceario 4, we start with the idex from sceario 3, cosistig of two records. We add a item where the key hashes to 745. A ew record is created to spa the rage from 740 to 749. Two ew etries are created to hold keys with the hashes 744 ad 745, ad are added to the record. This ew record s paret (the secod oe) has its etry for the rage 740 to 749 updated to reflect two child-etries. I tur, that record s paret (the first oe) has its etry i the rage 700 to 799 updated to reflect four child objects. 6.2 Calculatios of rages ad slots i the geeral case This is, however, ot the complete story. Complicatios arise whe a record has a startig ad edig rage with fewer iteger values tha it has slots. Magma s code calls this a record with duplicates, as a sigle key value ca be stored ito several possible slots. Cosider the third record i sceario umber 4: its start key is 740 ad its ed key is 749, givig a rage of 10 itegers, which coveietly matches the 10 slots we have available. Sice we 4 This field may have bee reamed to oofchildre 6
7 before after # #2 721# # #3 721# # # # Figure 7: The process of addig records to a hash idex file could cotiue to add etries with the key 745 (sice hash collisios are both possible ad permissible), ad sice we could elect ab iitio to have more tha 10 slots per record, it is clear that further refiemet to the process is required Addig a ew record Each record s header cotais its rage start ad rage ed fields. These values correspod to the lowest ad highest possible keys that this record ca hold. Whe addig a record, the ew lowest possible key l is calculated from the curret record ad slot umber: l = l + s(h + 1 l) 7
8 where s l h is the zero-based slot umber, is the umber of slots i a hash-idex record, is the lowest key i the rage, is the highest key i the rage, ad is the umber of slots i each record. The ew highest possible key h is the same if this record ca hold duplicates. Otherwise, it is h = l + (s + 1)(h + 1 l) Records with o duplicate slots If a record has o duplicates for a give key, the the slot umber s is give by where k is the give key. s = (k l) h + 1 l I additio, a adjustmet to the slot umber is doe: if the key the k > l + (s + 1)(h + 1 l) s s Records with duplicate slots If a record has several slots with the same key, the the highest possible slot is used whe addig ew etries. If it is full, the the ext-highest slot is used, ad so o dow util the lowest possible slot is attempted. If all the permissible slots i a record are filled, the a ew record is appeded, ad the highest slot s record umber field is updated, ad its umberofchildre field is icremeted. The lowest possible slot umber s l is calculated as for s above i The highest possible slot umber s h is calculated as Agai, the adjustmet is doe: if s h = (k + 1 l) h + 1 l 1 the k > l + s h(h + 1 l) s h s h + 1 8
9 l + 0(2K ) l + 1(2K ) l + 2(2K ) l + ( 1)(2K ) l + (2K ) l h = l + (2K ) 1 Figure 8: A hash-idex record with a lowest key of l, a highest key of h, a key-space of K bits ad slots, showig the lowest-possible keys for each slot i geeral terms 6.3 Parameter tuig The first record s lowest (l 0 ) ad highest (h 0 ) possible keys are a fuctio of the hash idex s key size K, which is costraied to be a itegral multiple of 8 bits, ad hece will always be a power of 2. Thus l 0 = 0 h 0 = 2 K 1 The slots i each record cover this rage, as show i figure 8. Older versios of Magma used hash-idices cotaiig records with 10 slots each. Each record, therefore, could ot divide its keyspace ito equally-sized slots. Some slots would be greater tha others; that is, they would cotai more keys tha others. This is because all the quatities (low key, high key, record key, umber of slots, slot) ivolved are by defiitio itegers. This ueveess ecessitated the adjustmets described i ad Therefore, if every record r were to cotai slots where log 2 Z the the rage (l r..h r ) would always be evely divisible by. For illustratio, cosider the example show i figure 9. Newer versios of Magma eforce this costrait to esure that each record cotais slots of uiform size; this provides a small performace improvemet. 7 Extractig all objects from a database Each of the (o-stale) objects i the database may be foud i oe of two ways: 1. Objects which are stored i a hash-idex may be obtaied by examiig each slot i each record. Slots which are ot empty will cotai OIDs. This operatio is a array-walk. 2. The achor object by defiitio holds refereces, i the form of OIDs, to all other reachable objects which which are ot also i hash-idices. The achor object s OID is obtaiable from the objects file header. This operatio is a recursive treewalk. Give a OID, the offset ito the objects file may be foud by a simple array dereferece operatio o the objects.idx file. Oce the offset is kow, the data i the objects file may be read, startig with the legth field, which idicates how far to read. After that, the 9
10 record 0 l 0 = 0 slot 0 slot 1 slot 2 slot h 0 = = 63 record 1 l 1 = 0 + 0(63+1 0) 4 = h 1 = 0 + (0+1)(63+1 0) 4 1 = 15 record 2 l 2 = 4 + 0(15+1 0) 4 = h 2 = 4 + (0+1)(15+1 0) 4 1 = 7 record 3 l 3 = 6 + 0(3+1 0) 4 = h 3 = 6 + (0+1)(3+1 0) 4 1 = 6 Figure 9: The first four records of a hash-idex where the keysize K = 6 ad the umber of slots = 4 class ID ad class versio fields may be read sice their offsets are kow a priori. This provides eough iformatio to covert the remaiig bytes i the MaObjectBuffer ito the correspodig object. Thus to extract all objects from a Magma database, it is ecessary to walk each (OID-oly) hash idex ad the to traverse the object tree startig at the achor object. 10
Chapter 9. Pointers and Dynamic Arrays. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 9 Poiters ad Dyamic Arrays Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 9.1 Poiters 9.2 Dyamic Arrays Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Slide 9-3
More informationElementary Educational Computer
Chapter 5 Elemetary Educatioal Computer. Geeral structure of the Elemetary Educatioal Computer (EEC) The EEC coforms to the 5 uits structure defied by vo Neuma's model (.) All uits are preseted i a simplified
More informationChapter 11. Friends, Overloaded Operators, and Arrays in Classes. Copyright 2014 Pearson Addison-Wesley. All rights reserved.
Chapter 11 Frieds, Overloaded Operators, ad Arrays i Classes Copyright 2014 Pearso Addiso-Wesley. All rights reserved. Overview 11.1 Fried Fuctios 11.2 Overloadig Operators 11.3 Arrays ad Classes 11.4
More informationChapter 10. Defining Classes. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 10 Defiig Classes Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 10.1 Structures 10.2 Classes 10.3 Abstract Data Types 10.4 Itroductio to Iheritace Copyright 2015 Pearso Educatio,
More informationCSC 220: Computer Organization Unit 11 Basic Computer Organization and Design
College of Computer ad Iformatio Scieces Departmet of Computer Sciece CSC 220: Computer Orgaizatio Uit 11 Basic Computer Orgaizatio ad Desig 1 For the rest of the semester, we ll focus o computer architecture:
More informationHash Tables. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015.
Presetatio for use with the textbook Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 2015 Hash Tables xkcd. http://xkcd.com/221/. Radom Number. Used with permissio uder Creative
More information. Written in factored form it is easy to see that the roots are 2, 2, i,
CMPS A Itroductio to Programmig Programmig Assigmet 4 I this assigmet you will write a java program that determies the real roots of a polyomial that lie withi a specified rage. Recall that the roots (or
More informationCMSC Computer Architecture Lecture 12: Virtual Memory. Prof. Yanjing Li University of Chicago
CMSC 22200 Computer Architecture Lecture 12: Virtual Memory Prof. Yajig Li Uiversity of Chicago A System with Physical Memory Oly Examples: most Cray machies early PCs Memory early all embedded systems
More information1.2 Binomial Coefficients and Subsets
1.2. BINOMIAL COEFFICIENTS AND SUBSETS 13 1.2 Biomial Coefficiets ad Subsets 1.2-1 The loop below is part of a program to determie the umber of triagles formed by poits i the plae. for i =1 to for j =
More informationBasic allocator mechanisms The course that gives CMU its Zip! Memory Management II: Dynamic Storage Allocation Mar 6, 2000.
5-23 The course that gives CM its Zip Memory Maagemet II: Dyamic Storage Allocatio Mar 6, 2000 Topics Segregated lists Buddy system Garbage collectio Mark ad Sweep Copyig eferece coutig Basic allocator
More information6.854J / J Advanced Algorithms Fall 2008
MIT OpeCourseWare http://ocw.mit.edu 6.854J / 18.415J Advaced Algorithms Fall 2008 For iformatio about citig these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. 18.415/6.854 Advaced Algorithms
More informationCIS 121 Data Structures and Algorithms with Java Spring Stacks, Queues, and Heaps Monday, February 18 / Tuesday, February 19
CIS Data Structures ad Algorithms with Java Sprig 09 Stacks, Queues, ad Heaps Moday, February 8 / Tuesday, February 9 Stacks ad Queues Recall the stack ad queue ADTs (abstract data types from lecture.
More informationLecture 1: Introduction and Strassen s Algorithm
5-750: Graduate Algorithms Jauary 7, 08 Lecture : Itroductio ad Strasse s Algorithm Lecturer: Gary Miller Scribe: Robert Parker Itroductio Machie models I this class, we will primarily use the Radom Access
More informationComputers and Scientific Thinking
Computers ad Scietific Thikig David Reed, Creighto Uiversity Chapter 15 JavaScript Strigs 1 Strigs as Objects so far, your iteractive Web pages have maipulated strigs i simple ways use text box to iput
More informationCIS 121 Data Structures and Algorithms with Java Spring Stacks and Queues Monday, February 12 / Tuesday, February 13
CIS Data Structures ad Algorithms with Java Sprig 08 Stacks ad Queues Moday, February / Tuesday, February Learig Goals Durig this lab, you will: Review stacks ad queues. Lear amortized ruig time aalysis
More informationCIS 121. Introduction to Trees
CIS 121 Itroductio to Trees 1 Tree ADT Tree defiitio q A tree is a set of odes which may be empty q If ot empty, the there is a distiguished ode r, called root ad zero or more o-empty subtrees T 1, T 2,
More informationCS200: Hash Tables. Prichard Ch CS200 - Hash Tables 1
CS200: Hash Tables Prichard Ch. 13.2 CS200 - Hash Tables 1 Table Implemetatios: average cases Search Add Remove Sorted array-based Usorted array-based Balaced Search Trees O(log ) O() O() O() O(1) O()
More informationCombination Labelings Of Graphs
Applied Mathematics E-Notes, (0), - c ISSN 0-0 Available free at mirror sites of http://wwwmaththuedutw/ame/ Combiatio Labeligs Of Graphs Pak Chig Li y Received February 0 Abstract Suppose G = (V; E) is
More informationEE123 Digital Signal Processing
Last Time EE Digital Sigal Processig Lecture 7 Block Covolutio, Overlap ad Add, FFT Discrete Fourier Trasform Properties of the Liear covolutio through circular Today Liear covolutio with Overlap ad add
More information6.851: Advanced Data Structures Spring Lecture 17 April 24
6.851: Advaced Data Structures Sprig 2012 Prof. Erik Demaie Lecture 17 April 24 Scribes: David Bejami(2012), Li Fei(2012), Yuzhi Zheg(2012),Morteza Zadimoghaddam(2010), Aaro Berstei(2007) 1 Overview Up
More informationHeaps. Presentation for use with the textbook Algorithm Design and Applications, by M. T. Goodrich and R. Tamassia, Wiley, 2015
Presetatio for use with the textbook Algorithm Desig ad Applicatios, by M. T. Goodrich ad R. Tamassia, Wiley, 201 Heaps 201 Goodrich ad Tamassia xkcd. http://xkcd.com/83/. Tree. Used with permissio uder
More informationThe Implementation of Data Structures in Version 5 of Icon* Ralph E. Gr is wo Id TR 85-8
The Implemetatio of Data Structures i Versio 5 of Ico* Ralph E. Gr is wo Id TR 85-8 April 1, 1985 Departmet of Computer Sciece The Uiversity of Arizoa Tucso. Arizoa 85721 This work was supported by the
More informationECE4050 Data Structures and Algorithms. Lecture 6: Searching
ECE4050 Data Structures ad Algorithms Lecture 6: Searchig 1 Search Give: Distict keys k 1, k 2,, k ad collectio L of records of the form (k 1, I 1 ), (k 2, I 2 ),, (k, I ) where I j is the iformatio associated
More informationThe isoperimetric problem on the hypercube
The isoperimetric problem o the hypercube Prepared by: Steve Butler November 2, 2005 1 The isoperimetric problem We will cosider the -dimesioal hypercube Q Recall that the hypercube Q is a graph whose
More informationMorgan Kaufmann Publishers 26 February, COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 5
Morga Kaufma Publishers 26 February, 28 COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Iterface 5 th Editio Chapter 5 Set-Associative Cache Architecture Performace Summary Whe CPU performace icreases:
More informationA SOFTWARE MODEL FOR THE MULTILAYER PERCEPTRON
A SOFTWARE MODEL FOR THE MULTILAYER PERCEPTRON Roberto Lopez ad Eugeio Oñate Iteratioal Ceter for Numerical Methods i Egieerig (CIMNE) Edificio C1, Gra Capitá s/, 08034 Barceloa, Spai ABSTRACT I this work
More informationPython Programming: An Introduction to Computer Science
Pytho Programmig: A Itroductio to Computer Sciece Chapter 6 Defiig Fuctios Pytho Programmig, 2/e 1 Objectives To uderstad why programmers divide programs up ito sets of cooperatig fuctios. To be able to
More information9.1. Sequences and Series. Sequences. What you should learn. Why you should learn it. Definition of Sequence
_9.qxd // : AM Page Chapter 9 Sequeces, Series, ad Probability 9. Sequeces ad Series What you should lear Use sequece otatio to write the terms of sequeces. Use factorial otatio. Use summatio otatio to
More informationLinked Lists 11/16/18. Preliminaries. Java References. Objects and references. Self references. Linking self-referential nodes
Prelimiaries Liked Lists public class StrageObject { Strig ame; StrageObject other; Arrays are ot always the optimal data structure: A array has fixed size eeds to be copied to expad its capacity Addig
More informationReview: The ACID properties
Recovery Review: The ACID properties A tomicity: All actios i the Xactio happe, or oe happe. C osistecy: If each Xactio is cosistet, ad the DB starts cosistet, it eds up cosistet. I solatio: Executio of
More informationOne advantage that SONAR has over any other music-sequencing product I ve worked
*gajedra* D:/Thomso_Learig_Projects/Garrigus_163132/z_productio/z_3B2_3D_files/Garrigus_163132_ch17.3d, 14/11/08/16:26:39, 16:26, page: 647 17 CAL 101 Oe advatage that SONAR has over ay other music-sequecig
More informationEvaluation scheme for Tracking in AMI
A M I C o m m u i c a t i o A U G M E N T E D M U L T I - P A R T Y I N T E R A C T I O N http://www.amiproject.org/ Evaluatio scheme for Trackig i AMI S. Schreiber a D. Gatica-Perez b AMI WP4 Trackig:
More informationHow do we evaluate algorithms?
F2 Readig referece: chapter 2 + slides Algorithm complexity Big O ad big Ω To calculate ruig time Aalysis of recursive Algorithms Next time: Litterature: slides mostly The first Algorithm desig methods:
More informationn n B. How many subsets of C are there of cardinality n. We are selecting elements for such a
4. [10] Usig a combiatorial argumet, prove that for 1: = 0 = Let A ad B be disjoit sets of cardiality each ad C = A B. How may subsets of C are there of cardiality. We are selectig elemets for such a subset
More informationLoad balanced Parallel Prime Number Generator with Sieve of Eratosthenes on Cluster Computers *
Load balaced Parallel Prime umber Geerator with Sieve of Eratosthees o luster omputers * Soowook Hwag*, Kyusik hug**, ad Dogseug Kim* *Departmet of Electrical Egieerig Korea Uiversity Seoul, -, Rep. of
More informationCOMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 4. The Processor. Part A Datapath Design
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Iterface 5 th Editio Chapter The Processor Part A path Desig Itroductio CPU performace factors Istructio cout Determied by ISA ad compiler. CPI ad
More informationLecture 10 Collision resolution. Collision resolution
Lecture 10 Collisio resolutio Collisio resolutio May applicatios ivolve a iquiry over a shared chael, which ca be ivoked for: discovery of eighborig devices i ad hoc etworks, coutig the umber of RFID tags
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 22 Database Recovery Techiques Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio Recovery algorithms Recovery cocepts Write-ahead
More informationCSC165H1 Worksheet: Tutorial 8 Algorithm analysis (SOLUTIONS)
CSC165H1, Witer 018 Learig Objectives By the ed of this worksheet, you will: Aalyse the ruig time of fuctios cotaiig ested loops. 1. Nested loop variatios. Each of the followig fuctios takes as iput a
More informationCivil Engineering Computation
Civil Egieerig Computatio Fidig Roots of No-Liear Equatios March 14, 1945 World War II The R.A.F. first operatioal use of the Grad Slam bomb, Bielefeld, Germay. Cotets 2 Root basics Excel solver Newto-Raphso
More informationPolynomial Functions and Models. Learning Objectives. Polynomials. P (x) = a n x n + a n 1 x n a 1 x + a 0, a n 0
Polyomial Fuctios ad Models 1 Learig Objectives 1. Idetify polyomial fuctios ad their degree 2. Graph polyomial fuctios usig trasformatios 3. Idetify the real zeros of a polyomial fuctio ad their multiplicity
More informationIMP: Superposer Integrated Morphometrics Package Superposition Tool
IMP: Superposer Itegrated Morphometrics Package Superpositio Tool Programmig by: David Lieber ( 03) Caisius College 200 Mai St. Buffalo, NY 4208 Cocept by: H. David Sheets, Dept. of Physics, Caisius College
More informationSpeeding-up dynamic programming in sequence alignment
Departmet of Computer Sciece Aarhus Uiversity Demark Speedig-up dyamic programmig i sequece aligmet Master s Thesis Dug My Hoa - 443 December, Supervisor: Christia Nørgaard Storm Pederse Implemetatio code
More informationXiaozhou (Steve) Li, Atri Rudra, Ram Swaminathan. HP Laboratories HPL Keyword(s): graph coloring; hardness of approximation
Flexible Colorig Xiaozhou (Steve) Li, Atri Rudra, Ram Swamiatha HP Laboratories HPL-2010-177 Keyword(s): graph colorig; hardess of approximatio Abstract: Motivated b y reliability cosideratios i data deduplicatio
More informationCreating Exact Bezier Representations of CST Shapes. David D. Marshall. California Polytechnic State University, San Luis Obispo, CA , USA
Creatig Exact Bezier Represetatios of CST Shapes David D. Marshall Califoria Polytechic State Uiversity, Sa Luis Obispo, CA 93407-035, USA The paper presets a method of expressig CST shapes pioeered by
More informationOn Infinite Groups that are Isomorphic to its Proper Infinite Subgroup. Jaymar Talledo Balihon. Abstract
O Ifiite Groups that are Isomorphic to its Proper Ifiite Subgroup Jaymar Talledo Baliho Abstract Two groups are isomorphic if there exists a isomorphism betwee them Lagrage Theorem states that the order
More informationSchema for the DCE Security Registry Server
Schema for the Security egistry Server Versio Date: 0/20/00 For questios or commets cocerig this documet, sed a email ote to dce-ldap@opegroup.org or call Doa Skibbie at 52 838-3896. . Itroductio...3 2.
More informationChapter 4. Procedural Abstraction and Functions That Return a Value. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 4 Procedural Abstractio ad Fuctios That Retur a Value Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 4.1 Top-Dow Desig 4.2 Predefied Fuctios 4.3 Programmer-Defied Fuctios 4.4
More informationFast Fourier Transform (FFT) Algorithms
Fast Fourier Trasform FFT Algorithms Relatio to the z-trasform elsewhere, ozero, z x z X x [ ] 2 ~ elsewhere,, ~ e j x X x x π j e z z X X π 2 ~ The DFS X represets evely spaced samples of the z- trasform
More informationChapter 8. Strings and Vectors. Copyright 2014 Pearson Addison-Wesley. All rights reserved.
Chapter 8 Strigs ad Vectors Overview 8.1 A Array Type for Strigs 8.2 The Stadard strig Class 8.3 Vectors Slide 8-3 8.1 A Array Type for Strigs A Array Type for Strigs C-strigs ca be used to represet strigs
More informationSolution printed. Do not start the test until instructed to do so! CS 2604 Data Structures Midterm Spring, Instructions:
CS 604 Data Structures Midterm Sprig, 00 VIRG INIA POLYTECHNIC INSTITUTE AND STATE U T PROSI M UNI VERSI TY Istructios: Prit your ame i the space provided below. This examiatio is closed book ad closed
More informationthe beginning of the program in order for it to work correctly. Similarly, a Confirm
I our sytax, a Assume statemet will be used to record what must be true at the begiig of the program i order for it to work correctly. Similarly, a Cofirm statemet is used to record what should be true
More informationModule 8-7: Pascal s Triangle and the Binomial Theorem
Module 8-7: Pascal s Triagle ad the Biomial Theorem Gregory V. Bard April 5, 017 A Note about Notatio Just to recall, all of the followig mea the same thig: ( 7 7C 4 C4 7 7C4 5 4 ad they are (all proouced
More informationLecture 28: Data Link Layer
Automatic Repeat Request (ARQ) 2. Go ack N ARQ Although the Stop ad Wait ARQ is very simple, you ca easily show that it has very the low efficiecy. The low efficiecy comes from the fact that the trasmittig
More informationMorgan Kaufmann Publishers 26 February, COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface. Chapter 5.
Morga Kaufma Publishers 26 February, 208 COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Iterface 5 th Editio Chapter 5 Virtual Memory Review: The Memory Hierarchy Take advatage of the priciple
More informationcondition w i B i S maximum u i
ecture 10 Dyamic Programmig 10.1 Kapsack Problem November 1, 2004 ecturer: Kamal Jai Notes: Tobias Holgers We are give a set of items U = {a 1, a 2,..., a }. Each item has a weight w i Z + ad a utility
More informationOverview. Chapter 18 Vectors and Arrays. Reminder. vector. Bjarne Stroustrup
Chapter 18 Vectors ad Arrays Bjare Stroustrup Vector revisited How are they implemeted? Poiters ad free store Destructors Iitializatio Copy ad move Arrays Array ad poiter problems Chagig size Templates
More informationChapter 1. Introduction to Computers and C++ Programming. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 1 Itroductio to Computers ad C++ Programmig Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 1.1 Computer Systems 1.2 Programmig ad Problem Solvig 1.3 Itroductio to C++ 1.4 Testig
More informationOracle Server. What s New in this Release? Release Notes
Oracle email Server Release Notes Release 5.2 for Widows NT May 2001 Part No. A90426-01 These release otes accompay Oracle email Server Release 5.2 for Widows NT. They cotai the followig topics: What s
More informationEE260: Digital Design, Spring /16/18. n Example: m 0 (=x 1 x 2 ) is adjacent to m 1 (=x 1 x 2 ) and m 2 (=x 1 x 2 ) but NOT m 3 (=x 1 x 2 )
EE26: Digital Desig, Sprig 28 3/6/8 EE 26: Itroductio to Digital Desig Combiatioal Datapath Yao Zheg Departmet of Electrical Egieerig Uiversity of Hawaiʻi at Māoa Combiatioal Logic Blocks Multiplexer Ecoders/Decoders
More informationOnes Assignment Method for Solving Traveling Salesman Problem
Joural of mathematics ad computer sciece 0 (0), 58-65 Oes Assigmet Method for Solvig Travelig Salesma Problem Hadi Basirzadeh Departmet of Mathematics, Shahid Chamra Uiversity, Ahvaz, Ira Article history:
More informationTask scenarios Outline. Scenarios in Knowledge Extraction. Proposed Framework for Scenario to Design Diagram Transformation
6-0-0 Kowledge Trasformatio from Task Scearios to View-based Desig Diagrams Nima Dezhkam Kamra Sartipi {dezhka, sartipi}@mcmaster.ca Departmet of Computig ad Software McMaster Uiversity CANADA SEKE 08
More information5.3 Recursive definitions and structural induction
/8/05 5.3 Recursive defiitios ad structural iductio CSE03 Discrete Computatioal Structures Lecture 6 A recursively defied picture Recursive defiitios e sequece of powers of is give by a = for =0,,, Ca
More informationK-NET bus. When several turrets are connected to the K-Bus, the structure of the system is as showns
K-NET bus The K-Net bus is based o the SPI bus but it allows to addressig may differet turrets like the I 2 C bus. The K-Net is 6 a wires bus (4 for SPI wires ad 2 additioal wires for request ad ackowledge
More informationChapter 8. Strings and Vectors. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 8 Strigs ad Vectors Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 8.1 A Array Type for Strigs 8.2 The Stadard strig Class 8.3 Vectors Copyright 2015 Pearso Educatio, Ltd..
More informationCounting Regions in the Plane and More 1
Coutig Regios i the Plae ad More 1 by Zvezdelia Stakova Berkeley Math Circle Itermediate I Group September 016 1. Overarchig Problem Problem 1 Regios i a Circle. The vertices of a polygos are arraged o
More information1. SWITCHING FUNDAMENTALS
. SWITCING FUNDMENTLS Switchig is the provisio of a o-demad coectio betwee two ed poits. Two distict switchig techiques are employed i commuicatio etwors-- circuit switchig ad pacet switchig. Circuit switchig
More informationUNIVERSITY OF MORATUWA
UNIVERSITY OF MORATUWA FACULTY OF ENGINEERING DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING B.Sc. Egieerig 2014 Itake Semester 2 Examiatio CS2052 COMPUTER ARCHITECTURE Time allowed: 2 Hours Jauary 2016
More information15-859E: Advanced Algorithms CMU, Spring 2015 Lecture #2: Randomized MST and MST Verification January 14, 2015
15-859E: Advaced Algorithms CMU, Sprig 2015 Lecture #2: Radomized MST ad MST Verificatio Jauary 14, 2015 Lecturer: Aupam Gupta Scribe: Yu Zhao 1 Prelimiaries I this lecture we are talkig about two cotets:
More informationData Structures Week #5. Trees (Ağaçlar)
Data Structures Week #5 Trees Ağaçlar) Trees Ağaçlar) Toros Gökarı Avrupa Gökarı October 28, 2014 Boraha Tümer, Ph.D. 2 Trees Ağaçlar) October 28, 2014 Boraha Tümer, Ph.D. 3 Outlie Trees Deiitios Implemetatio
More informationThompson s Group F (p + 1) is not Minimally Almost Convex
Thompso s Group F (p + ) is ot Miimally Almost Covex Claire Wladis Thompso s Group F (p + ). A Descriptio of F (p + ) Thompso s group F (p + ) ca be defied as the group of piecewiseliear orietatio-preservig
More informationtop() Applications of Stacks
CS22 Algorithms ad Data Structures MW :00 am - 2: pm, MSEC 0 Istructor: Xiao Qi Lecture 6: Stacks ad Queues Aoucemets Quiz results Homework 2 is available Due o September 29 th, 2004 www.cs.mt.edu~xqicoursescs22
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 18 Strategies for Query Processig Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio DBMS techiques to process a query Scaer idetifies
More informationEnd Semester Examination CSE, III Yr. (I Sem), 30002: Computer Organization
Ed Semester Examiatio 2013-14 CSE, III Yr. (I Sem), 30002: Computer Orgaizatio Istructios: GROUP -A 1. Write the questio paper group (A, B, C, D), o frot page top of aswer book, as per what is metioed
More informationBAAN IVc/BaanERP. Conversion Guide Oracle7 to Oracle8
BAAN IVc/BaaERP A publicatio of: Baa Developmet B.V. P.O.Box 143 3770 AC Bareveld The Netherlads Prited i the Netherlads Baa Developmet B.V. 1999. All rights reserved. The iformatio i this documet is subject
More informationAppendix D. Controller Implementation
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Iterface 5 th Editio Appedix D Cotroller Implemetatio Cotroller Implemetatios Combiatioal logic (sigle-cycle); Fiite state machie (multi-cycle, pipelied);
More informationAPPLICATION NOTE PACE1750AE BUILT-IN FUNCTIONS
APPLICATION NOTE PACE175AE BUILT-IN UNCTIONS About This Note This applicatio brief is iteded to explai ad demostrate the use of the special fuctios that are built ito the PACE175AE processor. These powerful
More informationCHAPTER IV: GRAPH THEORY. Section 1: Introduction to Graphs
CHAPTER IV: GRAPH THEORY Sectio : Itroductio to Graphs Sice this class is called Number-Theoretic ad Discrete Structures, it would be a crime to oly focus o umber theory regardless how woderful those topics
More informationChapter 3. Floating Point Arithmetic
COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Iterface 5 th Editio Chapter 3 Floatig Poit Arithmetic Review - Multiplicatio 0 1 1 0 = 6 multiplicad 32-bit ALU shift product right multiplier add
More informationLecture Notes 6 Introduction to algorithm analysis CSS 501 Data Structures and Object-Oriented Programming
Lecture Notes 6 Itroductio to algorithm aalysis CSS 501 Data Structures ad Object-Orieted Programmig Readig for this lecture: Carrao, Chapter 10 To be covered i this lecture: Itroductio to algorithm aalysis
More information3D Model Retrieval Method Based on Sample Prediction
20 Iteratioal Coferece o Computer Commuicatio ad Maagemet Proc.of CSIT vol.5 (20) (20) IACSIT Press, Sigapore 3D Model Retrieval Method Based o Sample Predictio Qigche Zhag, Ya Tag* School of Computer
More informationThe number n of subintervals times the length h of subintervals gives length of interval (b-a).
Simulator with MadMath Kit: Riema Sums (Teacher s pages) I your kit: 1. GeoGebra file: Ready-to-use projector sized simulator: RiemaSumMM.ggb 2. RiemaSumMM.pdf (this file) ad RiemaSumMMEd.pdf (educator's
More informationA New Morphological 3D Shape Decomposition: Grayscale Interframe Interpolation Method
A ew Morphological 3D Shape Decompositio: Grayscale Iterframe Iterpolatio Method D.. Vizireau Politehica Uiversity Bucharest, Romaia ae@comm.pub.ro R. M. Udrea Politehica Uiversity Bucharest, Romaia mihea@comm.pub.ro
More informationAlpha Individual Solutions MAΘ National Convention 2013
Alpha Idividual Solutios MAΘ Natioal Covetio 0 Aswers:. D. A. C 4. D 5. C 6. B 7. A 8. C 9. D 0. B. B. A. D 4. C 5. A 6. C 7. B 8. A 9. A 0. C. E. B. D 4. C 5. A 6. D 7. B 8. C 9. D 0. B TB. 570 TB. 5
More information% Sun Logo for. X3T10/95-229, Revision 0. April 18, 1998
Su Microsystems, Ic. 2550 Garcia Aveue Moutai View, CA 94045 415 960-1300 X3T10/95-229, Revisio 0 April 18, 1998 % Su Logo for Joh Lohmeyer Chairperso, X3T10 Symbios Logic Ic. 1635 Aeroplaza Drive Colorado
More informationCopyright 2016 Ramez Elmasri and Shamkant B. Navathe
Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe CHAPTER 19 Query Optimizatio Copyright 2016 Ramez Elmasri ad Shamkat B. Navathe Itroductio Query optimizatio Coducted by a query optimizer i a DBMS Goal:
More informationChapter 24. Sorting. Objectives. 1. To study and analyze time efficiency of various sorting algorithms
Chapter 4 Sortig 1 Objectives 1. o study ad aalyze time efficiecy of various sortig algorithms 4. 4.7.. o desig, implemet, ad aalyze bubble sort 4.. 3. o desig, implemet, ad aalyze merge sort 4.3. 4. o
More informationMassachusetts Institute of Technology Lecture : Theory of Parallel Systems Feb. 25, Lecture 6: List contraction, tree contraction, and
Massachusetts Istitute of Techology Lecture.89: Theory of Parallel Systems Feb. 5, 997 Professor Charles E. Leiserso Scribe: Guag-Ie Cheg Lecture : List cotractio, tree cotractio, ad symmetry breakig Work-eciet
More informationChapter 5. Functions for All Subtasks. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 5 Fuctios for All Subtasks Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 5.1 void Fuctios 5.2 Call-By-Referece Parameters 5.3 Usig Procedural Abstractio 5.4 Testig ad Debuggig
More informationOCR Statistics 1. Working with data. Section 3: Measures of spread
Notes ad Eamples OCR Statistics 1 Workig with data Sectio 3: Measures of spread Just as there are several differet measures of cetral tedec (averages), there are a variet of statistical measures of spread.
More informationSorting in Linear Time. Data Structures and Algorithms Andrei Bulatov
Sortig i Liear Time Data Structures ad Algorithms Adrei Bulatov Algorithms Sortig i Liear Time 7-2 Compariso Sorts The oly test that all the algorithms we have cosidered so far is compariso The oly iformatio
More informationIn this chapter, you learn the concepts and terminology of databases and
A Itroductio to Database Developmet I this chapter, you lear the cocepts ad termiology of databases ad how to desig the tables that your forms ad reports will use. Fially, you build the actual tables used
More informationAPPLICATION NOTE. Automated Gain Flattening. 1. Experimental Setup. Scope and Overview
APPLICATION NOTE Automated Gai Flatteig Scope ad Overview A flat optical power spectrum is essetial for optical telecommuicatio sigals. This stems from a eed to balace the chael powers across large distaces.
More informationLower Bounds for Sorting
Liear Sortig Topics Covered: Lower Bouds for Sortig Coutig Sort Radix Sort Bucket Sort Lower Bouds for Sortig Compariso vs. o-compariso sortig Decisio tree model Worst case lower boud Compariso Sortig
More informationwhy study sorting? Sorting is a classic subject in computer science. There are three reasons for studying sorting algorithms.
Chapter 5 Sortig IST311 - CIS65/506 Clevelad State Uiversity Prof. Victor Matos Adapted from: Itroductio to Java Programmig: Comprehesive Versio, Eighth Editio by Y. Daiel Liag why study sortig? Sortig
More informationEE University of Minnesota. Midterm Exam #1. Prof. Matthew O'Keefe TA: Eric Seppanen. Department of Electrical and Computer Engineering
EE 4363 1 Uiversity of Miesota Midterm Exam #1 Prof. Matthew O'Keefe TA: Eric Seppae Departmet of Electrical ad Computer Egieerig Uiversity of Miesota Twi Cities Campus EE 4363 Itroductio to Microprocessors
More information27 Refraction, Dispersion, Internal Reflection
Chapter 7 Refractio, Dispersio, Iteral Reflectio 7 Refractio, Dispersio, Iteral Reflectio Whe we talked about thi film iterferece, we said that whe light ecouters a smooth iterface betwee two trasparet
More informationLecture 5. Counting Sort / Radix Sort
Lecture 5. Coutig Sort / Radix Sort T. H. Corme, C. E. Leiserso ad R. L. Rivest Itroductio to Algorithms, 3rd Editio, MIT Press, 2009 Sugkyukwa Uiversity Hyuseug Choo choo@skku.edu Copyright 2000-2018
More informationDesign and Analysis of Algorithms Notes
Desig ad Aalysis of Algorithms Notes Notes by Wist Course taught by Dr. K Amer Course started: Jauary 4, 013 Course eded: December 13, 01 Curret geeratio: December 18, 013 Listigs 1 Array sum pseudocode.................................
More informationData Structures Week #9. Sorting
Data Structures Week #9 Sortig Outlie Motivatio Types of Sortig Elemetary (O( 2 )) Sortig Techiques Other (O(*log())) Sortig Techiques 21.Aralık.2010 Boraha Tümer, Ph.D. 2 Sortig 21.Aralık.2010 Boraha
More information