Юрий Сыровецкий
Заметки в Диске
автоматическое слияние некоторых типов файлов (текстовых документов, таблиц)
Make DataSync Great Again
синхронизация реплицированных данных
без центрального сервера
без подтверждения других участников
многие ко многим
на нестабильных каналах
с периодами отсутствия связи
Сервера: \(1..n\)
Лайки: \([c_1,..,c_n]\)
// Rust
type Tag = Timestamp;
type ORSet<T> = Map<Tag, Option<T>>;
strictly monotonic
unique, ordered
// Rust
type Tag = Timestamp;
type RGA<T> = Vec<(Tag, Option<T>)>;
Известный писатель, врач и пушкинист Викентий Вересаев вспоминал: «В одной одесской газете при описании коронации – не помню, Александра III или Николая II, – было напечатано:
Митрополит возложил на голову Его Императорского Величества ворону.
В следующем выпуске газеты якобы появилась заметка:
В предыдущем номере нашей газеты, в отчёте о священном короновании Их Императорских Величеств, вкралась одна чрезвычайно досадная опечатка. Напечатано: «Митрополит возложил на голову Его Императорского Величества ворону» – читай: «корову».
// Rust
type Tag = Timestamp;
type State<T> = Map<Tag, Option<T>>;
enum Op<T> {
Add(Tag, T),
Remove(Tag),
}
// Rust
type State<T> = Vec<(Tag, Option<T>)>;
enum Op<T> {
InsertBegin(Tag, T),
Insert(Tag, Tag, T),
Remove(Tag),
}
Twitter: @cblp_su
Telegram: @cblp
E-mail: crdt@cblp.su