秒杀Redis的KVS上云了!伯克利重磅开源Anna 1.0

优采云 发布时间: 2020-08-18 04:06

  秒杀Redis的KVS上云了!伯克利重磅开源Anna 1.0

  

  策划编辑 | Natalie

  作者 | Anna 研究团队

  译者 | 无明

  编辑 | Natalie

  今年 3 月份,伯克利 RISE 实验室推出了最新的通配符储存数据库 Anna,提供了惊人的存取速率、超强的伸缩性和史无前例的一致性保证。Anna 一经推出即在业界引起热烈讨论,不少读者关心它何时开源、后续有哪些新的进展。过去这半年里,伯克利 RISE 实验室对 Anna 的设计进行了重大变更,新版本的 Anna 能够更好地在云端扩充。实验表明,无论是在性能还是成本效益方面,Anna 都表现突出,明显优于 AWS ElastiCache 的 memcached 以及较早之前的 Masstree,也比 AWS DynamoDB 更具成本优势。与此同时,Anna 所有源码也即将登录 Github,开放给所有开发者。

  背 景

  在之前的一篇博文中,我们介绍了 Anna 系统,它使用了一个核心对应一个线程的无共享线程构架,通过防止线程间的协调来实现闪电般的速率。Anna 还使用晶格组合来实现多样的无协调一致性级别。第一个版本的 Anna 吊打现有的显存 KV 存储系统:它的性能优于 Masstree 700 倍,优于 TBB 800 倍。你可以重温之前的博文 ,或者阅读完整的论文。我们将第一个 Anna 版本称为“Anna v0”。在这篇文章中,我们介绍怎样将这个最快的 KV 存储系统显得极具成本效益和适应性。

  ( )

  ( )

  现如今,公共基础设施云用户可选择的储存系统真是太多了。AWS 提供两种对象存储服务(S3 和 Glacier)和两种文件系统服务( EBS 和 EFS),另外还有七种不同的数据库服务,从关系数据库到 NoSQL 键值储存。真是花样繁杂,令人眼花缭乱,用户自然会问,哪个服务才适宜她们。最直接(然而并不豁达)的答案是,把它们全都用上去就对了。

  这些储存服务都提供了极其有限的成本与性能之间的权衡。例如,AWS ElastiCache 速度很快,但太贵,而 AWS Glacier 虽然实惠,但速率较慢。因此,用户门面对一个困境:他们必须要么舍弃节省成本的目标,*敏*感*词*布署高性能储存集群,要么舍弃性能,利用低成本的系统比如 DynamoDB 或者 S3。

  更糟糕的是,大多数实际应用凸显出偏移的数据访问模式。频繁被访问的数据是“热”数据,其他则为“冷”数据,而这种服务要么是专门为“热数据”而设计,要么专门为“冷数据”而设计。因此,不想在性能或成本上妥协的用户必须自动将这种解决方案堆砌在一起,跟踪服务间的数据和恳求,以及管理不同的 API,并作出一致性保证。

  更糟糕的是,高性能的云存储产品不具备弹性:向集群添加资源或从集群中移除资源都须要人工干预。这意味着云开发者们设计并实现自定义解决方案来监控工作负载变化、修改资源分配以及在储存引擎之间联通数据。

  这是十分糟糕的。应用程序开发人员不断被迫重新发明轮子,而不是把精力放到她们最关心的指标上:性能和成本。我们想要改变这些现况。

  Anna v1

  我们利用 Anna v0 这个显存储存引擎来解决上述的云存储问题。我们的目标是将最快的 Anna 同时发展成为最具适应性和成本效益的 KV 存储系统。我们向 Anna 中添加了 3 个关键的机制:垂直分层、水平弹性和选择性复制。

  Anna v1 的核心组件是监控系统和策略引擎,可实现工作负载的响应性和适应性。为了满足用户定义的性能目标( 请求延后)和成本,监控服务对工作负载变化进行监控和调整。存储服务器会搜集恳求和数据的统计信息。监视系统定期搜索和处理那些数据,策略引擎基于这种统计信息执行上述的三个操作。操作的触发规则很简单:

  为了实现这种机制,我们不得不对 Anna 的设计作出两个重大变更。

  首先,我们使储存引擎支持多种储存介质——目前是显存和闪存。与传统的储存层次结构类似,这些储存层的成本与性能权衡是不一样的。我们还实现了一个路由服务,它将用户恳求发送到目标层的服务器上。无论数据储存在哪些地方,都可以为用户提供统一的 API。这些层都从第一版 Anna 继承了同等丰富的一致性模型,因此开发者可以灵活选购并自定义合适的一致性模型。

  我们的实验表明,无论是在性能还是成本效益方面,Anna 都达到了令人印象深刻的水平。在同一成本下,Anna 提供优于 AWS ElastiCache 8 倍的吞吐量和优于 DynamoDB 355 倍的吞吐量。Anna 还能够通过添加节点和恰到好处的数据复制来应对工作负载的变化:

  

  这篇文章只提供了 Anna 的设计概述,如果你有兴趣了解更多,可以在下边的链接中找到完整的论文和代码和这儿找到完整的论文和代码。这个项目的进展使我们很满意,我们也太愿意收到你们的反馈。后续,我们会有更多的计划,将 Anna 的高性能和灵活性拓展到其他的系统中,敬请关注!

  完整论文:

  开源代码:

  关于伯克利 RISELab

  RISE 实验室的前身是赫赫有名的伯克利 AMP 实验室,该实验室曾开发出了一大批大获成功的分布式技术,这些技术对高性能估算形成了深远的影响,包括 Spark、Mesos、Tachyon 等。RISE 实验室目前主要关注提供实时智能且安全可解释的决策的系统。实验室核心教员包括 Ion Stoica、Joe Hellerstein、Michael I. Jordan、Dave Patterson 等多位大牛。

  过去几年,RISE 实验室把研究重点放到怎样设计一个无需协调的分布式系统上。他们提出了 CALM 基础理论,设计出了新编程语言 Bloom,开发出了跨平台程序剖析框架 Blazes,发布了事务合同 HATs,并推出了志在代替 Spark 的新型分布式执行框架 Ray。

  原文链接:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线