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