Gizzard:推ter开源数据切分中间件

openkk 12年前

    Gizzard是推ter在11年4月份新推出的一个通用数据切分中间件,在推ter的架构中占用重要的作用。

        从图中看到Gizzard主要用于在MYSQL之上,作用是实现数据切分。但目前据说 Gizzard最主要的作用在用于在memcache和redis上。众所周知,memcache和redis本身缺少(或者实现较弱)主从同步机制。在 这里Gizzard的作用就不仅仅是数据切分,还有备份多写、异常队列等多项功能。

        Gizzard:推ter开源数据切分中间件

        官方介绍如下:

Gizzard: a library for creating distributed datastores

         按照官方翻译是:一个用于创建分布式存储数据的库。但从功能上来说,Gizzard更适合叫做一个通用的数据切分中间库。如下图所示

        Gizzard:推ter开源数据切分中间件

        Gizzard的主要功能如下:

        ①支持不同的底层数据存储。Redis/Memcache/Mysql等都支持,原则上只要写操作幂等(也就是写操作与顺序无关)则都可以支持。

        ②通用数据拆分支持。支持一致性hash、主键mod、自定义拆分函数等多种方式。

        ③通过replication tree实现不同节点数据的备份机制。

        ④容错机制。在一台机器出问题后,会自动保存更新延迟队列,在恢复后重新执行,从而保证一致性。

        ⑤快速的迁移。