Write Optimal Radix Tree for Persistent Memory Storage Systems Se Kwon Lee, UNIST (Ulsan National Institute of Science and Technology); K

Total Page:16

File Type:pdf, Size:1020Kb

Write Optimal Radix Tree for Persistent Memory Storage Systems Se Kwon Lee, UNIST (Ulsan National Institute of Science and Technology); K WORT: Write Optimal Radix Tree for Persistent Memory Storage Systems Se Kwon Lee, UNIST (Ulsan National Institute of Science and Technology); K. Hyun Lim, Hongik University; Hyunsub Song, Beomseok Nam, and Sam H. Noh, UNIST (Ulsan National Institute of Science and Technology) https://www.usenix.org/conference/fast17/technical-sessions/presentation/lee This paper is included in the Proceedings of the 15th USENIX Conference on File and Storage Technologies (FAST ’17). February 27–March 2, 2017 • Santa Clara, CA, USA ISBN 978-1-931971-36-2 Open access to the Proceedings of the 15th USENIX Conference on File and Storage Technologies is sponsored by USENIX. WORT: Write Optimal Radix Tree for Persistent Memory Storage Systems Se Kwon Lee, K. Hyun Lim†, Hyunsub Song, Beomseok Nam, Sam H. Noh UNIST (Ulsan National Institute of Science and Technology), †Hongik University Abstract 9, 10, 14]. In the traditional block-based storage de- vice, the failure atomicity unit, which is the update unit Recent interest in persistent memory (PM) has stirred de- where consistent state is guaranteed upon any system velopment of index structures that are efficient in PM. failure, has been the disk block size. However, as persis- Recent such developments have all focused on variations tent memory, which is byte-addressable and non-volatile, of the B-tree. In this paper, we show that the radix tree, will be accessible though the memory bus rather than via which is another less popular indexing structure, can be the PCI interface, the failure atomicity unit for persistent more appropriate as an efficient PM indexing structure. memory is generally expected to be 8 bytes or no larger This is because the radix tree structure is determined by than a cache line [5, 6, 12, 13, 15, 19]. the prefix of the inserted keys and also does not require The smaller failure atomicity unit, however, appears tree rebalancing operations and node granularity updates. to be a double-edged sword in the sense that though this However, the radix tree as-is cannot be used in PM. As allows for reduction of data written to persistent store, another contribution, we present three radix tree variants, it can lead to high overhead to enforce consistency. This namely, WORT (Write Optimal Radix Tree), WOART is because in modern processors, memory write opera- (Write Optimal Adaptive Radix Tree), and ART+CoW. tions are often arbitrarily reordered in cache line granu- Of these, the first two are optimal for PM in the sense that larity and to enforce the ordering of memory write op- they only use one 8-byte failure-atomic write per update erations, we need to employ memory fence and cache to guarantee the consistency of the structure and do not line flush instructions [21]. These instructions have been require any duplicate copies for logging or CoW. Exten- pointed out as a major cause of performance degrada- sive performance studies show that our proposed radix tion [3, 9, 15, 20]. Furthermore, if data to be written is tree variants perform considerable better than recently larger than the failure-atomic write unit, then expensive proposed B-tree variants for PM such NVTree, wB+Tree, mechanisms such as logging or copy-on-write (CoW) and FPTree for synthetic workloads as well as in imple- must be employed to maintain consistency. mentations within Memcached. Recently, several persistent B-tree based indexing structures such as NVTree [20], wB+Tree [3], and FP- 1 Introduction Tree [15] have been proposed. These structures focus on reducing the number of calls to the expensive memory Previous studies on indexing structures for persistent fence and cache line flush instructions by employing an memory (PM) have concentrated on B-tree variants. In append-only update strategy. Such a strategy has been this paper, we advocate that the radix tree can be better shown to significantly reduce duplicate copies needed suited for PM indexing than B-tree variants. We present for schemes such as logging resulting in improved per- radix tree variant indexing structures that are optimal for formance. However, this strategy does not allow these PM in that consistency is always guaranteed by a single structures to retain one of the key features of B-trees, 8-byte failure-atomic write without any additional copies that is, having the keys sorted in the nodes. Moreover, for logging or CoW. this strategy is insufficient in handling node overflows as Emerging persistent memory technologies such as node splits involve multiple node changes, making log- phase-change memory, spin-transfer torque MRAM, and ging necessary. 3D Xpoint are expected to radically change the land- While B-tree based structures have been popular in- scape of various memory and storage systems [4, 5, 7, memory index structures, there is another such structure, USENIX Association 15th USENIX Conference on File and Storage Technologies 257 namely, the radix tree, that has been less so. The first where CoW can be expensive, with the radix tree, we contribution of this paper is showing the appropriateness show that CoW incurs considerably less overhead. and the limitation of the radix tree for PM storage. That Through an extensive performance study using syn- is, since the radix tree structure is determined by the pre- thetic workloads, we show that for insertion and search, fix of the inserted keys, the radix tree does not require the radix tree variants that we propose perform better key comparisons. Furthermore, tree rebalancing opera- than recent B-tree based persistent indexes such as the tions and updates in node granularity units are also not NVTree, wB+Tree, and FPTree [3, 15, 20]. We also im- necessary. Instead, insertion or deletion of a key results in plement the indexing structure within Memcached and a single 8-byte update operation, which is perfect for PM. show that similarly to the synthetic workloads, our pro- However, the original radix tree is known to poorly uti- posed radix tree variants perform substantially better lize memory and cache space. In order to overcome this than the B-tree variants. However, performance evalua- limitation, the radix tree employs a path compression op- tions show that our proposed index structures are less ef- timization, which combines multiple tree nodes that form fective for range queries compared to the B-tree variants. a unique search path into a single node. Although path The rest of the paper is organized as follows. In Sec- compression significantly improves the performance of tion 2, we present the background on consistency issues the radix tree, it involves node split and merge opera- with PM and PM targeted B-tree variant indexing struc- tions, which is detrimental for PM. tures. In Section 3, we first review the radix tree to help The limitation of the radix tree leads us to the sec- understand the main contributions of our work. Then, we ond contribution of this paper. That is, we present three present the three radix tree variants that we propose. We radix tree variants for PM. For the first of these struc- discuss the experimental environment in Section 4 and tures, which we refer to as Write Optimal Radix Tree then present the experimental results in Section 5. Fi- for PM (WORTPM, or simply WORT), we develop a nally, we conclude with a summary in Section 6. failure-atomic path compression scheme for the radix tree such that it can guarantee failure atomicity with the 2 Background and Motivation same memory saving effect as the existing path compres- sion scheme. For the node split and merge operations in In this section, we review background work that we WORT, we add memory barriers and persist operations deem most relevant to our work and also necessary to such that the number of writes, memory fence, and cache understand our study. First, we review the consistency line flush instructions in enforcing failure atomicity is issue of indexing structures in persistent memory. Then, minimized. WORT is optimal for PM, as is the second we present variants of B-trees for PM. As the contribu- variant that we propose, in the sense that they require tion of our work starts with the radix tree, we review the only one 8-byte failure-atomic write per update to guar- radix tree in Section 3. antee the consistency of the structure without any dupli- cate copies. 2.1 Consistency in Persistent Memory The second and third structures that we propose are both based on the Adaptive Radix Tree (ART) that was Ensuring recovery correctness in persistent indexing proposed by Leis et al. [11]. ART resolves the trade-off structures requires additional memory write ordering between search performance and node utilization by em- constraints. In disk-based indexing, arbitrary changes to ploying an adaptive node type conversion scheme that a volatile copy of a tree node in DRAM can be made dynamically changes the size of a tree node based on without considering memory write ordering because it is node utilization. This requires additional metadata and a volatile copy and its persistent copy always exists in more memory operations than the traditional radix trees, disk storage and is updated in disk block units. However, but has been shown to still outperform other cache con- with failure-atomic write granularity of 8 bytes in PM, scious in-memory indexing structures. However, ART in changes to an existing tree node must be carefully or- its present form does not guarantee failure atomicity. For dered to enforce consistency and recoverability. For ex- the second radix tree variant, we present Write Optimal ample, the number of entries in a tree node must be in- Adaptive Radix Tree (WOART), which is a PM exten- creased after a new entry is stored.
Recommended publications
  • KP-Trie Algorithm for Update and Search Operations
    The International Arab Journal of Information Technology, Vol. 13, No. 6, November 2016 KP-Trie Algorithm for Update and Search Operations Feras Hanandeh1, Mohammed Akour2, Essam Al Daoud3, Rafat Alshorman4, Izzat Alsmadi5 1Dept. of Computer Information Systems, Faculty of Prince Al-Hussein Bin Abdallah II For Information Technology, Hashemite University, Zarqa, Jordan, [email protected] 2,5Dept. of Computer Information Systems, Faculty of Information Technology, Yarmouk University, Irbid, Jordan, [email protected], [email protected] 3,4Computer Science Department, Zarqa University [email protected]; [email protected] Abstract: Radix-Tree is a space optimized data structure that performs data compression by means of cluster nodes that share the same branch. Each node with only one child is merged with its child and is considered as space optimized. Nevertheless, it can't be considered as speed optimized because the root is associated with the empty string . Moreover, values are not normally associated with every node; they are associated only with leaves and some inner nodes that correspond to keys of interest. Therefore, it takes time in moving bit by bit to reach the desired word. In this paper we propose the KP-Trie which is consider as speed and space optimized data structure that is resulted from both horizontal and vertical compression. Keywords: Trie, radix tree, data structure, branch factor, indexing, tree structure, information retrieval. 1- Introduction The concept of Data structures such as trees has developed since the 19th century. Tries evolved from trees. They have different names Data structures are a specialized format for such as: Radix tree, prefix tree compact trie, efficient organizing, retrieving, saving and bucket trie, crit bit tree, and PATRICIA storing data.
    [Show full text]
  • Zero Displacement Ternary Number System: the Most Economical Way of Representing Numbers
    Revista de Ciências da Computação, Volume III, Ano III, 2008, nº3 Zero Displacement Ternary Number System: the most economical way of representing numbers Fernando Guilherme Silvano Lobo Pimentel , Bank of Portugal, Email: [email protected] Abstract This paper concerns the efficiency of number systems. Following the identification of the most economical conventional integer number system, from a solid criteria, an improvement to such system’s representation economy is proposed which combines the representation efficiency of positional number systems without 0 with the possibility of representing the number 0. A modification to base 3 without 0 makes it possible to obtain a new number system which, according to the identified optimization criteria, becomes the most economic among all integer ones. Key Words: Positional Number Systems, Efficiency, Zero Resumo Este artigo aborda a questão da eficiência de sistemas de números. Partindo da identificação da mais económica base inteira de números de acordo com um critério preestabelecido, propõe-se um melhoramento à economia de representação nessa mesma base através da combinação da eficiência de representação de sistemas de números posicionais sem o zero com a possibilidade de representar o número zero. Uma modificação à base 3 sem zero permite a obtenção de um novo sistema de números que, de acordo com o critério de optimização identificado, é o sistema de representação mais económico entre os sistemas de números inteiros. Palavras-Chave: Sistemas de Números Posicionais, Eficiência, Zero 1 Introduction Counting systems are an indispensable tool in Computing Science. For reasons that are both technological and user friendliness, the performance of information processing depends heavily on the adopted numbering system.
    [Show full text]
  • Number Systems and Radix Conversion
    Number Systems and Radix Conversion Sanjay Rajopadhye, Colorado State University 1 Introduction These notes for CS 270 describe polynomial number systems. The material is not in the textbook, but will be required for PA1. We humans are comfortable with numbers in the decimal system where each po- sition has a weight which is a power of 10: units have a weight of 1 (100), ten’s have 10 (101), etc. Even the fractional apart after the decimal point have a weight that is a (negative) power of ten. So the number 143.25 has a value that is 1 ∗ 102 + 4 ∗ 101 + 3 ∗ 0 −1 −2 2 5 10 + 2 ∗ 10 + 5 ∗ 10 , i.e., 100 + 40 + 3 + 10 + 100 . You can think of this as a polyno- mial with coefficients 1, 4, 3, 2, and 5 (i.e., the polynomial 1x2 + 4x + 3 + 2x−1 + 5x−2+ evaluated at x = 10. There is nothing special about 10 (just that humans evolved with ten fingers). We can use any radix, r, and write a number system with digits that range from 0 to r − 1. If our radix is larger than 10, we will need to invent “new digits”. We will use the letters of the alphabet: the digit A represents 10, B is 11, K is 20, etc. 2 What is the value of a radix-r number? Mathematically, a sequence of digits (the dot to the right of d0 is called the radix point rather than the decimal point), : : : d2d1d0:d−1d−2 ::: represents a number x defined as follows X i x = dir i 2 1 0 −1 −2 = ::: + d2r + d1r + d0r + d−1r + d−2r + ::: 1 Example What is 3 in radix 3? Answer: 0.1.
    [Show full text]
  • Scalability of Algorithms for Arithmetic Operations in Radix Notation∗
    Scalability of Algorithms for Arithmetic Operations in Radix Notation∗ Anatoly V. Panyukov y Department of Computational Mathematics and Informatics, South Ural State University, Chelyabinsk, Russia [email protected] Abstract We consider precise rational-fractional calculations for distributed com- puting environments with an MPI interface for the algorithmic analysis of large-scale problems sensitive to rounding errors in their software imple- mentation. We can achieve additional software efficacy through applying heterogeneous computer systems that execute, in parallel, local arithmetic operations with large numbers on several threads. Also, we investigate scalability of the algorithms for basic arithmetic operations and methods for increasing their speed. We demonstrate that increased efficacy can be achieved of software for integer arithmetic operations by applying mass parallelism in het- erogeneous computational environments. We propose a redundant radix notation for the construction of well-scaled algorithms for executing ba- sic integer arithmetic operations. Scalability of the algorithms for integer arithmetic operations in the radix notation is easily extended to rational- fractional arithmetic. Keywords: integer computer arithmetic, heterogeneous computer system, radix notation, massive parallelism AMS subject classifications: 68W10 1 Introduction Verified computations have become indispensable tools for algorithmic analysis of large scale unstable problems (see e.g., [1, 4, 5, 7, 8, 9, 10]). Such computations require spe- cific software tools; in this connection, we mention that our library \Exact computa- tion" [11] provides appropriate instruments for implementation of such computations ∗Submitted: January 27, 2013; Revised: August 17, 2014; Accepted: November 7, 2014. yThe author was supported by the Federal special-purpose program "Scientific and scientific-pedagogical personnel of innovation Russia", project 14.B37.21.0395.
    [Show full text]
  • Number Systems Radix Number Systems Radix Number Systems
    Number Systems 4/26/2010 Number Systems Radix Number Systems binary, octal, and hexadecimal numbers basic idea of a radix number system ‐‐ why used how do we count: conversions, including to/from decimal didecimal : 10 dis tinc t symblbols, 0‐9 negative binary numbers when we reach 9, we repeat 0‐9 with 1 in front: 0,1,2,3,4,5,6,7,8,9, 10,11,12,13, …, 19 floating point numbers then with a 2 in front, etc: 20, 21, 22, 23, …, 29 character codes until we reach 99 then we repeat everything with a 1 in the next position: 100, 101, …, 109, 110, …, 119, …, 199, 200, … other number systems follow the same principle with a different base (radix) Lubomir Bic 1 Lubomir Bic 2 Radix Number Systems Radix Number Systems octal: we have only 8 distinct symbols: 0‐7 binary: we have only 2 distinct symbols: 0, 1 when we reach 7, we repeat 0‐7 with 1 in front why?: digital computer can only represent 0 and 1 012345670,1,2,3,4,5,6,7, 10,11,12,13, …, 17 when we reach 1, we repeat 0‐1 with 1 in front then with a 2 in front, etc: 20, 21, 22, 23, …, 27 0,1, 10,11 until we reach 77 then we repeat everything with a 1 in the next position: then we repeat everything with a 1 in the next position: 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, … 100, 101, …, 107, 110, …, 117, …, 177, 200, … decimal to binary correspondence: decimal to octal correspondence: D 01234 5 6 7 8 9 101112… D 0 1 … 7 8 9 10 11 … 15 16 17 … 23 24 … 63 64 … B 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 … O 0 1 … 7 10 11 12 13 … 17 20 21 … 27 30 … 77 100 …
    [Show full text]
  • United States Patent 15 3,700,872 May [45] Oct
    United States Patent 15 3,700,872 May [45] Oct. 24, 1972 54 RADX CONVERSON CRCUTS Primary Examiner - Maynard R. Wilbur Assistant Examiner- Leo H. Boudreau (72) Inventor: Frederick T. May, Austin,Tex. Attorney-Hanifin and Clark and D. Kendall Cooper (73) Assignee: International Business Corporation, Armonk, N.Y. 57) ABSTRACT 22 Filed: Aug. 22, 1969 Data conversion circuits with optimized common hardware convert numbers expressed in a first radix C (21) Appl. No.: 852,272 to other radices n1, m2, etc., with the mode of opera Related U.S. Application Data tion being controlled to establish a radix C to radix ml conversion in one mode, a radix C to radix n2 conver 63 Continuation-in-part of Ser. No. 517,764, Dec. sion in another mode, etc., on a selective basis, as 30, 1965, abandoned. desired. In a first embodiment, numbers represented in a binary (base 2) radix Care converted to a base 10 52 U.S. Ct.............. 235/155,340/347 DD, 235/165 (n1) or base 12(m2) representation. In a second em 51 int. Cl.............................................. HO3k 13/24 bodiment, numbers stored in a ternary (base 3) radix 58 Field of Search......... 340/347 DD; 235/155, 165 C representation are converted to a base 12 (n1) or base 10 (m2) representation. The circuits are 56 References Cited predicated upon recognition of the fact that a number UNITED STATES PATENTS represented in a first radix can be converted readily to a second radix using shared hardware if the following 2,620,974 12/1952 Waltat.................... 23.5/155 X equation is satisfied: 2,831,179 4/1958 Wright et al..........
    [Show full text]
  • Basic Digit Sets for Radix Representation
    LrBRAJ7T LIBRARY r TECHNICAL REPORT SECTICTJ^ Kkl B7-CBT SSrTK*? BAVAI PC "T^BADUATB SCSOp POSTGilADUAIS SCSftQl NPS52-78-002 . NAVAL POSTGRADUATE SCHOOL Monterey, California BASIC DIGIT SETS FOR RADIX REPRESENTATION David W. Matula June 1978 a^oroved for public release; distribution unlimited. FEDDOCS D 208.14/2:NPS-52-78-002 NAVAL POSTGRADUATE SCHOOL Monterey, California Rear Admiral Tyler Dedman Jack R. Bor sting Superintendent Provost The work reported herein was supported in part by the National Science Foundation under Grant GJ-36658 and by the Deutsche Forschungsgemeinschaft under Grant KU 155/5. Reproduction of all or part of this report is authorized. This report was prepared by: UNCLASSIFIED SECURITY CLASSIFICATION OF THIS PAGE (When Data Entered) READ INSTRUCTIONS REPORT DOCUMENTATION PAGE BEFORE COMPLETING FORM 1. REPORT NUMBER 2. GOVT ACCESSION NO. 3. RECIPIENT'S CATALOG NUMBER NPS52-78-002 4. TITLE (and Subtitle) 5. TYPE OF REPORT ft PERIOD COVERED BASIC DIGIT SETS FOR RADIX REPRESENTATION Final report 6. PERFORMING ORG. REPORT NUMBER 7. AUTHORS 8. CONTRACT OR GRANT NUM8ERfa; David W. Matula 9. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT, PROJECT, TASK AREA ft WORK UNIT NUMBERS Naval Postgraduate School Monterey, CA 93940 11. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE Naval Postgraduate School June 1978 Monterey, CA 93940 13. NUMBER OF PAGES 33 14. MONITORING AGENCY NAME ft AODRESSf// different from Controlling Olllce) 15. SECURITY CLASS, (ot thta report) Unclassified 15«. DECLASSIFI CATION/ DOWN GRADING SCHEDULE 16. DISTRIBUTION ST ATEMEN T (of thta Report) Approved for public release; distribution unlimited. 17. DISTRIBUTION STATEMENT (of the mbatract entered In Block 20, if different from Report) 18.
    [Show full text]
  • A Useful Tool for Rhinoplasty to Correct High Radix
    Brazilian Journal of Otorhinolaryngology 87 (2021) 59---65 Brazilian Journal of OTORHINOLARYNGOLOGY www.bjorl.org ORIGINAL ARTICLE Radix saw: a useful tool for rhinoplasty to correct high radix a b,∗ c Süreyya ¸eneldirS , Denizhan Dizdar , Altu˘g Tuna a Süreyya ¸eneldirS Clinic, Istanbul, Turkey b ˙Istinye University, Faculty of Medicine, Bahc¸elievler Medical Park Hospital, Department of Otolaryngology, ˙Istanbul, Turkey c Private Office, Frankfurt, Germany Received 13 February 2019; accepted 26 June 2019 Available online 7 August 2019 KEYWORDS Abstract Rhinoplasty; Introduction: The most difficult aspect of radix lowering is determining the maximum amount Radix; of bone that can be removed with osteotomes; here, we describe use of a radix saw, which is Nose a new tool for determining this amount. Objective: In this study, we describe use of a radix saw, which is a new tool to reduce the radix. Methods: The medical charts of 96 patients undergoing surgery to lower a high radix between 2016 and 2017 were assessed retrospectively. All operations were performed by the senior surgeon. Outcomes were assessed by comparing preoperative photographs with the most recent follow-up photographs (minimum of 6 months postoperatively). The photographs were all taken using the same imaging settings, and with consistent subject distance and angulation. The photographs were subsequently analysed by authors. Results: The study population consisted of 96 patients (70 women, 26 men) who underwent rhinoplasty between 2016 and 2017. The mean age of the patients was 28.8 years (range: 18---50 years) and the mean clinical follow-up period was 1.8 years. No patient required revision surgery due to radix problems, and there were no cases with unwanted bone fragments or radix asymmetry.
    [Show full text]
  • About Numbers How These Basic Tools Appeared and Evolved in Diverse Cultures by Allen Klinger, Ph.D., New York Iota ’57
    About Numbers How these Basic Tools Appeared and Evolved in Diverse Cultures By Allen Klinger, Ph.D., New York Iota ’57 ANY BIRDS AND Representation of quantity by the AUTHOR’S NOTE insects possess a The original version of this article principle of one-to-one correspondence 1 “number sense.” “If is on the web at http://web.cs.ucla. was undoubtedly accompanied, and per- … a bird’s nest con- edu/~klinger/number.pdf haps preceded, by creation of number- mtains four eggs, one may be safely taken; words. These can be divided into two It was written when I was a fresh- but if two are removed, the bird becomes man. The humanities course had an main categories: those that arose before aware of the fact and generally deserts.”2 assignment to write a paper on an- the concept of number unrelated to The fact that many forms of life “sense” thropology. The instructor approved concrete objects, and those that arose number or symmetry may connect to the topic “number in early man.” after it. historic evolution of quantity in differ- At a reunion in 1997, I met a An extreme instance of the devel- classmate from 1954, who remem- ent human societies. We begin with the bered my paper from the same year. opment of number-words before the distinction between cardinal (counting) As a pack rat, somehow I found the abstract concept of number is that of the numbers and ordinal ones (that show original. Tsimshian language of a tribe in British position as in 1st or 2nd).
    [Show full text]
  • Curiosities Regarding the Babylonian Number System
    Curiosities Regarding the Babylonian Number System Sherwin Doroudi April 12, 2007 By 2000 bce the Babylonians were already making significant progress in the areas of mathematics and astronomy and had produced many elaborate mathematical tables on clay tablets. Their sexagecimal (base-60) number system was originally inherited from the Sumerian number system dating back to 3500 bce. 1 However, what made the Babylonian number system superior to its predecessors, such as the Egyptian number system, was the fact that it was a positional system not unlike the decimal system we use today. This innovation allowed for the representation of numbers of virtually any size by reusing the same set of symbols, while also making it easier to carry out arithmetic operations on larger numbers. Its superiority was even clear to later Greek astronomers, who would use the sexagecimal number system as opposed to their own native Attic system (the direct predecessor to Roman numerals) when making calculations with large numbers. 2 Most other number systems throughout history have made use of a much smaller base, such as five (quinary systems), ten (decimal systems), or in the case of the Mayans, twenty (vigesimal systems), and such choices for these bases are all clearly related to the fingers on the hands. The choice (though strictly speaking, it's highly unlikely that any number system was directly \chosen") of sixty is not immediately apparent, and at first, it may even seem that sixty is a somewhat large and unwieldy number. Another curious fact regarding the ancient number system of the Babylonians is that early records do not show examples of a \zero" or null place holder, which is an integral part of our own positional number system.
    [Show full text]
  • Number Systems
    1 Number Systems The study of number systems is important from the viewpoint of understanding how data are represented before they can be processed by any digital system including a digital computer. It is one of the most basic topics in digital electronics. In this chapter we will discuss different number systems commonly used to represent data. We will begin the discussion with the decimal number system. Although it is not important from the viewpoint of digital electronics, a brief outline of this will be given to explain some of the underlying concepts used in other number systems. This will then be followed by the more commonly used number systems such as the binary, octal and hexadecimal number systems. 1.1 Analogue Versus Digital There are two basic ways of representing the numerical values of the various physical quantities with which we constantly deal in our day-to-day lives. One of the ways, referred to as analogue,isto express the numerical value of the quantity as a continuous range of values between the two expected extreme values. For example, the temperature of an oven settable anywhere from 0 to 100 °C may be measured to be 65 °C or 64.96 °C or 64.958 °C or even 64.9579 °C and so on, depending upon the accuracy of the measuring instrument. Similarly, voltage across a certain component in an electronic circuit may be measured as 6.5 V or 6.49 V or 6.487 V or 6.4869 V. The underlying concept in this mode of representation is that variation in the numerical value of the quantity is continuous and could have any of the infinite theoretically possible values between the two extremes.
    [Show full text]
  • The Adaptive Radix Tree
    Department of Informatics, University of Z¨urich MSc Basismodul The Adaptive Radix Tree Rafael Kallis Matrikelnummer: 14-708-887 Email: [email protected] September 18, 2018 supervised by Prof. Dr. Michael B¨ohlenand Kevin Wellenzohn 1 1 Introduction The goal of this project is to study and implement the Adaptive Radix Tree (ART), as proposed by Leis et al. [2]. ART, which is a trie based data structure, achieves its performance, and space efficiency, by compressing the tree both vertically, i.e., if a node has no siblings it is merged with its parent, and horizontally, i.e., uses an array which grows as the number of children increases. Vertical compression reduces the tree height and horizontal compression decreases a node's size. In Section 3 we describe how ART is constructed by applying vertical and horizontal compression to a trie. Next, we describe the point query procedure, as well as key deletion in Section 4. Finally, a benchmark of ART, a red-black tree and a hashtable is presented in Section 5. 2 Background - Tries A trie [1] is a hierarchical data structure which stores key-value pairs. Tries can answer both point and range queries efficiently since keys are stored in lexicographic order. Unlike a comparison-based search tree, a trie does not store keys in nodes. Rather, the digital representation of a search key is split into partial keys used to index the nodes. When constructing a trie from a set of keys, all insertion orders result in the same tree. Tries have no notion of balance and therefore do not require rebalancing operations.
    [Show full text]