SYSTEM ATLASЗагрузка материала

Линеаризуемость

Linearizability

Операции выглядят атомарными и согласованными с реальным временем.

Простыми словами

Гарантия, при которой каждая операция выглядит мгновенной в некоторый момент между вызовом и ответом и уважает реальный порядок завершённых операций. Например, аналитический конвейер забирает изменения из основной базы и должен не потерять и не продублировать данные. Поэтому заранее определяют правила чтения, записи и восстановления - иначе параллельные операции могут оставить данные в состоянии, которого бизнес не ожидал.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Решение принимают без учета механизма «Линеаризуемость», оценивая только ближайший эффект.

Системный подход

Перед изменением проверяют, как «Линеаризуемость» влияет на ограничения, стимулы, зависимости и вторичные последствия.

Ограничения

«Линеаризуемость» объясняет только часть происходящего в области «Базы данных и данные». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Maurice P. Herlihy; Jeannette M. Wing. Linearizability: A Correctness Condition for Concurrent Objects (1990).

Первоисточник