Что такое консистентность

«Что такое консистентность» — вопрос из категории Базы данных, который задают на 24% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Консистентность (согласованность) в распределённых системах означает, что все узлы видят одни и те же данные в один момент времени. В Golang это важно при работе с конкурентным доступом к данным.

Пример с sync.Mutex:

var (
    counter int
    mu      sync.Mutex
)

func increment() {
    mu.Lock()
    counter++
    mu.Unlock()
}

Без мьютекса разные горутины могут читать/писать counter одновременно, приводя к race condition. Мьютекс обеспечивает консистентность, сериализуя доступ.

В распределённых системах используют более сложные механизмы (Paxos, Raft) для поддержания консистентности между узлами. В Go есть пакеты для этого, например etcd или consul.