184 похожих чатов

Я здорово апнулся в кликхаусе и полюбил его еще сильнее,

но это родило проблему - от mysql теперь чувствую боль и жжение. Почти все участки приложения либо полностью переехали в CH, либо в процессе переезда, "правильные" запросы + replacing таблицы рулят большую часть возникших сложностей и неочевидностей.
Но есть две вещи, которые я пока не знаю как сделать правильно, раньше они были в числе всего остального, что решалось mysql и искушения избавиться от него полностью не возникало, сейчас же - ситуация поменялась и ради таких мелочей держать mysql совсем не хочется.
1. Одиночные выборки из двух таблиц, одна на 10млн строк, вторая на 100м. Планирую решить таблицей с низкой грануляцией и парой матвьюшек с order by по нужным полям. RPS не большой, вроде проблемы быть не должно, но как то не правильно это.
2. Локи. У меня есть несколько ситуаций, когда запускаются сложные просчеты, которые могут занять продолжительное время. В mysql я делал get_lock, проверял флаг запущенности операции, если запущено - ок, выходим, если не запущено - ставим флаг запущенности и считаем. В CH локов не видно и это первая часть проблемы.
3. Репликация силища! Но есть отставание реплик. Соответственно эти флаги запущенности из предыдущего пункта нельзя хранить в кликхаусе (вдруг поставили флаг на одной реплике, запрашиваем на второй, которая отстает на секунду, делаем ложный вывод о том, что над задачей еще не идет работа и дублируем эту работу)
И смотря на эти три штуки я прихожу к мысли, что нужно поставить редис. В нем будут кешироваться ответы из пункта 1 снижая нагрузку от неудобных одиночных запросов + вроде как у него есть механизм локов - второй вопрос так же решается, ну и с третим вопросом он тоже должен помочь. Может быть отговорите и укажите более истинный путь?

3 ответов

6 просмотров

как вариант, для 2+3 можно использовать тот же ZooKeeper, что уже есть для репликации

Вам локи хранить чтоб просто джоба не задублилась?

КХ и mysql это разные инструменты, каждый для своего

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
32
А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Привет, запускаю werf в dind в k8s, получаю ошибку на этапе build/beforeSetup: /.werf/stapel/embedded/bin/bash: /.werf/scripts/5898bdfe5214357d3706b879cc8d3d78460fb379607cbd...
florius0
7
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Дорогие любители Прекрасной Джулии! Есть кто-то имеющий практический опыт построения ML для Систем Управления? Нам нужно сделать нейросеть для автоматической подстройки пара...
Roman Timo
4
С той же поддержкой Android в тулчейне, если кому интересно. На Swift Forums шло убогое обсуждение всякой херни годами, но ничего годного так и не появлялось. Пришел vgorloff ...
iMike
1
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Приветствую ребята,у меня база есть,прорешал много задач с литкода,там деревья,списки, бэктрэкинг и все остальное,что мне сейчас делать?есть может куда устроиться поработать,е...
Aקuст Lеתסuд Aקuст Lеתסuд
5
Всех приветствую. Направьте меня в нужное русло. Постепенно переписываю проект с delphi на lazarus. Приложение - обычный windows/linux клиент для бд firebird. Тут все хорошо. ...
Mishutka
4
Карта сайта