Size: a a a

2020 June 04

AK

Alexey Kuzin in Tarantool
Aleksandr Razumov
Мне нужны абсолютно все записи из спейса, т.к. я делаю их "дамп", обогащая данными в клиентском коде.

В принципе тут проблема консиснентности не так остро стоит, т.к. все равно у меня автоинкрементный айди и в начало/середину ничего не пишется, да и удаляется редко.

Наверное, я хочу чего-то не того.
С автоинкрементным айди проблем никаких — достаточно запоминать последний обработанный.
Курсоры и буферизация нужны для дисковых БД, буферизация-то в память происходит. А тут данные изначально в памяти, накладные расходы могут возникнуть только при пересылке по сети. Но пересылку данных по сети большими кусками для обработки всегда стараются заменить обработкой на узлах, для чего Тарантул и предназначен
источник

AK

Alexey Kuzin in Tarantool
Надо по-другому взглянуть на парадигму работы с БД
источник

AR

Aleksandr Razumov in Tarantool
Да, мне нужно именно передать их по сети, чтобы обработать в приложении, подклеив к ним данные из других источников, а потом сложить в большой файлик json или xml.
источник

AK

Alexey Kuzin in Tarantool
Это дейли репорты? Или дамп не должен сильно отставать от оперативных данных?
источник

AR

Aleksandr Razumov in Tarantool
Alexey Kuzin
Это дейли репорты? Или дамп не должен сильно отставать от оперативных данных?
Регулярная выгрузка списка контента. Раз в 15 минут, например. Отставание на пару минут не критично.
источник

AK

Alexey Kuzin in Tarantool
Всё-таки хранимка на Lua, которая запоминает последний id  в отдельном спейсе и отдаёт следующую пачку, занимает порядка 10 строк и будет самым эффективным решением, если не считать перенос всей логики дампа на Lua :)
источник

MA

Mons Anderson in Tarantool
Dmitry Sharonov
можно скрутить самому через оффсет лимит
вот только не через оффсет
есть же нормальный способ через pairs/GT
источник

MA

Mons Anderson in Tarantool
Aleksandr Razumov
а как консистентно по всему спейсу проитерироваться из клиентского кода тогда?
Что для вас "консистентно", если за время вашей итерации удаляются и добавляются записи?
источник

AR

Aleksandr Razumov in Tarantool
Mons Anderson
Что для вас "консистентно", если за время вашей итерации удаляются и добавляются записи?
Видимо MVCC
источник

AR

Aleksandr Razumov in Tarantool
Т.е. я начал читать данные в TS1 и мне нужно их закончить читать в том виде, в котором они были в TS1, изолированно от тех изменений, которые произошли позже.
источник

AR

Aleksandr Razumov in Tarantool
Насколько я понимаю, этого достичь можно только залочив полностью всю запись.
источник

OK

Oleg Koshovetc in Tarantool
На каждом тапле можно хранить время его создания в виде таймстемпа, перед началом чтения фиксировать текущий таймстемп, а дальше фильтровать по записям, у которых таймстемп меньше.

Как-то вот так
space:pairs({ blahblahblah }):filter(function(t) return t.ctime < fixed_timestamp end):...
источник

OK

Oleg Koshovetc in Tarantool
Запись это никак не лочит
источник

OK

Oleg Koshovetc in Tarantool
А, хотя если данные обновляются, работать не будет, херню сморозил
источник

EL

Eugene Leonovich in Tarantool
или удаляются
источник

MA

Mons Anderson in Tarantool
Aleksandr Razumov
Насколько я понимаю, этого достичь можно только залочив полностью всю запись.
Запускаете реплику и на реплике в нужный момент читаете от начала до конца
источник

MA

Mons Anderson in Tarantool
Snapshot read view нет
источник

AR

Aleksandr Razumov in Tarantool
Mons Anderson
Запускаете реплику и на реплике в нужный момент читаете от начала до конца
Примерно такое же решение и придумал, да :)
источник

DK

Dmitriy Koltsov in Tarantool
Доброе утро!
Подскажите, а когда и стоит ли ждать репозиторий для Fedora 32? Или придется использовать 31?
источник

GS

Guram Savinov in Tarantool
Mons Anderson
И да: любая выборка (что get, что select) в любом случае вернёт тапл целиком, даже если вам нужно из него только одно поле. Выборка "одного поля" осуществляется как отдельная операция

Обращение по номеру поля немного быстрее, чем обращение по имени.
Обращение к первым полям в тапле быстрее, чем обращение к дальним
понял, спасибо
источник