1

バッチ ミューテーションを行うと、cassandra からいくつかの例外が見つかりました。「このミューテーションには既に変更があります」と表示されていましたが、2 つの異なる操作に関する情報が表示されました。この場合、カウンター付きのスーパー列を使用します。

  • キー: URL の md5、utf-8
  • SuperColumnName: 日付、utf-8
  • ColumnName: カウンター名は1から200までの乱数、
  • 列値:1L

L

public void SuperCounterMutation(ArrayList<String> urlList) {
    LinkedList<HCounterSuperColumn<String, String>> counterSuperColumns;
    for(String line : urlList) {
      String[] ele = StringUtils.split(StringUtils.strip(line), ':');
      String key = ele[0];
      String SuperColumnName = ele[1];
      LinkedList<HCounterColumn<String>> ColumnList = new LinkedList<HCounterColumn<String>>();
      for(int i = 2; i < ele.length; ++i) {
        ColumnList.add(HFactory.createCounterColumn(ele[i], 1L, ser));
      }
      mutator.addCounter(key, ColumnFamilyName, HFactory.createCounterSuperColumn(SuperColumnName, ColumnList, ser, ser));
      ++count;
      if(count >= BUF_MAX_NUM) {
        try {
          mutator.execute();
        } catch(Exception e) {
          e.printStackTrace();
        }   
        mutator = HFactory.createMutator(keyspace, ser);
        count = 0;
      }   
    }
    return;
}

Cassandra ログからのエラー情報は、重複した操作に同じキーのみがあり、SuperColumnName が同じではないこと、およびカウンター名セットについて、一部の競合が交差し、一部が交差していないことを示しました。

私はhector 0.8.0-rc2でCassandra 0.8.1を使用しています

誰でもこの問題の理由を教えてもらえますか? 前もって感謝します!

4

1 に答える 1

2

Cassandra ログからのエラー情報は、重複した操作が同じキーを持っていることを示しました

ビンゴ。同じキーからの操作を 1 つのミューテーションに組み合わせる必要があります。

于 2011-07-13T19:17:12.690 に答える