CS 347 Distributed Databases and Transaction Processing Notes03: Query Processing

Similar documents
CS 347 Parallel and Distributed Data Processing

P Q1 Q2 Q3 Q4 Q5 Tot (60) (20) (20) (20) (60) (20) (200) You are allotted a maximum of 4 hours to complete this exam.

CS 347 Parallel and Distributed Data Processing

2.6 Complexity Theory for Map-Reduce. Star Joins 2.6. COMPLEXITY THEORY FOR MAP-REDUCE 51

Correlated subqueries. Query Optimization. Magic decorrelation. COUNT bug. Magic example (slide 2) Magic example (slide 1)

CSE 562 Database Systems

Relational Algebra on Bags. Why Bags? Operations on Bags. Example: Bag Selection. σ A+B < 5 (R) = A B

CS 347 Parallel and Distributed Data Processing

Multiple-Site Distributed Spatial Query Optimization using Spatial Semijoins

α-acyclic Joins Jef Wijsen May 4, 2017

Relational operations

Quiz 2. Due November 26th, CS525 - Advanced Database Organization Solutions

CS 347. Parallel and Distributed Data Processing. Spring Notes 11: MapReduce

Database Design and Implementation

Flow Algorithms for Parallel Query Optimization

Lifted Inference: Exact Search Based Algorithms

NP-COMPLETE PROBLEMS. 1. Characterizing NP. Proof

Factorized Relational Databases Olteanu and Závodný, University of Oxford

Databases 2011 The Relational Algebra

Introduction to Cryptography Lecture 13

communication complexity lower bounds yield data structure lower bounds

CS425: Algorithms for Web Scale Data

7 RC Simulates RA. Lemma: For every RA expression E(A 1... A k ) there exists a DRC formula F with F V (F ) = {A 1,..., A k } and

A Worst-Case Optimal Multi-Round Algorithm for Parallel Computation of Conjunctive Queries

Query answering using views

GAV-sound with conjunctive queries

CSE 4502/5717 Big Data Analytics Spring 2018; Homework 1 Solutions

Logic and Databases. Phokion G. Kolaitis. UC Santa Cruz & IBM Research Almaden. Lecture 4 Part 1

High Performance Computing

SPATIAL DATA MINING. Ms. S. Malathi, Lecturer in Computer Applications, KGiSL - IIM

Jeffrey D. Ullman Stanford University

CS246: Mining Massive Datasets Jure Leskovec, Stanford University

Lecture 11: Hash Functions, Merkle-Damgaard, Random Oracle

CS341 info session is on Thu 3/1 5pm in Gates415. CS246: Mining Massive Datasets Jure Leskovec, Stanford University

Multi-join Query Evaluation on Big Data Lecture 2

Financial. Analysis. O.Eval = {Low, High} Store. Bid. Update. Risk. Technical. Evaluation. External Consultant

Lecture and notes by: Alessio Guerrieri and Wei Jin Bloom filters and Hashing

INTRODUCTION TO RELATIONAL DATABASE SYSTEMS

DRAFT. Algebraic computation models. Chapter 14

Exam 1. March 12th, CS525 - Midterm Exam Solutions

Foundations of Databases

Lecture 21: Algebraic Computation Models

Lecture 11: Data Flow Analysis III

You are here! Query Processor. Recovery. Discussed here: DBMS. Task 3 is often called algebraic (or re-write) query optimization, while

Mining Data Streams. The Stream Model. The Stream Model Sliding Windows Counting 1 s

DESIGN THEORY FOR RELATIONAL DATABASES. csc343, Introduction to Databases Renée J. Miller and Fatemeh Nargesian and Sina Meraji Winter 2018

The Query Containment Problem: Set Semantics vs. Bag Semantics. Phokion G. Kolaitis University of California Santa Cruz & IBM Research - Almaden

Robust Network Codes for Unicast Connections: A Case Study

Module 10: Query Optimization

Conceptual Explanations: Radicals

FIRST-ORDER QUERY EVALUATION ON STRUCTURES OF BOUNDED DEGREE

Mining Data Streams. The Stream Model Sliding Windows Counting 1 s

Extending Oblivious Transfers Efficiently

Lecture Lecture 25 November 25, 2014

Stat Mech: Problems II

Fast Sorting and Selection. A Lower Bound for Worst Case

Branch Prediction based attacks using Hardware performance Counters IIT Kharagpur

Cut-and-Choose Yao-Based Secure Computation in the Online/Offline and Batch Settings

Lecture 19: Interactive Proofs and the PCP Theorem

A Dichotomy. in in Probabilistic Databases. Joint work with Robert Fink. for Non-Repeating Queries with Negation Queries with Negation

A. Incorrect! Replacing is not a method for solving systems of equations.

Finally the Weakest Failure Detector for Non-Blocking Atomic Commit

Unit 4 Systems of Equations Systems of Two Linear Equations in Two Variables

Quantum Mechanics - I Prof. Dr. S. Lakshmi Bala Department of Physics Indian Institute of Technology, Madras. Lecture - 16 The Quantum Beam Splitter

CORRECTNESS OF A GOSSIP BASED MEMBERSHIP PROTOCOL BY (ANDRÉ ALLAVENA, ALAN DEMERS, JOHN E. HOPCROFT ) PRATIK TIMALSENA UNIVERSITY OF OSLO

Optimizing Joins in a Map-Reduce Environment

Lecture 2: Divide and conquer and Dynamic programming

A Tight Lower Bound for Dynamic Membership in the External Memory Model

Lecture 16 Oct 21, 2014

Information Systems for Engineers. Exercise 8. ETH Zurich, Fall Semester Hand-out Due

Lecture 10: Data Flow Analysis II

Lecture 11: Non-Interactive Zero-Knowledge II. 1 Non-Interactive Zero-Knowledge in the Hidden-Bits Model for the Graph Hamiltonian problem

Relational Algebra 2. Week 5

Database Design and Normalization

On Two Class-Constrained Versions of the Multiple Knapsack Problem

Differential Privacy

Part 1: You are given the following system of two equations: x + 2y = 16 3x 4y = 2

Verifying Computations in the Cloud (and Elsewhere) Michael Mitzenmacher, Harvard University Work offloaded to Justin Thaler, Harvard University

Shared on QualifyGate.com

CS475: Linear Equations Gaussian Elimination LU Decomposition Wim Bohm Colorado State University

Benny Pinkas Bar Ilan University

Mathematical Logic Part Three

Cryptanalysis of Achterbahn

Clique trees & Belief Propagation. Siamak Ravanbakhsh Winter 2018

Flow Algorithms for Two Pipelined Filtering Problems

Communication Complexity

CS54100: Database Systems

Distributed Mining of Frequent Closed Itemsets: Some Preliminary Results

5 Systems of Equations

Linear Algebra March 16, 2019

Lecture 3,4: Multiparty Computation

EE5585 Data Compression April 18, Lecture 23

Dot-Product Join: Scalable In-Database Linear Algebra for Big Model Analytics

Interfaces for Stream Processing Systems

1 Terminology and setup

The Complexity of a Reliable Distributed System

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 6A Solution

Environment (Parallelizing Query Optimization)

x y = 2 x + 2y = 14 x = 2, y = 0 x = 3, y = 1 x = 4, y = 2 x = 5, y = 3 x = 6, y = 4 x = 7, y = 5 x = 0, y = 7 x = 2, y = 6 x = 4, y = 5

arxiv: v1 [cs.cr] 16 Dec 2015

Transcription:

CS 347 Distributed Databases and Transaction Processing Notes03: Query Processing Hector Garcia-Molina Zoltan Gyongyi CS 347 Notes 03 1

Query Processing! Decomposition! Localization! Optimization CS 347 Notes 03 2

Decomposition! Same as in centralized system! Normalization! Eliminating redundancy! Algebraic rewriting CS 347 Notes 03 3

Normalization! Convert from general language to a standard form (e.g., relational algebra) CS 347 Notes 03 4

Example select A, C from R, S where (R.B=1 and S.D=2) or (R.C>3 and S.D=2) # A, C! (R.B=1 v R.C>3) " S.D=2 R S conjunctive normal form CS 347 Notes 03 5

Also: Detect invalid expressions E.g.: select * from R where R.A=3! R does not have A attribute E.g.: select R.A from R, S, T where R.B=S.C CS 347 Notes 03 6

Note: Query graph useful for detecting last problem R.B=S.C R S T R.A Result CS 347 Notes 03 7

Note: Query graph useful for detecting last problem R.B=S.C R S T join graph R.A Result disconnected query graph CS 347 Notes 03 8

Eliminate redundancy E.g.: in conditions (S.A=1) " (S.A>5) $ false (S.A<10) " (S.A<5) $ S.A<5 CS 347 Notes 03 9

E.g.: common sub-expressions U U S!cond!cond T S!cond T R R R CS 347 Notes 03 10

Algebraic rewriting E.g.: push conditions down!cond3!cond!cond1!cond2 R S R S CS 347 Notes 03 11

! After decomposition:!one or more algebraic query trees on relations! Localization:!Replace relations by corresponding fragments CS 347 Notes 03 12

Localization steps (1) Start with query (2) Replace relations by fragments (3) Push % up #,! down (use CS 245 rules) (4) Simplify eliminate unnecessary operations CS 347 Notes 03 13

Notation for fragment [R: cond] fragment conditions its tuples satisfy CS 347 Notes 03 14

Example A (1)!E=3 R CS 347 Notes 03 15

(2)!E=3 % [R1: E < 10] [R2: E & 10] CS 347 Notes 03 16

(3) %!E=3!E=3 [R1: E < 10] [R2: E & 10] CS 347 Notes 03 17

(3) %!E=3!E=3 [R1: E < 10] [R2: E & 10] $ Ø CS 347 Notes 03 18

(4)!E=3 [R1: E < 10] CS 347 Notes 03 19

Rule 1 A B!C1[R: c2] $!C1[R: c1 " c2] [R: False] $ Ø CS 347 Notes 03 20

In example A:!E=3[R2: E&10] $ [!E=3 R2: E=3 " E&10] $ [!E=3 R2: False] $ Ø CS 347 Notes 03 21

Example B (1) R A S A = common attribute CS 347 Notes 03 22

(2) A % % [R1: A<5] [R2: 5 ' A ' 10] [R3: A>10] [S1: A<5] [S2: A & 5] CS 347 Notes 03 23

(3) % A A A [R1:A<5][S1:A<5] [R1:A<5][S2:A&5] [R2:5'A'10][S1:A<5] A A A [R2:5'A'10][S2:A&5] [R3:A>10][S1:A<5] [R3:A>10][S2:A&5] CS 347 Notes 03 24

(3) % A A A [R1:A<5][S1:A<5] [R1:A<5][S2:A&5] [R2:5'A'10][S1:A<5] A A A [R2:5'A'10][S2:A&5] [R3:A>10][S1:A<5] [R3:A>10][S2:A&5] CS 347 Notes 03 25

(4) % A A A [R1:A<5][S1:A<5] [R2:5'A'10][S2:A&5] [R3:A>10][S2:A&5] CS 347 Notes 03 26

Rule 2 [R: C1] [S: C2] $ [R S: C1 " C2 " R.A = S.A] A A CS 347 Notes 03 27

In step 4 of Example B: [R1: A<5] [S2: A & 5] A $ [R1 S2: R1.A < 5 " S2.A & 5 " A R1.A = S2.A ] $ [R1 S2: False] $ Ø A CS 347 Notes 03 28

! Localization with vertical fragmentation Example C (1) ( A R1(K, A, B) R R2(K, C, D) CS 347 Notes 03 29

(2) ( A K R1 R2 (K, A, B) (K, C, D) CS 347 Notes 03 30

(3) ( A K ( K,A ( K,A R1 R2 (K, A, B) (K, C, D) CS 347 Notes 03 31

(4) ( A R1 (K, A, B) CS 347 Notes 03 32

Rule 3! Given vertical fragmentation of R: Ri = ( A i (R), Ai ) A! Then for any B ) A: ( B (R) = ( B [ Ri B * Ai + Ø ] i CS 347 Notes 03 33

Summary - Query Processing! Decomposition!! Localization!! Optimization!Overview!Tricks for joins + other operations!strategies for optimization CS 347 Notes 03 34

Optimization Process: Generate query plans Estimate size of intermediate results Estimate cost of plan ($,time, ) P1 P2 P3 Pn C1 C2 C3 Cn pick minimum CS 347 Notes 03 35

Differences from centralized optimization:! New strategies for some operations (semi-join, range-partitioning, sort, )! Many ways to assign and schedule processors CS 347 Notes 03 36

Parallel/distributed sort Input: (a) relation R on single site/disk (b) R fragmented/partitioned by sort attribute (c) R fragmented/partitioned by other attribute CS 347 Notes 03 37

Output: (a) sorted R on single site/disk (b) fragments/partitions sorted 5... 6... 10 12... 15 19... 20 21 50 F1 F2 F3 CS 347 Notes 03 38

Basic sort! R(K, ); sort on K! Fragmented (range partitioned) on K Vector: [ k0, k1,, kn ] 7 3 k0 k1 10 11 17 20 14 27 22 CS 347 Notes 03 39

! Algorithm:!Sort each fragment independently!if necessary, ship results CS 347 Notes 03 40

$ Same idea on different architectures: Shared nothing F1 P1 M Net P2 M F2 Shared memory sorts F1 sorts F2 P1 P2 F1 M F2 CS 347 Notes 03 41

Range partitioning sort! R(K, ); sort on K! R located at one or more sites/disks not fragmented on K CS 347 Notes 03 42

! Algorithm: (a) Range partition on K (b) Basic sort RA R1 Local sort R 1 RB k0 R2 Local sort R 2 Result k1 R3 Local sort R 3 CS 347 Notes 03 43

Selecting a good partition vector 7... 52 11 14 31... 8 15 11 32 17 10... 12 4 RA RB RC CS 347 Notes 03 44

Example! Each site sends to coordinator:!min sort key!max sort key!number of tuples! Coordinator computes vector and distributes to sites (also decides # of sites for local sorts) CS 347 Notes 03 45

Sample scenario Coordinator receives: RA: Min=5 Max=10 # = 10 tuples RB: Min=7 Max=17 # = 10 tuples CS 347 Notes 03 46

Sample scenario Coordinator receives: RA: Min=5 Max=10 # = 10 tuples RB: Min=7 Max=17 # = 10 tuples Expected tuples: 2 1 5 10 15 20 k0? (assuming we want to sort at 2 sites) CS 347 Notes 03 47

Expected tuples: 2 1 5 10 15 20 k0? Expected tuples Total tuples with key < = k0 2 2(k0 5) + (k0 7) = 10 3 k0 = 10 + 10 + 7 = 27 k0 = 9 (assuming we want to sort at 2 sites) CS 347 Notes 03 48

Variations! Send more info to coordinator!partition vector for local site E.g., RA: 3 3 3 # tuples 5 6 8 10 local vector!histogram 5 6 7 8 9 10 CS 347 Notes 03 49

! More than one round E.g.: (1) Sites send range and # tuples (2) Coordinator returns preliminary vector V0 (3) Sites tell coordinator how many tuples in each V0 range (4) Coordinator computes final vector Vf CS 347 Notes 03 50

! Can you come up with a distributed algorithm? (no coordinator) CS 347 Notes 03 51

Parallel external sort-merge! Same as range-partitioning sort, except sort first RA Local sort RA R1 RB Local sort RB k0 R2 Result In order k1 R3 Merge CS 347 Notes 03 52

Parallel/distributed join Input: Relations R, S May or may not be partitioned Output: R S Result at one or more sites CS 347 Notes 03 53

Partitioned join (equi-join) Local join RA R1 S1 SA RB R2 S2 SB f(a) R3 Result S3 f(a) SC CS 347 Notes 03 54

Notes! Same partition function f is used for both R and S (applied to join attribute A)! f can be range or hash partitioning! Local join can be of any type (use any CS 245 optimization)! Various scheduling options, e.g., (a)! partition R; partition S; join (b)! partition R; build local hash table for R; partition S and hash-join CS 347 Notes 03 55

More notes! We already know why partition-join works: % % $ R1 R2 R3 S1 S2 S3 R1 S1 R2 S2 R3 S3 %! Useful to give this type of join a name, because we may want to partition data to make partition-join possible (especially in a parallel DB system) CS 347 Notes 03 56

Even more notes! Selecting a good partition function f is very important:!number of fragments!hash function!partition vector CS 347 Notes 03 57

! Good partition vector!goal: Ri + Si the same!can use coordinator to select CS 347 Notes 03 58

Asymmetric fragment + replicate join Local join RA R1 S SA RB R2 S SB Partition R3 S Result Union CS 347 Notes 03 59

Notes:! Can use any partition function f for R (even round robin)! Can do any join, not just equi-join e.g.: R S R.A < S.B CS 347 Notes 03 60

General fragment and replicate join RA R1 R1 RB R2 R2 R3 R3 Partition n copies of each fragment CS 347 Notes 03 61

! S is partitioned in similar fashion R1 R2 R3 S1 S1 S1 R1 R2 R3 S2 S2 S2 All n x m pairings of R, S fragments Result CS 347 Notes 03 62

Notes! Asymmetric F+R join is special case of general F+R! Asymmetric F+R may be good if S small! Works for non-equi-joins CS 347 Notes 03 63

Semi-join! Goal: reduce communication traffic! R S $ (R S) S or A A R (S R) or A A (R S) (S R) A A A A CS 347 Notes 03 64

Example: R S R A B A C 2 a 10 b 25 c 30 d S 3 x 10 y 15 z 25 w 32 x CS 347 Notes 03 65

Example: R R Ans: R S S A B A C 2 a 10 b 25 c 30 d (A R = [2,10,25,30] CS 347 Notes 03 66 S S R = 3 x 10 y 15 z 25 w 32 x A C 10 y 25 w

R A B A C 2 a 10 b 25 c 30 d Computing transmitted data in example! with semi-join R (S R): T = 4 A + 2 A + C + result! with join R S: T = 4 A + B + result S 3 x 10 y 15 z 25 w 32 x better if B is large CS 347 Notes 03 67

! In general:! Say R is smaller relation! (R S) S better than R S if A A A size ((A S) + size (R A S) < size (R) CS 347 Notes 03 68

! Similar comparisons for other semi-joins! Remember: only taking into account transmission cost CS 347 Notes 03 69

! Trick: Encode (A S (or (A R ) as a bit vector key in S 0 0 1 1 0 1 0 0 0 0 1 0 1 0 0 one bit/possible key CS 347 Notes 03 70

Three way joins with semi-joins Goal: R S T CS 347 Notes 03 71

Three way joins with semi-joins Goal: R S T Option 1: R S T where R = R S; S = S T Option 2: R S T where R = R S ; S = S T CS 347 Notes 03 72

! Many options! Number of semi-join options is exponential in # of relations in join CS 347 Notes 03 73

Privacy-preserving join! Site 1 has R(A,B)! Site 2 has S(A,C)! Want to compute R! Site 1 should NOT discover any S info not in the join! Site 2 should NOT discover any R info not in the join S R S site 1 site 2 CS 347 Notes 03 74

Semi-join does not work! If site 1 sends (A R to site 2, site 2 learns all keys of R R A B a1 b1 a2 b2 a3 b3 a4 b4 site 1 (A R = [a1, a2, a3, a4] S A C a1 c1 a3 c2 a5 c3 a7 c4 site 2 CS 347 Notes 03 75

Fix: send hashed keys! Site 1 hashes each value of A before sending! Site 2 hashes (same function) its own A values to see what tuples match R A B a1 b1 a2 b2 a3 b3 a4 b4 site 1 (A R = [h(a1), h(a2), h(a3), h(a4)] Site 2 sees it has h(a1), h(a3) [(a1, c1), (a3, c3)] S A C a1 c1 a3 c2 a5 c3 a7 c4 site 2 CS 347 Notes 03 76

What is problem? R A B a1 b1 a2 b2 a3 b3 a4 b4 (A R = [h(a1), h(a2), h(a3), h(a4)] Site 2 sees it has h(a1), h(a3) S A C a1 c1 a3 c2 a5 c3 a7 c4 site 1! Dictionary attack! Site 2 takes all keys a1, a2, a3,... and checks if h(a1), h(a2), h(a3), matches what site 1 sent! Site 1 will never notice [(a1, c1), (a3, c3)] site 2 CS 347 Notes 03 77

Adversary model! Honest but curious!observes the rules of the interaction (e.g., sending incorrect keys not possible)!may analyze received data in hope of gaining additional information CS 347 Notes 03 78

One solution [Agrawal+03: Information Sharing across Private Databases]! Use commutative encryption function!e i (x) = x encryption using site i s private key!e 1 (E 2 (x)) = E 2 (E 1 (X))!Shorthand for example: E 1 (x) is x E 2 (x) is x E 1 (E 2 (x)) is x CS 347 Notes 03 79

Solution R A B a1 b1 a2 b2 a3 b3 a4 b4 site 1 (a1, a2, a3, a4) (a1, a2, a3, a4) (a1, a3, a5, a7) S A C a1 c1 a3 c2 a5 c3 a7 c4 site 2 computes [a1, a3, a5, a7], intersects with [a1, a2, a3, a4] [(a1, b1), (a3, b3)] CS 347 Notes 03 80

! Why does this solution work?!could one site perform dictionary attack without the other noticing? CS 347 Notes 03 81

Other parallel operations! Duplicate elimination!sort first (in parallel) then eliminate duplicates in result!partition tuples (range or hash) and eliminate locally! Aggregates!Partition by grouping attributes; compute aggregate locally CS 347 Notes 03 82

Example Ra Rb! sum(sal) group by dept CS 347 Notes 03 83

Example Ra Rb! sum(sal) group by dept CS 347 Notes 03 84

Example Ra sum Rb sum! sum(sal) group by dept CS 347 Notes 03 85

Example less data! Ra sum sum Rb sum sum! sum(sal) group by dept CS 347 Notes 03 86

Enhancements for aggregates! Perform aggregate during partition to reduce data transmitted! Does not work for all aggregate functions Which ones? CS 347 Notes 03 87

Selection! Range or hash partition! Straightforward But what about indexes? CS 347 Notes 03 88

Indexing! Can think of partition vector as root of distributed index: k0 k1 Local indexes site 1 site 2 site 3 CS 347 Notes 03 89

Index on non-partition attribute k0 k1 Index sites Tuple sites CS 347 Notes 03 90

Notes! If index is not too big, it may be better to keep whole and make copies! If updates are frequent, can partition update work How do we handle the split of B-tree pages? CS 347 Notes 03 91

! Extensible or linear hashing R1 f R2 R3 R4 add CS 347 Notes 03 92

! How do we adapt schemes?! Where do we store directory, set of participants,?! Which one is better for a distributed environment?! Can we design a hashing scheme with no global knowledge (P2P)? CS 347 Notes 03 93

Summary: query processing! Decomposition and localization!! Optimization!Overview!!Tricks for joins, sort,!!tricks for inter-operations parallelism!strategies for optimization CS 347 Notes 03 94

Inter-operation parallelism! Pipelined! Independent CS 347 Notes 03 95

Pipelined parallelism site 2 site 1 R!c S site 2 site 1 Tuples Join Probe Result R matching!c S CS 347 Notes 03 96

Independent parallelism site 1 site 2 R S T V (1) temp1, R S; temp2, T V (2) result, temp1 temp2 CS 347 Notes 03 97

! Pipelining cannot be used in all cases E.g., hash join Stream of R tuples Stream of S tuples CS 347 Notes 03 98

Summary! As we consider query plans for optimization, we must consider various tricks:!for individual operations!for scheduling operations CS 347 Notes 03 99