2016-11-11 1 views
1

Есть ли способ остановить сборку материализованного вида в Кассандре (3.7)?Stop Cassandra Materialized View Build

фона: Я создал два материализованные представления и B (полное раскрытие - я, возможно, попытался отбросить их до сборки была завершена), и эти взгляды кажутся постоянно застревают ... любую попытку создать другой вид C на том же столе, кажется, висит. Использование nodetool

nodetool.viewbuildstatus <keyspace>.<view> 

показывает комбинацию STARTED и неизвестных для A и B и НАЧАТЬ для представлений в C. Использование CQL:

select * from system.views_builds_in_progress 

все виды перечислены, но поколение номер и last_token не изменились за последние 24 часа (generation_number фактически является нулевым для ).

ответ

2

Не документировано, но nodetool stop фактически принимает любой тип уплотнения, а не только те, которые перечислены (который является сборкой вида одним из). Таким образом, вы можете просто:

nodetool stop VIEW_BUILD 

Или вы можете нажать JMX непосредственно с org.apache.cassandra.db:type=CompactionManager MBean игровой stopCompaction операции.

Все, что действительно нужно сделать, это установить флаг для просмотра конструктора, чтобы он остановился в следующем цикле. Если он бросил неперехваченное исключение или что-то такое, что он больше ничего не делает (стоит проверить журналы системы/вывода), то и остановка не сделает ничего. В этом случае его не очень больно, хотя можно игнорировать его и повторять. Худший случай перезапуска узла.

+0

Ahh, это команда, которую я искал. Благодаря! Кажется, создание представления вызывает исключение. «Мутация xxx слишком велика для максимального размера 16.000MiB» - она ​​спит в течение пяти минут, чтобы снова выходить из строя (не совсем очевидно, почему это исключение выбрасывается). Будет отмечен как разрешенный, хотя мой случай может быть уникальным в том смысле, что команда фактически не остановила сборку - она ​​продолжалась * ad naseam * в этом цикле ошибок (только при остановке представления остановилось) – copeg

+0

у вас есть большие разделы или большие данные в базовой таблице? Могли бы попробовать увеличить сегменты журнала фиксации и лимиты пакетного журнала в 'cassandra.yaml' (https://support.datastax.com/hc/en-us/articles/207267063-Mutation-of-x-bytes-is-too-large- для-maxiumum размера-в-Y-). Возможно, вы захотите дважды проверить свой выбор в определении определения. –

+0

Кажется, что оператор select в представлении вызывал проблему - как, я до сих пор не знаю, но после внесения нескольких изменений (например, удалил ненужные столбцы, а не используя 'select *') представление, построенное без проблем. В очередной раз благодарим за помощь! – copeg