Gizzard:推ter开源数据切分中间件
openkk
12年前
Gizzard是推ter在11年4月份新推出的一个通用数据切分中间件,在推ter的架构中占用重要的作用。
从图中看到Gizzard主要用于在MYSQL之上,作用是实现数据切分。但目前据说 Gizzard最主要的作用在用于在memcache和redis上。众所周知,memcache和redis本身缺少(或者实现较弱)主从同步机制。在 这里Gizzard的作用就不仅仅是数据切分,还有备份多写、异常队列等多项功能。
官方介绍如下:
Gizzard: a library for creating distributed datastores
按照官方翻译是:一个用于创建分布式存储数据的库。但从功能上来说,Gizzard更适合叫做一个通用的数据切分中间库。如下图所示
Gizzard的主要功能如下:
①支持不同的底层数据存储。Redis/Memcache/Mysql等都支持,原则上只要写操作幂等(也就是写操作与顺序无关)则都可以支持。
②通用数据拆分支持。支持一致性hash、主键mod、自定义拆分函数等多种方式。
③通过replication tree实现不同节点数据的备份机制。
④容错机制。在一台机器出问题后,会自动保存更新延迟队列,在恢复后重新执行,从而保证一致性。
⑤快速的迁移。