分布式系统
谷歌三剑客
Distributed File System(Google FIle System)
如何有效存储数据? Nosql底层需要一个文件系统
Bigtable = Nosql database
怎么链接底层存储和上层数据
Map Reduce
怎么快速处理数据
GFS C++ Google
HDFS Java Yahoo
scenario
用户写入一个文件,用户读取一个文件。 >1000T
多台机器存储
service
client + server
社会主义: client找任何一个机器,平级
peer 2 peer: 优势,一台机器挂了还可以工作。劣势,多台机器需要经常通信保持数据一致
资本主义: master + slave ✅
优势,simple design,数据容易一直。劣势, 单master挂(重启)
storage
大文件存在哪?硬盘,内存存不下
怎么设计GFS?
metadata访问常常多余内容的访问。
✅文件metadata....(反应速度快) + 实际内容... or 穿插(找metadata寻轨时间长)
机械硬盘,磁头到某一轨道需要寻轨时间
文件内容1+2+3... or ✅文件内容1-1 + 1-2 + 2-1 + 2-2 + 1-3... (方便修改,顺次写)
频繁修改文件,要删掉重新找位置。
metadata
file info: name = xx.mp4, createdTime = xxx, size = xx, index block11 ->diskOffset1, block12 -> diskOffset2...
blocks 1block = 4kb = 4096 bytes
100T文件,block数量太多了
增加block大小 1chunk = 64M = 64*1024k (4k -> 64k)
pros: reduce size of metadata, cons: waste space for small files
标签:...,存储,机器,10,文件,GFS,笔记,metadata From: https://www.cnblogs.com/funblogs12152023/p/18036651