Изоляция транзакций в СУБД — важный механизм, который позволяет пользователю получить согласованное состояние данных и работать с ними, не допуская конфликтов и снижения производительности. Организовать изоляцию нужного уровня можно несколькими способами, один из которых — MVCC (Multiversion Concurrency Control, многоверсионное управление конкурентным доступом). Читать дальше →
1. Разбираемся в физике частиц: мяч на пружине 2. Разбираемся в физике частиц: 2) квантовый шар на пружине 3. Разбираемся в физике частиц: 3) волны, классический вид 4. Разбираемся в физике частиц: 4) волны, классическое уравнение движения 5. Разбираемся в физике частиц: 5) квантовые волны
Одно из узких мест масштабируемости в традиционном PostgreSQL MVCC – получение снимков. Каждый раз, когда транзакции требуется снимок, она должна получить ProcArrayLock и пройтись по всем активным бэкендам, чтобы собрать их идентификаторы транзакций. Эта операция становится все более…
Неделю назад я не думала, что буду писать базу данных. Начиналось всё с банального «хочу строчку в резюме». А получилось: LSM‑дерево, MVCC, снапшоты, Value Log, WAL, компакшн, Column Families и даже GC. Всё на чистом Go, без cgo. Плюс gRPC, REST, CLI и Docker из коробки.Рассказываю, как собирала конструктор, где наступала на грабли и почему fsync — это боль, и в конце даже небольшая любовная драма в CLI Узнать, что у меня получилось