48
Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design of GraphLab GraphLab Workshop 2012

Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Embed Size (px)

Citation preview

Page 1: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Samuel MaddenMIT CSAIL

Director, Intel ISTC in Big Data

Schism: Graph Partitioning for OLTP Databases in a Relational CloudImplications for the design of GraphLab

GraphLab Workshop 2012

Page 2: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

The Problem with Databases

• Tend to proliferate inside organizations– Many applications use DBs

• Tend to be given dedicated hardware– Often not heavily utilized

• Don’t virtualize well• Difficult to scale

This is expensive & wasteful– Servers, administrators, software licenses,

network ports, racks, etc …

Page 3: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

3

RelationalCloud Vision

• Goal: A database service that exposes self-serve usage model– Rapid provisioning: users don’t worry about DBMS

& storage configurations

Example: • User specifies type and size of DB and SLA

(“100 txns/sec, replicated in US and Europe”)

• User given a JDBC/ODBC URL• System figures out how & where to run user’s DB

& queries

Page 4: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Before: Database Silos and Sprawl

Application #3

Database #3

Application #4

Database #4

Application #2

Database #2

Application #1

Database #1

$$ $$

$$$$

• Must deal with many one-off database configurations

• And provision each for its peak load

Page 5: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

App #1

After: A Single Scalable Service

App #2 App #3

App #4

• Reduces server hardware by aggressive workload-aware multiplexing• Automatically partitions databases across multiple HW resources• Reduces operational costs by automating service management tasks

Page 6: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

What about virtualization?

• Could run each DB in a separate VM

• Existing database services (Amazon RDS) do this– Focus is on simplified management, not performance

• Doesn’t provide scalability across multiple nodes

• Very inefficient

Max Throughput w/ 20:1 consolidation (Us vs. VMWare ESXi)One DB 10x loadedAll DBs equal load

Page 7: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Key Ideas in this Talk: Schism

• How to automatically partition transactional (OLTP) databases in a database service

• Some implications for GraphLab

Page 8: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

System Overview

Schism

Not going to talk about:- Database migration- Security- Placement of data

Page 9: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

This is your OLTP Database

Curino et al, VLDB 2010

Page 10: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

This is your OLTP database on Schism

Page 11: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Schism

New graph-based approach to automatically partition OLTP workloads across many machines

Input: trace of transactions and the DB

Output: partitioning plan

Results: As good or better than best manual partitioning

Static partitioning – not automatic repartitioning.

Page 12: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Challenge: Partitioning

Goal: Linear performance improvement when adding machines

Requirement: independence and balance

Simple approaches:• Total replication• Hash partitioning• Range partitioning

Page 13: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Partitioning Challenges

Transactions access multiple records?

Distributed transactions

Replicated data

Workload skew?

Unbalanced load on individual servers

Many-to-many relations?

Unclear how to partition effectively

Page 14: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Many-to-Many: Users/Groups

Page 15: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Many-to-Many: Users/Groups

Page 16: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Many-to-Many: Users/Groups

Page 17: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Distributed Txn Disadvantages

Require more communication

At least 1 extra message; maybe more

Hold locks for longer time

Increases chance for contention

Reduced availability

Failure if any participant is down

Page 18: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Example

Single partition: 2 tuples on 1 machine

Distributed: 2 tuples on 2 machines

Each transaction writes two different tuples

Same issue would arise in distributed GraphLab

Page 19: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Schism Overview

Page 20: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Schism Overview

1. Build a graph from a workload trace– Nodes: Tuples accessed by the trace– Edges: Connect tuples accessed in txn

Page 21: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Schism Overview

1. Build a graph from a workload trace

2. Partition to minimize distributed txns

Idea: min-cut minimizes distributed txns

Page 22: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Schism Overview

1. Build a graph from a workload trace

2. Partition to minimize distributed txns

3. “Explain” partitioning in terms of the DB

Page 23: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Building a Graph

Page 24: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Building a Graph

Page 25: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Building a Graph

Page 26: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Building a Graph

Page 27: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Building a Graph

Page 28: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Building a Graph

Page 29: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Replicated Tuples

Page 30: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Replicated Tuples

Page 31: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Partitioning

Use the METIS graph partitioner:

min-cut partitioning with balance constraint

Node weight:

# of accesses → balance workload

data size → balance data size

Output: Assignment of nodes to partitions

Page 32: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Graph Size Reduction Heuristics

Coalescing: tuples always accessed together → single node (lossless)

Blanket Statement Filtering: Remove statements that access many tuples

Sampling: Use a subset of tuples or transactions

Page 33: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Explanation Phase

Goal:

Compact rules to represent partitioning

4

2

5

1

1

2

1

2

Users Partition

Page 34: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Explanation Phase

Goal:

Compact rules to represent partitioning

Classification problem:

tuple attributes → partition mappings

4 Carlo Post Doc. $20,000

2 Evan Phd Student $12,000

5 Sam Professor $30,000

1 Yang Phd Student $10,000

1

2

1

2

Users Partition

Page 35: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Decision Trees

Machine learning tool for classification

Candidate attributes:

attributes used in WHERE clauses

Output: predicates that approximate partitioning

4 Carlo Post Doc. $20,000

2 Evan Phd Student $12,000

5 Sam Professor $30,000

1 Yang Phd Student $10,000

1

2

1

2

Users PartitionIF (Salary>$12000)

P1ELSE

P2

Page 36: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Evaluation: Partitioning Strategies

Schism: Plan produced by our tool

Manual: Best plan found by experts

Replication: Replicate all tables

Hashing: Hash partition all tables

Page 37: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

YahooBench-A YahooBench-E0%

25%

50%

75%

100%

Schism Manual Replication Hashing

Benchmark Results: Simple

% Distributed Transactions

Page 38: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

0%

25%

50%

75%

100%

Schism Manual Replication Hashing

Benchmark Results: TPC

% Distributed Transactions

Page 39: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

0%

25%

50%

75%

100%

Schism Manual Replication Hashing

Benchmark Results: Complex

% Distributed Transactions

Page 40: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Implications for GraphLab (1)

• Shared architectural components for placement, migration, security, etc.

• Would be great to look at building a database-like store as a backing engine for GraphLab

Page 41: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Implications for GraphLab (2)

• Data driven partitioning– Can co-locate data that is accessed together

• Edge weights can encode frequency of read/writes from adjacent nodes

– Adaptively choose between replication and distributed depending on read/write frequency

– Requires a workload trace and periodic repartitioning

– If accesses are random, will not be a win– Requires heuristics to deal with massive graphs,

e.g., ideas from GraphBuilder

Page 42: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Implications for GraphLab (3)

• Transactions and 2PC for serializability– Acquire locks as data is accessed, rather

than acquiring read/write locks on all neighbors in advance

– Introduces deadlock possibility– Likely a win if adjacent updates are

infrequent, or not all neighbors accessed on each iteration

– Could also be implemented using optimistic concurrency control schemes

Page 43: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Schism

Automatically partitions OLTP databases as well or better than

experts

Graph partitioning combined with decision trees finds good partitioning plans for many applications

Suggests some interesting directions for distributed GraphLab; would be fun to explore!

Page 44: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Graph Partitioning Time

Page 45: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Collecting a Trace

Need trace of statements and transaction ids (e.g. MySQL general_log)

Extract read/write sets by rewriting statements into SELECTs

Can be applied offline: Some data lost

Page 46: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Effect of Latency

Page 47: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Replicated Data

Read: Access the local copy

Write: Write all copies (distributed txn)

• Add n + 1 nodes for each tuple

n = transactions accessing tuple• connected as star with weight = # writes

Cut a replication edge: cost = # of writes

Page 48: Samuel Madden MIT CSAIL Director, Intel ISTC in Big Data Schism: Graph Partitioning for OLTP Databases in a Relational Cloud Implications for the design

Partitioning Advantages

Performance:• Scale across multiple machines• More performance per dollar• Scale incrementally

Management:• Partial failure• Rolling upgrades• Partial migrations