2012-02-28 3 views
1

Я сталкиваюсь с $ subject при попытке создания семейств столбцов динамически. Я использую Hector для этого и имею уровень согласованности по умолчанию. Я считаю, причина в том, что Гектор возвращает метод создания столбца семейства до того, как семейство столбцов будет реплицировано по кластеру. Как я могу справиться с этим правильно?Несогласованное состояние кластера при создании массивов столбцов программно в Cassandra

ответ

1

Вы верите? Пожалуйста, прочтите это link, в нем есть пример того, как создать семейство столбцов, а затем распечатать определение семейства столбцов. После создания семейства столбцов в кластере cassandra схема будет распространяться по узлам кластера. Если вы хотите проверить семейство столбцов в узле cassandra, вы, вероятно, можете использовать cassandra-cli и команду show schema.

Edit: Из последующих комментариев, решение обновить Гектора до последней версии и вызвать метод addColumnFamily(cfdef, true);, то есть ждать, пока схема не распространяется в кластере. Затем начните вставлять данные (имя столбца и его значение) в это семейство столбцов.

+0

Когда я говорю программно, я смотрел на это с помощью кода. Я не хочу использовать cli. Эта ссылка, на которую вы указали, не решает проблему. Это добавление пространства ключей с CF. Я хочу просто добавить CF (не отбрасывая свое пространство ключей и потеряв все данные, которые у меня есть), и убедитесь, что он распространяется. Надеюсь, у меня есть смысл здесь. –

+0

@TharinduMathew Извините, я не могу выразить себя ясно ;-). Прежде чем я сделаю это редактирование, могу ли я получить подтверждение того, что именно вы пытаетесь сделать. Вы хотите, чтобы вы динамически добавляли имя столбца и его значение в существующее семейство столбцов и проверяли, что столбец, который вставлен, распространяется по кластеру? – Jasonw

+0

Пытаюсь снова :). 3 узла кластера Cassandra 0.7. У меня проблема параллелизма. Различное количество потоков пытается создать семейство столбцов и вставить данные. Поэтому я синхронизирую это так, чтобы только один поток создавал семейство столбцов и проверял, что изменение распространилось через кластер. Но этот результат несовместим с Гектором. Я частично нашел решение. Теперь я использую Thrift API для описания_исхоки, чтобы проверить наличие непоследовательных версий в кластере. Но иногда это просто не распространяется по всему кластеру и приводит к 2 версиям схемы. Любой подход к этому? –