Size: a a a

2020 October 13

MA

Mons Anderson in Tarantool
Если всё-таки вы решите остановиться на виниле, то сделайте предварительно нагрузочное тестирование:
создайте спейс со всеми индексами, которые предполагается использовать и дайте параллельную нагрузку на чтение и запись (возможно вам хватит перфа).
источник

MA

Mons Anderson in Tarantool
Sergey Chernetsky
а как такое реализовать? я думал либо одно, либо другое? есть про это статья или что-нибудь ещё изучить?
Движок хранения выбирается per-space
вы можете сделать основной спейс в мемтиксе и сделать на нём поле + индекс со временем обращения к записи
При помощи, например, indexpiration, можно сделать вытеснение в другой, архивный спейс на виниле.
Функции, которые выполняют логику должны уметь обращаться к архивному спейсу и доставать из него данные по необходимости.
источник

SC

Sergey Chernetsky in Tarantool
Mons Anderson
Движок хранения выбирается per-space
вы можете сделать основной спейс в мемтиксе и сделать на нём поле + индекс со временем обращения к записи
При помощи, например, indexpiration, можно сделать вытеснение в другой, архивный спейс на виниле.
Функции, которые выполняют логику должны уметь обращаться к архивному спейсу и доставать из него данные по необходимости.
А два спейса с разными движками на одном инстансе Тарантула - это возможно? Нормальная практика?
источник

MA

Mons Anderson in Tarantool
Sergey Chernetsky
А два спейса с разными движками на одном инстансе Тарантула - это возможно? Нормальная практика?
Да, вполне.
Есть пример (там, реализация кэша, но это не принципиально)
https://github.com/tarantool/examples/tree/master/cache

В частности можно заглянуть сюда https://github.com/tarantool/examples/blob/master/cache/app/roles/cache_vinyl.lua
источник

SC

Sergey Chernetsky in Tarantool
Mons Anderson
Да, вполне.
Есть пример (там, реализация кэша, но это не принципиально)
https://github.com/tarantool/examples/tree/master/cache

В частности можно заглянуть сюда https://github.com/tarantool/examples/blob/master/cache/app/roles/cache_vinyl.lua
Ок, спасибо за ответы!
источник

4

472 in Tarantool
Господа, добрый вечер!

Имеется кластер на cartridge (vshard), с двумя шардами.

В один прекрасный момент, на запросы с роутера (посредством callrw) один из шардов стал отвечать
источник

4

472 in Tarantool
InternalError: {"replica_uuid":"7c3d6f48-ebec-4045-a907-9d1109402621","replicaset_uuid":"031bd896-9058-45f4-ab3a-0deae5003785","type":"ShardingError","message":"Replica 7c3d6f48-ebec-4045-a907-9d1109402621 is not a master for replicaset 031bd896-9058-45f4-ab3a-0deae5003785 anymore","name":"NON_MASTER","code":2}
источник

4

472 in Tarantool
Попытка поменять реплику с мастером (через вебгуй) не меняет проблемы - ошибка та же, только с uuid "нового мастера"
источник

4

472 in Tarantool
Как можно побороть эту проблему?
источник

YD

Yaroslav Dynnikov in Tarantool
а посмотрите на этого мастера пристально (через тот же вебгуй например, в server details), он rw? с ним все хорошо?
И еще интересно нет ли чего подозрительного у этого мастера в логах.
Фейловер включен?
источник

YD

Yaroslav Dynnikov in Tarantool
Еще можно зайти в вебгуй к мастеру и посмотреть что он думает обо всем этом
источник

4

472 in Tarantool
Везде статус стоит как хелси, failover - eventual, в статусе мастера проблемного шарда напротив ro стоит false
источник

MF

Michael Filonenko in Tarantool
472
InternalError: {"replica_uuid":"7c3d6f48-ebec-4045-a907-9d1109402621","replicaset_uuid":"031bd896-9058-45f4-ab3a-0deae5003785","type":"ShardingError","message":"Replica 7c3d6f48-ebec-4045-a907-9d1109402621 is not a master for replicaset 031bd896-9058-45f4-ab3a-0deae5003785 anymore","name":"NON_MASTER","code":2}
Хороший вопрос для SO)
источник

MF

Michael Filonenko in Tarantool
Моя гипотеза, что может быть vshard.replicaset объект на роутере сохранили в глобальную переменную
источник

MF

Michael Filonenko in Tarantool
А вишард репликасеты сохранять не рекомендуется
источник

4

472 in Tarantool
Рестарт инстансов в этой ситуации может помочь?
источник

YD

Yaroslav Dynnikov in Tarantool
может
источник

D

Denis in Tarantool
Привет,
вопрос по шард группам.
Есть картридж приложение, в cartridge.cfg указываются две шард группы. Дальше, если при настройке кластера, будут storage ноды только с одной из шард груп, при нажатии bootstrap vshard выдаёт ошибку
graphql.lua:313 E> Bootstrapping vshard failed: Sharding config is empty
Ситуация возникла при локальной разработке, при деплое будут ноды с обеими шард групами и ошибки не будет. 
Но всё равно интересно, это сделано специально или возможно баг?
источник

4

472 in Tarantool
Буду пробовать, спасибо
источник

YD

Yaroslav Dynnikov in Tarantool
Denis
Привет,
вопрос по шард группам.
Есть картридж приложение, в cartridge.cfg указываются две шард группы. Дальше, если при настройке кластера, будут storage ноды только с одной из шард груп, при нажатии bootstrap vshard выдаёт ошибку
graphql.lua:313 E> Bootstrapping vshard failed: Sharding config is empty
Ситуация возникла при локальной разработке, при деплое будут ноды с обеими шард групами и ошибки не будет. 
Но всё равно интересно, это сделано специально или возможно баг?
Специально. Апи задизайнено как "забутстрапь все группы" и отсутствие стораджей в этом случае является ошибкой. Хотя в целесообразности такого поведения можно и усомниться.
источник