![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
淘宝分布式文件系统 核心存储引擎
故里家乡
这个作者很懒,什么都没留下…
展开
-
文件内存映射的代码实现
该代码不做具体解读,不懂得的地方可以产考相应的文献(代码注释小编看来已经很详细了)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 · 441 阅读 · 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 · 188 阅读 · 0 评论 -
海量存储为什么用大文件存储
海量存储为什么用大文件存储大规模的小文件存取,磁头需要频繁的寻道和换道,因此在读取上容易带来 较长的延时。频繁的新增删除操作导致磁盘碎片,降低磁盘利用率和IO读写效率Inode 占用大量磁盘空间,降低了缓存的效果。...原创 2020-05-18 17:34:10 · 374 阅读 · 0 评论 -
类的设计类图
原创 2020-05-15 19:10:02 · 1586 阅读 · 0 评论 -
淘宝文件系统大文件结构
1.设计思路以block文件的形式存放数据文件(一般64M一个block),以下简称为“块”,每个块都有唯一的一个整数编号,块在使用之前所用到的存储空间都会预先分配和初始化。每一个块由一个索引文件、一个主块文件和若干个扩展块组成,“小文件”主要存放在主块中,扩展块主要用来存放溢出的数据。每个索引文件存放对应的块信息和“小文件”索引信息,索引文件会在服务启动是映射(mmap)到内存,以便极大的提高文件检索速度。“小文件”索引信息采用在索引文件中的数据结构哈希链表来实现。每个文件有对应的文件编号,文件编原创 2020-05-15 19:07:31 · 260 阅读 · 0 评论 -
文件系统基本概念
文件系统 :一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问。存储的基本单位:扇区 - 硬盘的最小存储存储单位(Sector)。一般每个扇区储存512字(相当于0.5KB)扇区概念:磁盘的每一面被分为很多条磁道,即表面上的一些同心圆,越接近中心,圆就越小。而每一个磁道又按512个字节为单位划分为等分,叫做扇区文件存储单位块 - 文件存取的最小单...原创 2020-05-05 16:04:12 · 296 阅读 · 0 评论 -
背景介绍
根据淘宝2016年的数据分析,淘宝卖家已经达到900多万,有上十亿的商品。每一个商品有包括大量的图片和文字(平均:15k),粗略估计下,数据所占的存储空间在1PB 以上,如果使用单块容量为1T容量的磁盘来保存数据,那么也需要1024 x 1024 块磁盘来保存.思考? 这么大的数据量,应该怎么保存呢?就保存在普通的单个文件中或单台服务器中吗?显然是不可行的。淘宝针对海量非结构化数据存储设计出了...原创 2020-05-05 15:45:10 · 178 阅读 · 0 评论