Перенос кода C # с Кассандры .5 на .6 - PullRequest
2 голосов
/ 18 апреля 2010

У меня есть некоторый простой код, выведенный из примера, который предназначен для формирования быстрой записи в базу данных Cassandra, затем зацикливания и считывания всех текущих записей, все работает нормально. Когда вышел .6, я обновил Cassandra и Thrift, которые выдавали ошибки в моем коде (www [dot] copypastecode [dot] com / 26760 /) - я смог сгладить ошибки, преобразовав необходимые типы, однако в версия, которая компилируется, теперь, кажется, читает только один элемент назад, я не уверен, что ее изменения в db не сохраняются или она только читает запись назад 1. «исправленный» код здесь: http://www.copypastecode.com/26752/. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 18 декабря 2010

Прежде всего, позвольте мне сказать, что вы должны определенно использовать TBufferedStream вместо TSocket для TBinaryProtocol, что окажет огромное влияние на производительность вашего приложения.

Для документации API Apache Thrift, что методы BATCH_INSERT устарели, так что это могло привести к вводящей в заблуждение ошибке этой операции, которая фактически вставляет только первый столбец. Сказал так, почему бы вам не попробовать использовать BATCH_MUTATE вместо этого?

Кстати, почему вы пытаетесь использовать Thrift напрямую? Есть несколько хороших клиентов на C # для Cassandra, которые действительно работают очень хорошо. Вы можете найти весь список на http://wiki.apache.org/cassandra/ClientOptions.

Я являюсь автором одного из них, который в значительной степени обновлен с помощью Apache и используется некоторыми компаниями в производственной среде. Взгляните на мою домашнюю страницу.

...