Local-first и децентрализация


Kanal geosi va tili: Belarus, Ruscha
Toifa: Erotika


Replicated Object Notation,
CRDT, распределёнщина и децентрализация.
Ведёт @gritzko
Чат @Ronzgovory

Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Belarus, Ruscha
Toifa
Erotika
Statistika
Postlar filtri


Текст: за буферы, против heap и malloc. Вкратце: жизнь проще, если держать данные одним кирпичом, а не разбрасывать по памяти new/malloc ом.
Можно также считать это агитацией за арены.

https://github.com/gritzko/librdx/blob/master/B.md


My story:
- as a researcher, I did CRDTs in 2008
- as a developer, I did collab editors in 2012 and sync frameworks in 2014
- now, as a coding mathematician I do a syncable data format.
It is all about the LANGUAGE people and systems use.

494 0 3 16 21

Начинающий программист пугается, когда программа ведёт себя не так.
Опытный пугается, когда программа ведёт себя как надо, хотя я же это ещё не кодил!
$ cat test.rdxj
{1:2},
{1@2-2:6},
{eight},
$ cat test2.rdxj
{3:4,4:5,"seven"}
$ rdx merge test.rdxj test2.rdxj | rdx j
{,3:4,4:5,"seven",eight}


Хейтер как на работу сюда ходит со своими аккаунтами. Я, вероятно, оставлю только одно доступное эмодзи 🔥. Оно будет означать либо "тема огонь!" либо "гори в аду!" То есть будет такая интригующая недосказанность.


Это я к тому, что алгоритм мёржа очень хорошо получился в новой итерации, я прямо рад сегодня.
Сам формат данных минималистичный и ортогональный, и мёрж тоже.


Соответственно, "третий том" интересных подвижек, где мерж уже абсолютно краеуголен, связан с попытками сделать клиент (смартфон) полноценной частью системы с полноценной БД, которая синхронизируется с сервером. Это очень тернистый путь, я могу назвать тех, у кого не получилось, тех у кого получилось не то и тех, у кого хоть что-то получилось.
И RDX это история из вот этого третьего тома.


Далее, второй том этой приключенческой саги начал писаться с появлением интернет-гигантов, Google, Facebook, присоединившийся к ним Apple, итд. БД уже точно не помещались на сервер или даже несколько серверов. Нужно было прям тучу серверов (ну или облако).
Тут уже появилось семейство кассандровых, БД где мёрж это важная операция, на которой всё и построено - серверов тысячи, единого лога нет, единого порядка операций нет, да он и не нужен.
Что там творится в Google пусть эксперты расскажут, но семейство LevelDB/RocksDB/Pebble происходит оттуда. Это вроде бы побочные потомки BigTable.
Apple является крупнейшим эксплуатантом Кассандры.
Discord недавно переехал с Кассандры на Сциллу.


Теперь про RDX. Для меня история выглядит так. 1984 году Leslie Lamport формализует репликацию через конечные автоматы (state machine approach). 1990 Fred Schneider в обзорной статье "Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial" подмечает, что если бы операции были коммутативны, это открыло бы новые возможности. А реальные операции часто коммутативны, в той или иной степени. То есть, идеи CRDT повитали в воздухе еще тогда, но ни во что не вылились.
Просто потому, что даже интернета ещё толком не было и любая БД помещалась на сервер. И нормально, много софта было тогда написано и IBM до сих пор жирно живёт это всё поддерживая.
Приключениям трёх мушкетёров Postgres-MS SQL-Oracle и дартаньяна MySQL, и посвящён первый том истории баз данных.

435 0 5 10 19

Помню, я ещё студентом на 2 курсе читал Компьютерру пол-года. Внимательно так читал, на лекциях скучно было после СУНЦа. Потом перестало быть интересно. Помню там была большая статья, а это 1998 примерно год, с посылом "Хватит писать опердни". В том плане, что все пишут опердни, они во всех случаях устроены очень похоже, это должен быть один продукт, ну или два конкурирующих.

И вот, недавно общаюсь с людьми из одной российской компании, занимающейся разработкой БД. Про RDX. Один из первых вопросов: "вот если я пишу опердень на постгресе, как мне поможет ваша технология?"

В ушах зазвучала музыка из Warhammer. THE HERETIC. THE MUTANT. THE ALIEN.

Это игровая вселенная, где галактикой 10000 лет правит один император. Прогресса нет. Бесчисленные поколения солдат сражаются одним автоматом. Геройски погибают. Автомат не погибает, он сделан из очень толстого чугуния.

450 0 3 26 22

Кстати. Если кто не заметил, тут появился хейтер с двумя sockpuppet аккаунтами. Одновременно появляются по три негативных эмоджи под каждым постом.
Но иногда ленится и ставит по два. Призываю не лениться. В этом канале, поведение должно быть консистентным у всех!




В догонку, привет из реального мира


То есть, мой посыл тут идёт немного дальше, чем CRDT. Лисповодам и кложуристам привет.

632 0 1 50 10

Собственно, тут я стараюсь показать на практике, как выглядит моя идея полезной комбинаторики: примитивы должны были ортогональны и свободно комбинироваться !!! без добавления уровней абстракции !!!
А вот межглючные взаимодействия нужно сводить к минимуму.
Комбинаторика первого должна обгонять комбинаторику второго :)

Конкретно же в случае RDX-J мы берем в общем те же примитивы, из которых сделан JSON и делаем на порядок более гибкий, версионированный формат. То есть структурный diff/patch/merge получается практически бесплатно, из определений.

В бинарной TLV версии всё ещё проще.

Подробно - по ссылкам (англ)




История сделала круг. Я помню времена до интернета, когда малварь распространялась на дискетках. Оказывается, теперь это супер-пупер трюк для заражения air-gapped/оффлайновых компьютеров. Только на флешках уже, но приёмы те же.


Генерация парсеров в ABC уже нормально так работает. Добавил парсер JSON за два дня. Собственно, грамматика, формат дерева JSON в памяти (простой массив), немного изоленты и всё. Дальше работает мой генератор, потом Ragel. На выходе нечитаемый код парсера, который можно потом скормить ChatGPT для смеху.
И это всё лёгкая разминка перед написанием
парсера RDX (текстового, JSON подобного). В простых случаях RDX-текстовый вообще неотличим от JSON.
Зачем мне нужен RDX-текстовый? Чтобы писать тесты. Много тестов. Очень назрело, тем более что реализации уже две.
Такой вот backtrace.


В ближайшие недели, я движусь по маршруту Дубай-Ларнака-Тель-Авив. У кого есть мысль выпить кофе, обсудить дела - напишите пожалуйста в приват.


https://news.ycombinator.com/item?id=41805446
Soul breaker сезона - цены на рынке аренды GPU.
Комментировать не буду. Если кто в теме, пишите что думаете.


Я лекции через Дискорд с Ютубом веду. Получается уже двойной мощный удар.

20 ta oxirgi post ko‘rsatilgan.