Распространенность системы


Распространенность системы [1] — это простой архитектурный шаблон программного обеспечения, который сочетает в себе образы системы (моментальные снимки) и журналирование транзакций для обеспечения скорости, масштабируемости производительности, прозрачного сохранения и прозрачного живого зеркалирования состояния компьютерной системы .

В распространенной системе состояние хранится в памяти в собственном формате, все транзакции протоколируются , а образы системы регулярно сохраняются на диск.

Системные образы и журналы транзакций могут храниться в формате сериализации для конкретного языка для повышения скорости или в формате XML для переносимости между языками.

Первым использованием термина и общедоступной общедоступной реализации слоя преобладания системы был Prevayler , написанный для Java Клаусом Вустефельдом в 2001 году. [2]

Простое сохранение состояния системы в ОЗУ в его обычном, естественном формате, зависящем от языка, на несколько порядков быстрее и удобнее для программиста, чем многочисленные преобразования, которые необходимы при сохранении и извлечении данных из СУБД . В качестве примера Мартин Фаулер описывает « Архитектуру LMAX » [3] с бизнес-системой на основе журнала транзакций и системного образа (моментального снимка), которая может обрабатывать 6 миллионов транзакций в секунду в одном потоке.

Распространенной системе требуется достаточно памяти , чтобы хранить все свое состояние в оперативной памяти («распространенная гипотеза»). Сторонники распространенности утверждают, что это постоянно облегчается за счет снижения цен на оперативную память и того факта, что многие бизнес-базы данных уже достаточно малы, чтобы поместиться в памяти.