当前位置: 首页 > news >正文

无锡企业网站设计凡客模板wordpress

无锡企业网站设计,凡客模板wordpress,查询网站开发语言,苏州建筑公司排名淘宝分布式文件存储系统( 二 ) -TFS 目录 : 大文件存储结构哈希链表的结构文件映射原理及对应的API文件映射头文件的定义 大文件存储结构 : 采用块(block)文件的形式对数据进行存储 , 分成索引块,主块 , 扩展块 。所有的小文件都是存放到主块中的 #xff0c;扩展块…淘宝分布式文件存储系统( 二 ) -TFS 目录 : 大文件存储结构哈希链表的结构文件映射原理及对应的API文件映射头文件的定义 大文件存储结构 : 采用块(block)文件的形式对数据进行存储 , 分成索引块,主块 , 扩展块 。所有的小文件都是存放到主块中的 扩展块用来保存溢出的数据也就是当我们的主快存储不下的时候数据就会保存到扩展块中。每一个块都有一个唯一的编号 块在使用之前所用到的存储空间都会被预先分配和初始化。每个索引文件都存放对应块的信息和小文件的索引信息所索引文件会在服务器启动时映射mmap到内存中大大提高索引效率。每一个文件都有对应的编号文件编号从1 开始 依次递增同时作为哈希表的key来定位小文件在主块和扩展块的偏移量。 关键的数据结构 ,1 每一个块的结构 struct BlockInfo //每一个块的结构{uint32_t block_id_ ; //块编号1 , 2 ...int32_t version_ ; //块当前版本号int32_t file_count_; //当前已保存文件总数int32_t size_; //当前已保存文件数据的大小int32_t del_file_count_; //已删除文件的数量int32_t del_size_ ; // 已删除的文件数据总大小 uint32_t seq_no_; //下一个可分配的文件编号1 , 2 ....}补充 在整个系统里面删除文件并不是说当用户点击删除之后就立刻执行删除事实上我们的系统会对要删除的文件进行标记表示已经删除如果不这样本来磁盘都会进行频繁的读写再加上立刻删除文件它会吃不消的效率也会大大降低实际上我们服务器的瓶颈就在磁盘。 当系统中删除的文件达到一定量时会在夜深人静的时候进行数据删除。 小文件的索引信息数据文件图片文字等等 struct RawMeta{uint64_t fileid_; //文件编号struct{int32_t inner_offset_; //文件在快内部的偏移量int32_t size_; //文件大小} location_;}这一个结构体将我们的所有“小文件”链在一起。 struct MetaInfo {struct RawMeta raw_meta_ ; //文件数据int32_t next_meta_offset_; //当前哈希链下一个节点在索引文件中的偏移 } 哈希链表 ​ 哈希链表结构的定义 : #define HXSIZE 5 //哈希桶的大小//定义一个链表结点结构 typedef struct _LinkNode {void * key; //键值void* data; //保存的数据, 采用void * 可以提高代码的兼容性(兼容更多的数据类型),和可维护性struct NodeList* next; //指向下一个结点的指针 }LinkNode;/**************\ *方便区分,本质上都是一样的 ***************/ typedef LinkNode* List; typedef LinkNode* elment; //表示数据的结点 typedef struct _HxTable {int size; //桶的大小List* list; //这里实质上是一个二级指针,(我们可以想象成二维数组) }HxTable;文件映射 : 磁盘的速度,和内存的速度比较,相当于是 一个走路,一个坐火箭。 提示: 红色框起的部分,我们可以先不看, 内存映射简单来说就是把磁盘上的文件,映射到内存中. 应用场景: 1. 实现进程之间共享信息 2. 实现数据从磁盘到内存的映射,提高应用程序访问文件的速度. 对应的API接口 参数很多但是不用担心很多都用不上都是默认的 #includesys/mmanp //包含的头文件 //两者配套使用 void *mmap(void *addr , size_t length , int prot , int flags , int fd , size_t offset ); //建立映射 int munmap(void *addr size_t length); //解除映射 参数addr : 指向欲映射内存的起始地址 一般情况设置为 NULL 让系统自动选定 参数lenght : 代表文件中多大的部分映射到内存注意 大小一般是4kb的整数倍 参数prot : 映射区域的保护方法 { ​ PROT_EXEC 执行 ​ PROT_READ 读取 ​ PROT_WRITE 写入 ​ PROT_NONE 不能存取 } 参数flags : 影响映射区域的各种特征必须指定为 MAP_SHARED / MAP_PRIVATE(修改不同步文件) 参数fd : 要映射到内存中文件的描述符 参数offset : 文件映射映射的偏移量通常设置为0代表从文件的开始位置开始对应 进程之间的通信 mmap 之 msync 实现磁盘文件与共享内存区的内容一致同步操作共享区域文件的内容发生改变磁盘上的文件内容也会发生改变 函数原型 : int msync (void *addr , size_t len , int flags ) ; 成功返回0 失败返回-1 参数 addr : 调用mmap… 返回的地 参数flags : 刷新的参数设置 MS_ASYNC (异步)调用会立即返回不等到更新的完成MS_SYNC (同步) 映射 mmap_file.h 头文件的实现 #ifndef _MMAP_FILE_H_#define _MMAP_FILE_H_#includeunistd.h //包含很多常规的接口(作为标准库的存在) //这里我们定义一个命名空间 , 里面的数据我们可以 qiniu::... 这样访问namespace qiniu { struct MMapOption { //设置初始映射大小,后序可以增加int32_t max_mmap_size_; //最大的映射大小int32_t frist_mmap_size_; //第一次分配的大小int32_t pri_mmap_size_; //每次追加的大小};namespace largefile {class MMapFile {public:MMapFile(); //无参构造explicit MMapFile(const int fd); //fd文件句柄MMapFile(const MMapOption mmp_option, const int fd);~MMapFile(); //析构函数bool sync_file(); //同步文件bool map_file(const bool write false); //将文件映射到内存,同时设置保护方法void* get_data()const; //获取映射到内存的数据的首地址int32_t get_size()const; //返回映射区域的大小bool munmap_file(); //解除映射bool remap_file(); //重新映射private:bool ensure_flie_size(const int32_t size); //调整大小,仅供内部调用private:int32_t size_; //映射的大小int fd_; //映射文件的句柄void* data_; //映设到内存数据的起始地址struct MMapOption mmap_file_option_;};}}#endif
http://www.hkea.cn/news/14535500/

相关文章:

  • 中国建设银行东莞市网站东营市住宅与房地产信息网
  • 网站域名实名认证查询怎样把个人介绍放到百度
  • 综合服务平台一站式服务平台网站开发wordpress邀请会员
  • 网站建设哪家有名阿里云商业网站建设视频
  • 建设银行观澜支行网站东莞网站建设快速排名
  • 菏泽网站获客网站建设公司html编辑器的程序怎么设置
  • 做网站一次付费线下营销方式主要有哪些
  • 电商网站首页布局专注邯郸建设手机网站
  • 网站建设拍金手指排名贰拾织梦模板添加网站地图
  • 生存曲线哪个网站可以做百度云虚拟主机如何建设网站
  • 国外优秀网站设计太原网站建设 世纪优创
  • dw做的网站与浏览器不匹配成都网络运营推广
  • 网站建设销售找客户话术单位网站建设情况调查情况
  • 会议专属网站平台建设报价单互联网上班是干嘛的
  • vue做移动端网站与pc端有什么区别柳传志 潘石屹做水果网站
  • 佛山网站建设哪家效果好网页制作软件哪个好
  • 网站锚文本链接怎么做简单个人网页制作成品
  • 手机版网站如何建设网站建设是必须的吗
  • 宿迁网站建设介绍公司WordPress 多厂商
  • 洛阳网站设计开发在下列软件中
  • 温州网站推广排名wordpress 表单管理
  • 做废钢铁生意在哪个网站了解宜昌网站设计
  • 免费网站模板源码西安 网站建设 费用
  • 做网站一般要多少钱宜昌做网站公司
  • 南宁做网站推广的公司哪家好中企动力地址
  • 百度做网站推广多少钱零食网站建设前的市场分析
  • 济宁商城网站建设部门网站集约化建设方案
  • aspmysql做网站seo外链建设的方法
  • 长沙网站建设有限公司如何做网络营销推广文
  • 万江区网站建设公司东莞宣传册设计