2016-11-16 4 views
1

я получаю эти ошибки:Cassandra Мутация слишком большим, для небольшой вставки

java.lang.IllegalArgumentException: Мутация 16.000MiB слишком велика для максимального размера 16.000MiB

в Apache Cassandra 3 .Икс. Я делаю вставки из 4MB или 8MB blobs, но не больше, чем 8MB. Почему я нажимаю ограничение на 16 МБ? Является ли Cassandra доведением до нескольких записей (вставок) и созданием слишком большой «мутации»? (Если это так, зачем это делать, поскольку сконфигурированный предел составляет 8 МБ?)

Существует небольшая документация по мутациям - за исключением того, что мутация является вставкой или удалением. Как я могу предотвратить эти ошибки?

+0

Можете ли вы обеспечить простое воспроизведение? –

+0

Увы, это действительно сложно. Я использую phantom-dsl для записи в Cassandra с веб-службы scala. Но в основном, я делаю вставку формы «insert into foo (a, b) values ​​(aa, bb)», где a имеет строку типа и b типа blob. И где aa - 32-символьная строка, а bb - это 4MB + 16byte blob. Я увольняю многие из этих вставок и не делаю никаких явных партий. Я ожидаю, что это приведет к мутации не более 32 байт + 4 МБ + 16 байт. Это намного меньше, чем предел в 16 МБ. – eswenson

+0

Я бы работал, чтобы сломать его. Либо вы найдете что-то в своем приложении, которое не делает то, что вы ожидали, либо вы получите полезный реестр, который вы можете использовать для регистрации ошибки. –

ответ

3

вы можете увеличить размер фиксации журнала до 64 Мб в cassandra.yaml

commitlog_segment_size_in_mb: 64

По умолчанию размер commitLog составляет 32 Мб.

По замыслу дизайна максимальный разрешенный размер сегмента составляет 50% от установленного параметра commit_log_segment_size_in_mb. Это настолько, что Кассандра избегает писать сегменты с большим количеством пустого пространства.

Вы должны выяснить, почему размер записи неожиданно увеличился. Если этого не ожидается, то есть из-за запланированного изменения, это может быть проблемой с клиентским приложением, которое нуждается в дополнительной проверке.

+0

Я не верю, что размер записи резко увеличился. Это новая услуга, и мы тестировали записи разных размеров. Мы вставляем 4MB blobs в таблицу cassandra. Почему, с блоками 4MB, мы достигли предела 16 МБ? – eswenson

 Смежные вопросы

  • Нет связанных вопросов^_^