Tadeusz
есть кластер из 3х нод с RF=3, на 3.11.0. Для перехода на 3.11.1 там есть нюанс с материализованными представлениями. Что нас афектнуло. Соотвественно переделали чуть свои таблицы (DROP, Create). Но DROP materialized view не прошел и у кассандры что-то сбилось в логике. Я нагуглил как народ советует рестартануть кластер и типа все ок. Но по ошибке начал с сид ноды, и она не поднялась после растарта с матюком: INFO [main] 2018-01-17 11:37:46,847 ColumnFamilyStore.java:406 - Initializing our_keyspace.our_new_table Exception (java.lang.IllegalArgumentException) encountered during startup: Unknown CF a3d7a8f0-f9c6-11e7-afe2-eb56781b9354 java.lang.IllegalArgumentException: Unknown CF a3d7a8f0-f9c6-11e7-afe2-eb56781b9354 at org.apache.cassandra.db.Keyspace.getColumnFamilyStore(Keyspace.java:204) at org.apache.cassandra.db.view.ViewManager.addView(ViewManager.java:152) Сделав это на сид ноде я сам себя поставил в невыгодное положение. Беспокоюсь о том, что если сейчас я поменяю сида на другую ноду, то другая нода тоже может не стартануть и кластер развалится вообще. Поэтому хотелось бы совета бывалых. В том числе как мне с сида удалить корректно все данные на которые ругается, чтобы сид хотябы стартанул.
repair делал?
Tadeusz
пиздани ваще /var/lib/cassandra/system/*
Tadeusz
и перезапусти, оно высосет схему с других нод
Tadeusz
а лучше не пиздани, а сдампь в отдельную диру
Tadeusz
сдампь схемы со всех нод, сравни diff’ом, если че, поправь вручную
Tadeusz
cqlsh 1.2.3.4 -u admin -p … -e "DESCRIBE FULL SCHEMA" > schema.txt
Serega
это ж сид ) я бы удалил - не проблема. Но чтобы назначить в кластере другого сида нужно рестартавать касандру. А я так смекаю что при рестарте другая нода с той же ошибкой может упасть.
Tadeusz
хуйня это все, делай)
Tadeusz
у тебя ж сид итак больной и не запускается?
Serega
до того как кластер был не разваленные - репаир фулл проходил без проблем
Serega
сид даун )
Tadeusz
семь бед, один rm =)
Serega
попробую
Tadeusz
я пережил апгрейд с 2 на 3, так что не пугает ваще)
Tadeusz
вот с вьюхами много геморроя было, кстати
Serega
а 3.0 юзаешь или 3.1 ?
Tadeusz
3.10 юзал на тот момент
Tadeusz
с датастакса ушли на апач чистый
Tadeusz
люцена индекс используется? Sergey
Serega
у датастакса прайсинг заоблачный. от удаления data/system кейспейса нифига не поменялось
Tadeusz
датастакс помер, кстати 🙂
Tadeusz
еще раз рестартани
Tadeusz
и покажи логи, pastebin
Yuri
есть толковые курсы по администрированию бд в частности postgres?
Serega
за люцену не знаю, как посмотреть? вроде нет. лог не поменялся, сейчас покажу. Оно стартует и потом выпадает.
Tadeusz
а посмотри в /usr/share/cassandra/lib/
Tadeusz
на предмет *lucene*.jar
Serega
https://pastebin.com/yAJp37rY
Serega
lucene нету.
Tadeusz
сравни схемы на нодах
Serega
мм, интересная идея, пасиб
Tadeusz
19 Upgrading 20 --------- 21 - Creating Materialized View with filtering on non-primary-key base column 22 (added in CASSANDRA-10368) is disabled, because the liveness of view row 23 is depending on multiple filtered base non-key columns and base non-key 24 column used in view primary-key. This semantic cannot be supported without 25 storage format change, see CASSANDRA-13826. For append-only use case, you 26 may still use this feature with a startup flag: "-Dcassandra.mv.allow_filtering_nonkey_columns_unsafe=true"
Serega
ну вот из-за этого мы и начали обратно переделывать. Чтобы не было materialized View with filtering on non-primary-key base column но до апдейта не дашел еще - нода при обычном рестарте не поднялась.
Serega
на остальных двух нодах desc full schema не отличается
Tadeusz
вам надо было дропать вьюхи и после грейда заново create’ить, имхо
Tadeusz
в кассандре всегда все через задницу
Дмитрий Харитонов
Кто-нибудь сталкивался такой проблемой с firewalld, не могу настроить проброс порта с внешнего сетевого интерфейчас на внутренний. На другой сервак внутри сети пробрасывается нормально.
Дмитрий Харитонов
Или я тут уже спрашивал?)
Tadeusz
https://ask.fedoraproject.org/en/question/32104/port-redirect-with-firewalld/
Дмитрий Харитонов
Да, я уже разобрался
Дмитрий Харитонов
только через firewall-cmd —direct сделал а не через iptables
Anonymous
А подскажите, что может быть не так? При коммите в мастер на гитхабе, HEAD на некоторых виртуалок слетает и они не обновляются обычным pull. Приходится на местер переключаться.
Anonymous
И да, тут где-то посередине запрятался jenkins =)
Aleksey
@itjunkie а ты наверное дизайнер ?
Anonymous
Дизайнер расположения ПО на сервере =)
G72K
И да, тут где-то посередине запрятался jenkins =)
Не делайте git pull, делайте git fetch && git reset —hard origin/master
G72K
У вас там похоже git push —force в почете
Serega
вам надо было дропать вьюхи и после грейда заново create’ить, имхо
а не было у меня апгрейда еще, просто рестартил ноды кластера. Чтобы быть уверенным в консистентности перед апгрейдом. Но вообщем хепи енд (грязный секас). Я развалил кластер что в нем осталась только одна нода (можно было этот шаг пропустить), после этого грохнул нафиг проблемный кейспес, сделал эту оставшуюся ноду сидом, отбутстрапил с неё остальные ноды, отрепеирил и восстанавил из снапшота кейспес. Вообщем изменения схем данных, и осбенно материализованных представлений - явно не конек кассандры. Вам спасибо за содействие.
Tadeusz
да нет проблем
Serega
кстати чисто девопсный вопросик... я вообщем давно уже считаю что создавать схемы данных должны клиенты (приложения) при коннекте к кластеру. Задача админа собственно только дать креды этому приложению. Мы собсно так это и раскатывали из-под k8s, но сегодняшний дебаг меня заставил призадуматься. Потому что может получатся что два клиента запровижинят одну и тужу схему. Кубер, конечно, их стартанет поочереди, но оба клиента могут решить что схемы еще нет (create if not exist не гарантия) Вообщем как быть.....брать опять на свои плечи создание схем, че-то не охото, но и и так жить нафиг нафиг.
Serega
это ж кассандра 😉 там все ноды равнозначные. Я, правда, не берусь пока утверждать что это 100% так, но даже с k8s strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 вполне возможно что при деплое первый клиент делает инициализацию быстренько (и уже отвечает на readyness probe что все ок), но схема не успевает отреплицироваться по всему кластеру, и тут второй клиент из репликисет такой стартует: "опа, да тут нет нужной мне схемы, создам ка" Кароче, тема для приличного инвестигейта. Можно затянуть, конечно, в архитектуру еще и очередь, чтобы на её базе делать лок, но как-то попахивает оверинженерингом. Вообщем, если у кого есть аргументированные кейсы, чтобы не провижинить схему данных в базы приложением - буду весьма благодарен
G72K
Утверждать не буду, давно дело было, но мне казалось, что операции со схемой в кассандре полностью синхронные и ожидают подтверждения со всех нод
Serega
понаблюдаю...может так звезды сложились, что был и дроп и креэйт
G72K
понаблюдаю...может так звезды сложились, что был и дроп и креэйт
А не. Погуглил. Все так как сказал, но с точностью до наоборот. Все изменения схемы летают по gossip и вообще никаких ручек нет когда что на какую ноду прилетит. Ключевые слова для гуглежа: Cassandra schema disagreement
Serega
ага, спасибо! похоже веский повод призадуматься об автопровижине схем в кассандре..;/
Serega
вообще я впроцессе гугления на эти советы наткнулся и озадачился http://grokbase.com/t/cassandra/user/15barhz1gm/unknowncolumnfamily-exception-schema-inconsistencies#201511103szpbd37pgskqmgf6s2r4sqx7c что рекомендуют руками схему деплоить
Womchik
уже обсудили, что powershell есть под мак и линукс?
Bogdan (SirEdvin)
А зачем?
Womchik
а как же без этого? не башем же на старости баловаться
Anonymous
Не делайте git pull, делайте git fetch && git reset —hard origin/master
Если честно, я даже не знаю, что там делает jenkins у себя под капотом.
Womchik
ну да. это же closed source
Tadeusz
https://www.opennet.ru/opennews/art.shtml?num=47902
Alexander
https://www.opennet.ru/opennews/art.shtml?num=47902
Не понятно, радоваться ли, что сделали хоть что-то без js, или негодовать, что использование нецелевое, и не на пользу юзера
Tadeusz
Плакать)
Sergey
это ж кассандра 😉 там все ноды равнозначные. Я, правда, не берусь пока утверждать что это 100% так, но даже с k8s strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 вполне возможно что при деплое первый клиент делает инициализацию быстренько (и уже отвечает на readyness probe что все ок), но схема не успевает отреплицироваться по всему кластеру, и тут второй клиент из репликисет такой стартует: "опа, да тут нет нужной мне схемы, создам ка" Кароче, тема для приличного инвестигейта. Можно затянуть, конечно, в архитектуру еще и очередь, чтобы на её базе делать лок, но как-то попахивает оверинженерингом. Вообщем, если у кого есть аргументированные кейсы, чтобы не провижинить схему данных в базы приложением - буду весьма благодарен
Тут всё может быть достаточно просто. Кассандра работает поверх зукипера, через него можно организовать все необходимые блокировки.
Serega
вы что-то путаете. Зукипер это отдельная тема.
Sergey
вы что-то путаете. Зукипер это отдельная тема.
Я путаю меньше, чем нисколько. В конфигах Кассандры даже настройка такая есть - запускать свой экземпляр Зукипера или использовать внешний 😉
Serega
покажите эту настройку. https://docs.datastax.com/en/cassandra/3.0/cassandra/configuration/configCassandra_yaml.html
Serega
датастакс помер, кстати 🙂
Артем, кстати почему помер? я как-то с ихними менеджерами разговаривал, вроде живут да здравствуют
Tadeusz
на момент когда я увольнялся (август 2017) они объявили ранее что прикрывают лавочку
Serega
странно. Ну посмотрим. Прайсинг у них не для простых смертных в любом случае.
Sergey
я ошибся
Serega
лучше скажите, а в какой версии был? в 3.0 и 2.1 зукипера тоже вроде не было. И как я понимаю дизайн кассандры - он там и не нужен
Dmitry
всем привет. есть у кого опыт анализа производительности по linux perf (perf_events) и networking подсистемы? столкнулся с тем, что дебаг ядро openvz, судя по perf, проводит много времени в tcp_write_xmit/tcp_ack сисколах, в топе стек трейса которых фигурирует save_stack вызовы. при этом swapper жрет 25% ресурсов из-за softirq, в топе опять же, tcp_ack.
Gleb
У тебя там часом ресайкл тсп и реюз не подрублены ?