Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann...

43
Distributed Data Management Lecture Summary Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut

Transcript of Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann...

Page 1: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Distributed Data Management

Lecture Summary

Thorsten Papenbrock

Felix Naumann

F-2.03/F-2.04, Campus II

Hasso Plattner Institut

Page 2: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Overview

Topics DDM

1. Introduction 2. Foundations 3. Distributed DBMS 4. Encoding & Communication 5. Akka Actor Programming 6. Data Models & Query Languages 7. Storage & Retrieval 8. Replication 9. Partitioning 10. Batch Processing 11. Spark Batch Processing 12. Distributed Systems 13. Consistency & Consensus 14. Transactions 15. Stream Processing 16. Flink Stream Processing 17. Distributed Query Optimization

Page 3: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

1 Introduction

Slide 3

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

𝑆𝑝𝑒𝑒𝑑𝑢𝑝 𝑠 = 1

1 − 𝑝 +𝑝𝑠

Page 4: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

2 Foundations

Slide 4

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Reliability

= fault-tolerance:

fault/defect error failure may cause may not cause

ACID & CAP & BASE

t

t1 t2 t3 t4 t5 d1 d2 d3 d4 d5

Task-Parallelism vs. Data-Parallelism

Multi-Threading vs.

Distributed Computing

Page 5: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

3 Distributed DBMS

Slide 5

Thorsten Papenbrock

Global as View Local as View

Column Store Compression (see Parquet file format)

Data Cubes

Page 6: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

4 Encoding & Communication

Slide 6

Thorsten Papenbrock

Java Serialization

Dataflow Models

RPCs

Page 7: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

5 Akka

Slide 7

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Actor Model

Page 8: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

6 Data Models & Query Languages

SELECT * FROM PC PC1, PC PC2 WHERE PC1.speed = PC2.speed AND PC1.ram = PC2.ram AND PC1.model < PC2.model;

SQL

SET hello “hello world” GET hello “hello world”

Redis

SELECT * FROM myTable WHERE myField > 5000 AND myField < 100000 ALLOW FILTERING;

CQL

MongoDB API

MATCH (me {name:"T. Papenbrock "}) MATCH (expert)-[:KNOWS]->(db:Database {name:"Neo4j"}) MATCH path = shortestPath( (me)-[:FRIEND*..5]-(expert) ) RETURN db, expert, path

Cipher

SELECT ?locationName WHERE { ?hpi :name “HPI gGmbH” . ?hpi :location ?locationName . }

SPARQL

Page 9: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

7 Storage & Retrieval

Slide 9

Thorsten Papenbrock

Segmentation

LSM-Trees with B-trees and SSTables

B-Tree

SSTable

Page 10: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

8 Replication

Multi-Leader

Replication

Leaderless

Replication

Single-Leader

Replication

Quorum

quorum (w,r)

Quorum Consistency

w + r > n

Gossip & Merkle Trees

Page 11: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

9 Partitioning

Slide 11

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Range Partitioning by Hash of Key

Rebalancing Partitions

Partition-Lookup

Consistent Hashing

Page 12: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

10 Batch Processing

Slide 12

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

TF

UDF

TF

UDF

MapReduce

HDFS

Transformation Pipelines

Page 13: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

11 Spark

Slide 13

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

val sum = data.as[String]

.filter(value => value == null)

.flatMap(value => value.split("\\s+"))

.map(value => (value,1))

.reduceByKey(_+_)

.collect()

val result = flightData

.groupBy("DESTINATION")

.sum("FLIGHTS")

.sort(desc("sum(FLIGHTS)"))

.select(

col("DESTINATION"),

col("sum(FLIGHTS)").as("sum"))

.collect()

Page 14: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

12 Distributed Systems

Slide 14

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

The φ accrual failure detector

The network time protocol (NTP)

Leases

Page 15: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

13 Consistency & Consensus

Slide 15

Thorsten Papenbrock

Consensus Total Order Broadcast Linearizability

Ordering with Lamport timestamps

Leader Election

Blockchain

Page 16: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

14 Transactions

Slide 16

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Snapshot Isolation via MVCC

Two-Phase Commit (2PC)

Causal Ordering

Page 17: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

15 Stream Processing

Slide 17

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Data Streams

Windowing (Tumbling, Hopping, Sliding, Session)

SELECT count(*) FROM Requests R [PARTITION BY R.client_id ROWS 10 PRECEDING WHERE R.domain = ‘stanford.edu’] WHERE R.url LIKE ‘http://cs.stanford.edu/%’

CQL

val env = StreamExecutionEnvironment.getExecutionEnvironment

val text = env.socketTextStream("localhost", 4242, '\n')

val windowCounts = text

.flatMap { w => w.split("\\s") }

.map { w => WordWithCount(w, 1) }

.keyBy("word")

.timeWindow(Time.seconds(5), Time.seconds(1))

.sum("count")

windowCounts.print().setParallelism(1)

env.execute("Socket Window WordCount")

case class WordWithCount(word: String, count: Long)

Event Time vs. Processing Time

Page 18: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

16 Flink

Slide 18

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Keyed Streams

Snapshotting

Watermarking

Stateful Streaming

Page 19: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Some Important Topics

17 Distributed Query Optimization

Slide 19

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Distributed Join & Full Reducer

title

publisher

author

ISBN

paddr

(p,b)city

baddr name

ID

date

A

B

C D E

F

Finding a Full Reducer via Hypergraph Reduction

Page 20: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

What to remove from the exam menu?

Page 21: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Overview

Topics DDM++

18. Services and Containerization 19. Cloud-based Data Systems 20. Further Details 21. Distributed Algorithms 22. Mining Data Streams

Page 22: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 22

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Akka Cluster (Recap)

Connects ActorSystem nodes in a cluster into one distributed system

Has no control over …

resource allocation

ActorSystems use whatever JVM resources they are started with.

node scaling

ActorSystems are automatically tied together but they are started from

the outside world.

resource isolation

ActorSystems on the same host may compete for resources; all actors

in one ActorSystem share the same resources.

Page 23: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 23

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Batch & Stream Processing Frameworks (Recap)

Connect nodes in a cluster into one distributed system

Perform cluster-wide resource management

Restrict the programming to …

non-interactive but data-driven applications

Transformation pipelines do not wait for user input or have observable

side effects for users.

non-branching data analytics or data transformation applications

Transformation pipelines do not support complex, branching application

logic.

non-dynamic step-by-step applications

Transformation pipelines are static sequences of standard operations.

Page 24: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 24

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

Connects nodes in a cluster into one distributed system

Performs cluster-wide resource management

Restricts the programming only slightly

“Kubernetes (k8s) is an open-source system for automating deployment,

scaling, and management of containerized applications.”

https://kubernetes.io

Page 25: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 25

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

Can be thought of as

a) a container platform.

b) a microservices platform.

c) a portable cloud platform.

Page 26: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 26

Thorsten Papenbrock

Container (Docker)

Vir

tual M

ach

ine

Co

nta

iner

Container

- share the infrastructure of their host

- are immutable: data is stored in outside volumes

- are created from container images like objects from classes

faster, smaller, and much more light-weight than VMs

Page 27: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 27

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

Container

- an application written in any programming language

- implements and encapsulates some functionality

- brings its own dependencies

Page 28: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 28

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

Pod

- a group of containers tied to some pool of resources

- the smallest scheduling unit in Kubernetes

- isolated from other pods

Page 29: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 29

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

Service

- a set of pods that work together to achieve a greater task

- i.e. the orchestration of some container functions into one service endpoint

- public elements that can be looked-up in the cluster

Page 30: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 30

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

Volumes

- objects describing persistent storage

- can be shared by the containers of one pod

Page 31: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 31

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes

API Server

- REST interface for cluster configuration (workloads and containers)

Controller Manager

- creates/deletes Pods w.r.t. some target configuration

Scheduler

- dynamic Pod scheduling on the available cluster nodes based on resource-requirements and -availability

etcd

- service discovery and cluster management (see ZooKeeper)

Kubelet

- manages and monitors all Pods on one cluster node

Page 32: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 32

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes vs. Akka – Similarities

Both use many same programming patterns

(scheduler, router, master-worker, proxies, singletons, …)

Both can implement batch- and stream-processing pipelines

(map, reduce, join, filter … transformations as actors/Pods)

Both provide means for dynamic scaling

(creating and deleting actors/Pods based on current load)

Both support branching logic

(actors/containers decide freely: if A do this; if B do that)

Both provide isolation for state and computation

(private data in actors/containers and private resources in

ActorSystems/Pods)

Page 33: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 33

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes vs. Akka – Differences

Akka is more a programming framework while

Kubernetes is an orchestration framework for programs

(programming vs. configuration)

Akka:

light-weight, bound to the JVM

difficult resource management

fully asynchronous messaging

Kubernetes:

heavy-weight, code-agnostic due to containerization

powerful resource management

synchronous service calls

for distributed applications

for distributed systems

Page 34: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 34

Thorsten Papenbrock

Akka in Kubernetes

/

user

system

Actor1 Actor2 Actor3

Actor1’ Actor1’’ Actor3’

Container

ActorSystem

Pod

Kubernetes Node

Kubernetes Master

Container

ActorSystem

Pod

Kubernetes Node

Container

ActorSystem

Pod

Kubernetes Node

Akka Cluster

Page 35: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

18 Services and Containerization

Slide 35

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Kubernetes further reading

Official website and documentation

https://kubernetes.io

Wikipedia

https://en.wikipedia.org/

wiki/Kubernetes

Book

Designing Distributed Systems

Page 36: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

19 Cloud-based Data Systems

Slide 36

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Cloud-based Data Systems

Physical storage servers

Partitioning: Each server persists some partitions of the data.

Replication: Partitions are replicated to several servers.

Dynamic: The number of storage servers may

dynamically adjust to the amount of data.

Virtual compute servers

Perform computations on the data (join, filter, sort, …)

Created on-demand and possibly close to the data

Dynamic: The number of compute servers my

dynamically adjust to the query load of the system.

Page 37: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

19 Cloud-based Data Systems

Slide 37

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Cloud-based Data Systems

Challenges

Computation and data co-placement

Multi-tenancy data in one data system

Examples

Amazon S3

Oracle Cloud Storage

Microsoft Azure Storage

Openstack Swift

EMC Atmos

EMC ECS

Hitachi Content Platform

Page 38: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

20 Further Details on Distributed Systems

Slide 38

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

https://vs.inf.ethz.ch/edu/WS0405/VA

https://www4.cs.fau.de/Lehre/WS03/V_VA/Skript

Page 39: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

21 Distributed Algorithms

Slide 39

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Sorting

(e.g. distributed merge sort)

Clustering

(e.g. distributed k-means)

Graph Traversal

(e.g. Bulk Synchronous Parallel model)

Machine Learning

(e.g. ML in Spark and Flink)

Data Mining

(e.g. distributed page rank)

Page 40: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Topics DDM++

22 Mining Data Streams

Slide 40

Lecture Summary

Thorsten Papenbrock

Distributed Data Management

Sampling

(e.g. representative sampling window)

Filtering

(e.g. Bloomfilter)

Counting

(e.g. HyperLogLog)

Aggregation

(e.g. windowing)

Popular elements search

(e.g. decaying windows)

Page 41: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction

Overview

Next Semester

Seminars: 1. Mining Streaming Data

Project Kafka + Kafka Streams Supported by Bakdata

2. Reliable Distributed Systems Project Akka/Orleans

Master Thesis: 1. Scalable Data Profiling

e.g. UCC discovery 2. Robust Data Computing

e.g. memory exhaustion, hardware failures, data corruption

Page 43: Thorsten Papenbrock Felix Naumann Lecture Summary€¦ · Thorsten Papenbrock Felix Naumann F-2.03/F-2.04, Campus II Hasso Plattner Institut . Overview Topics DDM 1. Introduction