A.2. 永続オブジェクトストア
本項では、永続オブジェクトストアの各提供実装に関する特徴や最適化について簡単に説明しています。永続オブジェクトステートは、ホストのオペレーティングシステムでサポートされているファイルシステム構造にマッピングされます。
一般的な機能
前述した機能に加え、同梱の永続オブジェクトストアはすべて以下のルールに従います。
- 各オブジェクトステートは独自ファイル内に格納され、オブジェクトの
Uid
を使い命名されます。 type()
オペレーションにより提供されるオブジェクトの種類は、オブジェクトがどのディレクトリに置かれるかを決定します。- 全ストアには、JBoss Transaction Service 設定により決定される共通の root ディレクトリがあり、このディレクトリ名は自動的にストア固有のroot 情報にプリペンドされます。
- また、ストアはすべてローカライズされた root ディレクトリを利用可能で、このディレクトリは最終的なディレクトリ名を確定するため、オブジェクトのタイプの先頭に自動的に追加されます。このローカライズされた root 名は、ストア作成時に指定されます。デフォルトのローカル root 名は、
defaultStore
となります。
表A.1 オブジェクトストア情報の例
項目
|
値の例
|
---|---|
ObjectStore root Directory from configure
| /JBossTS/ObjectStore/
|
ObjectStore Type 1
| FragmentedStore/
|
Default root
| defaultStore/
|
StateManager
| StateManager
|
LockManager
| LockManager/
|
User Types
|
|
Localised root 2
| myStore/
|
StateManager
| StateManager/
|
ObjectStore Type2
| ActionStore/
|
Default root
| defaultStore/
|
A.2.1. シャドーストア
シャドーストアは、以前のリリースで提供されていた通り、オブジェクトストアの原型となるもので、
ShadowingStore
クラスにより実装されます。これは、オブジェクトを表現する際にファイルをシャドー版とコミット版のペアで利用しており、シンプルですが動作が遅くなっています。オブジェクトストアとのやりとりの間、ファイルが開かれ、ファイルでロックや操作、ロック解除が行われ、ファイルを閉じます。こうするとファイルの開閉や名前変更だけに厳密に必要とされるリソースよりも多くのリソースが必要となります。
このオブジェクトストアの種類は、ShadowingStoreとなっています。