
Denys ??
24.07.2017
07:54:38
Не фанат оракла ниразу, но btrfs - кал, извините

Евгений
24.07.2017
07:55:36

Anton
24.07.2017
08:08:50

Roman
24.07.2017
08:14:12

Google

Denys ??
24.07.2017
08:14:46
Тем что это ручной пиздец
КХ это суровая система для сурового железа с выделенным админом
На другие юзкейсы она натягивается плохо

Roman
24.07.2017
08:16:52
А ты его вообще уже ставил? :)

Denys ??
24.07.2017
08:19:31
Describe ставил

Roman
24.07.2017
08:21:17
ну просто ты его как-то страшно описываешь. а он на самом деле простой и понятный. я даже как-то затрудняюсь назвать более простую и удобную в эксплуатации базу данных.

Evgeny
24.07.2017
08:26:49
я сейчас переливаю метрики в clickhouse на двух серверах с помощью https://github.com/bzed/whisper-to-graphite , смотрю что место в /var/lib/clickhouse/ растет вообще незаметно - как он там жмет непонятно, но очень хорошо судя по расходу )

Vladimir
24.07.2017
08:28:15
если б там для value и ts можно было б задать double-delta компрессию, было б еще лучше

Stas
24.07.2017
08:28:46
А подскажите, зачем используют graphite + clickhouse а не grafana + clickhouse ? Я же верно понимаю, что графит это аналог графаны?

Evgeny
24.07.2017
08:28:58
в go-carbon использвали sparce файлы 600Гб на файловай системе по df

Vladimir
24.07.2017
08:28:59
@SomeoneBehindYou графана - морда
графит это набор конвенций по API в том числе

Google

Vladimir
24.07.2017
08:29:31
формат входных и выходных данных + референсная имплементация этого (и пачка альтернативных)

Stas
24.07.2017
08:29:58

Vladimir
24.07.2017
08:30:14
и готовый мониторинг по нему

Alex
24.07.2017
08:30:28
в графите функции - грубо говоря

Vladimir
24.07.2017
08:30:30
во вторых если не графит, то создание протокола и тулзов на тебе
в графите в морде куча математики есть уже (не всегда хорошей впрочем)

Roman
24.07.2017
08:30:47

Vladimir
24.07.2017
08:31:04
@SomeoneBehindYou тут где-то упоминали что в графане например нельзя алерты делать по не core плагинам (graphite, es, prometheus, influxdb вроде бы)
именно средствами графаны

Stas
24.07.2017
08:31:24
Ок, спасибо :)

Vladimir
24.07.2017
08:31:37
ну плюс графит он простой и понятный, хотя местами и недостаточно функциональный

vladimir
24.07.2017
08:36:24
так, шардирование (На чтение) вроде бы победил, осталось с репликацией разобраться
как думаете, какой вариант лучше:
1. carbon-c-relay -> в 3 ноды
2. carbon-c-relay -> в 3 ноды + zookeeper ( не совсем понятно как он там будет работать)
3. carbon-c-relay -> в 1 ноду -> zookeeper -> 2 ноды

Vladimir
24.07.2017
08:42:31

vladimir
24.07.2017
08:43:48
да я не собираюсь пока шардинг на запись делать:
1. медленнее чем в локальный
2. отсутствует избыточность (отказоустойчивость)


Denys ??
24.07.2017
08:44:15
ну просто ты его как-то страшно описываешь. а он на самом деле простой и понятный. я даже как-то затрудняюсь назвать более простую и удобную в эксплуатации базу данных.
Я не склонен распространять опыт эксплуатации локалхоста на большой кластер. С КХ у меня пока опыт эксплуатации локалхоста, и в виде локалхоста он ОК. И исходя из документации я уже вижу могучий пиздец ожидающий его эксплуататоров в определенном юзкейсе, типа моего. При этом я вполне согласен что в юзкейсе Метрики он может смотрится неплохо - и именно в этом суть того что в Кассандре и Риаке кластеринг нормальный есть, а в КХ нет - ну не нужен им он был. У них команда админов есть, нового железа намотали, шардов добавили, старых запечатали - лепота. Графит там так и добавили - для своего случая, раз такая база под рукой есть.
И я ни разу в случаях БД не встречался со случаем - "по документации эксплуатация пиздец, а в реале - конфетка прст". Наоборот - 1000 раз. Кассандра - в доках все ОК, в реале - ад и страдание. Риак - "супер простая система в оперировании" - в результате езда по кочкам и переезд на Кассандру. Ну его нахрен, товарищи. После этого в рассказы о супер простых базах данных не верю вообще, сорри.


Vladimir
24.07.2017
08:45:33
@deniszh иногда задокументированный пипец лучше чем неявный :)

Denys ??
24.07.2017
08:45:41

vladimir
24.07.2017
08:46:59
В самом шардинге отсутствует, мы не можем сожранять N раз одну и туже информацию на N нод, чтобы в случае падения одной из нод - информация была доступна в полном объеме.

Google

Evgeny
24.07.2017
08:47:01

vladimir
24.07.2017
08:47:28
@ihard а что будет когда одна из нод отъедит?

Vladimir
24.07.2017
08:48:10

Evgeny
24.07.2017
08:48:36
это для догона отваливщейся реплики

vladimir
24.07.2017
08:50:06
хм, тоесть ты предлагаешь пользователям потерпеть 20 часов без данных по работе их сервисов, пока мы чиним сломанную ноду?

Roman
24.07.2017
08:50:26

Vladimir
24.07.2017
08:50:30
если репликация его средствами

Evgeny
24.07.2017
08:50:46
почему терпеть , весь поток метрик идет на оставшуюся ноду - для пользователей ничего не меняется они видят все метрики

vladimir
24.07.2017
08:51:13
они видят данные которые приходят сейчас, а все хвосты уже не видят

Evgeny
24.07.2017
08:51:56
у меня же зеркало

vladimir
24.07.2017
08:53:16
это первый вариант в моем предложении, считаю что он не ок потому, что данным может быть очень много - и кеша релея хватит не на 20 часов а на 20 минут
и как потом синкать друг с другом эти зеркала - вопрос
Я использую вариант 2.
оверхед на сеть не слишком большой?
типа сначала 3 потока данных влетают в 3 ноды, а потом они еще синкаются между собой по сети
или даже не так
- сначала прилетает значение в 1 сервер -синкаемся с 2-мя
- потом прилетает значение во 2 сервер - синкаемся с 2-мя
- потом в 3-ий ...
м.б. есть смысл писать в какой нить haproxy и через roundrobin Заливать на 3 сервера, если один из них отъедит то хапрокси автоматом будет писть только в 2

Vladimir
24.07.2017
08:57:20
vladimir не надо писать дважды, юзай репликацию кликхауса. Тогда синк можно делать средствами КХ
потому что в случаи КХ сделать синк не его средствами будет сложновато
пили просто в any_of сервер

Google

Vladimir
24.07.2017
08:58:10
ну или первый и второй как бэкап
на твой выбор

vladimir
24.07.2017
08:58:21

Vladimir
24.07.2017
08:58:38

vladimir
24.07.2017
08:58:57
ок, попробую так

Vladimir
24.07.2017
08:58:59
vladimir zookeeper внешная штука, которую КХ использует для синхронизации действий
vladimir просто в КХ есть механизмы восстановления сдохшей железки

Admin
ERROR: S client not available

Roman
24.07.2017
08:59:33

vladimir
24.07.2017
08:59:51
наших сетевиков беспокоит =D

Vladimir
24.07.2017
09:00:01
vladimir оно данные жмет, так что вы проверье )
в отличии кстати от carbon-c-relay :0
последний гоняет несжатие данные
то есть где-то трафика будет в 6-10 раз больше чем между двумя КХ серверами по его протоколу

vladimir
24.07.2017
09:00:52
круть

Denys ??
24.07.2017
12:00:23

vladimir
24.07.2017
12:01:31
а можно ссылочку на доку - где это сказано

Vladimir
24.07.2017
12:07:04
vladimir в случаи с репликациями все довольно просто и очевидно
у тебя есть следующие варианты:
Replication Factor = m - каждую точку хэшируем m раз и пишем на m разных нод
писать m раз

Google

Vladimir
24.07.2017
12:07:44
реплицировать на m машин
У всех трех подходов свои особенности есть
в первом случаи - ты переживаешь гарантированно падение m-1 нод без потери данных
а потом начинаешь терять ~ 1/(m-1) данных на каждую упавшую ноду, если считать что распределение у тебя идеальное
писать m раз очень похож на "реплицировать на m машин" по характеристикам
там появляется вероятность потерять данные от падения более чем m-1 машин

vladimir
24.07.2017
12:09:42
что то я вот тут:
https://clickhouse.yandex/docs/ru/table_engines/distributed.html
про Replication Factor ничего найти не могу

Vladimir
24.07.2017
12:09:52

vladimir
24.07.2017
12:09:59
так
а кто умеет?

Vladimir
24.07.2017
12:10:13
но подумай точно ли тебе нужно
vladimir КХ умеет только схему "реплицируем на m машин"

vladimir
24.07.2017
12:10:48
ну вот я про это и говорил
что шардирование в КХ не поддерживает Replication Factor, об остальных вариантах я вкурсе

Vladimir
24.07.2017
12:11:24
vladimir но как бы у тебя Replication Factor vs Репликация это trade-off количества потерянных данных в случаи отказа на уменьшение вероятности события
поэтому я вот не уверен что Replication Factor под такие данные вообще нужен
потому что железо оно не экономит

vladimir
24.07.2017
12:12:48
под репликации надо таблици пересоздавать - =(