CSE 190D Spring 2017 Final Exam Answers

Similar documents
CSE 190D Spring 2017 Final Exam

CS 564 Final Exam Fall 2015 Answers

CMSC424: Database Design. Instructor: Amol Deshpande

INSTITUTO SUPERIOR TÉCNICO Administração e optimização de Bases de Dados

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

Advanced Database Systems

Implementation of Relational Operations: Other Operations

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Database Systems: Fall 2008 Quiz II

Chapter 12: Query Processing

Introduction to Query Processing and Query Optimization Techniques. Copyright 2011 Ramez Elmasri and Shamkant Navathe

CSE 232A Graduate Database Systems

Final Exam CSE232, Spring 97

Transactions and Concurrency Control

Chapter 13: Query Processing

Evaluation of relational operations

Chapter 12: Query Processing. Chapter 12: Query Processing

Announcement. Reading Material. Overview of Query Evaluation. Overview of Query Evaluation. Overview of Query Evaluation 9/26/17

Evaluation of Relational Operations: Other Techniques

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

Overview of Transaction Management

! 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

RELATIONAL OPERATORS #1

Evaluation of Relational Operations

Database Applications (15-415)

CSE 344 Final Examination

CSE 544, Winter 2009, Final Examination 11 March 2009

Implementing Relational Operators: Selection, Projection, Join. Database Management Systems, R. Ramakrishnan and J. Gehrke 1

Evaluation of Relational Operations: Other Techniques

CS222P Fall 2017, Final Exam

1. [1 pt] What is the solution to the recurrence T(n) = 2T(n-1) + 1, T(1) = 1

CSE 444, Winter 2011, Final Examination. 17 March 2011

EECS 647: Introduction to Database Systems

CSC 261/461 Database Systems Lecture 19

Advances in Data Management Query Processing and Query Optimisation A.Poulovassilis

Algorithms for Query Processing and Optimization. 0. Introduction to Query Processing (1)

CSE 232A Graduate Database Systems

Transaction Management Overview

Evaluation of Relational Operations

Database System Concepts

Query Processing & Optimization

Relational Query Optimization. Overview of Query Evaluation. SQL Refresher. Yanlei Diao UMass Amherst October 23 & 25, 2007

Implementation of Relational Operations. Introduction. CS 186, Fall 2002, Lecture 19 R&G - Chapter 12

Overview of DB & IR. ICS 624 Spring Asst. Prof. Lipyeow Lim Information & Computer Science Department University of Hawaii at Manoa

Transaction Management: Introduction (Chap. 16)

Final Exam CSE232, Spring 97, Solutions

INSTITUTO SUPERIOR TÉCNICO Administração e optimização de Bases de Dados

CSE344 Final Exam Winter 2017

Assignment 6 Solutions

Faloutsos 1. Carnegie Mellon Univ. Dept. of Computer Science Database Applications. Outline

Final Review. May 9, 2017

CAS CS 460/660 Introduction to Database Systems. Query Evaluation II 1.1

Final Review. May 9, 2018 May 11, 2018

Chapter 12: Query Processing

University of Waterloo Midterm Examination Sample Solution

Lecture 12. Lecture 12: The IO Model & External Sorting

CompSci 516 Data Intensive Computing Systems

CSC 261/461 Database Systems Lecture 21 and 22. Spring 2017 MW 3:25 pm 4:40 pm January 18 May 3 Dewey 1101

COURSE 1. Database Management Systems

CSE 344 Final Review. August 16 th

Goal of Concurrency Control. Concurrency Control. Example. Solution 1. Solution 2. Solution 3

Hash-Based Indexing 165

Parser: SQL parse tree

Parser. Select R.text from Report R, Weather W where W.image.rain() and W.city = R.city and W.date = R.date and R.text.

CSE 344 FEBRUARY 14 TH INDEXING

2.3 Algorithms Using Map-Reduce

User Perspective. Module III: System Perspective. Module III: Topics Covered. Module III Overview of Storage Structures, QP, and TM

Database Management Systems Paper Solution

CS 186/286 Spring 2018 Midterm 1

CSE 562 Final Exam Solutions

Database Systems CSE 414

University of California, Berkeley. (2 points for each row; 1 point given if part of the change in the row was correct)

Database Management Systems (COP 5725) Homework 3

CSE Midterm - Spring 2017 Solutions

CSE 344 Final Examination

Evaluation of Relational Operations: Other Techniques

Transaction Management Overview. Transactions. Concurrency in a DBMS. Chapter 16

What are Transactions? Transaction Management: Introduction (Chap. 16) Major Example: the web app. Concurrent Execution. Web app in execution (CS636)

Parallel DBs. April 23, 2018

Overview of Query Processing. Evaluation of Relational Operations. Why Sort? Outline. Two-Way External Merge Sort. 2-Way Sort: Requires 3 Buffer Pages

Chapter 3. Algorithms for Query Processing and Optimization

Midterm 1: CS186, Spring I. Storage: Disk, Files, Buffers [11 points] SOLUTION. cs186-

CS 222/122C Fall 2017, Final Exam. Sample solutions

Introduction to Data Management. Lecture #18 (Transactions)

CISC437/637 Database Systems Final Exam

Query Processing. Introduction to Databases CompSci 316 Fall 2017

Intro to Transaction Management

Motivation for Sorting. External Sorting: Overview. Outline. CSE 190D Database System Implementation. Topic 3: Sorting. Chapter 13 of Cow Book

CS 4604: Introduction to Database Management Systems. B. Aditya Prakash Lecture #10: Query Processing

Introduction to Data Management CSE 344

Principles of Data Management. Lecture #9 (Query Processing Overview)

Rajiv GandhiCollegeof Engineering& Technology, Kirumampakkam.Page 1 of 10

CMSC 461 Final Exam Study Guide

Database Systems. Announcement

CSE 190D Database System Implementation

CISC437/637 Database Systems Final Exam

Parallel DBs. April 25, 2017

MASSACHUSETTS INSTITUTE OF TECHNOLOGY

Lassonde School of Engineering Winter 2016 Term Course No: 4411 Database Management Systems

Storage hierarchy. Textbook: chapters 11, 12, and 13

Transcription:

CSE 190D Spring 2017 Final Exam Answers Q 1. [20pts] For the following questions, clearly circle True or False. 1. The hash join algorithm always has fewer page I/Os compared to the block nested loop join algorithm. FALSE 2. Data shuffling among worker nodes is a key component of parallel query processing in MapReduce/Hadoop, Spark, and parallel DBMSs. 3. Using the double buffering technique typically reduces the total number of passes needed for an external merge sort. FALSE 4. All four SQL isolation levels guarantee that there will be no WW conflicts during a concurrent execution of transactions. 5. It is typically possible to speed up the processing of the aggregation γ COUNT( ) (R) by using a B+ tree index on R. /FALSE. Unfortunately, this question seems to have been too ambiguous. If the index is on all attributes of R or if it follows AltRecord, it cannot speed up this query; otherwise, it can. 6. An avoiding-cascading-aborts (ACA) schedule is always guaranteed to be a recoverable schedule. 7. Apart from schema information, the RDBMS catalog also stores statistics about both relation instances and indexes. 1

8. A hash index is typically efficient for answering selection queries with = predicates (denoted <> in SQL). FALSE 9. Spark s API mostly subsumes the MapReduce programming abstraction. 10. The clock algorithm is an approximation of the MRU buffer replacement policy. FALSE Q 2. [10pts] Hash Join with non-uniform partitioning. (This question is a small tweak on a quiz question!) We are joining two tables R and S, which have 4BN R and 12BN S pages respectively, using a hash join. We are given that 4BN R 12BN S and that the number of available buffer pages is 4B + 1. The buffer pool is initially empty. We are also given that 2FN S = 4B 1, where F is the hash table fudge factor. The distribution of the join attribute values in R and S are such that after the first hash partitioning phase, we get exactly 4B partitions each of R and S. Each partition of R is N R pages long, but the partitions of S have multiple lengths. Suppose that S gets partitioned as follows: B partitions have length N S pages each, 2B partitions of length 3N S pages each, and B partitions of length 5N S pages each. What is the I/O cost of the above join using the regular hash join algorithm discussed in class? Exclude the cost of writing the output. Assume that perfect uniform splitting occurs during the recursive repartitioning and that we do not need to recurse more than once. Briefly explain and show all of your calculations clearly. (Hint: The answer is of the following form: xbn R + ybn S, where x {10, 12, 14, 16, 18, 20} and y {50, 54, 58, 62, 66, 70}.) Answer: The total I/O cost is 18BN R + 58BN S. Clearly, the hash table is built on S, since it is the smaller relation. The lower bound is 3 (4BN R + 12BN S ) = 12BN R + 36BN S (regular hash join cost). But we need to recursively repartition the 2B + B partitions of S that are longer than 2N S pages each (since we only have enough buffer memory to fit a hash table on 2N S pages at a time, which means we also need to repartition the corresponding 3B partitions of R that are of length N R pages each. Thus, the I/O cost goes up by 2 (2B 3N S + B 5N S + 3B N R ) = 6BN R + 22BN S. Q 3. [25pts] Query processing and optimization. We are given a relational database schema with the following three relations, wherein A and B are discrete (string) attributes 2

and C, D, and E are numeric attributes. R(A, B, C), S(A, B), and T(B, D, E) Q 3.1 [10pts] For each of the following questions, clearly circle either or No for whether the given queries Q 1 and Q 2 are equivalent. 1. Q 1 : σ A= a B= b ((R S) T) and Q 2 : (σ A= a B= b (R S)) T 2. Q 1 : π E (σ D=1 (R T)) and Q 2 : π E (T) π B,E (σ D=1 (R T)) No. Trick question! They do not even have the same result schema. :) 3. Q 1 : π B (R S) and Q 2 : (π B (R)) (π B (S)) No. Q 1 joins on A and B but Q 2 loses A before the join. 4. Q 1 : π B,C,E (R (σ E=1 (T))) and Q 2 : σ E=1 (π B,C,E (R T)) 5. Q 1 : R S T and Q 2 : (R S) (S T) (T R) Q 3.2 [9pts] We are given an instance of the relation T whose heap file has a size of 10 million pages. We are also given a B+ tree index on T with the index key (B, D) that follows the alternative of storing RID lists in the leaf pages. The index has 5 million leaf pages. Assume that each B value is 8 B in size and that there are a million unique values of B in the given instance of T. A page is 8 KB in size. Describe an efficient physical query plan with I/O cost less than 9 million pages for processing the following SQL query, given 4 GB of buffer memory and an initially empty buffer pool. Mention if each physical operator is pipelined or materialized and compute the total I/O cost of your plan (in number of pages) rounded to the nearest million. SELECT B, AVG(D) FROM T GROUP BY B 3

Answer: This is a simple group by aggregate query. The union of the grouping list (B) and the aggregation attribute (D) is a subset of the index key (B, D); thus we only need to read the leaf nodes. Furthermore, since the grouping list is a prefix of the index key, the leaf entries are already pre-sorted on B, which means all entries of a group occur consecutively in the leaf pages. Finally, AVG can be computed incrementally for each group. Thus, overall, the physical query plan is simply a sequential scan of the leaf level of the tree. The I/O cost is only about 5 million pages. Q 3.3 [6pts] Name three indexes on R (including at least one hash index) that match the predicate in the following SQL query and briefly explain why each index matches. SELECT * FROM R WHERE (B = "b" OR A <> "a") AND NOT (C <= 20 OR A <> "a") Answer: First, rewrite the predicate to CNF: (B = "b" OR A <> "a") AND (C > 20) AND (A = "a") Now, matching indexes become obvious (check class notes). For example, B+ tree indexes that match include one on A, on C, on (A, C), on (C, A), on (A, B), on (C, B), and so on. A hash index on A also matches. At first glance, it seems that no index on B would match. Since the conjunct with B has an OR on another attribute, a hash index on B or on {B, A} will not match that conjunct. Similarly, any B+ tree index with B as a prefix of the index key will not match that conjunct. But looking deeper, if we rewrite the CNF further using the basic rules of logic, we find something interesting: (B = "b" OR A <> "a") AND (A = "a" AND C > 20) (B="b" AND A="a" AND C>20) OR (A<>"a" AND A="a" AND C>20) (B = "b" AND C > 20 AND A = "a") OR (FALSE AND C > 20) (B = "b" AND C > 20 AND A = "a") OR FALSE B = "b" AND C > 20 AND A = "a" Now, we see that a hash index on B matches this new first conjunct! In fact, a hash index on {A, B} is even better, since it matches two conjuncts put together! Similarly, a B+ tree index on B, on (B, C), on (B, A), and so on will now match at least the first conjunct. In fact, all 15 B+ tree indexes possible on R will now match this query! Q 4. [21pts] Transaction management and concurrency control. We are given a database with three distinct data objects A, B, and C. We are also given the following three trans- 4

actions that arrive concurrently. T1 : R(A), W(A), R(B), W(B), Commit T2 : R(B), W(B), R(C), W(C), Commit T3 : R(C), W(C), R(A), W(A), Commit Q 4.1 [2pts] Give a clear example of a serial schedule of the three transactions. Answer: T2 T1 T3; any other ordering is fine too. Q 4.2 [5pts] Give a clear example of a serializable schedule of the three transactions that is not serial but is equivalent to the serial schedule in your above answer. Answer: The following interleaved schedule is equivalent to the above serial schedule: R T1 (A), R T2 (B), W T1 (A), W T2 (B), R T2 (C), W T2 (C), Commit T2, R T1 (B), R T3 (C), W T1 (B), W T3 (C), Commit T1, R T3 (A), W T3 (A), Commit T3 Q 4.3 [14pts] Consider the following interleaved schedule. For each of the questions that follow, clearly circle yes or no. R T1 (A), R T2 (B), R T3 (C), W T1 (A), W T2 (B), W T3 (C), R T1 (B), W T1 (B), Commit T1, R T2 (C), W T2 (C), Commit T2, R T3 (A), W T3 (A), Commit T3 1. Is the schedule serializable? No 2. Is the schedule recoverable? No 3. Does the schedule have a WW conflict between any pair of transactions? 4. Does the schedule have a WR conflict between any pair of transactions? 5

5. Does the schedule have a RW(R) conflict between any pair of transactions? No 6. Suppose we use the READ UNCOMMITTED isolation level of SQL. Will it lead to a deadlock with the given schedule? 7. Suppose we use the SERIALIZABLE isolation level of SQL. Will it lead to a deadlock with the given schedule? Q 5. [24pts] For the following questions, clearly circle the right answer (only one option is correct). 1. Which of the following symbols does not represent a relational operator from the extended relational algebra? (a) γ (b) (c) µ (d) π (e) ANSWER: (c) 2. Which of the following relational operators do not preserve the schema of (at least one of) their inputs? (a) Set union (b) Set intersection (c) Set difference (d) Select (e) Project ANSWER: (e) 3. Which of the following relational operators can be processed using a regular (unmodified) hash join implementation? (a) Set union (b) Set intersection (c) Set difference (d) Select (e) Project ANSWER: (b) 4. Which of the following SQL aggregates require a shuffle among worker nodes in a parallel DBMS when the GROUP BY list is empty? 6

(a) SUM (b) AVG (c) VARIANCE (d) MEDIAN (e) MAX ANSWER: (d). Recall from class that MEDIAN is not an algebraic aggregate. 5. Which file organization is typically the most efficient for inserting new records? (a) Heap file (b) Sorted file (c) B+ tree index with AltRecord ANSWER: (a) 6. We are given this join query: R S T U. Recall that some query optimizers only consider left-deep join trees for join order enumeration. How many different left-deep join trees exist for this query? (Hint: Swapping the left and right input of a in a given tree yields a different tree.) (a) 4 (b) 6 (c) 15 (d) 16 (e) 24 ANSWER: (e). The left-deep tree has 4 spots; so, the number of trees is the number of permutations of those 4 spots, i.e., 4! = 24. 7. Which is the dominant parallelism paradigm that is used in parallel DBMSs, MapReduce/Hadoop, and Spark? (a) Shared-nothing (b) Shared-memory (c) Shared-Disk ANSWER: (a) 8. Given the following bags A = {a, b, c, a, a, x, y, x, z} and B = {e, a, b, d, x, y, a, y}, what is the result of the bag intersection of A and B (INTERSECT ALL in SQL)? (a) {a, b, x, y} (b) {b, a, y, x, a} (c) {x, b, a, x, y} (d) {a, b, c, x, y, z} ANSWER: (b) 9. In a hard disk, which of the following components of the data access time accounts for the delay caused by the radial movement of the arm? (a) Seek time (b) Rotational delay (c) Transfer time ANSWER: (a) 7

10. Given 1 GB of buffer memory, what is roughly the largest file size (to the nearest order of magnitude) that can technically be sorted with only 2 passes? (a) 10 GB (b) 1 TB (c) 100 TB (d) 10 PB (e) 100 PB ANSWER: Any of the above. This question was worked out in class but unfortunately, I forgot to mention the page size here. So, everyone gets these 2pts. For what it is worth, I explain the correct answer. Since buffering and blocked I/O could increase the number of passes, we ignore them. Thus, to upper bound N, we need log B 1 ( N/2B ) = 1, which means N 2B(B 1). Typical page sizes are between 4 KB and 16 KB, which means B is roughly between 64 thousand and 250 thousand. So, N is roughly between 8 billion (16 KB pages) and 125 billion (4 KB pages). So, the upper bound is roughly between 120 TB and 500 TB. 11. Suppose we are given two union-compatible relations R and S with sizes N R and N S ( N R ) pages respectively. Suppose we have B = 2 + F N S /2 pages of buffer memory (F is the hash table fudge factor) and the buffer pool is initially empty. What is the minimum possible I/O cost of a UNION ALL of R and S, excluding output write cost? (a) 6N R + 6N S (b) 4N R + 4N S (c) 2N R + 2N S (d) N R + 2N S (e) N R + N S ANSWER: (e). Just read and append the two files. 12. In a B+ tree index, which nodes are allowed to have duplicates of the index key? (a) Leaf nodes (b) Root node (c) Non-root internal nodes ANSWER: (a) Extra Credit Q. [5pts]. Suppose you are working for Netflix and using a Hadoop cluster. You are given a dump of a large Ratings table with the same schema from class: Ratings (RID, MovieID, UserID, Stars, RateDate). The table is stored as a distributed CSV file on HDFS that is hash partitioned on RID. You are tasked with obtaining the number of five-star ratings for each movie in the given file. Unfortunately, your Hadoop cluster only has regular MapReduce (no Hive, Pig, Spark, or any SQL engine). How will you implement this task in MapReduce? A proper explanation of the Map and Reduce phases are enough; no need to write code in Java, Python, etc. Tired of writing low-level MapReduce programs, you decide to convince your boss that Netflix really needs to use Hive or SparkSQL. How can you use the above task to achieve your goal? 8

Answer: The task can be expressed as the following query in relational algebra, where R denotes the Ratings table: γ MovieID, COUNT( ) (σ Stars=5 (R)). This is a select-aggregate query, which can be easily expressed using MapReduce. In the Map function, after parsing the record, if it satisfies Stars=5, emit a key-value pair with the key being the record s MovieID and the value being 1. In the Reduce function, add up all the values in the iterator for each MovieID and emit (output to file) the MovieID and the sum obtained. Of course, thanks to 190D, you must now be going: "Wait, I can do the same thing with just one line in SQL!" If not, well, you should be! :) So, install Hive or SparkSQL, define the Ratings table schema using their DDL, load the CSV file into the DBMS (you can also create an "external table" to avoid a data copy), and go: SELECT MovieID,COUNT(*) FROM Ratings WHERE Stars=5 GROUP BY MovieID For added wows, also build an index on Stars a priori (Hive has indexes but Spark- SQL does not yet). So there you have it, higher productivity and faster performance even on the latest hot "Big Data" DBMSs thanks to ideas that are over 3 decades old your boss will be floored. Do send me a thank you note when you get a raise. :) 9