Size: a a a

2020 December 29

MA

Mons Anderson in Tarantool
Дмитрий
Коллеги, подскажите, как грамотно организовать итерационную систему патчей для Tarantool на уровне БД? Т.е. управление тем, какой патч со "схемой" можно применять на БД (в зависимости от текущей), обновлять сами space, index, данные (добавление/изменение/удаление). Применение трансформаций данных. Я пока вижу вариант просто под каждую версию писать скрипты изменений + иметь space в котором хранится текущая версия системы + обвязка под проверку версии и накатку на Lua. Ещё вроде есть что-то похожее в виде https://github.com/igorcoding/tarantool-spacer но не уверен, что это то, что нужно...
Да, spacer это миграции без завязки на картридж
источник

R

R-omk in Tarantool
без серьезно продуманного life cycle для ролей  и  должной интеграцией c vshard      любые  манипуляции с данными сложнее  чем дай/положь  -  ходьба по минному полю  ...
источник

R

R-omk in Tarantool
сейчас картридж и vsahrd  хороши  для случаев  когда  все операции исключительно атомарны
источник

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.
А какая версия Tarantool и какой toolchain?
источник

AK

Alexey Kuzin in Tarantool
R-omk
сейчас картридж и vsahrd  хороши  для случаев  когда  все операции исключительно атомарны
Надо понимать, что делаешь, да
источник

AK

Alexey Kuzin in Tarantool
Это распределенная система
источник

AK

Andrey Kulikov in Tarantool
Igor Munkin
А какая версия Tarantool и какой toolchain?
1.10.8.51

gcc 9.3

aarch64
источник

R

R-omk in Tarantool
Alexey Kuzin
Это распределенная система
тут дело даже не в этом,    а в том что архитектурно нет такой возможности ... потому что ни vshard ни в картридже в принципе не предусмотрено то чтобы с ними можно из вне договориться о процессах  которые они намереваются выполнить
источник

AT

Alexander Turenko in Tarantool
Мы зарелизили (синхронный) коннектор tarantool-python с поддержкой SQL и Database API (PEP-0249). Этот API используется в драйвере django-tarantool.

На PyPI доступен релиз tarantool==0.7.1 (я слегка криво залил 0.7.0 и по запарке снес tarballs / wheels).

Хочу сказать спасибо @artembo. Он сделал бóльшую часть работы по поддержке SQL и DB-API в tarantool-python и реализовал драйвер для Django.
источник

NC

Nikolay Chudinov in Tarantool
в питоновском клиенте нет space truncate ???
источник

AT

Alexander Turenko in Tarantool
Можно через call позвать.
источник

NC

Nikolay Chudinov in Tarantool
Alexander Turenko
Можно через call позвать.
ща попробую, спс
источник

AT

Alexander Turenko in Tarantool
connection.call('box.space.s:truncate')
источник

AT

Alexander Turenko in Tarantool
Ну, прав надо отсыпать соответствующих.
источник

AT

Alexander Turenko in Tarantool
Если потестить, то, чтобы не морочиться, можно прямо так:

box.schema.user.grant('guest','read,write,execute,create,drop,alter','universe')
источник

AS

Andrei 🦉 Sergeev in Tarantool
Alexander Turenko
Мы зарелизили (синхронный) коннектор tarantool-python с поддержкой SQL и Database API (PEP-0249). Этот API используется в драйвере django-tarantool.

На PyPI доступен релиз tarantool==0.7.1 (я слегка криво залил 0.7.0 и по запарке снес tarballs / wheels).

Хочу сказать спасибо @artembo. Он сделал бóльшую часть работы по поддержке SQL и DB-API в tarantool-python и реализовал драйвер для Django.
миграции джанговские тестили на этом бекенде? или пока просто работа с уже существующими спейсами?
источник

VG

Vladislav Grubov in Tarantool
Alexander Turenko
Ну, прав надо отсыпать соответствующих.
На truncate права есть практически всегда :)
источник
2020 December 30

AM

Artem Morozov in Tarantool
Andrei 🦉 Sergeev
миграции джанговские тестили на этом бекенде? или пока просто работа с уже существующими спейсами?
Да, тестили на сайте с 200+ миграций почти на любой вкус. но ALTER TABLE работает через создание новой таблицы, перенос данных и удаление старой таблицы, так что будьте аккуратны, пожалуйста.

Также работает модуль introspection (`./manage.py inspectdb > models.py`), им можно построить модели по существующим таблицам, причесать их и использовать, например, в админке или где вам понадобится. Сейчас поддерживается Django 2.2-3.0, а 3.1 и старые версии я добавлю после праздников.
источник

N

Nikolay in Tarantool
Всем привет! Подскажите, настроили репликацию мастер-мастер, размер реплики превышает оригинал в 2.5 раза, это нормальное поведение?
источник

AK

Alexey Kuzin in Tarantool
Nikolay
Всем привет! Подскажите, настроили репликацию мастер-мастер, размер реплики превышает оригинал в 2.5 раза, это нормальное поведение?
Что значит "размер превышает"? Количество памяти в rss?
источник