书栈网 · BookStack 本次搜索耗时 0.009 秒,为您找到 426 个相关结果.
  • 15. 多盘散列

    15. 多盘散列 15.1. 背景 15.2. LevelDB数据模型分析 15.3. 核心改造点 15.4. 使用方式 15.5. 扩容问题 15.6. 实验 15. 多盘散列 15.1. 背景 区块链中的账本数据通常是只增不减,而单盘存储容量有上限。目前单盘最高容量是14TB左右,需要花费4000块钱;以太坊账本数据已经超过1TB...
  • 缓存系统

    缓存系统 缓存系统 缓存对于一个数据库读性能的影响十分巨大,倘若leveldb的每一次读取都会发生一次磁盘的IO,那么其整体效率将会非常低下。 Leveldb中使用了一种基于LRUCache的缓存机制,用于缓存: 已打开的sstable文件对象和相关元数据; sstable中的dataBlock的内容; 使得在发生读取热数据时,尽量在cach...
  • 15. 多盘散列

    15. 多盘散列 15.1. 背景 15.2. LevelDB数据模型分析 15.3. 核心改造点 15.4. 使用方式 15.5. 扩容问题 15.6. 实验 15. 多盘散列 15.1. 背景 区块链中的账本数据通常是只增不减,而单盘存储容量有上限。目前单盘最高容量是14TB左右,需要花费4000块钱;以太坊账本数据已经超过1TB...
  • 读操作

    读操作 快照 读操作 leveldb提供给用户两种进行读取数据的接口: 直接通过Get 接口读取数据; 首先创建一个snapshot,基于该snapshot调用Get接口读取数据;两者的本质是一样的,只不过第一种调用方式默认地以当前数据库的状态创建了一个snapshot,并基于此snapshot进行读取。 读者可能不了解snapshot(快照...
  • 概述

    概述 概述 如我们之前提到的,leveldb是典型的LSM树(Log Structured-MergeTree)实现,即一次leveldb的写入过程并不是直接将数据持久化到磁盘文件中,而是将写操作首先写入日志文件中,其次将写操作应用在memtable上。 当leveldb达到checkpoint点(memtable中的数据量超过了预设的阈值),会将...
  • 版本控制

    版本控制 版本控制 Leveldb每次新生成sstable文件,或者删除sstable文件,都会从一个版本升级成另外一个版本。 换句话说,每次sstable文件的更替对于leveldb来说是一个最小的操作单元,具有原子性。 版本控制对于leveldb来说至关重要,是保障数据正确性的重要机制。在本文中,将着重从版本数据的格式以及版本升级的过程进行展...
  • SStable文件格式

    SStable文件格式 物理结构 逻辑结构 SStable文件格式 物理结构 为了提高整体的读写效率,一个sstable文件按照固定大小进行块划分,默认每个块的大小为4KiB。每个Block中,除了存储数据以外,还会存储两个额外的辅助字段: 压缩类型 CRC校验码压缩类型说明了Block中存储的数据是否进行了数据压缩,若是,采用了哪种算法...
  • compaction

    compaction compaction Compaction是leveldb最为复杂的过程之一,同样也是leveldb的性能瓶颈之一。其本质是一种内部数据重合整合的机制,同样也是一种平衡读写速率的有效手段,因此在下文中,首先介绍下leveldb中设计compaction的原由,再来介绍下compaction的具体过程。 Compaction的...
  • 16. 多盘散列

    16. 多盘散列 16.1. 背景 16.2. LevelDB数据模型分析 16.3. 核心改造点 16.4. 使用方式 16.5. 扩容问题 16.6. 实验 16. 多盘散列 16.1. 背景 区块链中的账本数据通常是只增不减,而单盘存储容量有上限。目前单盘最高容量是14TB左右,需要花费4000块钱;以太坊账本数据已经超过1TB...
  • 16. 多盘散列

    16. 多盘散列 16.1. 背景 16.2. LevelDB数据模型分析 16.3. 核心改造点 16.4. 使用方式 16.5. 扩容问题 16.6. 实验 16. 多盘散列 16.1. 背景 区块链中的账本数据通常是只增不减,而单盘存储容量有上限。目前单盘最高容量是14TB左右,需要花费4000块钱;以太坊账本数据已经超过1TB...