システム普及[1]は、システムイメージ(スナップショット)とトランザクションジャーナリングを組み合わせて、速度、パフォーマンスのスケーラビリティ、透過的な永続性、およびコンピュータシステム状態の透過的なライブミラーリングを提供するシンプルなソフトウェアアーキテクチャパターンです。
一般的なシステムでは、状態はネイティブ形式でメモリに保存され、すべてのトランザクションはジャーナル化され、システム イメージは定期的にディスクに保存されます。
システム イメージとトランザクション ジャーナルは、速度を上げるために言語固有のシリアル化形式で保存することも、言語間での使用のためにポータブル形式で保存することもできます。
この用語が初めて使用され、システム普及層の汎用的な公開実装となったのは、2001年にクラウス・ヴュステフェルドがJava用に書いたPrevaylerでした。 [2]
利点
システム状態を通常の自然な言語固有の形式で RAM に保持するだけで、 DBMSに保存して取得するときに必要な複数の変換よりも桁違いに高速になり、プログラマーにとっても使いやすくなります。例として、Martin Fowler は、トランザクション ジャーナルとシステム イメージ (スナップショット) ベースのビジネス システムを中核とする「LMAXアーキテクチャ」[3]について説明しています。このアーキテクチャでは、1 つのスレッドで 1 秒あたり 600 万のトランザクションを処理できます。
要件
普及システムには、RAM に状態全体を保持するのに十分なメモリが必要です(「普及仮説」)。普及の支持者は、RAM の価格が下がり、多くのビジネス データベースがすでにメモリに収まるほど小さいという事実によって、この問題は継続的に緩和されていると主張しています。
プログラマーは、保存のために明示的なAPI呼び出しを使用したり、取得のためにクエリを 使用したりするのではなく、ビジネス状態を RAM 内でネイティブに操作するスキルが必要です。
システムのイベントはジャーナリング用にキャプチャ可能である必要があります。
参照
参考文献
- ^ Johnson, Ralph, Dr. 「Prevalent Systems: A Pattern Language for Persistence」(PDF)。2017年6月10日時点のオリジナル(PDF)からアーカイブ。
{{cite web}}: CS1 maint: 複数の名前: 著者リスト (リンク) - ^ Klaus Wuestefeld (2001-12-23). 「Object Prevalence」. Advogato . 2008-04-02閲覧。
- ^ Martin Fowler (2011-07-12). 「LMAX アーキテクチャ」 . 2011-07-28閲覧。
市販のハードウェアを使用して 1 秒あたり 600 万件の注文を処理するスレッド。
外部リンク
- Carlos Villela著「オブジェクトの普及度入門」IBM Developerworks向け。[1]
- 「Prevalence: 透過的でフォールトトレラントなオブジェクトの永続性」、Jim Paterson著、O'ReillyのOnJava.com向け[2]
- 「オブジェクトの普及」:2001年にAdvogatoに掲載されたKlaus Wuestefeldによるオリジナル記事。[3]
- マドレーヌ:Ruby実装[4]
