Slide では、オブジェクトがどのように格納され、ロックされるか、等を制御する低レベルサービスを定義する事が出来ます。
異なる種類のオブジェクトは、それらのオブジェクトがどうアクセスされ、何を表しているか、等に依存するような、異なる処理の実装が必要だからです。
異なる2種類のサービスがあります:
- Descriptors store:格納構造・ロック・メタデータ等を扱う役割があります
- Content store:コンテンツの格納を扱う役割のみがあります
少量のデータの管理とインデックスを非常に効率よく行うレポジトリ(リレーショナルデータベースが良い例でしょう)がある一方で、
データの大きなチャンクを格納するのに相応しいレポジトリ(ファイルシステム等)がある、
と言う事は極めてわかりやすい事なので、この両者(2つのstore)の違いが存在しているのです。
Slide 内では、全てのオブジェクトが異なる種類の低レベルサービスを背後に持つ事がありえます。
例えば、
遠隔のLDAPディレクトリに格納されているオブジェクトがある一方で
ローカルのSQLデータベースに格納されているオブジェクトがある場合があります。
このように、名前空間のコンテンツは、いくつかの異なるdescriptors store/content store に
分散され得るのです。
低レベルサービスを名前空間の個々のノードにマッピングするSlide設定ファイルを使って、どのようにオブジェクトが格納されるかを選ぶという事は、管理者の一存にかかっています。
サービスは、名前空間内でノードの属性値となります。
このマッピングは、自動的にサブノードによって継承されます。
ここで、ある名前空間がどのように異なるサービスにマッピングされるかの例を示します:
異なる低レベルサービスへの名前空間のマッピング
この例では、異なる3つのサービスがマッピング化されています。
全てのactionsが一緒になって格納され(メモリstoreの可能性が高い)、
全てのfilesが特定のstoreに格納されています(ここでは、ファイルシステム)。
/usersはSQLデータベースにマッピングされています。