美文网首页
MyCat路由规则分析(二)

MyCat路由规则分析(二)

作者: john_zhong | 来源:发表于2017-05-17 17:24 被阅读117次

    固定分片hash规则

    在一些需要批量插入连续记录的交易中,如果使用普通的取模算法进行分片的话,很容易造成跨库事务,俾如下面的极端例子

    user_id以10进行取模分片,在批量插入user_id为10010~10019的记录时,
    user_id=10010的记录,10010 mod 10等于0,路由到分片0上
    user_id=10011的记录,10011 mod 10等于1,路由到分片1上
    ……
    如此类推,这10条记录被分配到10个不同的分片上,形成了一个复杂的跨库事务

    这种跨库事务的复杂度,会伴随模数的增加、需要处理的连续记录的增多,而变得更加非常难以控制。另外,由于分配(插入)记录时就发生了上面的情况,后面的读取、更新和删除这些连续记录也必然会产生跨库事务。

    相对于普通取模算法,此算法提取分片索引字段二进制值的低10位,来进行取模,然后再利用其它部分进行分片——这样能尽量将低10位相近的记录分到同一分片中,从而减少了上述的跨库事务问题的 发生概率

    相关文章

      网友评论

          本文标题:MyCat路由规则分析(二)

          本文链接:https://www.haomeiwen.com/subject/dpndxxtx.html