Percolator (транзакции)
Модель Google (2010) для построения распределённых ACID-транзакций поверх хранилища «ключ — значение» (Bigtable) через двухфазную фиксацию на стороне клиента и центральный оракул временных меток. Основа современных распределённых SQL-баз вроде TiDB.
Предыстория: Google создал Percolator для инкрементального обновления поискового индекса, и ему нужны были транзакции поверх Bigtable, которая сама их не поддерживала. Механика: двухфазная фиксация, управляемая клиентом, хранит метаданные блокировок и фиксации в дополнительных столбцах Bigtable; «Timestamp Oracle» выдаёт глобально упорядоченные метки для snapshot isolation. Центральной службы-координатора транзакций нет — логика живёт в клиенте и хранилище. Наследие: транзакционная модель TiDB прямо опирается на Percolator, а идеи повлияли на целую волну распределённых SQL-баз. Отличается от Spanner, который использует аппаратный TrueTime. Влиятельная статья, показавшая, что ACID возможен на масштабируемом KV-хранилище.