婚恋网站的MongoDB实践之路

日期: 2013-09-01 作者:Brian McKenna翻译:孙瑞 来源:TechTarget中国 英文

eHarmony是一家美国的婚恋服务网站,公司的IT部门发现,开源NoSQL数据库MongoDB能够完美满足数据存储的需求。

在2001年的时候,eHarmony就已经拥有100万的注册用户,而到了2013年,会员数已经突破了4400万。公司针对配对引擎的机器学习能力变得越来越复杂,而关系型数据库PostgreSQL遭遇性能瓶颈。

eHarmony的技术总监Thod Nguyen表示:“我们配对模型的兼容性变得越来越复杂,而且它是双向的,与Netflix的模型是不一样的。你可以喜欢一部电影,而电影不必喜欢你。”

Thod Nguyen声称,在美国有5%的夫妻是从eHarmony网站上认识的,这是一个相当大的比例。对网站来说,这意味着每天要处理十亿以上的配对操作。这背后是强大的机器学习技术作为支撑。

使用MongoDB作为数据存储,eHarmony处理整个用户池的数据只需要12个小时,在此之前则需要15天之久。

然而配对只是整个网站的一个组件而已,用户参与行为也是其中之一。Nguyen表示,在网站改版之后,用户参与也变得越来越频繁。

Nguyen在10个月之前刚刚加入eHarmony,在将NoSQL数据库技术投入生产环境方面,他拥有着丰富的经验。Nguyen领导了一个60人的强大团队,他所面临的最严峻的问题就是“突发流量激增”和日益复杂的用户资料匹配模型。

“在这样的应用场景下,考虑扩展性和性能,MongoDB是最佳的NoSQL解决方案。”他说:“用户池的数据在之前是集中存储在PostgreSQL上的,随着数据量的增长和配置文件中的属性增长,数据库的扩展性到达极限了。”

公司需要的是实时配对服务,如果处理完整的用户池,这需要几周的时间才能实现,特别是那些高质量的配对。所以,Nguyen在2012年开始考虑对架构进行重新设计,而数据存储则是非常关键的一环。

除了MongoDB之外,eHarmony还评估了HDFS(Hadoop分布式文件系统),MySQL,Voldemort数据存储和Cassandra。Nguyen表示:“MongoDB在扩展性、内置分片和复制技术方面表现十分出色,因此它特别适合跑复杂的查询。”

另外,MongoDB还拥有灵活的schema。在SQL系统中,如果给资料添加一个属性,需要进行完全的数据迁移。这对于几十TB数据量的生产系统来说,基本上不太可能。而是用新的系统,你只需要添加更多的节点就可以了。

Nguyen说:“对于这种复杂的问题,MongoDB是最佳的解决方案。”

Nguyen建议其他考虑这种方法的企业,要从自身需要解决的问题出发,而不是从技术本身去考虑问题。对待开源技术要以开放的视角来看,现在有很多开源产品和MongoDB的功能很像,但它是不是能解决你的问题,你需要考虑周全。

Nguyen自己是开源技术的铁杆支持者,但他同时提醒,POC测试和真正的企业生产环境是有很大差别的。在测试和开发阶段你可能看不出的问题,在生产环境中就都会显现出来。因此社区支持是非常重要的,你需要非常多的专业化技术支持。MongoDB在这方面就做的非常好,除社区支持外,10gen公司还提供了非常专业的商业化支持。

此外,回报社区也是非常重要的。Nguyen也已经将他们的seeking查询库放到了GitHub上。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

翻译

孙瑞
孙瑞

相关推荐