zoukankan      html  css  js  c++  java
  • bitcask

    Bitcask模型是一种日志型kv模型。所谓日志型,是指它不直接支持随机写入,而是像日志一样支持追加操作。Bitcask模型将随机写入转化为顺序写入。

    任意时刻,系统中只有一个数据文件支持写入,称为active data file。其余的数据文件都是只读文件,称为older data file。即所有写操作都是对最后更新文件的一个追加。

    除了增加外,删除和更新也全部不随机读写已有文件。删除只是增加一个带删除标志的记录,随后更新索引hash;而更新也是一样。

    文件中的数据结构非常简单,是一条一条的数据写入操作,每一条数据的结构如下:

    上面数据项分别为:后面几项的crc校验值,时间戳,key,value,key的大小,value的大小。
    而数据文件存储的就是连续一条条上面格式的数据,如下图:

    kv之间的映射是通过中间的一个hash结构来处理,包含:记录文件的编号,value长度,value的在文件中的位置和时间戳。

    Bitcask的总体数据结构如下图:

    总体的流程如下:

    为加速重启时建立hash表结构的速度,额外引入了hintfile,它将真实数据内容换成偏移。这样在建立hash时就不需要读数据文件了。

    理解bitcask架构,必须要考虑下面的问题:

    1. bitcask hash表内存占用如何计算?
    2. bitcask 文件读取流程?
    3. bitcask 文件写入流程?
    4. bitcask 文件合并流程?
  • 相关阅读:
    单片机编程积累算法
    关于GSM基站定位
    GSM模块fibocom G510使用记录
    指爱 打字比赛记录
    硬件和软件工程师
    GPS模块启动模式说明
    阻容降压电路分析
    饮水机电路-工作剖析
    跑步,去
    day01 IT知识架构,操作系统简介
  • 原文地址:https://www.cnblogs.com/qqmomery/p/4709156.html
Copyright © 2011-2022 走看看