Size: a a a

2020 November 11

R

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

A

Alexander in Tarantool
всем привет.
кто-нибудь сталкивался с битыми индексами в тарантуле?

есть спейс с несколькими полями, одно из которых строковое guid : { name = 'guid', type='string', is_nullable=true }

у спейса несколько индексов, в т.ч. IX_guid, созданный messages:create_index('IX_guid', { unique = true, parts = {'guid'}})

некоторое количество записей, которые в результате селекта по индексу IX_guid дают пустой массив, а при поиске по любому другому индексу находятся.

ошибки в строке нет, проверено внимательно, запись в эту таблицу происходит в одном месте, таких записей появилось 3 сотни на миллионы записей, появились примерно в одно время. кроме как посчитать, что причина в битом индексе, гипотез нету.
инфу по этому поводу не нашел

вопрос: сталкивался ли кто с подобным? если да, то каковы вероятные причины и как правильно лечить?
источник

MA

Mons Anderson in Tarantool
Alexander
всем привет.
кто-нибудь сталкивался с битыми индексами в тарантуле?

есть спейс с несколькими полями, одно из которых строковое guid : { name = 'guid', type='string', is_nullable=true }

у спейса несколько индексов, в т.ч. IX_guid, созданный messages:create_index('IX_guid', { unique = true, parts = {'guid'}})

некоторое количество записей, которые в результате селекта по индексу IX_guid дают пустой массив, а при поиске по любому другому индексу находятся.

ошибки в строке нет, проверено внимательно, запись в эту таблицу происходит в одном месте, таких записей появилось 3 сотни на миллионы записей, появились примерно в одно время. кроме как посчитать, что причина в битом индексе, гипотез нету.
инфу по этому поводу не нашел

вопрос: сталкивался ли кто с подобным? если да, то каковы вероятные причины и как правильно лечить?
А можете пример из консоли показать? т.е. как "селектится" и как "не селектится"?
источник

A

Alexander in Tarantool
источник

A

Alexander in Tarantool
первый запрос по индексу IX_guid, который только guid-ы сообщений содержит, второй просто по любому другому идексу выдает это сообщение (оффсет во втором селекте подставлен просто чтоб простыню всю сбда не выводить)
источник

A

Alexander in Tarantool
Mons Anderson
А можете пример из консоли показать? т.е. как "селектится" и как "не селектится"?
на всякий случай - сами индексы и спейс созданы вот так
источник

MA

Mons Anderson in Tarantool
@a_lyapunov
можешь глянуть и предположить, какая дополнительная инфа может быть проверена?
обращаю внимание — винил
источник

NK

Nick Karlov in Tarantool
Mons Anderson
@a_lyapunov
можешь глянуть и предположить, какая дополнительная инфа может быть проверена?
обращаю внимание — винил
Два уникальных индекса в виниле?
источник

A

Alexander in Tarantool
Nick Karlov
Два уникальных индекса в виниле?
да, так не стоит делать?
источник
2020 November 12

S

Sergey in Tarantool
Alexander
да, так не стоит делать?
Можно сделать уникальный индекс составным и у нас будет 1 индекс, а не два)
источник

ИЛ

Илья Лебедев... in Tarantool
подскажите, где я что упускаю. в router.lua запускаю роутер, следом там же делаю box.cfg() для репликации с соседним рутером. все запускается. в box.cfg как положено, uri реплик, read_only=false, а репликации нет
источник

ИЛ

Илья Лебедев... in Tarantool
при этом с ровно тем же router.lua вчера все реплицировалось как надо
источник

4

472 in Tarantool
Господа, доброе утро!

Подскажите, правильно ли я понимаю, что признаком конца данных для метода cursor:fetch(count) в модуле oracle, является вернувшееся количество строк < count?
источник

GM

Georgy Moiseev in Tarantool
В том числе, да. Но если данные кончились, то курсор возвращает ошибку ORA-01002. Я бы советовал ориентироваться именно на это — фетчить, пока не ошибка ORA-01002 (по крайней мере, мы в одном из приложений поступаем именно так)
источник

4

472 in Tarantool
Спасибо
источник

AK

Alexey Kuzin in Tarantool
Илья Лебедев
подскажите, где я что упускаю. в router.lua запускаю роутер, следом там же делаю box.cfg() для репликации с соседним рутером. все запускается. в box.cfg как положено, uri реплик, read_only=false, а репликации нет
box.info().replication с обоих узлов покажите
источник

ИЛ

Илья Лебедев... in Tarantool
Alexey Kuzin
box.info().replication с обоих узлов покажите
источник

AK

Alexey Kuzin in Tarantool
Репликация не настроена
источник

AK

Alexey Kuzin in Tarantool
Покажите box.cfg c обоих узлов
источник

MA

Mons Anderson in Tarantool
Илья Лебедев
подскажите, где я что упускаю. в router.lua запускаю роутер, следом там же делаю box.cfg() для репликации с соседним рутером. все запускается. в box.cfg как положено, uri реплик, read_only=false, а репликации нет
когда вы конфигурируете роутер, инстанс конфигурируется в standalone режиме
это значит, что вы не сможете соединить их потом в кластер
для того, чтобы это было возможно, вы можете
1. сначала запустить box.cfg с указанием replication, а уже потом запустить router.cfg
2. указать вручную  cluster_uuid для инстансов при конфигурации роутеров. это даст им соединиться позже

В идеале можно соединить оба подхода, это упростит вам эксплуатацию:
сначала box.cfg{ replication = ..., instance_uuid = ..., cluster_uuid = ...}, потом vshard.router.cfg{}
источник