
Alexey
04.10.2018
20:50:58

Daniel
04.10.2018
21:02:02


Alexey
04.10.2018
21:15:01
Спасибо за замечание ?
Алексей, раз вы здесь, подскажите, что за unexpected таблицы в detached, при каких условиях они образуются, что с ними делать?
Не похоже, чтобы таблицы потеряли данные, но они есть, например:
unexpected_20181001_20181001_75431_75431_0
Это куски, которые при старте были обнаружены в файловой системе, но отсутствуют в ZooKeeper. Это значит, что при вставке или мерже, транзакция в ZK не прошла. В случае вставки, клиент не получил успешного ответа на INSERT, и кусок не считается вставленным. То есть, такого куска не должно быть. (Это не является потерей данных.)

Google

Daniel
04.10.2018
21:18:51
Это куски, которые при старте были обнаружены в файловой системе, но отсутствуют в ZooKeeper. Это значит, что при вставке или мерже, транзакция в ZK не прошла. В случае вставки, клиент не получил успешного ответа на INSERT, и кусок не считается вставленным. То есть, такого куска не должно быть. (Это не является потерей данных.)
Были проблемы с ZK у нас как раз, в момент когда на этот шард активнее всего писалось, всё сходится.
То есть если клиент отслеживает ошибки вставки и повторяет их до кода успеха, то такие unexpected на самих серверах с Кликхаусом можно удалять?

Alexey
04.10.2018
21:20:16
Да.

Marsel
05.10.2018
09:21:41
Привет! Когда лучше использовать toYYYYMMDD(EventDate) вместо toYYYYMM(EventDate)? Это даст какое-то улучшение, если в запросах везде используется EventDate >= '...'?

Vladimir
05.10.2018
09:55:06
Добрый день.
Есть кластер версси 1.1.54385
Хочется обновиться, но боязно тк продакшен
Может есть где-то список критичных багов или на какие версии точно не надо обновляться?
Ну типа GA релизы что ли?
Кто как решает этот вопрос?

Ivan
05.10.2018
09:55:39

kockockoc
05.10.2018
09:58:08
а https://github.com/yandex/ClickHouse/blob/master/CHANGELOG_RU.md - это точно хороший способ?

Vladimir
05.10.2018
09:58:13
Это то да, как рраз сейчас его сделали, но что-то подумалось неужели все делают тестовый стенд и независимо тестируют. Поинтетесовался тк возможно аналогично логу изменении есть лог критичных багов.
Спсб

kockockoc
05.10.2018
10:00:02
а то в CHANGELOG_RU.md, CHANGELOG.md и в https://github.com/yandex/ClickHouse
везде разные stable релизы

S
05.10.2018
10:01:38
Добрый день, подскажите куда копать?
<Error> HTTPHandler: Cannot send exception to client: Code: 173, e.displayText() = D
B::Exception: Allocator: Cannot malloc 1.00 MiB., errno: 12, strerror: Cannot allocate memory, e.what() = DB::Exceptio
n, Stack trace:

Wolf
05.10.2018
10:02:25

S
05.10.2018
10:04:01
Обновили версию, довольно сильно промотали, раньше памяти хватало, сейчас даж в свап не уходит падает с такой ошибкой

Google

Artem
05.10.2018
10:05:03


S
05.10.2018
10:06:53
<Error> void DB::StorageBuffer::flushThread(): Code: 173, e.displayText() = DB::Exce
ption: Allocator: Cannot malloc 4.00 KiB., errno: 12, strerror: Cannot allocate memory, e.what() = DB::Exception, Stac
k trace:
0. /usr/bin/clickhouse-server(StackTrace::StackTrace()+0x16) [0x56d06c6]
1. /usr/bin/clickhouse-server(DB::Exception::Exception(std::__cxx11::basic_string<char, std::char_traits<char>, std::a
llocator<char> > const&, int)+0x22) [0x2da2d92]
2. /usr/bin/clickhouse-server(DB::throwFromErrno(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocat
or<char> > const&, int, int)+0x1bc) [0x56b784c]
3. /usr/bin/clickhouse-server(Allocator<false>::alloc(unsigned long, unsigned long)+0x156) [0x56aec56]
4. /usr/bin/clickhouse-server(void DB::PODArray<unsigned long, 4096ul, Allocator<false>, 15ul>::reserveForNextSize<>()
+0xd4) [0x2e9e7f4]
5. /usr/bin/clickhouse-server(DB::ColumnString::insertFrom(DB::IColumn const&, unsigned long)+0x181) [0x4f449b1]
6. /usr/bin/clickhouse-server(DB::MergedBlockOutputStream::writeImpl(DB::Block const&, DB::PODArray<unsigned long, 409
6ul, Allocator<false>, 15ul> const*)+0x745) [0x50c2af5]
7. /usr/bin/clickhouse-server(DB::MergeTreeDataWriter::writeTempPart(DB::BlockWithPartition&)+0xa2e) [0x50a0dce]
8. /usr/bin/clickhouse-server(DB::MergeTreeBlockOutputStream::write(DB::Block const&)+0xc9) [0x5043659]
9. /usr/bin/clickhouse-server(DB::PushingToViewsBlockOutputStream::write(DB::Block const&)+0x43) [0x521b583]
10. /usr/bin/clickhouse-server(DB::AddingDefaultBlockOutputStream::write(DB::Block const&)+0x6b8) [0x51a07f8]
11. /usr/bin/clickhouse-server(DB::SquashingBlockOutputStream::finalize()+0x248) [0x52208d8]
12. /usr/bin/clickhouse-server(DB::SquashingBlockOutputStream::writeSuffix()+0x11) [0x5220b61]
13. /usr/bin/clickhouse-server(DB::StorageBuffer::writeBlockToDestination(DB::Block const&, std::shared_ptr<DB::IStora
ge>)+0xd8a) [0x53980aa]
14. /usr/bin/clickhouse-server(DB::StorageBuffer::flushBuffer(DB::StorageBuffer::Buffer&, bool)+0x3a5) [0x5398695]
15. /usr/bin/clickhouse-server(DB::StorageBuffer::flushThread()+0x60) [0x5398b40]
16. /usr/bin/clickhouse-server() [0x930310f]
17. /lib/x86_64-linux-gnu/libpthread.so.0(+0x7494) [0x7fb5155ea494]
18. /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7fb514e24a8f]
При чем большая часть ОП занята кэшами, у КХ растет только VIRT память, RES больше 2000M не поднимается
ну и свап свободен полностью
Когда сваливается эта ошибка даж мержи с malloc падают


Artem
05.10.2018
10:10:15
упасть может в любом месте, память аллоцирует все подряд
проблема не в кликхаусе. упадет любая прорамма в этот момент

Леонид
05.10.2018
10:11:09
Всем день добрый.
Подскажите, как-то посмотреть, как запрос выполняется, можно?

S
05.10.2018
10:12:10
Лучше скажите за чем понаблюдать
Я даж воспроизвести, наверно, смогу

Artem
05.10.2018
10:13:24
ну может Вам его cgroup-ами зарезали или еще как. можно выставить лимит на память, чтобы ловить проблему раньше

S
05.10.2018
10:13:52

Artem
05.10.2018
10:14:40
ну, у вас есть пиковый момент, когда в системе нет памяти, можно посмотреть по top или другими средствами мониторинга. если причина в конкретном запросе - стоит попробовать зарезать запросы лимитами
тогда они будут отваливаться по exception-у, а сервер не падать
если память съедает соседний процесс - лечить разграничением памяти средставми linux

Denis
05.10.2018
10:16:16
в dmesg будет лог oom_killer, почитайте, может будут наводки

Artem
05.10.2018
10:16:23
max_memory_usage, 0, "Maximum memory usage for processing of single query. Zero means unlimited."
max_memory_usage_for_user, 0, "Maximum memory usage for processing all concurrently running queries for the user. Zero means unlimited."
max_memory_usage_for_all_queries, 0, "Maximum memory usage for processing all concurrently running queries on the server. Zero means unlimited."

S
05.10.2018
10:16:41
Падает сам КХ без ООМ

Google

S
05.10.2018
10:19:12
Падает, пока 2 раза было, на инсерте пачки в 3млн строк

Denis
05.10.2018
10:23:30

S
05.10.2018
10:24:30
18.10.3

Denis
05.10.2018
10:26:13
Заменен аллокатор tcmalloc на jemalloc.

S
05.10.2018
10:27:05
Хм, сейчас подумаем, спасибо за наводку

Vitaliy
05.10.2018
10:31:01
Hi
как можна корректно отстоновить кх, если он на systemd и init.d не реагирует?
на kill $pid тоже

Wolf
05.10.2018
10:33:56
никак , сделайте kill -9

Vitaliy
05.10.2018
10:35:04
пичалька…..

Wolf
05.10.2018
10:38:05
ну о ну вас завис , о корректной остановке тут сложно говорить

Artem
05.10.2018
10:38:05
в идеале перед этим подсоединиться gdb и сделать 'thread apply all bt' и завести issue на гитхабе

Vitaliy
05.10.2018
10:40:44
он не завис, он работал
с чтением/записю проблем небыло

Александр
05.10.2018
11:26:51
Всем привет! А кто подскажет, если я на кластере 4x2 запускаю optimize table some_replicated_table, то этот запрос само собой пробрасывается и на реплики, НО, судя по метрике мерджей это и на шарды тоже пробрасывается. Это так? Кто знает? )


J
05.10.2018
11:40:49
Добрый день!
Кто нибудь, помогите :)
Пытаюсь подключить внешний словарь выдает ошибку:
"Code: 32, e.displayText() = DB::Exception: Attempt to read after eof: error parsing null_value, e.what() = DB::Exception"
настройка :
<yandex>
<dictionary>
<name>asn</name>
<layout>
<range_hashed />
</layout>
<source>
<file>
<path>/opt/clickhouse/dictionaries/ASN.csv</path>
<format>CSV</format>
</file>
</source>
<structure>
<id>
<name>Id</name>
</id>
<attribute>
<name>IPRangeStart</name>
<type>Int64</type>
<null_value></null_value>
</attribute>
<attribute>
<name>IPRangeEnd</name>
<null_value></null_value>
<type>Int64</type>
</attribute>
<attribute>
<null_value></null_value>
<name>IPRange</name>
<type>String</type>
</attribute>
<attribute>
<null_value></null_value>
<name>ASN</name>
<type>Int64</type>
</attribute>
<attribute>
<null_value></null_value>
<name>ORG</name>
<type>String</type>
</attribute>
</structure>
</dictionary>
</yandex>
пример строки из CSV:
"16778752","16779007","1.0.6.0/24","56203","Big Red Group"
Заранее благодярю!


Vladimir
05.10.2018
11:56:55
?


J
05.10.2018
11:58:06
В csv id нет
Спасибо, сейчас попробую убрать

Google

Wolf
05.10.2018
12:02:13

Viktor
05.10.2018
12:34:12
@JSFunnnn вот так должен выглядеть конфиг для словаря https://gist.github.com/vmanyushin/38344bc89fda0d80c187ccb52223e7ee сами данные в CSV не должны быть в кавычках если это не строки
16778752,16779007,"1.0.6.0/24",56203,"Big Red Group"

Александр
05.10.2018
12:35:08

Марат
05.10.2018
12:35:52
а есть кто из Казани, готовый интегрировать Clockhouse в работающую систему?

Александр
05.10.2018
12:42:02
Ох уж эти мутации.
2018.10.05 15:40:50.098966 [ 13 ] <Error> default.entities_results_replicated (StorageReplicatedMergeTree): Code: 40, e.displayText() = DB::Exception: Checksums of parts don't match: hash of uncompressed files doesn't match, uncompressed hash of compressed files doesn't match, e.what() = DB::Exception. Data after mutation is not byte-identical to data on another replicas. We will download merged part from replica to force byte-identical result.
Валит нонстопом и висят мутации в процессе...Я так понял их лучше запускать ТОЛЬКО на мастер репликах либо только на одной реплике

Wolf
05.10.2018
12:42:06

Александр
05.10.2018
12:42:07
Иначе они тупо ломаются

Wolf
05.10.2018
12:42:57
по сути у вас получились куски разные на двух репликах, а если данные были одни и теже и мутация прошла одна и таже, но и на выходе должно получиться одно и тоже

Александр
05.10.2018
12:44:36

Wolf
05.10.2018
12:45:13
ну я же говорю у вас проблема с диском процом или памятью , так что на выходе может быть что угодно , то есть я бы сразу такую реплику из работы убирал бы

Александр
05.10.2018
12:50:50

Wolf
05.10.2018
12:51:10
я на тестах мутаций делал очень много и по разному и никаких проблем не было , в кх вообще нет понятия мастер реплика , запускать на одной реплике вообще не понятно что значит, так как мутации реплицируются и ты их всегда запускаешь везде

Александр
05.10.2018
12:51:40
И такие траблы начинаются если во время мутации что-то пошло не так. Например delete where column in ANOTHER_TABLE и вот если ANOTHER_TABLE не существует, но потом появляется, то мутация проходит, но данные бьются

Wolf
05.10.2018
12:52:01
ну это понятное дело

Александр
05.10.2018
12:52:02
Это очень плохо. У нас такое не первый раз уже. И постоянная дрочка вот этой репликации создает нам нагрузку большую

Wolf
05.10.2018
12:52:07
так делать не надо
либо надо руками плохую мутацию удалять но это гемор очень большой
плохие мутации не надо генерировать так как в кх нет механизма их авторазрешения
зачем вы вообще делаете делете с участием несуществующей таблицы то ?

Google

Vladimir
05.10.2018
12:55:03