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

    文章

    1633

    浏览量

    147953
  • 存储系统
    +关注

    关注

    2

    文章

    409

    浏览量

    40852

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

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

    到底什么是云存储?云存储系统结构是如何构成的?云存储有哪些威廉希尔官方网站 前提?
    发表于 06-02 06:27

    存储系统的层次结构

    文章目录存储系统的层次结构威廉希尔官方网站 指标层次结构局部性原理主存储器读写存储器只读存储
    发表于 07-29 09:47

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

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

    基于FPGA的微型数字存储系统设计

    基于FPGA的微型数字存储系统设计 1 引言    针对航天测试系统的应用需求,提出一种基于FPGA的微型数字存储系统设计方案。该系统是在传统
    发表于 11-04 10:46 844次阅读
    基于FPGA的微型数字<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次下载

    NetApp_E5600_存储系统

    NetApp_E5600_存储系统
    发表于 12-28 09:33 0次下载

    NetApp_E5500_存储系统

    NetApp_E5500_存储系统
    发表于 12-28 09:33 0次下载

    NetApp_E2700_存储系统

    NetApp_E2700_存储系统
    发表于 12-29 12:01 0次下载

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

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

    计算机存储系统的构成

    Memory),再到辅助存储器(Auxiliary Memory),每一层都有其特定的功能和特点。以下是对计算机存储系统构成的详细解析
    的头像 发表于 09-26 15:25 807次阅读