Implementation of Relational Operations in Omega Parallel Database System *

Size: px
Start display at page:

Download "Implementation of Relational Operations in Omega Parallel Database System *"

Transcription

1 Implementation of Relational Operations in Omega Parallel Database System * Abstract The paper describes the implementation of relational operations in the prototype of the Omega parallel database system for the Russian multiprocessor MVS-100/1000. This approach is based on an original mechanism for parallelizing query execution called the stream model. The stream model uses a special Omega exchange operator for arranging the query engine parallelization. The structure of the Omega exchange operator is presented. The implementation of several physical algebra operations is described. 1. Introduction One of the important issues concerning the implementation of parallel Data Base Management Systems (DBMS) is the issue of query execution parallelization. This paper describes organization of parallel query executor in the prototype of the parallel Omega DBMS [1] for the Russian-made multiprocessor MVS-100 [2]. The Omega system has a three level hierarchical hardware architecture. This hardware architecture is characterized by reliability and high 1 data * This work was supported by the Russian Foundation for Basic Research under Grants and Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the CSIT copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Institute for Contemporary Education JMSUICE. To copy otherwise, or to republish, requires a fee and/or special permission from the JMSUICE. Proceedings of the 3 rd International Workshop on Computer Science and Information Technologies CSIT 2001 Ufa, Yangantau, Russia, 2001 Tatyana Y. Lymar Computer Science Department Chelyabinsk State University Chelyabinsk, Russia lymar@csu.ru availability in cases of hardware failure, while providing high performance [3]. There are two well-known models used for implementation of parallel query executors: the bracket and the operator models [4]. The bracket model was used in a number of parallel DBMS such as Gamma [5] and Bubba[6]. The operator model was used in the implementation of the parallel DBMS Volcano [7]. In the Omega system we use a novel mechanism of paralleling query execution, which we called the stream model. This model incorporates advantages of the both bracket and operator models and optimized for the hardware peculiarities of the Omega System. This model utilizes the producer/consumer paradigm and data drive/data flow mechanism for efficient data exchange between operators. Each operation of the query tree is represented as a single lightweight process (a thread). In the Omega System each process is taken as a root thread (only one process can run on each processor module). Any thread may initialize any number of daughter threads. Thus, the threads form a hierarchy, which is supported by the thread manager. A value of dynamic priority calculated with the help of factor function of a thread is used to pass control over among the threads. A more detailed description of the thread manager and the formulas of dynamic priority calculations may be found in the paper [8]. In order to implement intraoperation parallelism, stream model utilizes a special exchange operator. It encapsulates all the parallelism of the query executor. It allows us to use sequential algorithms for implementation of main relational operations in the Omega system. The algorithms realizing to date describes in the last section of this paper. 2. Query executor of the Omega system Query executor of the Omega system is a virtual machine, which is capable to execute physical queries, that are the queries expressed in terms of physical algebra. On the Implementation of Relational Operations in Omega Parallel Database System 50

2 level of physical algebra, any kind of parallelism in query execution is implemented explicitly. In particular the arguments and results of operations of physical algebra are fragments of relations. Parallel operations based on relations partitioning are implemented on the higher levels of system hierarchy. The hierarchy of modules and classes of the query executor is shown in the Figure 1. Tree Class Executor Stream Class Stock Class Operations interpreter Figure 1 Structure of the query executor The stock class realizes the abstract Stock type. This type is necessary for implementation of the producer/consumer model. The stream class realizes the abstract Data Stream type, which is incorporating all available types of data sources. The implementation of this class is described in the next section. Module of the physical algebra operations interpreter describes the structure and types of parameters of relational operations and provides the procedures of the operations realization. The work of this module is described in detail in section 4. The tree class realizes the abstract Query tree type and provides the methods of creating and bypassing query trees. The executor module realizes bracket model and provides methods of creating, executing and eliminating physical query trees. 3. The stream model function, the pointer to thread factor-function, the pointer to output stream (to be described below), the pointer to the left son, the pointer to the right son (if one exist) and the type of the node (disjunctive or conjunctive). In this context, the factor-function calculates a number of granules that reside in the output stream at the current point of time. The number of sons is limited to two since there are only unary and binary operators in the Omega system [8]. While nodes of the query tree represent threads executing corresponding operations, the edges represent the streams [9]. A stream is a generalization of file concept; it operates as a virtual FIFO file. A stream is a realization of a fragment of a relation on the level of physical algebra. The streams are arguments and results of physical algebra operations, which means they are the input and output data of query tree nodes. The query executor of the Omega system supports streams of the following predefined types: a stored file (a fragment of a relation), a temporary file, a conductor channel, a router channel, and a stock [9]. The choice of the particular mechanism of data transfer depends on the physical location of the adjacent nodes: 1. If the nodes are placed on the same processor they are realized as threads and are executed simultaneously. Data may be exchanged between threads with the help of two types of streams: a temporary file and a stock; 2. In case nodes are situated on different processors of the same cluster data is transferred through the conductor channel; 3. If the nodes are executed in different clusters data is transferred through the router channel. Besides, the input data of the query tree is stored on the disks and the query executor has to obtain it from the file system by means of a stream of file type. Most authors regard the above mentioned situations as separate problems concentrating mostly on inter-process exchanges [4]. We have decided to integrate these cases into a single concept. In order to unify the data transfer interface we introduce the concept of stream incorporating all of the above situations: the streams realize the universal mechanism of data exchange between processes and disks, a process and a conductor or a router channel, and between two processes. The proposed stream model is based on the bracket template conception [4]. In the Omega system, query tree The described conception of data exchange is realized in nodes are implemented by using the common bracket the query executor by a stream class. Each member of this template, which can consume and produce data granules class has the following attributes: and can execute exactly one operator. Each query tree node is built on bracket template by assigning the Stream type; following main attributes: the pointer to thread body A virtual file identifier; Element size in bytes; Implementation of Relational Operations in Omega Parallel Database System 2

3 A pointer to the working buffer; Pointers to functions of streams management. Information about the existing streams is stored in a static array. The ordinal number of an element of the array is the identifier of the corresponding stream. The stream class provides the basic methods of creating abstract objects of the stream type and the service functions realizing the concrete stream types and access to them. Basic functions include the functions of creating and deleting streams and the function of accessing the attributes of the stream. The basic functions of creating and deleting a member of the stream class execute corresponding actions in the stream descriptor array. The service functions include the following actions: Open the stream; Close the stream; Reset the stream; Put data granule to the stream; Get data granule from the stream; Check completion of exchange in the stream; Return the number of data granules in the stream. Read and write operations for all types of streams except the stock type are asynchronous, and this stipulates the necessity to check completion of data exchange in a stream. The interface of service functions of the stream class is maximally unified. This allows addressing a stream disregarding the concrete mechanism of its work, which significantly facilitates for further development of the system as a whole and the query executor in particular. Let s consider in greater detail the realization of each stream type. Streams of file type The representation of a stream of file type is an open stored file. It means that before creating and using a stream the corresponding file has to be opened in a necessary mode (read-only if this stream admits no writes; or read-write if the writes are allowed). The operations of opening, closing and resetting the file stream are independent of the file s state. The corresponding action is performed on the file iterator, i.e. when a stream is opened the iterator is created, when a stream is closed the iterator is eliminated, when a stream is reset the iterator is set before the first record in the file. Reading a record in the file is realized by actions on the iterator: a pointer to the current record is moved to the next position and returned into the function as a result. Thus, the data of the file streams can be used repeatedly. Streams of temporary file type. The representation of a stream of temporary file type is a temporary file. It is created and deleted together with the corresponding stream. While resetting the stream the corresponding file iterator is set to initial state. Records of the temporary file when reading and resetting are not deleted, thus streams of temporary file type allow using the data repeatedly. Streams of conductor channel type. The representation of a stream of conductor channel type is a conductor channel. When creating and opening a stream no channel is created. A channel is created only when writing or reading operations are executed. The channel is eliminated immediately after the operation is completed. Operation of resetting for the conductor channel stream is void because streams of this type do not allow using the data repeatedly. Streams of router channel type. The representation of a stream of router channel type is a router channel. Its mechanism is analogous to channel conductor. Streams of stock type. A stock is created and deleted together with the corresponding stream. When operation Reset is executed the stock is emptied. When an element from a stream is reading, this element is deleted from the stock. Thus, the data of stock type streams can be used repeatedly. In the Omega system, the stocks are the basic types of streams used to represent query trees [9]. A stock is a FIFO buffer situated in main memory. When stock length is equal to one, the stock model actually becomes equivalent to the classical iterator model used for managing data flow in most DBMS s [4]. The test results [10] show that using stocks longer then one element can provide better performance in case of data skew. Concept of stock is realized in the query executor by the stock class. This class represents an abstract type of output thread buffers in the producer/consumer model. The elements of the stock class are byte strings of fixed length, structured as a queue. Elements may be placed and taken from the stock. Information about the stocks is contained in descriptors stored in a static array. A descriptor includes the following fields: maximum number of elements in a stock, length of elements, an address of the memory block allocated for the stock, a pointer to the current top and bottom of the stock. Each existing stock is connected with a value, which is called stock-filling factor. It is dynamically calculated and taken into account while scheduling the threads. Workshop on Computer Science and Information Technologies CSIT 2001, Ufa, Yangantau, Russia,

4 The Omega bracket template does not support intraoperator parallelism. In order to support intraoperator parallelism on partitioned datasets, we introduced a novel Omega exchange operator. The structure of the Omega exchange operator is shown in Figure 2. It consists of the following four suboperators: split operator, gazer operator, scatter operator and merge operator. All this operators are implemented by using the generic bracket template. Gather Merge Split Scatter Figure 2. Exchange Operator Structure The split operator divides its input into two parts using the partitioning function. The first part includes just those data granules, which have to be processed inside the local node. These granules are directed to the output stock of the split operator. The second part consists of those data granules, which have to be processed on remote nodes. These granules are directed into the output stock of the scatter operator, which serves in this context as an input stream. In context of generic bracket template, the split operator is implemented as an binary conjunctive operator whose right input stream serves as the second output stock. The scatter operator consumes data granules from its own output stream and sends them to corresponding Omegacluster nodes by using the partition function. In context of generic bracket template, the scatter operator is implemented as an operator without input streams whose output stream serves input stock. The gather operator constantly reads data granules from all Omega-cluster nodes excepting its own node and puts the read granules into its output stock. In context of generic bracket template, the gather operator is implemented as an operator without input streams. The merge operator receives data granules from its input streams and merges them into the output stream. In context of generic bracket template, the merge operator is implemented as a binary disjunctive operator. The Omega exchange operator is implemented by using the common generic template; therefore, it can be inserted at any one place or at multiple places in a complex query tree. The other operators are entirely unaffected by the presence of Omega exchange operators in query plan. The Omega exchange operator does not contribute to data manipulation on the logical level. On the physical level, however, it provides facility not provided by any of the normal operators, i.e. data redistribution. Thus, the Omega exchange operator encapsulates all parallelism issues and makes implementation of parallel database algorithms significantly easier and robust. 4. Realization of relational operations As it has been mentioned above, on the level of the query executor parallelism of executing queries is implemented explicitly. In particular, the relational operations are performed on the fragments of relations and are not parallel. Here are algorithms of realization of some basic relational operations. Scan This operation sequentially takes records from the input stream, checks the given condition, and puts records that met the condition into the output stream. Both input and output streams must be opened before the operation can be executed. static int _scan(input, output, predicate){ static char *buf; ; if (stream_eod(input, buf = stream_read(input))){ stream_writeeod(output); ; if (predicate!= NULL) if (!((*predicate)(buf))) stream_write(output, buf); Figure 3. Algorithm of SCAN Operation The condition of selection is given by a separate parameter called the selection predicate, which is a pointer to function. If the given parameter is NULL all the records from the input stream are placed into the output stream. Otherwise only those records are selected for which the given predicate is TRUE. The predicate is given a pointer to the current element of the stream as a parameter. Split This operation sequentially scans elements of the input stream. For each element predicates of all streams of the output fan are calculated. The element is copied exactly to Implementation of Relational Operations in Omega Parallel Database System 4

5 those streams of the output fan the predicates of which return TRUE value. Here fanout is a pointer to the output streams array, dimout is the number of outputs, predicatev is the predicate vector. static int _split(input, *fanout, dimout, predicatev){ static char* buf; int i; Merge if (stream_eod(input, buf=stream_read(input))){ for (i=0; i<dimout; i++) stream_writeeod(fanout[i]); if (predicatev!= NULL) for (i=0; i<dimout; i++) if((predicatev[i])(buf)) stream_write(fanout[i], buf); Figure 4. Algorithm of SPLIT Operation Merges two input streams into one output stream. The records of both input streams take turns entering the output stream until one of the streams is over. No duplicates are removed in the process. static int _merge(inputa, inputb, output){ static char eoda = FALSE; static char eodb = FALSE; char* buf; if (!(eoda)) if (stream_eod(inputa,buf=stream_read(inputa))){ eoda = TRUE; else{ stream_write(output, buf); if (!(eodb)) if (stream_eod(inputb,buf=stream_read(inputb))){ eodb = TRUE; else { stream_write(output, buf); if (!(eoda && eodb)) stream_writeeod(output); ; Figure 5. Algorithm of MERGE Operation Product Calculates the direct product of input streams. The result is written to the output stream. The stream scanned in the internal cycle (to which the right sub-tree in the query tree corresponds) must allow using the data repeatedly. static int _product(inputa, inputb, static char eodb = FALSE; char *bufa, *bufb, *bufc = stream_a(output)->buf; int i, widgetlena = stream_a(inputa)->widgetlen; if (stream_eod(inputa,bufa=stream_read(inputa))){ stream_writeeod(output); if (eodb) { stream_reset(inputb); while (!stream_eod(inputb, bufb=stream_read(inputb))){ for (i=0;i< widgetlena; i++) bufc[i] = bufa[i]; for (i=widgetlena; i<stream_a(output)->widgetlen; i++) bufc[i] = bufb[i- widgetlena]; stream_write(output, bufc); ; eodb = TRUE; Figure 6. Algorithm of PRODUCT Operation 5. Conclusion This paper proposes a novel method of the implementation of relational operations. This method bases on a model of paralleling queries, which is called a stream model. The proposed model allows to automatically paralleling executing queries to any number of processor. This is achieved by means of a special exchange operator. Exchange operator encapsulates all the mechanisms necessary for realizing intraoperator parallelism. This approach significantly facilitates implementation of parallel algorithms in DBMS s and makes them more reliable. The algorithms of relational operations, which realized to date in Omega system, are described. The differentiating feature of the stream model is automatic synchronization and scheduling processes of executing operations in the query tree. The stream model includes the bracket template and the class of data objects called streams. The described mechanisms provide the better system performance in the presence of data skew. The described model was realized in the prototype of the parallel Omega system based on the MVS-100 in 8- processor configuration. Tests have been indicating high efficiency of the proposed approach. References 1. Sokolinsky L, Axenov O, Gutova S. Omega The Highly Parallel Database System Project. In the proceedings of the First East-European Symposium on Advances in Database and Information Systems (ADBIS'97), St.-Petersburg, 1997, vol. 2, pp Zabrodin A.V., Levin V.K., Korneev V.V. The Massively Parallel Computer System MBC-100. In Workshop on Computer Science and Information Technologies CSIT 2001, Ufa, Yangantau, Russia,

6 the proceedings of PaCT-95 (Lecture Notes in Computer Science), 1995, vol. 964, pp Sokolinsky L.B. Operating System Support for a Parallel DBMS with an Hierarchical Shared-Nothing Architecture. In the proceedings of the Thirdth East- European Symposium on Advances in Database and Information Systems (ADBIS'99), Maribor, Slovenia, 1999, pp Graefe G. Query evaluation techniques for large databases. ACM Computing Surveys June, 1993, vol. 25, ¹ 2, pp DeWitt D.J., et al. The Gamma database machine project IEEE Transactins on Knowledge and Data Engineering, March 1990, vol. 2, ¹ 1, pp Boral H., et al. Prototyping Bubba a Highly Parallel Database System IEEE Transactins on Knowledge and Data Engineering, March 1990, vol. 2, ¹ 1, pp Graefe G. Encapsulation of Parallelism in the Volcano Query Processing Systems. In the proceedings of the 1990 ACM SIGMOD International Conference on Management of Data, Atlantic City, NJ, 1990, pp Sokolinsky, L.B. Interprocessor Communication Support in the Omega Parallel Database System. In the proceedings of the First International Workshop on Computer Science and Information Technologies (CSIT 99), Moscow, 1999, vol Lymar T.Y., Sokolinsky L.B. Data Streams Organization in Query Executor for Parallel DBMS. In the proceedings of the 4th IEEE International Baltic Workshop, Lithuania, Vilnius, 2000, vol. 1, pp Sokolinsky L.B. Design and Evaluation of Database Multiprocessor Architecture with High Data Availability. In the proceedings of the 12th International DEXA Workshop, Munich, Germany, Implementation of Relational Operations in Omega Parallel Database System 6

Implementation Principles of File Management System for Omega Parallel DBMS *

Implementation Principles of File Management System for Omega Parallel DBMS * Implementation Principles of File Management System for Omega Parallel DBMS * Mikhail L. Zymbler Chelyabinsk State University Russia mzym@cgu.chel.su Leonid B. Sokolinsky Chelyabinsk State University Russia

More information

Interprocessor Communication Support in the Omega Parallel Database System

Interprocessor Communication Support in the Omega Parallel Database System Interprocessor Communication Support in the Omega Parallel Database System Leonid B. Sokolinsky Chelyabinsk State University Chelyabinsk, Russia sokolinsky@acm.org Abstract 1 Interprocessor communication

More information

Heap-Filter Merge Join: A new algorithm for joining medium-size relations

Heap-Filter Merge Join: A new algorithm for joining medium-size relations Oregon Health & Science University OHSU Digital Commons CSETech January 1989 Heap-Filter Merge Join: A new algorithm for joining medium-size relations Goetz Graefe Follow this and additional works at:

More information

On the Performance of Parallel Join Processing in Shared Nothing Database Systems

On the Performance of Parallel Join Processing in Shared Nothing Database Systems in: Proc. PARLE-93 (5th Int. Conf. on Parallel Architectures and Languages Europe), Munich, June 1993, LNCS 694, Springer-Verlag, pp. 622-633 On the Performance of Parallel Join Processing in Shared Nothing

More information

CSE 544 Principles of Database Management Systems

CSE 544 Principles of Database Management Systems CSE 544 Principles of Database Management Systems Alvin Cheung Fall 2015 Lecture 5 - DBMS Architecture and Indexing 1 Announcements HW1 is due next Thursday How is it going? Projects: Proposals are due

More information

CSIT5300: Advanced Database Systems

CSIT5300: Advanced Database Systems CSIT5300: Advanced Database Systems L08: B + -trees and Dynamic Hashing Dr. Kenneth LEUNG Department of Computer Science and Engineering The Hong Kong University of Science and Technology Hong Kong SAR,

More information

Chapter 17: Parallel Databases

Chapter 17: Parallel Databases Chapter 17: Parallel Databases Introduction I/O Parallelism Interquery Parallelism Intraquery Parallelism Intraoperation Parallelism Interoperation Parallelism Design of Parallel Systems Database Systems

More information

Linux Operating System

Linux Operating System Linux Operating System Dept. of Computer Science & Engineering 1 History Linux is a modern, free operating system based on UNIX standards. First developed as a small but self-contained kernel in 1991 by

More information

QUERY PROCESSING IN A RELATIONAL DATABASE MANAGEMENT SYSTEM

QUERY PROCESSING IN A RELATIONAL DATABASE MANAGEMENT SYSTEM QUERY PROCESSING IN A RELATIONAL DATABASE MANAGEMENT SYSTEM GAWANDE BALAJI RAMRAO Research Scholar, Dept. of Computer Science CMJ University, Shillong, Meghalaya ABSTRACT Database management systems will

More information

! Parallel machines are becoming quite common and affordable. ! Databases are growing increasingly large

! Parallel machines are becoming quite common and affordable. ! Databases are growing increasingly large Chapter 20: Parallel Databases Introduction! Introduction! I/O Parallelism! Interquery Parallelism! Intraquery Parallelism! Intraoperation Parallelism! Interoperation Parallelism! Design of Parallel Systems!

More information

Chapter 20: Parallel Databases

Chapter 20: Parallel Databases Chapter 20: Parallel Databases! Introduction! I/O Parallelism! Interquery Parallelism! Intraquery Parallelism! Intraoperation Parallelism! Interoperation Parallelism! Design of Parallel Systems 20.1 Introduction!

More information

Chapter 20: Parallel Databases. Introduction

Chapter 20: Parallel Databases. Introduction Chapter 20: Parallel Databases! Introduction! I/O Parallelism! Interquery Parallelism! Intraquery Parallelism! Intraoperation Parallelism! Interoperation Parallelism! Design of Parallel Systems 20.1 Introduction!

More information

RELATIONAL OPERATORS #1

RELATIONAL OPERATORS #1 RELATIONAL OPERATORS #1 CS 564- Spring 2018 ACKs: Jeff Naughton, Jignesh Patel, AnHai Doan WHAT IS THIS LECTURE ABOUT? Algorithms for relational operators: select project 2 ARCHITECTURE OF A DBMS query

More information

Announcements. Reading Material. Recap. Today 9/17/17. Storage (contd. from Lecture 6)

Announcements. Reading Material. Recap. Today 9/17/17. Storage (contd. from Lecture 6) CompSci 16 Intensive Computing Systems Lecture 7 Storage and Index Instructor: Sudeepa Roy Announcements HW1 deadline this week: Due on 09/21 (Thurs), 11: pm, no late days Project proposal deadline: Preliminary

More information

Chapter 18: Parallel Databases

Chapter 18: Parallel Databases Chapter 18: Parallel Databases Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 18: Parallel Databases Introduction I/O Parallelism Interquery Parallelism Intraquery

More information

Chapter 18: Parallel Databases. Chapter 18: Parallel Databases. Parallelism in Databases. Introduction

Chapter 18: Parallel Databases. Chapter 18: Parallel Databases. Parallelism in Databases. Introduction Chapter 18: Parallel Databases Chapter 18: Parallel Databases Introduction I/O Parallelism Interquery Parallelism Intraquery Parallelism Intraoperation Parallelism Interoperation Parallelism Design of

More information

Operating Systems. Lecture 06. System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line

Operating Systems. Lecture 06. System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line Operating Systems Lecture 06 System Calls (Exec, Open, Read, Write) Inter-process Communication in Unix/Linux (PIPE), Use of PIPE on command line March 04, 2013 exec() Typically the exec system call is

More information

Behavioral Design Patterns Used in Data Structures Implementation

Behavioral Design Patterns Used in Data Structures Implementation Behavioral Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Something to think about. Problems. Purpose. Vocabulary. Query Evaluation Techniques for large DB. Part 1. Fact:

Something to think about. Problems. Purpose. Vocabulary. Query Evaluation Techniques for large DB. Part 1. Fact: Query Evaluation Techniques for large DB Part 1 Fact: While data base management systems are standard tools in business data processing they are slowly being introduced to all the other emerging data base

More information

CSE544 Database Architecture

CSE544 Database Architecture CSE544 Database Architecture Tuesday, February 1 st, 2011 Slides courtesy of Magda Balazinska 1 Where We Are What we have already seen Overview of the relational model Motivation and where model came from

More information

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing CSE 544 Principles of Database Management Systems Magdalena Balazinska Winter 2009 Lecture 6 - Storage and Indexing References Generalized Search Trees for Database Systems. J. M. Hellerstein, J. F. Naughton

More information

Data Modeling and Databases Ch 10: Query Processing - Algorithms. Gustavo Alonso Systems Group Department of Computer Science ETH Zürich

Data Modeling and Databases Ch 10: Query Processing - Algorithms. Gustavo Alonso Systems Group Department of Computer Science ETH Zürich Data Modeling and Databases Ch 10: Query Processing - Algorithms Gustavo Alonso Systems Group Department of Computer Science ETH Zürich Transactions (Locking, Logging) Metadata Mgmt (Schema, Stats) Application

More information

Module 9: Selectivity Estimation

Module 9: Selectivity Estimation Module 9: Selectivity Estimation Module Outline 9.1 Query Cost and Selectivity Estimation 9.2 Database profiles 9.3 Sampling 9.4 Statistics maintained by commercial DBMS Web Forms Transaction Manager Lock

More information

University of Waterloo Midterm Examination Sample Solution

University of Waterloo Midterm Examination Sample Solution 1. (4 total marks) University of Waterloo Midterm Examination Sample Solution Winter, 2012 Suppose that a relational database contains the following large relation: Track(ReleaseID, TrackNum, Title, Length,

More information

Data Modeling and Databases Ch 9: Query Processing - Algorithms. Gustavo Alonso Systems Group Department of Computer Science ETH Zürich

Data Modeling and Databases Ch 9: Query Processing - Algorithms. Gustavo Alonso Systems Group Department of Computer Science ETH Zürich Data Modeling and Databases Ch 9: Query Processing - Algorithms Gustavo Alonso Systems Group Department of Computer Science ETH Zürich Transactions (Locking, Logging) Metadata Mgmt (Schema, Stats) Application

More information

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University

CS370: System Architecture & Software [Fall 2014] Dept. Of Computer Science, Colorado State University Frequently asked questions from the previous class survey CS 370: SYSTEM ARCHITECTURE & SOFTWARE [FILE SYSTEMS] Interpretation of metdata from different file systems Error Correction on hard disks? Shrideep

More information

Hash-Based Indexing 165

Hash-Based Indexing 165 Hash-Based Indexing 165 h 1 h 0 h 1 h 0 Next = 0 000 00 64 32 8 16 000 00 64 32 8 16 A 001 01 9 25 41 73 001 01 9 25 41 73 B 010 10 10 18 34 66 010 10 10 18 34 66 C Next = 3 011 11 11 19 D 011 11 11 19

More information

Chapter 13: Query Processing

Chapter 13: Query Processing Chapter 13: Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions 13.1 Basic Steps in Query Processing 1. Parsing

More information

Ordered Read Write Locks for Multicores and Accelarators

Ordered Read Write Locks for Multicores and Accelarators Ordered Read Write Locks for Multicores and Accelarators INRIA & ICube Strasbourg, France mariem.saied@inria.fr ORWL, Ordered Read-Write Locks An inter-task synchronization model for data-oriented parallel

More information

Small Logger File System

Small Logger File System Small Logger File System (http://www.tnkernel.com/) Copyright 2011 Yuri Tiomkin Document Disclaimer The information in this document is subject to change without notice. While the information herein is

More information

Chapter B: Hierarchical Model

Chapter B: Hierarchical Model Chapter B: Hierarchical Model Basic Concepts Tree-Structure Diagrams Data-Retrieval Facility Update Facility Virtual Records Mapping of Hierarchies to Files The IMS Database System B.1 Basic Concepts A

More information

class 12 b-trees 2.0 prof. Stratos Idreos

class 12 b-trees 2.0 prof. Stratos Idreos class 12 b-trees 2.0 prof. Stratos Idreos HTTP://DASLAB.SEAS.HARVARD.EDU/CLASSES/CS165/ A B C A B C clustered/primary index on A Stratos Idreos /26 2 A B C A B C clustered/primary index on A pos C pos

More information

S-Store: Streaming Meets Transaction Processing

S-Store: Streaming Meets Transaction Processing S-Store: Streaming Meets Transaction Processing H-Store is an experimental database management system (DBMS) designed for online transaction processing applications Manasa Vallamkondu Motivation Reducing

More information

CS2506 Quick Revision

CS2506 Quick Revision CS2506 Quick Revision OS Structure / Layer Kernel Structure Enter Kernel / Trap Instruction Classification of OS Process Definition Process Context Operations Process Management Child Process Thread Process

More information

! A relational algebra expression may have many equivalent. ! Cost is generally measured as total elapsed time for

! A relational algebra expression may have many equivalent. ! Cost is generally measured as total elapsed time for Chapter 13: Query Processing Basic Steps in Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions 1. Parsing and

More information

Chapter 13: Query Processing Basic Steps in Query Processing

Chapter 13: Query Processing Basic Steps in Query Processing Chapter 13: Query Processing Basic Steps in Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions 1. Parsing and

More information

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 7 - Query execution

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 7 - Query execution CSE 544 Principles of Database Management Systems Magdalena Balazinska Fall 2007 Lecture 7 - Query execution References Generalized Search Trees for Database Systems. J. M. Hellerstein, J. F. Naughton

More information

Query Processing: A Systems View. Announcements (March 1) Physical (execution) plan. CPS 216 Advanced Database Systems

Query Processing: A Systems View. Announcements (March 1) Physical (execution) plan. CPS 216 Advanced Database Systems Query Processing: A Systems View CPS 216 Advanced Database Systems Announcements (March 1) 2 Reading assignment due Wednesday Buffer management Homework #2 due this Thursday Course project proposal due

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

An Optimization of Disjunctive Queries : Union-Pushdown *

An Optimization of Disjunctive Queries : Union-Pushdown * An Optimization of Disjunctive Queries : Union-Pushdown * Jae-young hang Sang-goo Lee Department of omputer Science Seoul National University Shilim-dong, San 56-1, Seoul, Korea 151-742 {jychang, sglee}@mercury.snu.ac.kr

More information

Overview. CMSC 330: Organization of Programming Languages. Concurrency. Multiprocessors. Processes vs. Threads. Computation Abstractions

Overview. CMSC 330: Organization of Programming Languages. Concurrency. Multiprocessors. Processes vs. Threads. Computation Abstractions CMSC 330: Organization of Programming Languages Multithreaded Programming Patterns in Java CMSC 330 2 Multiprocessors Description Multiple processing units (multiprocessor) From single microprocessor to

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Chapter 8: Data Abstractions

Chapter 8: Data Abstractions Chapter 8: Data Abstractions Computer Science: An Overview Tenth Edition by J. Glenn Brookshear Presentation files modified by Farn Wang Copyright 28 Pearson Education, Inc. Publishing as Pearson Addison-Wesley

More information

Announcements (March 1) Query Processing: A Systems View. Physical (execution) plan. Announcements (March 3) Physical plan execution

Announcements (March 1) Query Processing: A Systems View. Physical (execution) plan. Announcements (March 3) Physical plan execution Announcements (March 1) 2 Query Processing: A Systems View CPS 216 Advanced Database Systems Reading assignment due Wednesday Buffer management Homework #2 due this Thursday Course project proposal due

More information

Module 4: Tree-Structured Indexing

Module 4: Tree-Structured Indexing Module 4: Tree-Structured Indexing Module Outline 4.1 B + trees 4.2 Structure of B + trees 4.3 Operations on B + trees 4.4 Extensions 4.5 Generalized Access Path 4.6 ORACLE Clusters Web Forms Transaction

More information

THE B+ TREE INDEX. CS 564- Spring ACKs: Jignesh Patel, AnHai Doan

THE B+ TREE INDEX. CS 564- Spring ACKs: Jignesh Patel, AnHai Doan THE B+ TREE INDEX CS 564- Spring 2018 ACKs: Jignesh Patel, AnHai Doan WHAT IS THIS LECTURE ABOUT? The B+ tree index Basics Search/Insertion/Deletion Design & Cost 2 INDEX RECAP We have the following query:

More information

Query Execution [15]

Query Execution [15] CSC 661, Principles of Database Systems Query Execution [15] Dr. Kalpakis http://www.csee.umbc.edu/~kalpakis/courses/661 Query processing involves Query processing compilation parsing to construct parse

More information

Query Optimization in Distributed Databases. Dilşat ABDULLAH

Query Optimization in Distributed Databases. Dilşat ABDULLAH Query Optimization in Distributed Databases Dilşat ABDULLAH 1302108 Department of Computer Engineering Middle East Technical University December 2003 ABSTRACT Query optimization refers to the process of

More information

CSC 553 Operating Systems

CSC 553 Operating Systems CSC 553 Operating Systems Lecture 12 - File Management Files Data collections created by users The File System is one of the most important parts of the OS to a user Desirable properties of files: Long-term

More information

Selection Queries. to answer a selection query (ssn=10) needs to traverse a full path.

Selection Queries. to answer a selection query (ssn=10) needs to traverse a full path. Hashing B+-tree is perfect, but... Selection Queries to answer a selection query (ssn=) needs to traverse a full path. In practice, 3-4 block accesses (depending on the height of the tree, buffering) Any

More information

Chapter 12: Query Processing

Chapter 12: Query Processing Chapter 12: Query Processing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Overview Chapter 12: Query Processing Measures of Query Cost Selection Operation Sorting Join

More information

Tree-Structured Indexes

Tree-Structured Indexes Tree-Structured Indexes Chapter 10 Comp 521 Files and Databases Fall 2010 1 Introduction As for any index, 3 alternatives for data entries k*: index refers to actual data record with key value k index

More information

CSIT5300: Advanced Database Systems

CSIT5300: Advanced Database Systems CSIT5300: Advanced Database Systems L10: Query Processing Other Operations, Pipelining and Materialization Dr. Kenneth LEUNG Department of Computer Science and Engineering The Hong Kong University of Science

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 Outline o Process concept o Process creation o Process states and scheduling o Preemption and context switch o Inter-process communication

More information

Introduction. Choice orthogonal to indexing technique used to locate entries K.

Introduction. Choice orthogonal to indexing technique used to locate entries K. Tree-Structured Indexes Werner Nutt Introduction to Database Systems Free University of Bozen-Bolzano 2 Introduction As for any index, three alternatives for data entries K : Data record with key value

More information

Query Processing. Debapriyo Majumdar Indian Sta4s4cal Ins4tute Kolkata DBMS PGDBA 2016

Query Processing. Debapriyo Majumdar Indian Sta4s4cal Ins4tute Kolkata DBMS PGDBA 2016 Query Processing Debapriyo Majumdar Indian Sta4s4cal Ins4tute Kolkata DBMS PGDBA 2016 Slides re-used with some modification from www.db-book.com Reference: Database System Concepts, 6 th Ed. By Silberschatz,

More information

Advanced Databases: Parallel Databases A.Poulovassilis

Advanced Databases: Parallel Databases A.Poulovassilis 1 Advanced Databases: Parallel Databases A.Poulovassilis 1 Parallel Database Architectures Parallel database systems use parallel processing techniques to achieve faster DBMS performance and handle larger

More information

Tree-Structured Indexes

Tree-Structured Indexes Tree-Structured Indexes Chapter 9 Database Management Systems, R. Ramakrishnan and J. Gehrke 1 Introduction As for any index, 3 alternatives for data entries k*: Data record with key value k

More information

CSE 544, Winter 2009, Final Examination 11 March 2009

CSE 544, Winter 2009, Final Examination 11 March 2009 CSE 544, Winter 2009, Final Examination 11 March 2009 Rules: Open books and open notes. No laptops or other mobile devices. Calculators allowed. Please write clearly. Relax! You are here to learn. Question

More information

Chapter 18: Parallel Databases

Chapter 18: Parallel Databases Chapter 18: Parallel Databases Introduction Parallel machines are becoming quite common and affordable Prices of microprocessors, memory and disks have dropped sharply Recent desktop computers feature

More information

CS301 - Data Structures Glossary By

CS301 - Data Structures Glossary By CS301 - Data Structures Glossary By Abstract Data Type : A set of data values and associated operations that are precisely specified independent of any particular implementation. Also known as ADT Algorithm

More information

Events, Memory Management

Events, Memory Management Events, Memory Management Events, Memory Management 1. Call back, message pumps 2. Call backs vs messages 3. Memory management Callback Program registers and event handler program that is called whenever

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part VI Lecture 17, March 24, 2015 Mohammad Hammoud Today Last Two Sessions: DBMS Internals- Part V External Sorting How to Start a Company in Five (maybe

More information

Database System Concepts

Database System Concepts Chapter 13: Query Processing s Departamento de Engenharia Informática Instituto Superior Técnico 1 st Semester 2008/2009 Slides (fortemente) baseados nos slides oficiais do livro c Silberschatz, Korth

More information

Transformer Looping Functions for Pivoting the data :

Transformer Looping Functions for Pivoting the data : Transformer Looping Functions for Pivoting the data : Convert a single row into multiple rows using Transformer Looping Function? (Pivoting of data using parallel transformer in Datastage 8.5,8.7 and 9.1)

More information

CS333 Intro to Operating Systems. Jonathan Walpole

CS333 Intro to Operating Systems. Jonathan Walpole CS333 Intro to Operating Systems Jonathan Walpole Threads & Concurrency 2 Threads Processes have the following components: - an address space - a collection of operating system state - a CPU context or

More information

CSE 565 Computer Security Fall 2018

CSE 565 Computer Security Fall 2018 CSE 565 Computer Security Fall 2018 Lecture 15: Software Security II Department of Computer Science and Engineering University at Buffalo 1 Software Vulnerabilities Buffer overflow vulnerabilities account

More information

The Java Collections Framework. Chapters 7.5

The Java Collections Framework. Chapters 7.5 The Java s Framework Chapters 7.5 Outline Introduction to the Java s Framework Iterators Interfaces, Classes and Classes of the Java s Framework Outline Introduction to the Java s Framework Iterators Interfaces,

More information

Tree-Structured Indexes. Chapter 10

Tree-Structured Indexes. Chapter 10 Tree-Structured Indexes Chapter 10 1 Introduction As for any index, 3 alternatives for data entries k*: Data record with key value k 25, [n1,v1,k1,25] 25,

More information

CSE 444: Database Internals. Lectures 5-6 Indexing

CSE 444: Database Internals. Lectures 5-6 Indexing CSE 444: Database Internals Lectures 5-6 Indexing 1 Announcements HW1 due tonight by 11pm Turn in an electronic copy (word/pdf) by 11pm, or Turn in a hard copy in my office by 4pm Lab1 is due Friday, 11pm

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 The Process Concept 2 The Process Concept Process a program in execution

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files ... and systems programming C basic syntax functions arrays structs

More information

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs.

CSC209: Software tools. Unix files and directories permissions utilities/commands Shell programming quoting wild cards files. Compiler vs. CSC209 Review CSC209: Software tools Unix files and directories permissions utilities/commands Shell programming quoting wild cards files... and systems programming C basic syntax functions arrays structs

More information

Activities Radovan Cervenka

Activities Radovan Cervenka Unified Modeling Language Activities Radovan Cervenka Activity Model Specification of an algorithmic behavior. Used to represent control flow and object flow models. Executing activity (of on object) is

More information

A Case for Merge Joins in Mediator Systems

A Case for Merge Joins in Mediator Systems A Case for Merge Joins in Mediator Systems Ramon Lawrence Kirk Hackert IDEA Lab, Department of Computer Science, University of Iowa Iowa City, IA, USA {ramon-lawrence, kirk-hackert}@uiowa.edu Abstract

More information

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2014/15

Systems Infrastructure for Data Science. Web Science Group Uni Freiburg WS 2014/15 Systems Infrastructure for Data Science Web Science Group Uni Freiburg WS 2014/15 Lecture II: Indexing Part I of this course Indexing 3 Database File Organization and Indexing Remember: Database tables

More information

Linked Lists and Abstract Data Structures A brief comparison

Linked Lists and Abstract Data Structures A brief comparison Linked Lists and Abstract Data A brief comparison 24 March 2011 Outline 1 2 3 4 Data Data structures are a key idea in programming It s just as important how you store the data as it is what you do to

More information

ENGR 3950U / CSCI 3020U Midterm Exam SOLUTIONS, Fall 2012 SOLUTIONS

ENGR 3950U / CSCI 3020U Midterm Exam SOLUTIONS, Fall 2012 SOLUTIONS SOLUTIONS ENGR 3950U / CSCI 3020U (Operating Systems) Midterm Exam October 23, 2012, Duration: 80 Minutes (10 pages, 12 questions, 100 Marks) Instructor: Dr. Kamran Sartipi Question 1 (Computer Systgem)

More information

Information Systems (Informationssysteme)

Information Systems (Informationssysteme) Information Systems (Informationssysteme) Jens Teubner, TU Dortmund jens.teubner@cs.tu-dortmund.de Summer 2018 c Jens Teubner Information Systems Summer 2018 1 Part IX B-Trees c Jens Teubner Information

More information

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA

DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA DISTRIBUTED HIGH-SPEED COMPUTING OF MULTIMEDIA DATA M. GAUS, G. R. JOUBERT, O. KAO, S. RIEDEL AND S. STAPEL Technical University of Clausthal, Department of Computer Science Julius-Albert-Str. 4, 38678

More information

Database Applications (15-415)

Database Applications (15-415) Database Applications (15-415) DBMS Internals- Part IV Lecture 14, March 10, 015 Mohammad Hammoud Today Last Two Sessions: DBMS Internals- Part III Tree-based indexes: ISAM and B+ trees Data Warehousing/

More information

Chapter 12: Query Processing. Chapter 12: Query Processing

Chapter 12: Query Processing. Chapter 12: Query Processing Chapter 12: Query Processing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 12: Query Processing Overview Measures of Query Cost Selection Operation Sorting Join

More information

Chapter 12: Query Processing

Chapter 12: Query Processing Chapter 12: Query Processing Overview Catalog Information for Cost Estimation $ Measures of Query Cost Selection Operation Sorting Join Operation Other Operations Evaluation of Expressions Transformation

More information

INTERNAL REPRESENTATION OF FILES:

INTERNAL REPRESENTATION OF FILES: INTERNAL REPRESENTATION OF FILES: Every file on a UNIX system has a unique inode. The inode contains the information necessary for a process to access a file, such as file ownership, access rights, file

More information

CSE 344 FEBRUARY 14 TH INDEXING

CSE 344 FEBRUARY 14 TH INDEXING CSE 344 FEBRUARY 14 TH INDEXING EXAM Grades posted to Canvas Exams handed back in section tomorrow Regrades: Friday office hours EXAM Overall, you did well Average: 79 Remember: lowest between midterm/final

More information

CS510 Operating System Foundations. Jonathan Walpole

CS510 Operating System Foundations. Jonathan Walpole CS510 Operating System Foundations Jonathan Walpole The Process Concept 2 The Process Concept Process a program in execution Program - description of how to perform an activity instructions and static

More information

Chapter 4: Processes. Process Concept

Chapter 4: Processes. Process Concept Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Silberschatz, Galvin and Gagne

More information

Multiple Choice Questions. Chapter 5

Multiple Choice Questions. Chapter 5 Multiple Choice Questions Chapter 5 Each question has four choices. Choose most appropriate choice of the answer. 1. Developing program in high level language (i) facilitates portability of nonprocessor

More information

CS 351 Week 15. Course Review

CS 351 Week 15. Course Review CS 351 Week 15 Course Review Objectives: 1. To review the contents from different weeks. 2. To have a complete understanding of important concepts from different weeks. Concepts: 1. Important Concepts

More information

Improving generalized inverted index lock wait times

Improving generalized inverted index lock wait times Journal of Physics: Conference Series PAPER OPEN ACCESS Improving generalized inverted index lock wait times To cite this article: A Borodin et al 2018 J. Phys.: Conf. Ser. 944 012022 View the article

More information

Extra: B+ Trees. Motivations. Differences between BST and B+ 10/27/2017. CS1: Java Programming Colorado State University

Extra: B+ Trees. Motivations. Differences between BST and B+ 10/27/2017. CS1: Java Programming Colorado State University Extra: B+ Trees CS1: Java Programming Colorado State University Slides by Wim Bohm and Russ Wakefield 1 Motivations Many times you want to minimize the disk accesses while doing a search. A binary search

More information

Programming 2. Topic 8: Linked Lists, Basic Searching and Sorting

Programming 2. Topic 8: Linked Lists, Basic Searching and Sorting RMIT School of Computer Science and Information Technology Programming 2 Topic 8: Linked Lists, Basic Searching and Sorting Lecture Slides COPYRIGHT 2008 RMIT University. Original content by: Peter Tilmanis,

More information

Chapter 4: Processes

Chapter 4: Processes Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Silberschatz, Galvin and Gagne

More information

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University

CS 333 Introduction to Operating Systems. Class 3 Threads & Concurrency. Jonathan Walpole Computer Science Portland State University CS 333 Introduction to Operating Systems Class 3 Threads & Concurrency Jonathan Walpole Computer Science Portland State University 1 Process creation in UNIX All processes have a unique process id getpid(),

More information

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers)

Notes on the Exam. Question 1. Today. Comp 104:Operating Systems Concepts 11/05/2015. Revision Lectures (separate questions and answers) Comp 104:Operating Systems Concepts Revision Lectures (separate questions and answers) Today Here are a sample of questions that could appear in the exam Please LET ME KNOW if there are particular subjects

More information

IMPORTANT: Circle the last two letters of your class account:

IMPORTANT: Circle the last two letters of your class account: Spring 2011 University of California, Berkeley College of Engineering Computer Science Division EECS MIDTERM I CS 186 Introduction to Database Systems Prof. Michael J. Franklin NAME: STUDENT ID: IMPORTANT:

More information

Synthesis and FPGA-based Implementation of Hierarchical Finite State Machines from Specification in Handel-C

Synthesis and FPGA-based Implementation of Hierarchical Finite State Machines from Specification in Handel-C Synthesis and FPGA-based Implementation of Hierarchical Finite State Machines from Specification in Handel-C VALERY SKLYAROV Electronics and Telecommunications Department Aveiro University, IEETA Campus

More information

Optimization of Queries in Distributed Database Management System

Optimization of Queries in Distributed Database Management System Optimization of Queries in Distributed Database Management System Bhagvant Institute of Technology, Muzaffarnagar Abstract The query optimizer is widely considered to be the most important component of

More information

Lecture 8 Index (B+-Tree and Hash)

Lecture 8 Index (B+-Tree and Hash) CompSci 516 Data Intensive Computing Systems Lecture 8 Index (B+-Tree and Hash) Instructor: Sudeepa Roy Duke CS, Fall 2017 CompSci 516: Database Systems 1 HW1 due tomorrow: Announcements Due on 09/21 (Thurs),

More information

STORING DATA: DISK AND FILES

STORING DATA: DISK AND FILES STORING DATA: DISK AND FILES CS 564- Spring 2018 ACKs: Dan Suciu, Jignesh Patel, AnHai Doan WHAT IS THIS LECTURE ABOUT? How does a DBMS store data? disk, SSD, main memory The Buffer manager controls how

More information