hydrastor: a scalable secondary storage · 2019-02-25 · hydrastor: a scalable secondary storage....

74
HYDRAstor: a Scalable Secondary Storage C. Dubnicki, L. Gryz, L. Heldt, M. Kaczmarczyk, W. Kilian, P. Strzelczak, J. Szczepkowski, M. Welnicki C. Ungureanu 7th USENIX Conference on File and Storage Technologies (FAST '09) February 26 th 2009

Upload: others

Post on 20-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor:a Scalable Secondary Storage

C. Dubnicki, L. Gryz, L. Heldt,M. Kaczmarczyk, W. Kilian,P. Strzelczak, J. Szczepkowski,M. Welnicki

C. Ungureanu

7th USENIX Conference on File and Storage Technologies(FAST '09)

February 26th 2009

Page 2: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2

Scalable secondary storage

Characteristics RequirementsHuge amount of data - Scalability (dynamic)

- Low cost per TBSmall backup windows - Very high write performanceDuplication between backup streams

- Global deduplication

Reliable, on-line retrieval - Failure tolerance- High restore performance

Varying value of data - Adjust resilience overhead- Data deletion

Page 3: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 3

Scalable secondary storage

Characteristics RequirementsHuge amount of data - Scalability (dynamic)

- Low cost per TBSmall backup windows - Very high write performanceDuplication between backup streams

- Global deduplication

Reliable, on-line retrieval - Failure tolerance- High restore performance

Varying value of data - Adjust resilience overhead- Data deletion

Page 4: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 4

Scalable secondary storage

Characteristics RequirementsHuge amount of data - Scalability (dynamic)

- Low cost per TBSmall backup windows - Very high write performanceDuplication between backup streams

- Global deduplication

Reliable, on-line retrieval - Failure tolerance- High restore performance

Varying value of data - Adjust resilience overhead- Data deletion

Page 5: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 5

Scalable secondary storage

Characteristics RequirementsHuge amount of data - Scalability (dynamic)

- Low cost per TBSmall backup windows - Very high write performanceDuplication between backup streams

- Global deduplication

Reliable, on-line retrieval - Failure tolerance- High restore performance

Varying value of data - Adjust resilience overhead- Data deletion

Page 6: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 6

Scalable secondary storage

Characteristics RequirementsHuge amount of data - Scalability (dynamic)

- Low cost per TBSmall backup windows - Very high write performanceDuplication between backup streams

- Global deduplication

Reliable, on-line retrieval - Failure tolerance- High restore performance

Varying value of data - Adjust resilience overhead- Data deletion

Page 7: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 7

Challenges

● High-performance, decentralized

global deduplication

... in a dynamic, distributed system

... with deletion and failures● Combination introduces complexity● Tension between:

● Deduplication and dynamic scalability● Deduplication and on-demand deletion● Failure tolerance and deletion

Page 8: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 8

● Satisfies Scalable secondary storage requirements

● Started as a research project atNEC Laboratories America, in Princeton, NJ

● Successfully commercialized● Today: real-world, commercial system ● Sold by NEC in the US and Japan

● Development of back-end continues at 9LivesData, LLC in Warsaw, Poland● Spinoff from NEC Laboratories

Page 9: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 9

HYDRAstor functionality

● Content addressable storage (CAS)● Vast data repository

● Storing and extracting streams of blocks● Single system image built of independent nodes

● Support for standard access methods● Filesystem, VTL

● Dynamic capacity sharing● Self-recovery from failures● On-demand deletion

Page 10: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 10

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

hash=011..0

Page 11: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 11

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

E

hash=011..0

011.

.0

Page 12: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 12

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

● Trees of blocks E

EE

ERoot1

E

hash=010..1

hash=011..0

011.

.0

Page 13: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 13

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

● Trees of blocks● DAGs due to deduplication● No cycles possible

E

EE

011.

.0

ERoot1

E

ERoot2hash=010..1

hash=110..0

hash=011..0

011.

.0

Page 14: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 14

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

● Trees of blocks● DAGs due to deduplication● No cycles possible

● Deletion of whole trees

E

EE

011.

.0

ERoot1

E

ERoot2hash=010..1

hash=110..0

hash=011..0

011.

.0

Page 15: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 15

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

● Trees of blocks● DAGs due to deduplication● No cycles possible

● Deletion of whole trees

E

EE

011.

.0

ERoot1

E

ERoot2hash=010..1

hash=110..0

hash=011..0

011.

.0

Page 16: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 16

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

● Trees of blocks● DAGs due to deduplication● No cycles possible

● Deletion of whole trees

E

EE

011.

.0

ERoot1

E

ERoot2hash=010..1

hash=110..0

hash=011..0

011.

.0

Page 17: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 17

Programming Model

● Repository of blocks● Content-addressed● Immutable● Variable-sized

● Exposed pointers to other blocks

● Trees of blocks● DAGs due to deduplication● No cycles possible

● Deletion of whole trees

E 011.

.0

ERoot2

hash=110..0

hash=011..0

011.

.0

Page 18: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 18

Architecture overview

● Standard server-grade hardware running Linux● Scalability on data-center level

Storage Nodes

Access Nodes

NFS / CIFS

Front-end

Back-end(CAS Layer)

InternalNetwork

Page 19: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 19

Data organization:selected requirements

Requirements on scalable storage

Required internaldata services

Failure tolerance ● Identify data resilience reduction● Fast data rebuilding

High performance ● Preserve locality of data streams● Prefetching

Dynamic scalability ● Decentralized data management● Load balancing● Fast data transfer to new location

Deduplication ● Location of potential duplicates● Availability & resiliency verification

On-demand deletion ● Failure-tolerant, distributed deletion

Page 20: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 20

Data organization:selected requirements

Requirements on scalable storage

Required internaldata services

Failure tolerance ● Identify data resilience reduction● Fast data rebuilding

High performance ● Preserve locality of data streams● Prefetching

Dynamic scalability ● Decentralized data management● Load balancing● Fast data transfer to new location

Deduplication ● Location of potential duplicates● Availability & resiliency verification

On-demand deletion ● Failure-tolerant, distributed deletion

Page 21: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 21

Data organization:selected requirements

Requirements on scalable storage

Required internaldata services

Failure tolerance ● Identify data resilience reduction● Fast data rebuilding

High performance ● Preserve locality of data streams● Prefetching

Dynamic scalability ● Decentralized data management● Load balancing● Fast data transfer to new location

Deduplication ● Location of potential duplicates● Availability & resiliency verification

On-demand deletion ● Failure-tolerant, distributed deletion

Page 22: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 22

Data organization:selected requirements

Requirements on scalable storage

Required internaldata services

Failure tolerance ● Identify data resilience reduction● Fast data rebuilding

High performance ● Preserve locality of data streams● Prefetching

Dynamic scalability ● Decentralized data management● Load balancing● Fast data transfer to new location

Deduplication ● Location of potential duplicates● Availability & resiliency verification

On-demand deletion ● Failure-tolerant, distributed deletion

Page 23: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 23

Data organization:selected requirements

Requirements on scalable storage

Required internaldata services

Failure tolerance ● Identify data resilience reduction● Fast data rebuilding

High performance ● Preserve locality of data streams● Prefetching

Dynamic scalability ● Decentralized data management● Load balancing● Fast data transfer to new location

Deduplication ● Location of potential duplicates● Availability & resiliency verification

On-demand deletion ● Failure-tolerant, distributed deletion

Page 24: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 24

Failure tolerance: erasure coding

Deco

de

Any 3 fragments can be lost

Example: N=8, m=5E

ncod

e

Original block

Ori

gina

l F

ragm

ents

R

edun

dant

F

ragm

ents

● Block erasure-coded into N fragments● Storage overhead tunable

Page 25: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 25

Scalability with DHT: data placement

● Block location: DHT with prefix routing

0 1

01 10 11

empty prefix

00

0

01

Page 26: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 26

Scalability with DHT: data placement

● Block location: DHT with prefix routing● Block mapped to hash prefix hash=011..0

0 1

01 10 11

empty prefix

00

Block

0

01

Page 27: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 27

Scalability with DHT: data placement

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1Node 3

Node 1Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

Page 28: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 28

Scalability with DHT: data placement

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1Node 3

Node 1Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix● Store fragments

Page 29: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 29

Scalability with DHT: data placement

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1Node 3

Node 1Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix● Store fragments

● Distributedconsensus

Page 30: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 30

Scalability with DHT: data placement

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1Node 3

Node 1Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix● Store fragments

● Distributedconsensus

Page 31: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 31

Scalability with DHT: data placement

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1Node 3

Node 1Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix● Store fragments

● Distributedconsensus

Page 32: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 32

Scalability with DHT: data placement

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1

Node 1

Node 3

Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix● Store fragments

● Distributedconsensus

Page 33: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 33

Scalability with DHT: data placement

hash=011..0

Block

Node 1Node 6

Node 1Node 5

Node 1Node 4

Node 1Node 3

Node 1Node 2

Node 1Node 1

0 1

1

3

2

0 0

1

2

3

0

1

2

3

2

3

1

0

01 10 11

empty prefix

00

N=4

● Block location: DHT with prefix routing● Block mapped to hash prefix● Prefix components

● Hosted on SNs● N components

per prefix● Store fragments

● Distributedconsensus

● Load balancing

Page 34: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 34

Data organization: synchrun chains

A B EC D F G● Data stream split to blocks

Page 35: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 35

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

● Data stream split to blocks

● Hashes of blocks computed

Page 36: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 36

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHT

Page 37: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 37

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHTPrefix 01

Page 38: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 38

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

Erasure Coding

Compression

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHTPrefix 01

Page 39: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 39

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

Prefix 01

Erasure Coding

Compression

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHT

Component0

Component1

Component2

Component3

● Erasure-coded fragments stored by components

Page 40: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 40

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

Erasure Coding

Compression

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHT

A D F

A D F

A D F

A D F

Component0

Component1

Component2

Component3

Prefix 01

● Erasure-coded fragments stored by components

Page 41: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 41

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

Synchrun 1 Synchrun 2 Synchrun 3

Prefix 01

Erasure Coding

Compression

Synchrun

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHT

Component0

Component1

Component2

Component3

● Erasure-coded fragments stored by components

● Grouped into synchruns

A D F

A D F

A D F

A D F

Page 42: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 42

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

Synchrun 1 Synchrun 2 Synchrun 3

Prefix 01

Erasure Coding

Compression

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHT

Component0

Component1

Component2

Component3

Container

● Erasure-coded fragments stored by components

● Grouped into synchruns

● Containers stored on disks

● Fragment metadata separately from data

Synchrun

A D F

A D F

A D F

A D F

Page 43: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 43

Data organization: synchrun chains

A B EC D F G

Hash 010…

Hash 101…

Hash 110…

Hash 011…

Hash 000…

Hash 011…

Hash 100…

Synchrun 1 Synchrun 2 Synchrun 3

Erasure Coding

Compression

● Data stream split to blocks

● Hashes of blocks computed

● Routing through DHT

A D F

A D F

A D F

A D F

Component0

Component1

Component2

Component3

Prefix 01

● Erasure-coded fragments stored by components

● Grouped into synchruns

● Containers stored on disks

● Fragment metadata separately from data

● Ordered synchrun chains

● Preserve order & locality

● ManageableContainer Synchrun

Page 44: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 44

Component01:1

Synchrun chains in a dynamic system

Page 45: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 45

Component01:1

System growth: split

Component010:1

Component011:1

Page 46: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 46

Component01:1

Component010:1

Component011:1

System growth: split

Page 47: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 47

Component010:1

Component011:1

System growth: split

Component01:1

Page 48: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 48

Component01:1

Concatenation

Component010:1

Page 49: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 49

Component01:1

Concatenation

Component010:1

Component010:1

Page 50: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 50

Component01:1

Component010:1

Marking blocks to reclaim

Component010:1

Page 51: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 51

Component01:1

Component010:1

Space reclamation & Concatenation

Component010:1

Component010:1

Page 52: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 52

Component01:0

Component01:1

Component01:2

Component01:3

Data Services:Identification of data resiliency level

Missing fragments

Page 53: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 53

Data Services:Identification of data resiliency level

Component01:0

Component01:1

Component01:2

Component01:3

Chain scanning

Page 54: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 54

Data Services:Identification of data resiliency level

Component01:0

Component01:1

Component01:2

Component01:3

Chain scanning

Page 55: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 55

Data Services:Identification of data resiliency level

Component01:0

Component01:1

Component01:2

Component01:3

Chain scanning

Page 56: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 56

Data Services:Identification of data resiliency level

Component01:0

Component01:1

Component01:2

Component01:3

Chain scanning

Page 57: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 57

Data services: reconstruction

Component01:0

Component01:1

Component01:2

Component01:3

● Sequential read/write of entire Containers● Erasure decoding and re-encoding

Page 58: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 58

Data services: reconstruction

Component01:0

Component01:1

Component01:2

Component01:3

● Sequential read/write of entire Containers● Erasure decoding and re-encoding

Page 59: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 59

Data services: reconstruction

Component01:0

Component01:1

Component01:2

Component01:3

● Sequential read/write of entire Containers● Erasure decoding and re-encoding

Page 60: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 60

Data services: fast data transfer

Component01:0

Component01:1

Component01:2

Component01:3

Old component

01:3

Location of newnode (DHT)

Page 61: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 61

Data services: fast data transfer

Component01:0

Component01:1

Component01:2

Component01:3

Old component

01:3

Data transfer

Page 62: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 62

Data services: fast data transfer

Component01:0

Component01:1

Component01:2

Component01:3

Old component

01:3

Data transfer

Page 63: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 63

Data services: fast data transfer

Component01:0

Component01:1

Component01:2

Component01:3

Old component

01:3

Data transfer

Page 64: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 64

Data services: fast data transfer

Component01:0

Component01:1

Component01:2

Component01:3

Old component

01:3

Page 65: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 65

Data services for deduplication

● Global: duplicates detected in entire system● DHT routing based on content● Inline deduplication: has to be high-performance

● Prefetching Containers for streams of duplicates● Block hashes stored separately

Page 66: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 66

Data services for deduplication

Component

01:0

Component

01:1

Component

01:2

Component

01:3

hash=011..

Block

Choose completechain

Completeness: “definitely not a duplicate”Deletion interaction: wasn't the block scheduled for deletion?

Page 67: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 67

Data services for deduplicationhash=011..

Block

Component

01:0

Component

01:1

Component

01:2

Component

01:3

Query

Page 68: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 68

Data services for deduplicationhash=011..

Block

Local candidate found

Component

01:0

Component

01:1

Component

01:2

Component

01:3

Page 69: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 69

Data services for deduplicationhash=011..

Block

Candidate verification

Successfuldedup

Component

01:0

Component

01:1

Component

01:2

Component

01:3

Page 70: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 70

On-demand data deletion

● Distributed garbage collection● Per-block reference counter stored per-

fragment● Failure-tolerant

● Block reference counter calculated independently on peer Container chains

● Interference with duplicate elimination:● read-only phase for block tree traversal● space reclamation in background

Page 71: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 71

Writes during node failure

Writing

Reconstruction

Page 72: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 72

Write Scalingnodes added while writing

Page 73: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 73

Write Scalingnodes added while writing

Page 74: HYDRAstor: a Scalable Secondary Storage · 2019-02-25 · HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 2 Scalable secondary storage Characteristics Requirements Huge amount

HYDRAstor: a Scalable Secondary Storage. 9LivesData, LLC 74

Questions?