设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

Netflix用Apache Cassandra替代甲骨文数据库

2013-5-14 15:01| 发布者: joejoe0332| 查看: 757| 评论: 0|原作者: 网界网|来自: 网界网

摘要:   由于每天都需要处理数十亿次的读写操作,Netflix开始用NoSQL数据库Cassandra替代原来的甲骨文数据库。   作为网络媒体行业的领军企业,Netflix目前在全球40多个国家共拥有3300万名订阅者。随着Netflix的“watc ...

  由于每天都需要处理数十亿次的读写操作,Netflix开始用NoSQL数据库Cassandra替代原来的甲骨文数据库。

  作为网络媒体行业的领军企业,Netflix目前在全球40多个国家共拥有3300万名订阅者。随着Netflix的“watch now”(现在观看)流媒体服务规模的不断增长,Netflix不得不重新考虑自身的数据与存储战略,以应对托管在云服务上、且飞速增长的工作负载。如 今,Netflix从甲骨文数据库向NoSQL数据库Cassandra迁移的工作已经基本接近尾声。Netflix的这一举措不仅可以提升可访问性,还 可以基本消除由数据库模式调整所导致的宕机。

  Netflix在2007年推出了自己的流媒体服务,当时在后端使用的是甲骨文数据库。Netflix的云架构师Adrian Cockcroft说:“我们有一个单独的数据中心,这意味着我们存在一个单点故障。我们在流量和容量上已经快接近上限了。如今,人们能够通过手机、 Wii游戏机、Roku盒子,以及其他方式观看Netflix的流媒体节目,对可访问性的需求正在持续增长。每个季度我们都会增加许多新的客户,如今有越 来越多的客户开始使用流媒体,并且这一数量正在飞速增长。”

  Cockcroft称,与客户数量同样飞速增长的是数据。Netflix在2011年1月的API请求数量比2010年1月份增长了37倍。 Netflix清楚,服务中断或是流媒体服务质量低下将会导致客户流失。 “我们知道,我们必须要摆脱原来的数据中心,这样才能够持续运营下去,并且保持不断增长。” Cockcroft说。

  在2010年,Netflix开始将其数据迁移至亚马逊网络服务(Amazon Web Services,简称为AWS)上。Netflix的下一步举措是用Apache Cassandra代替了原来的甲骨文数据库。Cassandra是一种以高扩展性和企业级可靠性著称的开源NoSQL数据库。Cockcroft 解释说:“对于我们来说,集中式SQL数据库存在一个问题,那就是‘所有的鸡蛋都放在了一个篮子里’。在不出事的情况下,这种做法还是非常方便的。由于这 些数据库非常昂贵,所以你也倾向于将所有的东西都放在一起。不过一旦出事,所有的东西就全完了。”

  另一个问题是,模式调整需要系统停止运行。Cockcroft解释说:“每隔两周,我们就必须要让系统停止运行至少十分钟,以加入新的模式。SQL数据库的这些局限性已经严重影响到了网站的可访问性和扩展性。”

  由于能够灵活快速地创建和管理数据集群,尤其是在云服务之上,Netflix最终选择了DataStax的Cassandra。Netflix的云 服务与平台工程经理Christos Kalantzis说:“与甲骨文方案类似的解决方案无法很好地在虚拟硬件上运行。Cassandra的架构、可访问性和持续性之间的平衡性以及可扩展 性,让它们成为了明智的选择。为了解决这些问题,Netflix首先将数据从甲骨文数据库迁移到亚马逊的SimpleDB分布式数据库上,然后再将这些数 据迁移至Cassandra之上。”

  Cockcroft说:“Cassandra让我们的业务拥有了更高的灵活性。我们不必提前规划容量,不用求人帮助我们创建东西,同时再也不用担心 空间不足或停电的问题。我在十分钟之内就可以在全球任意一个地方创建一个Cassandra集群。在营销部门决定应该将精力放在全球的某个地方时,我们已 经为他们做好了准备。”此外,模式调整再也不需要系统停止运行了。由于在Cassandra中不存在模式调整,所以系统也不会因此停止运行。

  当然,由于使用多个Cassandra实例,因此与使用甲骨文数据库相比,管理系统的数量会更多一些。不过,Cockcroft指出:“他们倾向于在不同的时间内逐步进行分解,因此你是一点点的失去整个系统,而不是一下子失去整个系统。此外,每个存储都更加易于管理。”

  目前,Cassandra对于Netflix而言是首选数据库,因为它们几乎满足了Netflix的所有需求。Netflix已经将95%的数据存 储在Cassandra上,包括客户账户信息、影片评分、影片元数据、影片书签和日志等。Netflix在750多个节点上运行着50多个 Cassandra集群。高峰时,Netflix每秒要处理50,000多个读取和100,000写入操作。Netflix平均每天要处理21亿次的读取 与43亿次的写入操作。

  Cassandra为Netflix提供了一个新的坚实基础。正如Cockcroft所说的那样,“它们为我们更好地向客户提供优质服务提供了可能。”


酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部