очередь не влезает в один шард? Интересно, какой подход выбрали.
https://github.com/tarantool/sharded-queue можно взять как основу, но приоритетов там вроде нет, придется допиливать самим
Приоритеты есть в драйвере fifottl
я делал. очередь шардируется по классическим правилам, в каждом шарде маленькая независимая часть очереди take выполняется "на все узлы", выбирается таск, который самый приоритетный, остальные релизятся. put делается round-robin и исходя из доступности узлов.
take очень дорогой выходит
На каждый take обход всех шардов?
Ну если надо получить самую приоритетную таску в рамках всего кластера, то нужно собрать все приоритетные таски с шардов и среди них выбрать уже
А что не влезает в один инстанс тарантула? Большой payload у задач? Или самих задач очень много?
Да. Но вообще в реальности я бы так не заморачивался и просто обходил бы шарды по кругу до тех пор, пока не возьму задачу. При достаточно больших числах тасок и консьюмеров всё равно будет работать более чем приемлемо
Обсуждают сегодня