五、飞信空间
飞信的SNS平台数据量大,增长快,目前的状态如下:
▲飞信空间
●日活跃用户100W,平均主动行为1.3次
●平均好友20个
●平均每条动态存储数据量1.5K
●数据容量 2600W*1.5KB=40GB
●以关系型数据库估计,占用存储这僮100GB左右
SNS类型应用中,Feed的数据量最大,Feed数据的存储与读写操作往往是技术难度最高的部分,由于Feed要求的高并发写入,弱一致性,使HandlerSocket成为NoSQL技术的主要应用战场。
HandlerSocket还帮飞信解决了缓存的问题,因为Innodb已经有了成熟的解决方案,通过参数可以配置用于缓存数据的内存大小,这样只要分配合理的参数,就能在应用程序无需干涉的情况下实现热点数据的缓存,降低缓存维护的开发成本。
HandlerSocket是日本DeNA公司的架构师Yoshinori开发的一个NoSQL产品,以MySQL Plugin的形式运行。其主要的思路是在MySQL的体系架构中绕开SQL解析这层,使得应用程序直接和Innodb存储引擎交互,通过合并写入、协议简单等手段提高了数据访问的性能,在CPU密集型的应用中这一优势尤其明显。
因为HandlerSocket是MySQL的一个Plugin,集成在mysqld进程中,对于NoSQL无法实现的复杂查询等操作,仍然可以使用MySQL自身的关系型数据库功能来实现。在运维层面,原来广泛使用的MySQL主从复制等经验可以继续发挥作用,相比其他或多或少存在一些bug的NoSQL产品,数据安全性更有保障。