
Vadim
24.08.2018
06:32:38
запускаешь оптимизацию, на время ее работы вставляется 50-80% от нормы и все останавливается вновь, обычно одна из нод перегружена по диску и все еле ползет, данные отстают и накапливаются в carbon-clickhouse
сейчас виртуалка принимает реплику, пока ни одной ошибки о расхождении, запустил на минуту реплику на 2й железный сервер, так в ту же минуту ошибки расхождения посыпались, в mcelog пусто

Wolf
24.08.2018
06:33:48
Ну значит проблема не в версии

Vadim
24.08.2018
06:35:00
неделю не могу локализовать, думал покоррачены данные , перелил все с помощью insert ... select

Google

Vadim
24.08.2018
06:35:51
только начинаю лить, ошибки на свежие данные

Wolf
24.08.2018
06:36:30
Ну на других серверах надо пробовать чтобы исключить железо

Vadim
24.08.2018
06:40:15
так вот, все ломалось, когда лил:
server1 -> server2
server1 -> VM1
server2 -> server1
сейчас льется
server2 -> VM1
и ошибок пока нет. Похоже, проблема в сервере1

Wolf
24.08.2018
06:41:26
Ну смахивает на железо что чексуммы не правильно считаются

Алексей
24.08.2018
06:42:17
При сборке build-normal error: cannot find -lLLVM - кто нибудь сталкивался?

Wolf
24.08.2018
06:47:04
А разве не гцц он собирается?

Vladimir
24.08.2018
06:49:08
подскажите, как можно выбрать таблицу в случайном порядке?


Vadim
24.08.2018
06:57:29
Ну смахивает на железо что чексуммы не правильно считаются
Начинается репликация нормально, потом в логе принимающего:
2018.08.24 09:19:10.005141 [ 22 ] <Debug> default.graphite (ReplicatedMergeTreeQueue): Not executing log entry for part 20180823_20180824_312050_312069_2 because another log entry for the same part is being processed. This should
n't happen often.
2018.08.24 09:19:10.060520 [ 118 ] <Debug> default.graphite_tree (ReplicatedMergeTreeQueue): Pulled 1 entries to queue.
2018.08.24 09:19:10.061299 [ 94 ] <Debug> default.graphite_tree (StorageReplicatedMergeTree): Fetching part 20171201_20171201_428163_428163_0 from /clickhouse/tables/02/graphite_tree/replicas/r6
2018.08.24 09:19:10.184892 [ 94 ] <Debug> default.graphite_tree (StorageReplicatedMergeTree): Fetched part 20171201_20171201_428163_428163_0 from /clickhouse/tables/02/graphite_tree/replicas/r6
2018.08.24 09:19:10.874665 [ 66 ] <Debug> MergingSortedBlockInputStream: Merge sorted 436 blocks, 3564587 rows in 14.23 sec., 250444.87 rows/sec., 35.08 MB/sec.
2018.08.24 09:19:10.874920 [ 66 ] <Debug> default.graphite (MergerMutator): Merge sorted 3820242 rows, containing 5 columns (5 merged, 0 gathered) in 14.24 sec., 268348.84 rows/sec., 36.75 MB/sec.
2018.08.24 09:19:10.883715 [ 66 ] <Debug> default.graphite (Data): Undoing transaction. Removing parts: 20180823_20180824_312070_312073_1.
2018.08.24 09:19:10.883893 [ 66 ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of co
mpressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Usi
ng another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption i
n memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
2018.08.24 09:19:10.884024 [ 66 ] <Debug> MemoryTracker: Peak memory usage: 103.21 MiB.
2018.08.24 09:19:10.885331 [ 66 ] <Debug> default.graphite (StorageReplicatedMergeTree): Part 20180823_20180824_312070_312073_1 (state Outdated) should be deleted after previous attempt before fetch
2018.08.24 09:19:10.885457 [ 128 ] <Debug> default.graphite (StorageReplicatedMergeTree): Removing 1 old parts from ZooKeeper
2018.08.24 09:19:10.885514 [ 66 ] <Debug> default.graphite (ReplicatedMergeTreeQueue): Not executing log entry for part 20180823_20180824_307295_307594_6 because it is covered by part 20180801_20180824_300770_309471_10 that is cu
rrently executing
Undoing transaction. Removing parts: - всегда говорят о том, что сервер занят бесконечнымим мерджами


Wolf
24.08.2018
06:59:18
у вас случаем не белиберда какая то в зукипере ?
в плане при создании таблиц не получилось что они создались с одними и теми же путями

Алексей
24.08.2018
07:01:56

Vadim
24.08.2018
07:02:49
когда удяляю таблицу, в зукипере пропадают ее пути, пробовал на поблемном сервере уже сменить ID реплики с r1 ->r7 , пути создались верные, новые, вроде все ок, мб известно, что конкретно смотреть?

Google

Wolf
24.08.2018
07:03:07

Vadim
24.08.2018
07:05:21
сейчас на r7 удалена реплицируемая таблица, так в ЗК:
[zk: localhost:2181(CONNECTED) 6] ls /clickhouse/tables/02/graphite/replicas
[r5, r6]
это виртуалка и сервер2

Kirill
24.08.2018
07:06:23

Vadim
24.08.2018
07:06:47
выключить?
нет такой переменной в конфигах

Kirill
24.08.2018
07:11:28

Vadim
24.08.2018
07:12:27
ясно, перед включением в реплику серрвера1 выключу, спасибо
отключил везде, в config-preprocessed появилось, в system.settings не появляется

Dmitry
24.08.2018
07:26:24
Вопрос ещё актуальный...
просо в КХ есть функци generateUUIDv4() но она генерит тип UUID который хоть возвращается, как String при format JSON, но с периодически там проскакивают UUID с символом переноса строки, что является невалидным JSON при парсинге

Vadim
24.08.2018
07:31:11
Как проверить,что use_minimalistic_checksums_in_zookeeper отключено ?


Yuriy
24.08.2018
07:44:08
Добрый день. А есть ли у КХ возможность сконфигурировать движок, или добавить что-то в запрос, таким образом, чтобы не происходила вставка данных при "конфликте" по одному или нескольким полям? По ПК или по другому кортежу
Суть в том, что я хочу исключить возможность сохранения дублирующихся метрик (вдруг сервис глюканул и прислал два раза одно и то же, или вдруг импорт старых данных происходил и что-то куда-то наложилось)
есть, конечно, ReplacingMergeTree, но я вот хочу использовать SummingMergeTree ?
о... А я же могу загруужать данные в таблиицу ReplacingMergeTree, а потом с него в таблиицу SummingMerge. Хм. По крайней мере это можно реализовать только для импорта метрик. Но вот строка из документации меня немного смущает и удивляет:
"Таким образом, ReplacingMergeTree подходит для фоновой чистки дублирующихся данных в целях экономии места, но не даёт гарантий отсутствия дубликатов."
т.е. он это делает, но не дает гарантий. Однако.


Mike
24.08.2018
08:30:18
Так никакой MergeTree движок не даёт гарантий — там могут быть записи, которые не смерджились

Google

Roman
24.08.2018
08:31:47
ODBC драйвер на сервере работает(isql подключается и запросы выполняет), на виндовом десктопе ворбук тоже работает нормально.
DSN имеют одинаковые имена, что на сервере, что на декстопе
В веб интерфейсе после того как подключаюсь к воркбуку выдается такая ошибка
Смущает что показывает «unable to connect to localhost», хотя в DSN(System wide) указаны другие порты, может как-то надо настраивать по особенному для табло?

Mike
24.08.2018
08:42:19

Александр
24.08.2018
08:45:32
Ребят, а репликация не тянется по какой причине? В логе куча ошибок типа connection refused.
https://gist.github.com/the-tinderbox/e1d6692217d165e38987682aa3d6a73c
При том, что сервера доступны между собой
И зукипер работает
Логинов и паролей кастомных нет, listen в :: стоит. Все по дефолту после установки.
Макросы прописаны, в ЗК есть ноды для каждой реплики

Alexander
24.08.2018
08:48:44
Он обычно в логе пишет в какие url'ы пытается сходить за данными, можно попробовать curl'ом дёрнуть.

Александр
24.08.2018
08:49:25
Прикольно. Он какой-то непонятный хостнейм пытается использовать...
Блин, ну явно же в конфиге прописан хостнейм по которому ходить...

Alexander
24.08.2018
08:49:58
interserver_http_host?

Александр
24.08.2018
08:50:27
Понятно, туда нужно еще прописать. Там закомменченно все, по умолчанию берет hostname -f

Alexander
24.08.2018
08:51:01
Да, так и есть

Александр
24.08.2018
08:51:20

Алексей
24.08.2018
09:03:47

Vadim
24.08.2018
09:50:10

Azat
24.08.2018
10:01:14
кажись я тебя знаю

Kirill
24.08.2018
10:04:26
Как проверить,что use_minimalistic_checksums_in_zookeeper отключено ?
Это настройки MergeTree вы их либо в соответствующий конфиг вписываете либо при создании таблицы, в новый версиях можно
SELECT *
FROM system.merge_tree_settings
WHERE name = 'use_minimalistic_checksums_in_zookeeper'
┌─name────────────────────────────────────┬─value─┬─changed─┐
│ use_minimalistic_checksums_in_zookeeper │ 1 │ 0 │
└─────────────────────────────────────────┴───────┴─────────┘
1 rows in set. Elapsed: 0.006 sec.

Michal
24.08.2018
10:05:09
Вопрос остается в силе, как проверить. что настройка изменилась?
Судя по тестам ( https://github.com/yandex/ClickHouse/blob/0eed697623afd251c1908073c4a2850a9bfc9cdc/dbms/tests/queries/0_stateless/00611_zookeeper_different_checksums_formats.sql )
примерно так:
SELECT value FROM system.zookeeper WHERE path='{путь к таблице}/replicas/{название реплики}/parts/{название свежей части}' AND name = 'checksums';

Google

Michal
24.08.2018
10:06:27
Если значение начиниается с 'checksums format version: 4' и - значит старый формат. Если 'checksums format version: 5' - значит новый / минималистичный.
Это влияет только на нововставленные / свежесмердженные куски.

Vadim
24.08.2018
10:10:46
ясно
на сервере2, который перезагружал =4, на сервере1, без перезагрузки, тот же путь, но другой ИД реплики, =5

Kirill
24.08.2018
10:16:34
Если, конечно, руками настройки не меняли

Vadim
24.08.2018
10:17:07
нет ,версия одинаковая, я поменял всем конфиг, но перезагрузил только серв2
менял, так как валится репликация

Kirill
24.08.2018
10:17:32
ОК


Vadim
24.08.2018
10:18:23
Начинается репликация нормально, потом в логе принимающего:
2018.08.24 09:19:10.005141 [ 22 ] <Debug> default.graphite (ReplicatedMergeTreeQueue): Not executing log entry for part 20180823_20180824_312050_312069_2 because another log entry for the same part is being processed. This should
n't happen often.
2018.08.24 09:19:10.060520 [ 118 ] <Debug> default.graphite_tree (ReplicatedMergeTreeQueue): Pulled 1 entries to queue.
2018.08.24 09:19:10.061299 [ 94 ] <Debug> default.graphite_tree (StorageReplicatedMergeTree): Fetching part 20171201_20171201_428163_428163_0 from /clickhouse/tables/02/graphite_tree/replicas/r6
2018.08.24 09:19:10.184892 [ 94 ] <Debug> default.graphite_tree (StorageReplicatedMergeTree): Fetched part 20171201_20171201_428163_428163_0 from /clickhouse/tables/02/graphite_tree/replicas/r6
2018.08.24 09:19:10.874665 [ 66 ] <Debug> MergingSortedBlockInputStream: Merge sorted 436 blocks, 3564587 rows in 14.23 sec., 250444.87 rows/sec., 35.08 MB/sec.
2018.08.24 09:19:10.874920 [ 66 ] <Debug> default.graphite (MergerMutator): Merge sorted 3820242 rows, containing 5 columns (5 merged, 0 gathered) in 14.24 sec., 268348.84 rows/sec., 36.75 MB/sec.
2018.08.24 09:19:10.883715 [ 66 ] <Debug> default.graphite (Data): Undoing transaction. Removing parts: 20180823_20180824_312070_312073_1.
2018.08.24 09:19:10.883893 [ 66 ] <Error> default.graphite (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of co
mpressed files doesn't match, e.what() = DB::Exception. Data after merge is not byte-identical to data on another replicas. There could be several reasons: 1. Using newer version of compression library after server update. 2. Usi
ng another compression method. 3. Non-deterministic compression algorithm (highly unlikely). 4. Non-deterministic merge algorithm due to logical error in code. 5. Data corruption in memory due to bug in code. 6. Data corruption i
n memory due to hardware issue. 7. Manual modification of source data after server startup. 8. Manual modification of checksums stored in ZooKeeper. We will download merged part from replica to force byte-identical result.
2018.08.24 09:19:10.884024 [ 66 ] <Debug> MemoryTracker: Peak memory usage: 103.21 MiB.
2018.08.24 09:19:10.885331 [ 66 ] <Debug> default.graphite (StorageReplicatedMergeTree): Part 20180823_20180824_312070_312073_1 (state Outdated) should be deleted after previous attempt before fetch
2018.08.24 09:19:10.885457 [ 128 ] <Debug> default.graphite (StorageReplicatedMergeTree): Removing 1 old parts from ZooKeeper
2018.08.24 09:19:10.885514 [ 66 ] <Debug> default.graphite (ReplicatedMergeTreeQueue): Not executing log entry for part 20180823_20180824_307295_307594_6 because it is covered by part 20180801_20180824_300770_309471_10 that is cu
rrently executing
@kshvakov выставление настройки =0 может помочь с этой проблемой ?


Alexander
24.08.2018
10:18:55

Vadim
24.08.2018
10:19:27
а есть какой-то тестмем для консоли, что бы ОС не перезагружать?

Kirill
24.08.2018
10:22:58

prll
24.08.2018
11:10:54

Roman
24.08.2018
11:16:13

Egor
24.08.2018
11:17:48
добрый день
пытаюсь вставить в КХ csv файл (экспорт из постгреса), в котором в начале значения строкового поля может стоять одинарная кавычка, например
11968,'cths,2619485523
в этом случае КХ считывает одинарную кавычку как обрамление строкового значения и парсинг рушится.
подскажите пожалуйста, есть ли какая-то возможность заставить КХ игнорировать знак одинарной кавычки в принципе?

Oleg
24.08.2018
11:19:45
Здравствуйте, а есть какие-то подводные камни апгрейда кликхауса? Имеется 2 ноды версии 1.1.54327 с реплицирующимися через зукипер таблицами (ReplicatedReplacingMergeTree). Не отвалятся ли таблицы при апгрейде? Есть какие-то рекомендации по самому процессу апгрейда? В доке не нашел, если плохо искал - ткните, пожалуйста

Michal
24.08.2018
11:23:54

Alexander
24.08.2018
11:24:52

Google

Alexander
24.08.2018
11:25:48
Если обновляться сразу на новую версию, то должно быть ок

Alexander
24.08.2018
11:30:14

Анатолий
24.08.2018
11:31:09

Alexander
24.08.2018
11:31:29

Alexey
24.08.2018
11:32:22

Alexander
24.08.2018
11:33:07


Michal
24.08.2018
11:33:31
Здравствуйте, а есть какие-то подводные камни апгрейда кликхауса? Имеется 2 ноды версии 1.1.54327 с реплицирующимися через зукипер таблицами (ReplicatedReplacingMergeTree). Не отвалятся ли таблицы при апгрейде? Есть какие-то рекомендации по самому процессу апгрейда? В доке не нашел, если плохо искал - ткните, пожалуйста
Обновление на отдельном сервере происходит так - обновляете пачки, после чего запускаете рестарт clickhouse-server (сам при обновлении пачек не перезапустится, продолжит работать старый).
Идеальный сцераний обновления:
1) обновляете стейджинг, запускаете тесты, радуетесь что ничего не высыпалось.
2) (по возможности) останавливаете запись в КХ
3) обновляете одну реплику (все шарды), перезапускаете их. Ждете немного, радуетесь что ничего не высыпалось.
4) Потом так же обновляете остальные реплики. В некоторых (редких) случаях реплики разных версий не могут сосуществовать в одном кластере (проверяйте changelog), тогда нужно сразу все апдейтовать.
Если что-то пошло не так - то нужно
1) начать паниковать
2) сделать роллбака
3) ещё попаниковать
4) разобраться что пошло не так


Alexander
24.08.2018
11:40:05

Kirill
24.08.2018
11:40:32

Vadim
24.08.2018
11:40:38

Egor
24.08.2018
11:42:03

Michal
24.08.2018
11:42:44
Пачки?
Сорри. deb-пакеты имеются в виду. В Польше обитаю, польсий язык похожий, иногда в русскую речь проскакивают словечки из польского.
Но догадаться вроде можно :)

Kirill
24.08.2018
11:44:42

Michal
24.08.2018
11:46:27
Если размер партиций не очень большой, можно всю партицию скопировать куда-то потом удалить и залить заново.