Size: a a a

2021 February 09

KO

Konstantin Osipov in Tarantool
но gap lockи на первом месте конечно...
источник

KO

Konstantin Osipov in Tarantool
Но может все же сделать это не хэш таблицей а полноценным индексом?
источник

KO

Konstantin Osipov in Tarantool
Тогда и гэп локи не придётся сбоку городить
источник

AL

Aleksandr Lyapunov in Tarantool
Konstantin Osipov
но gap lockи на первом месте конечно...
да. они по сути должны быть сделаны как в виниле, поэтому это было сразу понятно и впопыхах как-то забыли
источник

KO

Konstantin Osipov in Tarantool
Bps не сильно тормознее Зуша
источник

KO

Konstantin Osipov in Tarantool
Хэша
источник

KO

Konstantin Osipov in Tarantool
Если у тебя будут Локи в арсенале можно будет просто дождаться завершения конфликтной транзакции а не откатывать ее
источник

AL

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

AL

Aleksandr Lyapunov in Tarantool
вставил кортеж - и считай во всех индексах появилась история
источник

KO

Konstantin Osipov in Tarantool
Ее надо делать только по первичному ключу
источник

AL

Aleksandr Lyapunov in Tarantool
тогда gapы по вторичным пропустим
источник

AL

Aleksandr Lyapunov in Tarantool
Konstantin Osipov
Тогда и гэп локи не придётся сбоку городить
к этому
источник

KO

Konstantin Osipov in Tarantool
Мы из через первичный увидим
источник

KO

Konstantin Osipov in Tarantool
Как в и в виниле
источник

KO

Konstantin Osipov in Tarantool
В виниле всегда есть Лукап в первичный ключ перед отдачей
источник

AL

Aleksandr Lyapunov in Tarantool
не, представим гэп селект по вторичному ключу.
ничего не нашли, первичный ключ не узнали
куда записывать-то?
источник

KO

Konstantin Osipov in Tarantool
Селекты не надо записывать, они пусть работают через Mvcc всегда
источник

AL

Aleksandr Lyapunov in Tarantool
Konstantin Osipov
ну и конечно хочется это видеть engine-agnostic, а не в кишках мемтикса
это было очень сложное решение. решили запить отдельно для memtx и потом распространять на винил. если кратно - и так и так плохо
источник

AL

Aleksandr Lyapunov in Tarantool
Konstantin Osipov
Селекты не надо записывать, они пусть работают через Mvcc всегда
боюсь, что для сериализации нужно. эх, не пришлось бы картинку рисовать
источник

AL

Aleksandr Lyapunov in Tarantool
1. транзакция 1 читаем вторичный ключ 1
2. транзакция 2 пишет что-то, что имеет вторичный ключ 1
3. транзакция 2 пишет 42
4. транзакция 1 читает ключ 42 - и НЕ должна увидеть то, что записала 2я.
значит нам надо трекать чтение по вторичному ключу
источник