zoukankan      html  css  js  c++  java
  • [置顶] 存储系统实现数据文件格式

    在第一篇中讲到了整个索引文件的实现方式与检索方式的实现,这一篇中讲到我实现的各个文件的结构。

            存储管理文件:这个文件的作用主要是对数据文件进行分块管理,管理数据文件块是否使用,还有相应的偏移位置,申请数据文件块都需要从这里进行申请。对于文件的回收也相应的改这个文件的状态。下面画的是该文件的结构

            

                       

            索引文件:存储数据文件的偏移位置,搜索索引文件的从而定位到数据文件进行相应的操作,里面有数据文件下面这张图是索引文件的存储结构:

          

            数据文件:存储数据文件,采用的方式是定额分配的方式,也就是从存储管理文件中申请的文件块进行操作,每个存储文件块的最后一位保存结束位,如果数据大于一个文件块则需要申请多个文件块进行存储,采用链式的存储方式,下面是该文件的存储结构:

            


            结语:这一篇主要讲了下文件的具体格式,目前所涉及的主要是以上三个文件,在写的过程中需要考虑很多问题,比如说涉及到多个文件的写的时候最重要的问题就是数据一致性问题,在数据库操作里就会有事务的概念,其保证的也是事务一致性问题。目前这个问题在我的实现里并未做考虑。下一篇会讲一下索引文件的读,这里会引出"跳跃表"的方式进行读取,在第一篇中也有所提及,下一篇中主要是从代码层面剖析具体的实现方式。


            


  • 相关阅读:
    转MySQL详解--索引
    [转]关于MYSQL Innodb 锁行还是锁表
    根据STATUS信息对MySQL进行优化
    源码编译安装 MySQL 5.5.x 实践
    thrift服务端到客户端开发简单示例
    thrift安装
    thrift 调取 python php go 客户端代码
    Linux系统启动级别及顺序
    Linux手动释放内存
    /etc/passwd&/etc/shadow文件分析
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3087564.html
Copyright © 2011-2022 走看看