digital-garden/_inbox/Happens before.md

25 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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