zoukankan      html  css  js  c++  java
  • Mycat 分片规则详解--范围取模分片

    • 实现方式:该算法先进行范围分片,计算出分片组,组内在取模
    • 优点:综合了范围分片和取模分片的优点,分片组内使用取模可以保证组内的数据分布比较均匀,分片组之间采用范围分片可以兼顾范围分片的特点,事先规划好分片的数量,数据扩容时按照分片组扩容,则原有分片组的数据不需要迁移,分片组内还可以避免热点数据问题。
    • 缺点:在数据范围时固定值(非递增值)时,存在不方便扩展的情况,例如将 dataNode Group size 从 2 扩展为 4 时,需要进行数据迁移才能完成
    • 配置示例

      <tableRule name="auto-sharding-rang-mod">

      <rule>

      <columns>id</columns>

      <algorithm>rang-mod</algorithm>

      </rule>

      </tableRule>

      <function name="rang-mod" class="io.mycat.route.function.PartitionByRangeMod">

      <property name="mapFile">partition-range-mod.txt</property>

      <property name="defaultNode">0</property>

      </function>

    • 相关属性:
      • mapFile:切分规则配置文件
      • defaultNode:默认节点,小于0表示不设置默认节点,大于等于0表示设置默认节点,如果超出配置的范围,则使用默认节点
      • partition-range-mod.txt 示例:

        #range start-end,dataNode group size

        #K=1000,M=10000

        0-100K=2

        100K1-200K=2

      注意:0-100K=2 表示在 0-100K范围中,有2个dataNode;如果需要进行扩展,则配置新的范围并增加 dataNode 组的数量来进行扩展,不需要针对历史数据进行迁移

  • 相关阅读:
    求一个字符串中连续出现次数最多的子串
    LintCode: Longest Common Substring
    LintCode: O(1) Check Power of 2
    LintCode: Fizz Buzz
    LintCode: 3 Sum
    LintCode: Two Sum
    LintCode: Sort Colors
    LintCode: Median of two Sorted Arrays
    LintCode: Search A 2d Matrix
    Lintcode: Sqrt(X)
  • 原文地址:https://www.cnblogs.com/li3807/p/8461849.html
Copyright © 2011-2022 走看看