Распространенность системы
Распространенность системы [1] — это простой архитектурный шаблон программного обеспечения , который сочетает в себе образы системы (снимки) и транзакций журнала , чтобы обеспечить скорость, масштабируемость производительности, прозрачное сохранение и прозрачное живое зеркалирование состояния компьютерной системы ведение .
В распространенных системах состояние хранится в памяти в собственном формате, все транзакции протоколируются , а образы системы регулярно сохраняются на диск.
Системные образы и журналы транзакций могут храниться в формате сериализации для конкретного языка для повышения скорости или в переносимых форматах для использования на разных языках.
Первым использованием термина и общей общедоступной реализации уровня распространенности системы был Prevayler , написанный для Java Клаусом Вуестефельдом в 2001 году. [2]
Преимущества
[ редактировать ]системы Простое сохранение состояния в оперативной памяти в его нормальном, естественном формате, специфичном для конкретного языка, на несколько порядков быстрее и более удобно для программиста, чем многочисленные преобразования, необходимые при его сохранении и извлечении из СУБД .В качестве примера Мартин Фаулер описывает « Архитектуру LMAX ». [3] В основе лежит бизнес-система, основанная на журнале транзакций и системных образах (снимках), которая может обрабатывать 6 миллионов транзакций в секунду в одном потоке.
Требование
[ редактировать ]Распространенной системе требуется достаточно памяти , чтобы хранить все свое состояние в оперативной памяти («распространенная гипотеза»). Сторонники распространенности утверждают, что эта проблема постоянно смягчается за счет снижения цен на оперативную память, а также того факта, что многие бизнес-базы данных уже достаточно малы, чтобы поместиться в памяти.
Программистам необходимы навыки работы с бизнес-состоянием непосредственно в оперативной памяти, а не с использованием явных API вызовов для хранения и запросов для извлечения.
Системные события должны быть доступны для записи в журнал .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Джонсон, Ральф, доктор «Распространенные системы: язык шаблонов для устойчивости» (PDF) . Архивировано из оригинала (PDF) 10 июня 2017 г.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Клаус Вюстефельд (23 декабря 2001 г.). «Распространенность объекта» . Адвокат . Проверено 2 апреля 2008 г.
- ^ Мартин Фаулер (12 июля 2011 г.). «Архитектура LMAX» . Проверено 28 июля 2011 г.
Поток, который будет обрабатывать 6 миллионов заказов в секунду с использованием стандартного оборудования.
Внешние ссылки
[ редактировать ]- «Введение в распространенность объектов», Карлос Виллела для IBM Developerworks. [1]
- «Распространенность: прозрачное, отказоустойчивое сохранение объектов», Джим Патерсон для OnJava.com О'Рейли [2]
- «Распространенность объекта»: оригинальная статья Клауса Вюстефельда, опубликованная в 2001 году на сайте Advogato. [3]
- Мадлен: реализация Ruby [4]