Size: a a a

2020 July 12

GS

Guram Savinov in Tarantool
SyncOps - returns the operation result
AsyncOps - returns the operation result as a Future
ComposableAsyncOps - return the operation result as a CompletionStage
FireAndForgetOps - returns the query ID

если синхронность и результат ненужны, то FireAndForget самый шустрый будет?
источник

A

Andrew in Tarantool
Mons Anderson
Конкурентность обновления вам не критична. В таких приложениях обновление всё равно идёт поэлементно
Поскольку такие списки обычно пишутся руками и длина слов там небольшая, до для начала я бы даже не нормализовал строки "хлеб", "молоко" в отдельный спейс, а держал прямо в основном как есть в денормализованном виде. Под идентификатор строки можно взять просто число, pk делаем составной: id списка, id записи.
Для отслеживания изменений понадобится версия строки
итого понадобится что-то типа:
{ id:int, list:int, ver:int, title: string  }
index(id,list)
1. может возникнуть ситуация, что у обоих пользователей отвалился интернет и они в это время они добавляли новые элементы в список, в этом случае непонятно как матчить id если они у обоих будут одинаковые но с разными значениями, вместо порядкового id, использовать значение элемента?

2. мне нужно чтобы у каждого пользователя был одинаковый список, если они в хаотичном порядке добавляли/изменяли/удаляли в одно и тоже время элементы в списке, использовать транзакции? тогда как отработает транзакция, если оба пользователя изменяют список, у одного будет откат?

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

4. что значит нормализовать в отдельный спейс?
источник

SM

Super Man in Tarantool
Ребята, подскажите плиз по оптимизации бд. Я хочу сделать словарь слов в tarantool - id, query, translation, language_id - в ней будет идти выборка по query. И еще мне нужно хранить популярность каждого слова, т.е. табличку вида id, language_id, popularity - делать в ней выборку по language_id с сортировкой по popularity. Стоит ли их делать, как 2 спейса или лучше объединить в один. Будет ли это нормально работать на vynil?
источник

SM

Super Man in Tarantool
писать в спейсы тоже буду по-разному. в словарь только новые, еще не известные слова. а в популярность при любом поиске на сайте будут плюсоваться слова, т.е. табличка активнее будет юзаться на запись. и сортировка там более серьезная.
источник
2020 July 13

MA

Mons Anderson in Tarantool
> 1. может возникнуть ситуация, что у обоих пользователей отвалился интернет и они в это время они добавляли новые элементы в список, в этом случае непонятно как матчить id если они у обоих будут одинаковые но с разными значениями, вместо порядкового id, использовать значение элемента?

смотрите теорию в сторону confict-free data types.
можете использовать timestamp.
но в любом случае вам придётся сначала описать обычной логикой то, как вы собираетесь решать такой конфликт.

> 2. мне нужно чтобы у каждого пользователя был одинаковый список, если они в хаотичном порядке добавляли/изменяли/удаляли в одно и тоже время элементы в списке, использовать транзакции? тогда как отработает транзакция, если оба пользователя изменяют список, у одного будет откат?

в самом тарантуле у вас все транзакции сериализованы друг за другом. "одновременности" не существует: кто-то будет обязательно раньше. сортировать список можно опять-же по времени изменения. тогда сортировка будет для всех одинакова.

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

да, но в этом случае контект уникальный и нет смысла под него заводить отдельный "словарь"

4. что значит нормализовать в отдельный спейс?

https://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%84%D0%BE%D1%80%D0%BC%D0%B0

убрать повторяющиеся записи в отдельный спейс и в целевом спейсе держать их в виде идентификаторов
источник

L

Leonid in Tarantool
Добрый день.
Коллеги, а кто-то сталкивался с тем - что из под любого другого пользователя, кроме tarantool, команды tarantoolctl выполняются на порядки дольше?
источник

L

Leonid in Tarantool
sudo -u tarantool /bin/bash -c "time echo "box.info" | /usr/bin/tarantoolctl eval mrgs_pushq_1.lua"

...

real    0m0.057s
user    0m0.043s
sys     0m0.010s
источник

L

Leonid in Tarantool
sudo -u tar_mon /bin/bash -c "time echo "box.info" | /usr/bin/tarantoolctl eval mrgs_pushq_1.lua"
...

real    0m1.898s
user    0m1.437s
sys     0m0.460s
источник

IB

Ivan Bessarabov in Tarantool
а это точно тарантул, а не sudo ?
источник

L

Leonid in Tarantool
да
источник

L

Leonid in Tarantool
я могу провалиться в этого пользователя и выполнить оттуда
источник

L

Leonid in Tarantool
ну и sudo для пользователя tarantool ничем не отличается от sudo для tar_mon
источник

MA

Mons Anderson in Tarantool
Что-то такое мне встречалось уже...
запустите под strace
источник

L

Leonid in Tarantool
сейяас пошукаю, минутку
источник

L

Leonid in Tarantool
вот прям на вот этом вызове и висит:
ppoll([{fd=-1}, {fd=6, events=POLLIN}], 2, NULL, NULL, 8connected to unix/:/var/run/tarantool/_pushq_1.control
источник

MA

Mons Anderson in Tarantool
Leonid
вот прям на вот этом вызове и висит:
ppoll([{fd=-1}, {fd=6, events=POLLIN}], 2, NULL, NULL, 8connected to unix/:/var/run/tarantool/_pushq_1.control
У вас selinux включен?
источник

L

Leonid in Tarantool
нет
источник

MA

Mons Anderson in Tarantool
Какая ось?
источник

L

Leonid in Tarantool
gentoo
источник

MA

Mons Anderson in Tarantool
@Totktonada, есть мысли?
я давно на генте не крутил тарантул
источник