
淘宝分布式文件系统 核心存储引擎
故里家乡
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
文件内存映射的代码实现
该代码不做具体解读,不懂得的地方可以产考相应的文献(代码注释小编看来已经很详细了) 1.头文件 #ifndef QINIU_LARGEFILE_MMAPFILE_H_ #define QINIU_LARGEFILE_MMAPFILE_H_ #include <unistd.h> //包含很多的常规函数,做为一种常见的标准库存在 #include "common.h" namespace qiniu { namespace largefile { struct MMapOption原创 2020-05-18 17:23:00 · 632 阅读 · 0 评论 -
文件操作类的实现
1.头文件 #ifndef QINIU_LARGE_FILE_OP_H_ #define QINIU_LARGE_FILE_OP_H_ #include "common.h" namespace qiniu { namespace largefile { class FileOperation { public: FileOperation(const std::string &file_name,const int open_flags = O_RDWR|O_LARGEF原创 2020-05-19 21:15:58 · 232 阅读 · 0 评论 -
海量存储为什么用大文件存储
海量存储为什么用大文件存储 大规模的小文件存取,磁头需要频繁的寻道和换道,因此在读取上容易带来 较长的延时。 频繁的新增删除操作导致磁盘碎片,降低磁盘利用率和IO读写效率 Inode 占用大量磁盘空间,降低了缓存的效果。 ...原创 2020-05-18 17:34:10 · 447 阅读 · 0 评论 -
类的设计类图
原创 2020-05-15 19:10:02 · 1653 阅读 · 0 评论 -
淘宝文件系统大文件结构
1.设计思路 以block文件的形式存放数据文件(一般64M一个block),以下简称为“块”,每个块都有唯一的一个整数编号,块在使用之前所用到的存储空间都会预先分配和初始化。 每一个块由一个索引文件、一个主块文件和若干个扩展块组成,“小文件”主要存放在主块中,扩展块主要用来存放溢出的数据。 每个索引文件存放对应的块信息和“小文件”索引信息,索引文件会在服务启动是映射(mmap)到内存,以便极大的提高文件检索速度。“小文件”索引信息采用在索引文件中的数据结构哈希链表来实现。 每个文件有对应的文件编号,文件编原创 2020-05-15 19:07:31 · 337 阅读 · 0 评论 -
文件系统基本概念
文件系统 : 一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问。 存储的基本单位: 扇区 - 硬盘的最小存储存储单位(Sector)。一般每个扇区储存512字 (相当于0.5KB) 扇区概念: 磁盘的每一面被分为很多条磁道,即表面上的一些同心圆,越接近中心,圆就越小。而每一个磁道又按512个字节为单位划分为等分,叫做扇区 文件存储单位 块 - 文件存取的最小单...原创 2020-05-05 16:04:12 · 343 阅读 · 0 评论 -
背景介绍
根据淘宝2016年的数据分析,淘宝卖家已经达到900多万,有上十亿的商品。每一个商品有包括大量的图片和文字(平均:15k),粗略估计下,数据所占的存储空间在1PB 以上,如果使用单块容量为1T容量的磁盘来保存数据,那么也需要1024 x 1024 块磁盘来保存. 思考? 这么大的数据量,应该怎么保存呢?就保存在普通的单个文件中或单台服务器中吗?显然是不可行的。 淘宝针对海量非结构化数据存储设计出了...原创 2020-05-05 15:45:10 · 222 阅读 · 0 评论