Ограничение в Cassandra-0.8.1 при использовании пакетной мутации

Я нашел некоторые исключения из cassandra, когда я выполняю пакетную мутацию, он сказал, что «уже есть модификации в этой мутации», но данная информация представляет собой две разные операции. В этом случае я использую столбец Super со счетчиками, это как

  • Ключ: md5 URL, utf-8
  • SuperColumnName: дата, utf-8
  • ColumnName: имя счетчика представляет собой случайное число от 1 до 200,
  • Значение столбца: 1 л

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 не совпадают, а для набора имени счетчика некоторые конфликты пересекаются, а некоторые нет.

Я использую Cassandra 0.8.1 с hector 0.8.0-rc2.

Может ли кто-нибудь сказать мне причину этой проблемы? Заранее спасибо!


person gopher_rocks    schedule 13.07.2011    source источник


Ответы (1)


Информация об ошибке из журнала cassandra показала, что дублированные операции имеют один и тот же ключ.

Бинго. Вам нужно будет объединить операции из одного и того же ключа в одну мутацию.

person jbellis    schedule 13.07.2011
comment
Это не причина, потому что я могу вставить несколько счетчиков с одним и тем же ключом с помощью одной и той же мутации. Информация об исключении действительно сбивает с толку, она вызывает лишь несколько конфликтов. - person gopher_rocks; 14.07.2011
comment
Нет, это причина. :) Гектор может попытаться объединить мутации для вас, я не знаю. Но убедитесь, что у вас есть только одна мутация в строке, исправите это на 100%. - person jbellis; 21.07.2011