10.2.7. Soft-Index ファイルストア
soft-Index ファイルキャッシュストア SoftIndexFileStore
は、ローカルファイルベースのストレージを提供します。
SoftIndexFileStore
は、Java のソフト参照を使用してインメモリーでキャッシュされる B+ Tree のバリアントを使用する Java 実装です。Index
と呼ばれる B+ Tree は、キャッシュストアが再起動するたびに削除および再ビルドされる単一のファイルにオフロードされます。
SoftIndexFileStore
は、データを単一のファイルではなく一連のファイルに保存します。ファイルの使用量が 50% を下回ると、ファイルのエントリーが別のファイルに上書きされ、ファイルは削除されます。
SoftIndexFileStore
は、add-only メソッドで記述されたファイルのセットでデータを永続化します。このため、従来の磁気ディスクで SoftIndexFileStore
を使用する場合は、エントリーのバーストを書き込むときにシークする必要はありません。
SoftIndexFileStore
のほとんどの構造はバインドされるため、メモリー不足の例外は危険にさらされません。同時オープンファイルの制限を設定することもできます。
デフォルトでは、Index
のノードのサイズは 4096 バイトに制限されます。このサイズはキーの長さも制限します。シリアライズされたキーの長さが正確になります。このため、ノードのサイズ (15 バイト) よりも長い鍵を使用することはできません。さらに、キーの長さは "short" として保存され、キーの長さは 32767 バイトに制限されます。SoftIndexFileStore
は、シリアル化後にキーが長い場合に例外を出力します。
SoftIndexFileStore
は期限切れのエントリーを検出できず、ファイルシステムで領域が過剰に使用されてしまう可能性があります。
AdvancedStore.purgeExpired()
は SoftIndexFileStore
には実装されていません。
宣言型設定
<persistence> <soft-index-file-store xmlns="urn:infinispan:config:store:soft-index:10.1"> <index path="testCache/index" /> <data path="testCache/data" /> </soft-index-file-store> </persistence>
プログラムによる設定
ConfigurationBuilder b = new ConfigurationBuilder(); b.persistence() .addStore(SoftIndexFileStoreConfigurationBuilder.class) .indexLocation("testCache/index"); .dataLocation("testCache/data")
セグメンテーション
soft-Index ファイルキャッシュは、サポートセグメントとセグメントごとに別のインスタンスを作成するので、設定するパスに複数のディレクトリーが作成されます。各ディレクトリーは、データマップ先のセグメントを表す数字です。