Size: a a a

2020 December 30

VG

Vladislav Grubov in Tarantool
Андрей Сыврачев
Ребят, скажите подалуйста, вот есть такая схеме:
 2 - инстанции тарантула master-master
К ним периодически подключается 3-я тестовая инстанция, и с нуля наполняется, некоторое время прохотят тесты, потом она умирает навесегда.
Но после нее остается UUID- который занимает отведенное ограничение в 32 мастер реплики. И его нужно удалять.

Есть ли возможность захардкодить UUID для инстанции, но так чтобы она могла "наполнится" с нуля (то есть с полной потери данных)?
В box.cfg передавайте instance_uuid и replicaset_uuid, который уже был у реплики, и тогда она переиспользует id реплики
источник

АС

Андрей Сыврачев... in Tarantool
Спасибо!
источник

MA

Mons Anderson in Tarantool
Vladislav Grubov
В box.cfg передавайте instance_uuid и replicaset_uuid, который уже был у реплики, и тогда она переиспользует id реплики
instance_uuid будет достаточно
ну и ещё вариант — подключиться как анонимная реплика
источник

IM

Igor Munkin in Tarantool
Игрь Минеев
Та самая вставка:

#elif __aarch64__
__asm__ volatile(
 /* Save current context */
 "\tsub x1, sp, #8 * 20\n"
 "\tstp x19, x20, [x1, #16 * 0]\n"
 "\tstp x21, x22, [x1, #16 * 1]\n"
 "\tstp x23, x24, [x1, #16 * 2]\n"
 "\tstp x25, x26, [x1, #16 * 3]\n"
 "\tstp x27, x28, [x1, #16 * 4]\n"
 "\tstp x29, x30, [x1, #16 * 5]\n"
 "\tstp d8,  d9,  [x1, #16 * 6]\n"
 "\tstp d10, d11, [x1, #16 * 7]\n"
 "\tstp d12, d13, [x1, #16 * 8]\n"
 "\tstp d14, d15, [x1, #16 * 9]\n"
 /* Restore target context */
 "\tldr x2, [%1]\n"
 "\tldp x19, x20, [x2, #16 * 0]\n"
 "\tldp x21, x22, [x2, #16 * 1]\n"
 "\tldp x23, x24, [x2, #16 * 2]\n"
 "\tldp x25, x26, [x2, #16 * 3]\n"
 "\tldp x27, x28, [x2, #16 * 4]\n"
 "\tldp x29, x30, [x2, #16 * 5]\n"
 "\tldp d8,  d9,  [x2, #16 * 6]\n"
 "\tldp d10, d11, [x2, #16 * 7]\n"
 "\tldp d12, d13, [x2, #16 * 8]\n"
 "\tldp d14, d15, [x2, #16 * 9]\n"
 "\tmov sp, x2\n"
 /* Setup fisrst arg */
 "\tmov x0, %0\n"
 "\tbl %2\n"
 /* Restore context (old sp in x0) */
 "\tldp x19, x20, [x0, #16 * 0]\n"
 "\tldp x21, x22, [x0, #16 * 1]\n"
 "\tldp x23, x24, [x0, #16 * 2]\n"
 "\tldp x25, x26, [x0, #16 * 3]\n"
 "\tldp x27, x28, [x0, #16 * 4]\n"
 "\tldp x29, x30, [x0, #16 * 5]\n"
 "\tldp d8,  d9,  [x0, #16 * 6]\n"
 "\tldp d10, d11, [x0, #16 * 7]\n"
 "\tldp d12, d13, [x0, #16 * 8]\n"
 "\tldp d14, d15, [x0, #16 * 9]\n"
 "\tadd sp, x0, #8 * 20\n"
 :
 : "r" (unw_context), "r" (coro_ctx), "i" (unw_getcontext_f)
 : /*"lr", "r0", "r1", "ip" */
  "x0", "x1", "x2", "x30"
 );
#endif

Аргумент unw_getcontext_f

"i" : An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time.
https://gcc.gnu.org/onlinedocs/gcc/Simple-Constraints.html#Simple-Constraints

Вот тут немного иной комментарий.
> ‘i’
>
>    An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time or later.
>
источник

ИМ

Игрь Минеев... in Tarantool
Igor Munkin
https://gcc.gnu.org/onlinedocs/gcc/Simple-Constraints.html#Simple-Constraints

Вот тут немного иной комментарий.
> ‘i’
>
>    An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time or later.
>
Ровно то же что я и написал, нет?
источник

IM

Igor Munkin in Tarantool
Игрь Минеев
Ровно то же что я и написал, нет?
В моем варианте at assembly time or later.
источник

ИМ

Игрь Минеев... in Tarantool
Хм, later возможно имеется ввиду на этапе линковки, что конечно разумно, но не отменяет того факта, что не скомпилровалось
Грешил на PIC, но и с этим флагом не смоглось
Да и компилятор не старый ведь
9.3
источник

A

Anatoly in Tarantool
Здравствуйте,

подскажите, пожалуйста, как правильно в centos поставить в автозагрузку start экземпляра tarantool, если каталоги с экз.настроены установлены по своему пути, типа
/opt/taranyool/test1

test1 - имя экземпляра

руками успешно стартую этот экземпляр из каталога с конфигами
/opt/taranyool/test1
tarantoolctl start test1
теперь хочу автозагрузку

Надо что-то добавить в этот каталог -
/etc/tarantool/instances.available
что бы по
sudo systemctl start tarantool@test1
sudo systemctl enable tarantool@test1
запустить и включит старт при загрузки системы
?
спасибо
источник

KY

Kirill Yukhin in Tarantool
Игрь Минеев
Та самая вставка:

#elif __aarch64__
__asm__ volatile(
 /* Save current context */
 "\tsub x1, sp, #8 * 20\n"
 "\tstp x19, x20, [x1, #16 * 0]\n"
 "\tstp x21, x22, [x1, #16 * 1]\n"
 "\tstp x23, x24, [x1, #16 * 2]\n"
 "\tstp x25, x26, [x1, #16 * 3]\n"
 "\tstp x27, x28, [x1, #16 * 4]\n"
 "\tstp x29, x30, [x1, #16 * 5]\n"
 "\tstp d8,  d9,  [x1, #16 * 6]\n"
 "\tstp d10, d11, [x1, #16 * 7]\n"
 "\tstp d12, d13, [x1, #16 * 8]\n"
 "\tstp d14, d15, [x1, #16 * 9]\n"
 /* Restore target context */
 "\tldr x2, [%1]\n"
 "\tldp x19, x20, [x2, #16 * 0]\n"
 "\tldp x21, x22, [x2, #16 * 1]\n"
 "\tldp x23, x24, [x2, #16 * 2]\n"
 "\tldp x25, x26, [x2, #16 * 3]\n"
 "\tldp x27, x28, [x2, #16 * 4]\n"
 "\tldp x29, x30, [x2, #16 * 5]\n"
 "\tldp d8,  d9,  [x2, #16 * 6]\n"
 "\tldp d10, d11, [x2, #16 * 7]\n"
 "\tldp d12, d13, [x2, #16 * 8]\n"
 "\tldp d14, d15, [x2, #16 * 9]\n"
 "\tmov sp, x2\n"
 /* Setup fisrst arg */
 "\tmov x0, %0\n"
 "\tbl %2\n"
 /* Restore context (old sp in x0) */
 "\tldp x19, x20, [x0, #16 * 0]\n"
 "\tldp x21, x22, [x0, #16 * 1]\n"
 "\tldp x23, x24, [x0, #16 * 2]\n"
 "\tldp x25, x26, [x0, #16 * 3]\n"
 "\tldp x27, x28, [x0, #16 * 4]\n"
 "\tldp x29, x30, [x0, #16 * 5]\n"
 "\tldp d8,  d9,  [x0, #16 * 6]\n"
 "\tldp d10, d11, [x0, #16 * 7]\n"
 "\tldp d12, d13, [x0, #16 * 8]\n"
 "\tldp d14, d15, [x0, #16 * 9]\n"
 "\tadd sp, x0, #8 * 20\n"
 :
 : "r" (unw_context), "r" (coro_ctx), "i" (unw_getcontext_f)
 : /*"lr", "r0", "r1", "ip" */
  "x0", "x1", "x2", "x30"
 );
#endif

Аргумент unw_getcontext_f

"i" : An immediate integer operand (one with constant value) is allowed. This includes symbolic constants whose values will be known only at assembly time.
не, так нельзя
источник

KY

Kirill Yukhin in Tarantool
там поинтер на функцию передается в bl, а она судя по доке ожидает как раз immediate и если ей туда написать регистр или память в качестве аргумента - ругнется ассемблер
источник

KY

Kirill Yukhin in Tarantool
или не ругнется, но работать не будет
источник

ИМ

Игрь Минеев... in Tarantool
Сборка без бектрейса все равно сыпется в корку)
Так что возможно это не самое первостепеннное что хотелось бы решить
источник

KY

Kirill Yukhin in Tarantool
можно попробовать там поменять "i" -> "rm", а во вставке  "\tbl %2" -> "\tblx %2"
источник

ИМ

Игрь Минеев... in Tarantool
Kirill Yukhin
можно попробовать там поменять "i" -> "rm", а во вставке  "\tbl %2" -> "\tblx %2"
спасибо, попробуем
источник

KY

Kirill Yukhin in Tarantool
источник

IM

Igor Munkin in Tarantool
Игрь Минеев
Сборка без бектрейса все равно сыпется в корку)
Так что возможно это не самое первостепеннное что хотелось бы решить
Да, это может быть.

Вот так?
https://github.com/tarantool/tarantool/issues/2712
источник

IM

Igor Munkin in Tarantool
@objatie_groba, а может билет нарисовать на backtrace, чтобы это не потерять? Как минимум, мы будем знать в каком окружении надо собирать Tarantool, чтобы поймать ту же ошибку.
источник

ИМ

Игрь Минеев... in Tarantool
Всё (issue) будет, прошу прощения
И на вопрос позднее отвечу
Спасибо большое за помощь!
источник

MA

Mons Anderson in Tarantool
Anatoly
Здравствуйте,

подскажите, пожалуйста, как правильно в centos поставить в автозагрузку start экземпляра tarantool, если каталоги с экз.настроены установлены по своему пути, типа
/opt/taranyool/test1

test1 - имя экземпляра

руками успешно стартую этот экземпляр из каталога с конфигами
/opt/taranyool/test1
tarantoolctl start test1
теперь хочу автозагрузку

Надо что-то добавить в этот каталог -
/etc/tarantool/instances.available
что бы по
sudo systemctl start tarantool@test1
sudo systemctl enable tarantool@test1
запустить и включит старт при загрузки системы
?
спасибо
Если сами init.lua написаны нормально, то добавить симлинк

/etc/tarantool/instances.available/test1.lua -> /opt/tarantool/test1/init.lua
источник

DK

Denis Kozlov in Tarantool
Привет, коллеги. Вопрос о модуле avro-schema и области его применимости.
Есть необходимость сохранять (и загружать) в спейсе таблицы, содержащие массивы таблиц с 3х уровневой вложенностью (оставим за рамками обсуждения целесообразность такого решения, я не властен на него повлиять).
При описании формата спейса глубже 1го уровня я его описать не могу, все заканчивается полем типа array.
Задача осложняется тем, что есть необходимость создания вторичных индексов (хвала Будде - только по полям 1го уровня).
Целесообразно ли тут использование avro-schema для полного описания всей модели данных в спейсе, используя методы flatten/unflatten для сериализации/десериализации данных в/из туплы?
Как я могу получить из авро-схемы что-то вроде описания формата для создания спейса? Ведь для создания вторичных индексов, как я понимаю, нужно чтобы схема была отформатирована. Верно?
Может есть какие-то проекты с открытым кодом где можно подсмотреть пример решения?
источник