public TableOptimizations getTableOptimizations()

in modules/core/src/main/java/org/apache/fluo/recipes/core/data/RowHasher.java [60:84]


    public TableOptimizations getTableOptimizations(String key, SimpleConfiguration appConfig) {
      int numTablets = appConfig.getInt(PREFIX + key + ".numTablets");

      String prefix = key + ":";

      List<Bytes> splits = new ArrayList<>(numTablets - 1);

      int numSplits = numTablets - 1;
      int distance = (((int) Math.pow(Character.MAX_RADIX, HASH_LEN) - 1) / numTablets) + 1;
      int split = distance;
      for (int i = 0; i < numSplits; i++) {
        splits.add(Bytes.of(prefix
            + Strings.padStart(Integer.toString(split, Character.MAX_RADIX), HASH_LEN, '0')));
        split += distance;
      }

      splits.add(Bytes.of(prefix + "~"));


      TableOptimizations tableOptim = new TableOptimizations();
      tableOptim.setSplits(splits);
      tableOptim.setTabletGroupingRegex(Pattern.quote(prefix.toString()));

      return tableOptim;
    }