Size: a a a

2020 December 23

A

Andrew in Tarantool
Есть long polling, который слушает только 1 ключ

local channels= {}

local api_listen = function (req)
   local space = req:stash('space')
   local key = req:stash('key')
   if not box.space[space]:get(key) then return { status = 404, body = empty_json } end
   local timeout = 25
   local channel_id = space .. key
   local wait = channels[channel_id]
   if not wait then
       wait = fiber.channel()
       channels[channel_id] = wait
   end
   local new_updates = wait:get(timeout)
   if new_updates.sid and new_updates.sid ~= box.session.id() then
       return { status = 200, body = json.encode(new_updates.t['val']), headers = headers }
   end
   if not new_updates then return { status = 204, body = empty_json } end
end

Как можно организовать подписку на несколько ключей в одном соединении? Использовать несколько каналов? Вместо ключа сохранять session_id, key и уведомлять session_id вместо key?
источник
2020 December 24

VG

Vladislav Grubov in Tarantool
Если ключи можно как-нибудь сгруппировать (сформировать что-то типа tube), то можно создавать по каналу на tube.

Если ключи совсем разнородны, и клиенты запрашивают что угодно, можно организовать что-то типа списка condvar'ов, когда клиент знает какие ему нужны ключи, он создает кондвар и сохраняет его в табличку для каждого ключа.

В памяти храним таблицу ключ => список кондов. Когда приходиь ключ, он нотифицирует все конды, которые у него лежат. Схему можно размасштабировать в некоторых кейсах, и задать некоторый паттерн, которому должен удовлетворять ключ, и чекать его через string.match, например.

Но идея сырая.

Есть такой тикет: https://github.com/tarantool/tarantool/issues/5635
источник

ID

Ilya Donskikh in Tarantool
Доброго времени суток! Возникла следущая проблема, тарантул стоит в докере, запускается оттуда же, при попытке обратиться к url методом client:post, получаю 595 ошибку "Connection refused", хотя curl с этого же докера отрабатывает корректно. В какую сторону копать?
источник

AT

Alexander Turenko in Tarantool
POST без данных, видимо?
источник

AT

Alexander Turenko in Tarantool
А, нет, тьфу. Перепутал, там GET на POST подменяется. Нерелевантно.
источник

AT

Alexander Turenko in Tarantool
А не работает конкретный URL или вообще ничего?
источник

ID

Ilya Donskikh in Tarantool
POST, с телом, tarantool 2.2
источник

ID

Ilya Donskikh in Tarantool
Про остальные адреса сейчас проверю
источник

RK

Ruslan Khalikov in Tarantool
в докере может помочь остановка всех контейнеров и запуск, когда клал контейнеры по 1 и потом пытался их поднимать, возникала ошибка Connection Refused - похоже в докере дело
источник

ID

Ilya Donskikh in Tarantool
Помогло обращение не к домену а к ip
источник

АС

Андрей Сыврачев... in Tarantool
R-omk
а че их сравнивать,  это касандра...  философия вообще разная у тарантула и касандры
Я не эксперт в DB, мне просто нужна репликация и одноранговость. Можете коротко рассказать про разность философии?
источник

AK

Alexey Kuzin in Tarantool
Андрей Сыврачев
Я не эксперт в DB, мне просто нужна репликация и одноранговость. Можете коротко рассказать про разность философии?
Тарантул для oltp, Кассандра -- для olap. Вам для чего?
источник

D

Denis in Tarantool
Alexey Kuzin
Тарантул для oltp, Кассандра -- для olap. Вам для чего?
Мммм olap с захардкоженным запросом прямо в базе (primary key)
источник

D

Denis in Tarantool
Кассандра не олап, а помойка данных не в плохом смысле, просто факт
источник

AK

Alexey Kuzin in Tarantool
Ну, такого термина нет
источник

D

Denis in Tarantool
Alexey Kuzin
Ну, такого термина нет
Это ближе к oltp, olap это клик
Теперь где клик где кассандра по аналитике
Хотя кассандра ни то ни другое. Объектопомойка обычная, где ты по рукам связан в плане запросов. Не говорю что плохо, норм если надо хранить что то типа точек фактического  маршрута для яндекс такси
источник

AK

Alexey Kuzin in Tarantool
Я согласен, что кассандра ни то ни другое в чистом виде — для олапа к ней нужны обвязки вроде спарка, однако в дихотомии олтп-олап для Тарантула и Кассандры Кассандра именно ближе к краю олап.
источник

ЕР

Евгений Радченко... in Tarantool
Всем привет, подскажите по метрикам https_server_request_latency генерируемых для prometheus в разрезе quantile. Мы строим график отклика и 99 квантиль по метрикам возвращает условные полки состоящие из одного времени отклика на протяжении суток (где 99 вообще 20 секунд). Для альтернативного замера времени отклика и расчёта перцентилей подключили tarantool к http снифферу и elk замерили 50, 90 и 99 перцентили. Видим плавающие графики отклика где 99 перцентиль не превышает 3-х секунд. Поясните за какой интервал считается квантиль при построении метрики?
источник

ЕР

Евгений Радченко... in Tarantool
Графика для визуализации
источник

GM

Georgy Moiseev in Tarantool
источник