CouchDB 最佳 App 大奖得主 blitz.io 技术架构剖析

标签: CouchDB Blitz changes ec2 mapreduce | 发表时间:2011-08-03 11:11 | 作者:nosqlfan jiaosq
出处:http://blog.nosqlfan.com

Blitz是一家提供压力测试服务的公司,最近它获得了在CouchConf上评选的最佳CouchDB App大奖,本文就是讲述Blitz的CouchDB使用架构。他们何以能被评为最佳CouchDB App的,其具体技术架构都将在本文中为大家呈现。

先上一个架构图:

从图上我们大概能看到,他们在不同的地区分别部署了两个CouchDB集群,这两个集群分别服务不同区域的数据写入,并保持双向的数据同步。

需要注意的一点是,Blitz是一家测试服务提供公司,他们的主要业务是为世界各地的应用提供测试服务,所以他们的应用场景都是针对某一个点进行压力测试。后面会说到他们甚至业务构建的任务通知分发系统。

Map/Reduce

使用CouchDB不用Map/Reduce肯定是不可能的,在Blitz,一共有6个_design文档和30个View,以他们目前的应用需求,并没有使用过多的Reduce,只是在一些统计类的应用上使用了,而且出于对性能的考虑,他们也只采用了CouchDB内建的一些Reduce方法,比如_sum和_count这种。

Multi-master 的数据同步

目前他们分别在california和virginia安置了基于EC2的CouchDB集群,数据会在两个机房之间进行同步。这样做有两个好处,一是达到数据无端冗余备份的目的,到是为其服务的产品提供尽可能近的服务连接。目前他们一共有4个集群,两个是运行的CouchDB 1.0.2,另外两个运行的是CouchDB1.1,由于CouchDB之间的备份不受版本的影响,目前4个集群在同步备份。这是Blitz的无缝升级策略,先升级部分集群进行测试没有问题再进行全面升级。

_replicator

在CouchDB1.1 版本后,添加了非常重要的_replicator 库,它最显著的特点就是在宕机重启后能保证_replicator库的完整性。所以备份同步操作更方便且稳定了。

带过滤处理的_changes

通过对_changes库进行过滤处理,Blitz构建了其通知系统。通知系统原理是,多个地区的CouchDB节点在监听_changes库时,通过一个过滤器,实现只对与自己有关的任务进行接收。这是一个类似IRC管道的通知系统。

通过冲突来确认任务拥有权

当一个任务通过上面说的任务系统进行分发,那么目标地区的多个节点都会被唤醒进行任务处理,那么最终谁在处理这个任务呢?我们通过修改同一个文档并产生冲突的方式来决定。这让我们对哪个节点承担了什么样的任务有一个清晰的认识。

来源:blog.mudynamics.com

技术传播,需要你我共同努力!    

相关 [couchdb app blitz] 推荐:

CouchDB 最佳 App 大奖得主 blitz.io 技术架构剖析

- jiaosq - NoSQLFan
Blitz是一家提供压力测试服务的公司,最近它获得了在CouchConf上评选的最佳CouchDB App大奖,本文就是讲述Blitz的CouchDB使用架构. 他们何以能被评为最佳CouchDB App的,其具体技术架构都将在本文中为大家呈现. 从图上我们大概能看到,他们在不同的地区分别部署了两个CouchDB集群,这两个集群分别服务不同区域的数据写入,并保持双向的数据同步.

[转][转]Cassandra、MongoDB、CouchDB、Redis、Riak、HBase比较

- - heiyeluren的blog(黑夜路人的开源世界)
来源: http://blog.nosqlfan.com/html/1845.html. 在NoSQL如日中天的今天,各种NoSQL产品可谓百花齐放,但每一个产品都有自己的特点,有长处也有不适合的场景. 本文对 Cassandra,  Mongodb,  CouchDB,  Redis,  Riak 以及  HBase 进行了多方面的特点分析,希望看完此文的您能够对这些NoSQL产品的特性有所了解.

Glu Mobile 发布 Android 游戏 Star Blitz [视频]

- 饼干 - 谷安——谷奥Android专题站
Glu Mobile 发布 Android 游戏 Star Blitz,该游戏发布有几天了,评价不错几乎都是 5 星. Star Blitz 是一个科幻射击游戏,游戏方式是控制太空飞行器,然后秒杀进入屏幕的各种敌人,简单的说就是“打飞机”…而且非常不错的是这个游戏是免费的,感兴趣的读者可以到 Android Market 下来试试.

【大作限免】钻石迷情2:Bejeweled 2 + Blitz

- linsen - 爱Apps - www.iapps.im
精选限时免费应用,由 AppPusher 为您送达. 无限精彩,尽在 爱Apps - www.iapps.im. 本站原创内容,转载时请务必注明出处,谢谢. 大小: 17.0 MB 系统: 3.0+. 感谢” 咕嘟咕嘟, sheldon cooper, biikiinii“在”爱分享“中留言分享.

STAR BLITZ 宇宙版GUN BROS遊戲,華麗星際戰艦銀河大亂鬥

- yangzhe - 電腦玩物
Glu Mobile遊戲設計公司前一款風靡世界的手機遊戲是:「GUN BROS」,免費而瘋狂的類3D遊戲,在俯瞰視角下雙人猛男打仔架著重型武器迎戰以人海戰術不斷從四面八方湧入的敵人,簡單又爽快的遊戲體驗,難度不斷升級的刺激挑戰,加上豐富的道具裝備,非常適合行動裝置即時性的娛樂滿足. 而前一陣子,Glu Mobile以GUN BROS遊戲模式為基礎,推出了一款以「太空戰爭」為背景的新遊戲:「STAR BLITZ(星際閃擊戰)」,五月左右先推出了iPhone、iPad版本,而最近接著也推出了Android版本,同樣也是遊戲免費、特殊道具付費的模式.

PouchDB:一个JavaScript与HTML5实现的浏览器端CouchDB

- Vingel - NoSQLFan
CouchDB的一大特点是利用其同步机制在终端与服务端进行数据同步,比如在移动终端Android系统和iOS系统下都有CouchDB的实现,其策略是离线时将数据存在本地,在线后将数据与服务端进行同步. 而今天要说的是利用JavaScript和HTML5的IndexedDatabase实现的一个完全兼容CouchDB同步协议的家伙:PouchDB.

PouchDB:一款受CouchDB启发的离线Web数据库

- - 博客园_新闻
查看英文原文: PouchDB – a CouchDB-inspired Offline Web Database. PouchDB 是受 Apache CouchDB 启发为 Web 设计的一款占用空间少的数据库. 它尤其适合于需要基于浏览器的可离线使用的存储方案的移动应用. 该数据库可与 CouchDB 同步,也可与在线设备上的其他 PouchDB 同步.

CouchDB与Couchbase:区别何在,Membase又将如何?

- - InfoQ cn
去年二月, CouchOne与Membase合并了,合并之后的公司叫做Couchbase. Membase公司有一个名为Membase的产品,它是个键/值、持久化、可伸缩的解决方案,使用了 memcached wire协议. CouchOne支持 CouchDB. CouchDB是个文档数据库,提供了端到端的复制方法,这对于移动与分布在不同位置的数据中心来说是很有用的.

文章: CouchDB是什么?为什么我们要关注它?

- - InfoQ cn
CouchDB是众多称作NoSQL解决方案中的一员. 与众不同的是,CouchDB是一个面向文档的数据库,在它里面所有文档域(Field)都是以键值对的形式存储的. 域(Field)可以是一个简单的键值对、列表或者是map. 2012RIA天地行•西南游戏开发者大会11月25日,火热报名中. 百度技术沙龙第三十二期:讲讲地图开发那些事(11月17日 周六).