Что такое ACID в контексте баз данных?

«Что такое ACID в контексте баз данных?» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ACID — это набор ключевых свойств транзакций в системах управления базами данных (СУБД), обеспечивающих надежность и предсказуемость операций с данными. В DevOps-практиках понимание ACID критично для проектирования отказоустойчивых систем, выбора подходящей СУБД (например, PostgreSQL для строгой согласованности или Cassandra для высокой доступности) и настройки репликации.

  • Atomicity (Атомарность): Транзакция выполняется как единое целое. Все её операции либо применяются, либо откатываются. В инфраструктурном коде (Terraform, Ansible) мы добиваемся аналогичного поведения через идемпотентность и механизмы отката.
  • Consistency (Согласованность): Каждая транзакция переводит базу данных из одного валидного состояния, определяемого правилами (constraints, триггеры), в другое валидное состояние.
  • Isolation (Изолированность): Параллельно выполняемые транзакции не должны влиять друг на друга. Уровни изоляции (Read Committed, Repeatable Read, Serializable) — это компромисс между целостностью данных и производительностью, который мы настраиваем в зависимости от нагрузки.
  • Durability (Долговечность): После успешного завершения (commit) результаты транзакции сохраняются на постоянном носителе и не теряются при сбое. В DevOps это обеспечивается комбинацией WAL (Write-Ahead Logging), репликацией и надежным бэкапированием.

Пример настройки в PostgreSQL (postgresql.conf):

-- Повышение долговечности ценой производительности
fsync = on
synchronous_commit = on
full_page_writes = on
wal_level = replica

-- Настройка уровня изоляции по умолчанию для сессии
SET default_transaction_isolation = 'repeatable read';

При проектировании пайплайнов развертывания, затрагивающих схемы БД, мы используем инструменты миграций (Liquibase, Flyway), которые по своей природе являются ACID-транзакциями для метаданных.

Видео-ответы