理解 Faster: A Concurrent Key-Value Store with In-Place Updates

这是2018年SIGMOD的上的一篇文章,本文提出了FASTER模型,在工作负载大于内存大小的情况下,该模型能够提供较好的性能保证(比纯驻留内存的模型好)。

本文亮点:局部性,HybridLog。

下图展示了FASTER的架构,它包含一个hash索引和一个记录分配器。我们主要关注记录的分配。

架构图
FASTER架构图

文章定义了一个统一的逻辑地址空间,这个地址空间管理主存和辅存,换言之,主存和辅存被一层逻辑地址封装了。

逻辑地址空间

 逻辑地址较小的是磁盘区域,逻辑地址较大的是内存区域。

下面介绍HybridLog,这是记录存储的核心。在HybridLog的结构中,逻辑地址被分为三个连续的区域:1)stable region。2)read-only region。3)mutable region。顾名思义,stable region就是持久性存储的区域,这是磁盘上的区域。read-only region是内存上的区域,该区域的记录智能被读取,不能就地修改。若想修改,需要将该记录读到可变区域的末尾,然后再更新。mutable region中的数据可以就地被修改。

问题是为什么我们需要read-only region?

这是因为在将内存中的数据flush到辅存上的时候,我们需要确保此时没有线程正在访问该区域的数据。而read-only region正是保证了这一点,保证了flush的时候,操作是安全的。read-only offset就像一个指示器,指示该区域可以被安全地flush到磁盘中。除了这个功能之外,read-only region还像一个second-chance cache,因为如果线程需要更新read-only region的数据,可以直接从内存中读取,而不必从磁盘中读取。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值