Size: a a a

2020 November 25

Bp

Bar pri in Tarantool
Denis
Моя ситуация такая: спейс на виниле, числовое поле expires_at, неуникальный индекс по нему и indexpiration.
И с некоторого числа записей начинают сыпаться ворнинги “took too long” для операций типа box.space.my_space.index.exp:pairs({0}, {iterator='GT'})
Когда пытался воспроизвести, на локальной ноде сделал 82000 записей, у всех expires_at=0.
Запрос box.space.my_space.index.exp:select(0, {iterator='GТ', limit=1}) таймаутит. Запрос с GE итератором срабатывает нормально.
index:compact() не помог.

Может есть идеи почему такое происходит и как бороться?
Подобное было. Не справлялась дисковая подсистема. Решали дублированием первичного ключа и поля expired_at в мемтекс, в нем выбирали нужные ключи для удаления в виниле
источник

ИЛ

Илья Лебедев... in Tarantool
@akudiyar а вот такой вопрос. есть вообще способ переправить в тнт именно тапл, который cdata?
источник

D

Denis in Tarantool
Bar pri
Подобное было. Не справлялась дисковая подсистема. Решали дублированием первичного ключа и поля expired_at в мемтекс, в нем выбирали нужные ключи для удаления в виниле
Спасибо!
источник

AK

Alexey Kuzin in Tarantool
Илья Лебедев
@akudiyar а вот такой вопрос. есть вообще способ переправить в тнт именно тапл, который cdata?
cdata -- это структура внутри луа, с точки зрения протокола любой тапл это msgpack array. Если вы хотите кастомные таплы собирать со своей сериализацией в мсжпак, то да, так можно, и в ридми есть пример
источник

ИЛ

Илья Лебедев... in Tarantool
Alexey Kuzin
cdata -- это структура внутри луа, с точки зрения протокола любой тапл это msgpack array. Если вы хотите кастомные таплы собирать со своей сериализацией в мсжпак, то да, так можно, и в ридми есть пример
видел, да. тут вопрос в том, что когда он попадает в бокс, то становится lua table, которая рандомит порядок именованных полей(по крайней мере закономерности я не заметил). а вот когда достаешь тапл из спейса, поля гарантированно в нужном порядке, и при этом сохраняют имена из формата спейса
источник

AK

Alexey Kuzin in Tarantool
Илья Лебедев
видел, да. тут вопрос в том, что когда он попадает в бокс, то становится lua table, которая рандомит порядок именованных полей(по крайней мере закономерности я не заметил). а вот когда достаешь тапл из спейса, поля гарантированно в нужном порядке, и при этом сохраняют имена из формата спейса
А можно пример? При сборке тапла самостоятельно порядок определяется пользователем, и как собрали так и приедет в тарантул
источник

AK

Alexey Kuzin in Tarantool
А при получении то же самое, берём мсжпак массив как он есть и разбираем
источник

AK

Alexey Kuzin in Tarantool
Там имена полей могут вообще никак не участвовать
источник

ИЛ

Илья Лебедев... in Tarantool
Alexey Kuzin
А можно пример? При сборке тапла самостоятельно порядок определяется пользователем, и как собрали так и приедет в тарантул
хм. с вашим коннектором еще не проверял, глянул только что в луашку тот же тейбл прилетает)
источник

ИЛ

Илья Лебедев... in Tarantool
тогда другой вопрос. можно переопределить функции, которые коннектор дергает в тнт? например, чтобы вместо box.space.name.select(request) вызывалась my_module.select(space, request)?
источник

ИЛ

Илья Лебедев... in Tarantool
Илья Лебедев
тогда другой вопрос. можно переопределить функции, которые коннектор дергает в тнт? например, чтобы вместо box.space.name.select(request) вызывалась my_module.select(space, request)?
а, все, сам посмотрел
источник

AK

Alexey Kuzin in Tarantool
Илья Лебедев
тогда другой вопрос. можно переопределить функции, которые коннектор дергает в тнт? например, чтобы вместо box.space.name.select(request) вызывалась my_module.select(space, request)?
Да, можно. С помощью ProxyTarantoolClient
источник

Д

Дмитрий in Tarantool
А существует какой-то анализатор кода для Lua? Для поиска косяков, вроде объявленных, но не используемых переменных и подобного... типа SonarQube (там Lua не вижу в поддержке).
источник

ОБ

Олег Бабин in Tarantool
luacheck
источник

ОБ

Олег Бабин in Tarantool
источник

AS

Anatoliy Shipitcyn in Tarantool
я тут добрался до taishan
источник

AS

Anatoliy Shipitcyn in Tarantool
lscpu
Архитектура:         aarch64
Порядок байт:        Little Endian
CPU(s):              64
On-line CPU(s) list: 0-63
Thread(s) per core:  1
Ядер на сокет:       32
Сокетов:             2
NUMA node(s):        4
ID прроизводителя:   ARM
Модель:              2
Имя модели:          Cortex-A72
Степпинг:            r0p2
BogoMIPS:            100.00
L1d cache:           32K
L1i cache:           48K
L2 cache:            1024K
L3 cache:            16384K
NUMA node0 CPU(s):   0-15
NUMA node1 CPU(s):   16-31
NUMA node2 CPU(s):   32-47
NUMA node3 CPU(s):   48-63
Флаги:               fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
источник

AS

Anatoliy Shipitcyn in Tarantool
Но ломается при сборке тут
источник

AS

Anatoliy Shipitcyn in Tarantool
[ 32%] Completed 'bundled-ares-project'
[ 32%] Built target bundled-ares-project
make: *** [Makefile:152: all] Ошибка 2
источник

AS

Anatoliy Shipitcyn in Tarantool
подскажите чего может быть?
источник