図でわかるhdfs erasure coding

61
図でわかる HDFS Erasure Coding Kai Sasaki Treasure Data Inc.

Upload: kai-sasaki

Post on 16-Apr-2017

3.771 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: 図でわかるHDFS Erasure Coding

図でわかるHDFS Erasure Coding

Kai Sasaki Treasure Data Inc.

Page 2: 図でわかるHDFS Erasure Coding

Who am I

佐々木 海(Kai Sasaki)

Software Engineer at Treasure Data Inc. http://www.treasuredata.com

Hadoop, Spark, DL4J

Page 3: 図でわかるHDFS Erasure Coding

Agenda

• Erasure Coding

• Under the Namespace

• Writing Side

• Reading Side

Page 4: 図でわかるHDFS Erasure Coding

Erasure Coding

Page 5: 図でわかるHDFS Erasure Coding

Replication

Block

HDFS

Page 6: 図でわかるHDFS Erasure Coding

Replication

Block

Block

Block

Block

HDFS

Page 7: 図でわかるHDFS Erasure Coding

Replication

Block

Block

Block

Block

HDFS

Page 8: 図でわかるHDFS Erasure Coding

Replication

Block

Block

Block

Block

HDFS

CapacityOverhead

x3

Page 9: 図でわかるHDFS Erasure Coding

Replication

Block

Block

Block

Block

HDFS

Redundancy 2

CapacityOverhead

x3

Page 10: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block

RS-6-3

Page 11: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block6 out of 9

Page 12: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block6 out of 9

Page 13: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block6 out of 9

Page 14: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block6 out of 9

Page 15: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

BlockRedundancy 3

Page 16: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block

CapacityOverhead

x1.5Redundancy 3

Page 17: 図でわかるHDFS Erasure Coding

Erasure Coding

Block

Block

HDFS

Block

Block

Block

Block

Block

Block

Block

Block

BlockGroup

Page 18: 図でわかるHDFS Erasure Coding

Under the Namespace

Page 19: 図でわかるHDFS Erasure Coding

INode and BlockInfo

BlockInfo

INode

Page 20: 図でわかるHDFS Erasure Coding

INode and BlockInfo

BlockInfo

INode

BlockInfo BlockInfo…

Page 21: 図でわかるHDFS Erasure Coding

INode and BlockInfo

BlockInfo

INode

BlockInfo BlockInfo…

Block

Block

Block

Page 22: 図でわかるHDFS Erasure Coding

INode and BlockInfo

BlockInfo

INode

BlockInfo BlockInfo…

Block

Block

Block

BlockGroup

Page 23: 図でわかるHDFS Erasure Coding

BlockInfo

Block

Block

Block

BlockGroup

Page 24: 図でわかるHDFS Erasure Coding

long BlockId0 64

BlockInfo

Block

Block

Block

BlockGroup

Page 25: 図でわかるHDFS Erasure Coding

long BlockId0 64

BlockInfo

Block

Block

Block

BlockGroup

index GroupId4bit 60bit

Page 26: 図でわかるHDFS Erasure Coding

long BlockId0 64

BlockInfo

Block

Block

Block

BlockGroup

index GroupId4bit 60bit

index 0

index 2index 1

Saving memory

Page 27: 図でわかるHDFS Erasure Coding

Writing Side

Page 28: 図でわかるHDFS Erasure Coding

Data

0

Page 29: 図でわかるHDFS Erasure Coding

Data64KB

0

Page 30: 図でわかるHDFS Erasure Coding

Data

BlockGroup

64KB

0

Page 31: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 32: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 33: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 34: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 35: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 36: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 37: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 38: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Data Block

Page 39: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Data Block Parity Block

Page 40: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Data Block Parity Block

Stripe

Page 41: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 42: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 43: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 44: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 45: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 46: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

Page 47: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

0

Page 48: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

0

Page 49: 図でわかるHDFS Erasure Coding

Data

BlockGroup

0

0

Saving diskspace usage

Page 50: 図でわかるHDFS Erasure Coding

Reading Side

Page 51: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

Page 52: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 53: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 54: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 55: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 56: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 57: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 58: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Page 59: 図でわかるHDFS Erasure Coding

BlockGroup

0

0

200kb 500kb

Saving reading time

Page 60: 図でわかるHDFS Erasure Coding

まとめ

• Namespace -> Saving memory BlockInfoStriped, BlockIdManager

• Writing Side -> Saving diskspace usage INodeFile

• Reading Side -> Saving reading time DFSStripedInputStream

Page 61: 図でわかるHDFS Erasure Coding

ありがとうございました