私はファイルシステムを実装しています。各フォルダーにはACLがあります。これは基本的に、フォルダーの読み取り/書き込みが許可されているユーザーIDのリストにすぎません。ACLを上位レベルのフォルダーから下位レベルのフォルダーにコピーしてこれを実装したい-継承されたアクセス許可が必要ですが、読み取り時にそれらを検索する必要はありません。フォルダー間の関係を、サブフォルダー内のスーパーフォルダーへの参照として保存します。
したがって、次の操作の順序は、HRDで解決するのは困難です。
- フォルダーBを、既に存在するフォルダーAのサブフォルダーとしてデータストアに配置します。
- Aの権限を変更します。
問題は、手順2でAの権限を変更するときに、Aのすべての子を検索して、それらにも権限の変更を適用できるようにする必要があることです。残念ながら、これはクエリを意味するため、Bがそのクエリに表示されない場合があります。Bは許可の変更を見逃す可能性があります!
これまでに考えた唯一の解決策は、「サブフォルダー」の関係を双方向に格納することです。Aにはすべてのサブフォルダーへの参照があり、Bにはスーパーフォルダーへの参照があります。次に、グループ間トランザクションを使用してAとBを同時に更新でき、手順2でクエリを実行する必要はありません。直接取得を簡単にキャッシュできるため、インデックススキャンが不要なため、とにかくこれが適している可能性があります。
他に何かアイデアはありますか?このソリューションの冗長ストレージのニーズやXGトランザクションの必要性は好きではありません。