在线数据统计公司使用TokuDB进行数据压缩

日期: 2013-09-23 作者:Mark Fontecchio翻译:孙瑞 来源:TechTarget中国 英文

对于在线棋牌游戏来说,你不可能面对面观察对手是不是在虚张声势。想要达到这个目的,就必须通过统计学模型来完成。SharkScope能帮你完成这一工作,它会从各个流行的在线游戏平台中收集数据,为客户提供有用的信息。据了解,SharkScope使用MySQL数据库来存储统计数据,但随着在线棋牌游戏玩家越来越多,公司的MySQL数据库扩展性遭遇了艰巨的考验。

目前在美国地区,一共有超过600万的用户在进行在线扑克游戏(赌博性质),而且有许多用户在同一时间会登陆多场游戏。根据SharkScope的数据显示,最多时候1个玩家会同时进行24场扑克游戏。这种玩法使得SharkScope不得不收集更多的数据进行分析。

公司CEO Steve Mayes表示:“我们面临着巨大的数据问题,在进行收集的时候,我们没有进行合理的标准化。而随着业务的扩大,MySQL处理扩展性方面表现也不是很好。”

SharkScope希望他们的系统能够以玩家结果以及独立比赛结果来进行排序,然而两种排序意味着需要两个复杂的索引,这使得系统的RAM捉襟见肘。而且MySQL的压缩还不够。

据介绍,SharkScope的MySQL架构中包括了9台物理服务器(2个master和7个slave),数据库大小为451GB,共有500多张表和100亿条数据。其主要问题是复制延迟以及重启数据库之后的长时间缓存加载,体现在前端服务上就是客户需要在进行查询时等上很长的时间。SharkScope希望客户能够快速地得到结果,但事与愿违,并有可能造成客户的流失。

事实上,数据库并不总是这么大。当SharkScope在2005年开始跟踪数据的时候,公司规模还很小,当时主要考虑能够使用免费的软件来满足需求。SharkScope考虑了MySQL和PostgreSQL,最终因为MySQL更出名而选择了前者,当时数据库压缩对他们来说还不是问题。

Mayes表示,当时公司还考虑过使用Oracle数据库,但高昂的价格让他们无法接受。

通过MySQL压缩来解决扩展性问题

Mayes称,公司可以通过几种方式来解决问题。首先,可以考虑购买更好的硬件,更多的CPU处理能力和更多的RAM,用户等待时间自然会降低。但是SharkScope认为这是治标不治本,关键问题处在数据库上。如果只买硬件,那么数据库总有一天会把新的硬件压垮。

SharkScope还考虑过NoSQL数据库技术,因为它们在支持Web应用方面有着不错的表现。

Mayes 知道NoSQL现在非常流行,但是SharkScope不希望将数据库完全迁移到新的平台上,因为还要对许多应用进行代码重写,而且DBA的培训也需要花时间。SharkScope需要的不是NOSQL的最终一致性,而是能够为玩家快速提供信息的能力。

接下来SharkScope评估了MySQL存储引擎MyISAM,他们试图通过它来进行表压缩,但是在维护上简直就是噩梦。Mayes表示,你对其进行压缩,然后就有了很多只读表,这并不适合公司的需要。

于是SharkScope想通过Google来寻找答案,并最终找到了TokuDB(另外一个MySQL存储引擎)。它特别适合于写密集型的工作负载,并能够极大限度地提升性能。

在使用TokuDB之后,SharkScope的缓存加载时间从几个小时降到了几分钟。查询时间在此之前可能需要20秒甚至更多,现在实现了亚秒级的反应速度。另外,公司还能够使用TokuDB针对MySQL的压缩功能,将数据库压缩到166GB的大小,为现有服务器节省了大量存储空间。

“存在磁盘上的数据显然变小了,” Mayes说:“数据变小意味着I/O也变少,而I/O是非常棘手的问题。另外,经过压缩我们可以在RAM中存储索引,这就更进一步地减少了I/O。使用TokuDB之后,我们还可以做更复杂的查询,这在之前是难以想象的。”

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

翻译

孙瑞
孙瑞

相关推荐

  • 甲骨文宣布MySQL Cluster 7.4全面上市

    甲骨文公司今天宣布MySQL Cluster 7.4全面上市。MySQL Cluster是一款ACID兼容的开源事务处理型数据库,具有实时内存性能和99.999%的可用性。

  • 解读MySQL数据库的双向复制

    在主-从复制中,主机影响从机。但从数据库中的任何更改不会影响主数据库,这篇文章将帮助你实现双向复制。

  • 多种不同的MySQL数据库SSL配置

    SSL通过加密网络防止有针对性的监听。在与正确的服务器进行交互时,可以有效应对中间人攻击。本文介绍了不同的使用MySQL数据库的SSL配置方法。

  • 了解Azure SQL数据库扩展性

    SQL Database支持两种扩展方式,但是横向扩容一般更具有挑战性。在本文中,我们将简单介绍Azure SQL Database实现纵向扩展和横向扩展的方法。