跳转到: 导航, 搜索

GSoC2014/学生/秦承翀

GSoC2014:为OpenStack Marconi添加Redis作为存储后端

学生秦承翀


摘要

Marconi是OpenStack的消息和通知服务。使用Marconi,租户可以在OpenStack上构建更复杂的应用程序。Marconi为租户提供不同的存储后端选项,帮助他们平衡延迟和持久性。本项目将为Marconi添加一个Redis存储后端。有了这个新的存储后端,租户可以在使用Marconi构建应用程序时,受益于Redis存储后端提供的卓越延迟性能。

项目描述

可能的导师

项目详情

背景

Marconi是OpenStack的消息和通知服务。它提供了一个OpenStack消息API和服务,可以实现各种分布式应用程序消息模式。通过Marconi,租户可以在OpenStack上构建更复杂的Web应用程序。

然而,众所周知,租户及其应用程序的需求高度多样化。他们可能需要Marconi提供不同的延迟和持久性性能。例如,在繁忙的在线零售系统(黑色星期五的amazon.com)中,持久性性能更为重要。用户的订单花费更多时间被订单处理系统处理是可以容忍的,但订单绝不能丢失。另一方面,对于执行需要实时中间结果的分布式科学计算系统,延迟性能至关重要。如果实时中间结果无法在一定时间限制内传递到下一阶段的工作者,任务将失败。

Marconi的不同延迟和持久性性能与不同的存储后端密切相关。因此,虽然Marconi的Icehouse版本将提供两个存储后端(SQLAlchemy和MongoDB),但仍然需要添加新的存储后端,例如Redis、RethinkDB等。其中,Redis是一个开源的内存数据存储,具有可选的持久性。当不需要数据的持久性时,Redis的内存特性使其能够以卓越的延迟性能运行。

项目目标

本项目的目标是将Redis作为存储后端添加到Marconi。

具体来说,它包含以下3个子目标

  • 提供通过所有核心测试的Redis存储后端实现。这是项目核心部分,处理新存储后端的开发。
  • 提供额外的测试,以测试Redis存储后端的细微之处。虽然核心测试套件相当彻底,但可能需要很少的额外测试来关联新的后端(如果有的话)。
  • 提供比较Redis后端与MongoDB后端的基准测试。第三个目标基于前两个。在实现并测试了新的后端之后,我们可以对不同的后端进行基准测试并进行比较。可能会出现有趣的结果!


有关更多信息,请查看项目想法页面:添加新的存储后端

实现目标步骤

  1. 学习。阅读文档/wiki,浏览代码,并获得背景知识。
  2. 为Marconi实现Redis驱动。实现Redis DataDriver和ControlDriver。
  3. 编写额外的测试、执行测试和调试。我们必须确保驱动程序能够正常工作。提供额外的测试,以测试Redis后端的细微之处。然后进行测试和调试。
  4. 基准测试和比较。开发一个基准测试框架。分别为MongoDB后端和Redis后端运行基准测试。然后比较它们。

对OpenStack的益处

本项目将为OpenStack的队列服务Marconi提供一个Redis存储后端。有了这个新的存储后端,租户可以在使用Marconi构建应用程序时,受益于Redis存储后端提供的卓越队列服务延迟性能。

交付成果

  • Redis存储后端模块 (marconi.queues.storage.redis)
  • Redis后端细微之处的额外测试用例
  • 相关文档(设置、使用等)

里程碑与时间表

里程碑

  • 里程碑#1:为Marconi实现Redis驱动
  • 里程碑#2:添加额外的测试并执行测试
  • 里程碑#3:执行基准测试和比较

时间表

  • 4月22日 - 5月18日
    • 社区绑定期
    • 与导师进一步联系
    • 阅读文档,浏览代码,获得背景知识
  • 5月19日 - 6月1日
    • 实现DataDriver
    • 包括队列、消息和声明控制器
  • 6月2日 - 6月15日
    • 实现ControlDriver
    • 包括分片和目录控制器
    • 里程碑#1达成
  • 6月16日 - 6月29日
    • 开始执行核心测试
    • 添加额外的测试,以测试Redis后端的细微之处
    • 中期评估6月23日)在此期间
  • 6月30日 - 7月13日
    • 执行测试(核心测试和额外的测试)
    • 确保新的驱动程序通过所有测试
    • 里程碑#2达成
  • 7月14日 - 7月27日
    • 为Marconi的存储后端开发一个简单的基准测试框架
  • 7月28日 - 8月10日
    • 基准测试不同的后端并比较它们
    • 里程碑#3达成
  • 8月11日 - 8月17日
    • 代码清理,添加文档
    • 准备最终评估
  • 8月18日
    • 我们达到最终评估

为OpenStack修复的Bug