如何将AI能力与大数据技术结合,助力数据分析治理等工作的效率大幅提升,优化大数据引擎的性能及成本? 了解详情
写点什么

使用 Hummingbird 提升 Rackspace Cloud Files 的性能

  • 2015-10-26
  • 本文字数:1048 字

    阅读完需:约 3 分钟

Rackspace Cloud Files 是一个使用 OpenStack Swift 构建的大规模云对象存储系统。随着发展,该系统遇到了许多可扩展性问题。近日, Cloud Files 项目经理 Matt Barker撰文介绍了他们遇到的问题以及Hummingbird 如何提升了Cloud Flies 的性能。

OpenStack Swift 是 Rackspace 于 2010 年推出的一个存储项目,用Python 编写 /),是原始 OpenStack 平台的一部分。为了保证可扩展性和硬件部署架构的灵活性,Swift 被分解为一个公共服务(代理服务)和三个内部服务(对象服务、容器服务、账户服务)。其中,对象服务层(即对象服务器和复制器)自创建以来几乎没有变化。但随着 Cloud Files 的发展,Python 的局限性显现出来。比如,它在并发支持和磁盘 I/O 方面的局限会导致对象服务层成为瓶颈。

他们考虑了许多不同的方法,包括配置更多的对象工作进程、修改并发设置及加入事件循环。但是,当一个节点在硬件或磁盘层面出现故障时,Python 对象服务会让问题变得更加严重。对象服务器会完全没有响应,或者继续接受连接,但提供数据非常缓慢,许多请求都需要很长的时间才能完成。Cloud Files 团队运行和优化服务的时间都赶上开发新特性了。

为了解决上述问题,Cloud Files 团队首席工程师 Michael Barton 开始尝试使用各种语言框架重写对象服务器。基准测试表明,Go 是一个不错的选择。于是,他们就使用 Go 语言重新编写和部署对象服务,即 Hummingbird 项目。在 API 层面,Hummingbird 具备与 Swift 相同的功能。他们还创建了一个测试套件,用于在对象服务器和对象复制器层面比较两者的性能。接下来,他们将 Hummingbird 部署到弗吉尼亚数据中心的单个生产节点上,然后依次扩展到一个 4 节点“区域(zone)”、半个集群、整个“地区(region)”。截至目前,他们已经在弗吉尼亚和伦敦数据中心这两个生产环境中部署了Hummingbird。在弗吉尼亚地区,每小时的读超时数量显著减少,如下图所示:

而在响应速度方面,Go 对象服务器大约是Python 对象服务器的两倍。

目前,Hummingbird 已经成为OpenS tack Swift 的一个特性分支,感兴趣的读者可以查看其 GitHub 页面。另外,在将于10 月27 日举行的东京OpenStack 峰会上,Michael 及资深软件开发工程师David Goetz 将会对Hummingbird 进行介绍,感兴趣的读者可以关注一下。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-10-26 19:001636
用户头像

发布了 1008 篇内容, 共 345.6 次阅读, 收获喜欢 330 次。

关注

评论

发布
暂无评论
发现更多内容

Android面试题(window、进程、线程篇

android 程序员 移动开发

Android面试:IntentService源码分析

android 程序员 移动开发

Android:彻底消灭OOM的实战经验分享(千分之1-5----万分之0-2)

android 程序员 移动开发

App基于手机壳颜色换肤?先尝试一下用 KMeans 来提取图像中的主色

android 程序员 移动开发

APP终极瘦身方案

android 程序员 移动开发

Android面试必问:Handler、Bitmap、线程

android 程序员 移动开发

APP 热修复都懂了,你会 SDK 热修复吗?最全方案在这里!

android 程序员 移动开发

App怎么做才能永不崩溃

android 程序员 移动开发

Android面试必备!爆火超全的《Android性能优化全方面解析》

android 程序员 移动开发

Android面试老生常谈的 View 事件分发机制,看这一篇就够了!

android 程序员 移动开发

Android高频网络面试专题必知必会

android 程序员 移动开发

Angular-集成-Typescript-版本-Echarts-(附代码)

android 程序员 移动开发

Android面试官必问的事件分发,你答得上来吗?

android 程序员 移动开发

App 金刚区导航菜单,类似淘宝、QQ 音乐等 APP 导航,方格布局横向滑动翻页带滚动条

android 程序员 移动开发

Bmob后端云+ImageLoader框架实现图文列表

android 程序员 移动开发

cmake使用教程(九)-关于安卓的交叉编译

android 程序员 移动开发

Android面试题之性能优化篇

android 程序员 移动开发

Android:AsyncTask使用

android 程序员 移动开发

Android面试大全基础篇(校招+社招)含答案

android 程序员 移动开发

Android高级架构师整理面试经历发现?(大厂面经+学习笔记

android 程序员 移动开发

Android高级面试题:面试十几家公司入职外企后,掌握这几个关键点面试通过率很大

android 程序员 移动开发

Android:帧动画和补间动画看这篇就足够了!

android 程序员 移动开发

AOP 最后一块拼图 _ AST 抽象语法树 —— 最轻量级的AOP方法

android 程序员 移动开发

BAT资深面试官-带你破解Android高级面试

android 程序员 移动开发

Cocos2d-x 3(1)

android 程序员 移动开发

Android面试官:“来给我讲讲View绘制?

android 程序员 移动开发

Android题集四大组件之Service

android 程序员 移动开发

ARouter系列3:继续学习(手写一个Arouter框架)

android 程序员 移动开发

AsyncTask相关知识

android 程序员 移动开发

Android面试:一个进程有多少个-Context-对象?看似初级的问题,答的好的人确不多

android 程序员 移动开发

ClassLoader在热修复中的应用

android 程序员 移动开发

使用Hummingbird提升Rackspace Cloud Files的性能_Python_谢丽_InfoQ精选文章