TGViewer
Человек и машина Человек и машина @manandthemachine · 1.69K subscribers
Post #707 1.9K
#машины_разное

Обидно, когда ты берешься копать тему, которая тебе кажется до жути интересной, и перестает быть таковой, как только ты разобрался в вопросе.

Мне не давала покоя история Spanner/TrueTime и его гарантии ACID в контексте СУБД планетарного масштаба. Я влез в нее, делая записки своих изысканий, надеясь сделать из этого полноценный блог, но блога тут хорошего не выйдет. Почему? Долгая история, но вы на меня подписаны не ради того, чтобы читать мои конспекты книг или, прости Господи, репосты.

Ниже, собранный из осколков пост, кратко описывающий, как оно работает.

Про TrueTime вы уже знаете. Он возвращает не время, но дельту вероятных времен. Spanner использует эту дельту, чтобы построить четкий порядок очередности транзакций, для обеспечения Consistency as in ACID.

Тут надо сделать небольшую ремарку: C в ACID и C в CAP это… разные consistency! Точнее слово-то одно, но оно так изнасиловано академиками кудахтер саенс, что консистентность тут имеет разные определения.

Консистентность по ACID означает то, что каждый запрос на чтение в базу вернет корректное состояние на момент исполнения запроса. По CAP - что каждый запрос на чтение вернет все завершенные записи.

Согласитесь, это несколько разные вещи? В ACID консистентность обеспечивается за счет атомарности и изоляции транзакций. В случае со Spanner, используется классический подход snapshot isolation что в купе с хитростями TrueTime дает нам нужные гарантии. Как хранилище Spanner’а обеспечивает скорую репликацию данных между регионами вопрос уже десятый, и не такой уж и интересный. В конце концов все упирается в физику, двухфазные коммиты и вот это вот все.

Что Cloud Spanner, что Aurora Global Database - прикольные решения, но в голове нужно держать цитату Мартина Клепманна: A node in the network cannot *know* anything for sure—it can only make guesses based on the messages it receives (or doesn’t receive) via the network.
  • 👍 1
More from @manandthemachine
  1. Jan 17, 2026#прощальное Вы могли заметить, что из канала исчезли комменты, а чат был удален. Подробнее…
  2. Dec 31, 2025#новогоднее Если бы мне пришлось охарактеризовать 2025-ый год одним единственным словом, я…
  3. Oct 24, 2025#машины_aws Пожалуй, лучший инцидент, что я когда либо видел. Если вкратце: 1. Управление…
  4. Sep 30, 2025#машины_разное Моя любимая рубрика «Разработчики СУБД знают лучше». Вы наверняка помните,…
  5. Sep 26, 2025#пятничное Инженер-программист Шивам Баларани рассеянно смотрел в монитор. Через блеклый и…
  6. Sep 24, 2025Вот это я конечно не попал в лимиты телеграма. 🤦‍♂️
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →