25 lines
2.1 KiB
Markdown
25 lines
2.1 KiB
Markdown
|
---
|
|||
|
aliases:
|
|||
|
tags:
|
|||
|
- зрелость/🌱
|
|||
|
date:
|
|||
|
- - 2024-06-09
|
|||
|
zero-link:
|
|||
|
- "[[00 Разработка]]"
|
|||
|
parents:
|
|||
|
linked:
|
|||
|
---
|
|||
|
|
|||
|
> [!WARNING] Нихуя не понятно, но очень интересно
|
|||
|
|
|||
|
|
|||
|
Две операции конкуренты тогда и только тогда, когда они независимы.
|
|||
|
|
|||
|
Заметки от лектора:
|
|||
|
- Операции выполняются независимо. Выполняются все операции.
|
|||
|
|
|||
|
Механика:
|
|||
|
- Сервер хранит номера версий для всех ключей, увеличивая номер версии всякий раз при выполнении записи значения для этого ключа, и сохраняет номер версии вместе с записанным значением.
|
|||
|
- При чтении ключа клиентом сервер возвращает все не перезаписанные значения, а также последний номер версии. Клиент должен прочитать ключ перед операцией записи.
|
|||
|
- Записывая значение для ключа, надо включить номер версии из предыдущей операции чтения, а также объединить все полученные при предыдущей операции чтения значения. Полученный ответ может быть таким же, как и для чтения.
|
|||
|
- Сервер, получив информацию об операции записи с конкретным номером версии, может перезаписать все значения с этим или более низким номером версии, так как знает, что все они слиты воедино в новом значении, но должен сохранить все значения с более высоким номером версии, поскольку эти значения конкурентны.
|