0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于存储系统SILT基本结构的详细解析

存储界 2018-01-22 13:32 次阅读

SILT存储系统通过使用多个基本的键值存储结构,每个针对不同的操作进行相应的优化:(1)键值的更新操作通过写优化的存储结构上进行。(2)大多数键值对存储在存储高效的结构中。虽然在存储结构之外的数据很少使用高效的存储索引,但是每个键的平均索引的代价是很低的。(3)SILT可以调整以应对极端情况,即查询在最后、最近的存储结构中。SILT通过使用内存的过滤器,允许所有的查询在1+(nbcl)flash读取时间内完成。

SILT的结构和基本存储结构(LogStore, HashStore, SortedStore)如图 1所示。

图1 SILT存储结构

LogStore对于写操作有很高的效率,其主要用来进行PUT和DELETE操作。为了达到很高的系统性能,写数据的结果直接添加到flash上log文件的末尾。因为这些记录是按照相应的时间进行排序的,LogStore通过内存中的hash表以键和相应在log文件中的偏移对其进行映射。SILT使用cuckoo hash从而在最小内存消耗的情况下,达到很高的性能。本文中提出的部分键的cuckoo hash在较低的计算代价和内存消耗的情况下,占用93%的空间。相比其他两个只读的存储结构,其数据存储紧凑,LogStore必须要存储4字节的指针。SILT因此只使用一个LogStore。

当LogStore中存储饱和之后,LogStore将转换成固定不变的HashStore。HashStore数据以hash表的形式存储在flash上,其不需要内存的索引对记录或数据进行检索。SILT在将其合并到SortedStore之前可以使用多个HashStore。每个HashStore使用一个高效的内存过滤器过滤掉不存在的键。

SortedStore在flash上按一个指定的顺序维护键值对数据,其使用一个非常简洁的形式对索引进行变化。因为对于排序的数据进行单个更新时,其代价是非常高的,因此SILT周期性的将HashStore表的内容合并的到SortedStore中。

LogStore顺序讲PUT和DELETE操作写入flash中,从而达到高的写吞吐量。其内存的部分键cuckoo hash索引可以高效的实现键到相应log文件中位置的映射(如图 2所示)。

LogStore使用一个基于cuckoo hash的hash表。其使用两个函数和实现键值到相应的位置的映射。在新的键加入hash表中是,如果两个位置中有一个是空的,则将其加入这个空的位置;否则新的键替换两个位置的一个,被替换的键按上述过程进行迭代,直到找到其可选的位置中。

图2 LogStore设计方案

为了使其尽可能的简洁,hash表并不存储整个键,而只是存储键的一个tag。只有当查询于相应的tag符合才继续进行后续操作,这样可以实现对不存在的键进行过滤。

虽然存储tag可以在一定程度上节约内存的空间,但是同样出现问题:将键移动到其可选的另一个位置需要事先知道其另一个hash值。但是,相应的键值存储在flash中,因此在这种情况下需要进行flash读取操作。为了解决这个问题,在相应的hash表中将其可选位置的索引作为tag。例如,如果键被放在位置,其另一个hash值将作为其tag存储在位置中,反之亦然。

当LogStore中内容达到饱和时,SILT将其转化成对于内存利用率更高的数据结构。直接对LogStore进行排序,并将其合并到SortedStore需要重写大量的数据。另外,保留大量的LogStore会造成很高的内存消耗。因此,为了解决这个问题,SILT首先将LogStore转化为一个不可变的HashStore。当HashStore的数量达到指定数值时,其被合并到SortedStore中(如图 3所示)。

HashStore通过修改索引的结构,对于flash上的(key, value)进行按hash顺序进行排序,可以节省大量的内存。

HashStore的过滤器非常简单,只是将LogStore中hash表中的tag复制,并去掉相应的指针。

图3 LogStore转换为HashStore

SortedStore是一个静态的键值存储结构。其存储按照flash上key的顺序进行排序的键值(key, value),使用基于熵编码的trie树进行索引,平均每个键消耗0.4字节进行存储。

此外,SILT使用Flash上的排序数据(Using Sorted Data on Flash),将大多数的键值保存在单个的SortedStore,但是其基于熵编码的trie树不允许进行插入和删除。因此,为了将HashStore合并到SortedStore中,SILT必须重新生成SortedStore。因此,SortedStore的构建速度成为SILT整体性能的一个重要的因素。

通过排序可以很快完成的构建工作:(1)排序允许新数据的加入:新的数据通过排序,按顺序合并到已排序的数据中。(2)排序的相关技术非常成熟:SILT可以使用高度优化的排序系统,如Nsort等。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FlaSh
    +关注

    关注

    10

    文章

    1536

    浏览量

    146591
  • 存储系统
    +关注

    关注

    2

    文章

    369

    浏览量

    40693

原文标题:浅析存储系统SILT的基本结构

文章出处:【微信号:cunchujie,微信公众号:存储界】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    网络存储系统可生存性量化评估

    带来了新的挑战,从而催生出了对网络存储系统的研究,特别是其可生存性研究。研究重点包括生存性基本概念、体系结构系统模型、系统分全文下载
    发表于 04-24 09:43

    基于FPGA的数据采集存储系统

    设计高温环境下(最高120°)基于FPGA的数据采集存储系统,就是通过传感器采集数据,通过FPGA来控制,把数据存储存储芯片上,回头可以通过接口读取数据显示在计算机上,求大师给我指导,我急需整个
    发表于 10-29 21:37

    如何利用FPGA的设计微型数字存储系统

    针对航天测试系统的应用需求,利用FPGA的设计微型数字存储系统势在必行,那我们具体该怎么做呢?
    发表于 08-01 08:14

    NAND闪存存储系统的低故障率如何实现?

    该行业非常重视单个ECC代码的强度:但经常被忽视的是错误预防的强度,这在纠正甚至发挥作用之前是重要的我们如何在基于NAND闪存的系统中实现最低的故障率?您可能已在工程团队或存储系统供应商之间进行过
    发表于 08-01 07:09

    如何去设计微型数字存储系统?求过程

    如何去设计微型数字存储系统的硬件部分?如何去设计微型数字存储系统的软件部分?
    发表于 05-13 07:22

    什么是云存储?云存储系统结构是如何构成的?

    到底什么是云存储?云存储系统结构是如何构成的?云存储有哪些技术前提?
    发表于 06-02 06:27

    存储系统的层次结构

    文章目录存储系统的层次结构技术指标层次结构局部性原理主存储器读写存储器只读存储
    发表于 07-29 09:47

    存储系统的层次结构是怎样的?

    存储系统的层次结构是怎样的?怎么解决容量/速度和价格矛盾的问题?
    发表于 11-02 09:22

    ARM存储系统中的大/小端及MMU简析

    1.arm存储系统中的大/小端在arm体系结构中,每个字单元包含4字节单元或者2个半字单元,1个半字单元包含2字节单元。但是在字单元中,4字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式
    发表于 04-20 09:23

    浅析嵌入式存储系统设计方法

    浅析嵌入式存储系统设计方法  嵌入式存储系统由嵌入式硬件和固化在硬件平台中的嵌入式存储系统软件组成。传统的小规模嵌入式存储系统,软件多采用前后台的方
    发表于 01-26 16:32 933次阅读
    浅析嵌入式<b class='flag-5'>存储系统</b>设计方法

    基于EVMS的带外虚拟存储系统结构

    分析当前网络存储系统存在的问题,给出一种基于企业卷管理系统技术的带外虚拟网络存储系统基本结构。分别阐述该存储系统的客户端、内部数据的读/写操
    发表于 05-18 18:50 38次下载
    基于EVMS的带外虚拟<b class='flag-5'>存储系统</b><b class='flag-5'>结构</b>

    高速数据采集与存储系统技术方案

    本内容详细介绍了高速数据采集与存储系统技术方案
    发表于 07-07 17:43 69次下载
    高速数据采集与<b class='flag-5'>存储系统</b>技术方案

    基于闪存的图像存储系统设计

    基于闪存的图像存储系统设计,又需要的下来看看
    发表于 09-22 14:08 13次下载

    存储设备类型与存储系统网络构架的详细解析

    的网络架构。大家常提到的、主流的存储系统网络架构有DAS、NAS、SAN三种网络结构。其中SAN网络环境中,因采用存储设备类型的不同又可以分为FC-SAN(采用光纤通道存储产品)和IP
    的头像 发表于 02-05 13:28 1.3w次阅读

    探讨AI在存储中的应用和对存储系统的改进

    说一说AI技术在存储中的应用,和对存储系统带来的创新性改进。
    的头像 发表于 10-24 15:41 4089次阅读