-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
コンディショナルロールの付与条件増強 #13667
Comments
他にもコレが欲しい等あればここに書き込み願います |
(ほかにもいくつか抱えてるので実際の着手はしばらく後の予定) |
|
|
リノートの数、アカウントの統計情報にあったんですね(リアクションは記憶していましたがリノートやそれ以外のもは覚えてないです) |
本家以外でもリノート数などをデータベースに持っている実装は無いと思う |
ioにはあると耳にしています |
特にデータベースは変更してなさそう |
ありませんか…? |
都度集計してるだけでデータベースにはなさそう |
なるほど、そういうことでしたか… |
以下で実装します。
|
〇〇した数系はデータベースに持っていない(もしくは持ってても精度が低い)のがほとんどで、コンディショナルロールで使うのは現実的ではないかも |
どうしても使いたい場合は、データベースにカラムとして持つようにした上で、PostgreSQLのトリガ定義してカウントするようにした方が良さそう |
負荷の面で負担になりそうな懸念はたしかにあります。 完全にオミットするか、コンディショナルロールの算出結果をCacheServiceよろしく特定期間保存するか… |
コンディショナルロールの判定は場合によっては大量に行われるから同期的な処理だけで済ませたい |
これはPromiseを使わずに実現できる範囲であればOK…ということでよいです? |
結果のキャッシュやジョブで付与したものを取り出すだけにするのでも厳しいでしょうか…? |
コンディショナルロールは参照される機会が桁違いに多いからキャッシュする場合短時間でも数千とか数万の量になってメモリ的に厳しそう |
そうね |
(ちなみに、コンディショナルロールのアサインをDBに持たず都度判定してるのって何か歴史的経緯があるんでしょうか?) |
|
なぜこうなっているのか知りたく |
が理由 |
条件の判定が最短で1回/日や1回/週となるようなキャッシュ保持を検討することは困難なのでしょうか? |
|
日付情報1つを |
日付情報だけでなく、ロール情報もキャッシュが必要じゃないかしら? |
コンディショナルロールはどんなリモートユーザーにも無条件で適用されるという点は留意しないといけない |
適用されるコンディショナルロールが無いということもキャッシュしなければならないから最大で全てのFediverseユーザーに対してのキャッシュが必要になる |
あ~ |
ふむ…では、ローカルに限ったり出来るなら(出来ないかも)少し話が変わる感じでしょうか? 逆の、ロール側ではなく情報側を持つ方向で検討する場合は、個人的には
はロールの条件として利用する価値が十分高いと感じているのですが、それらの内容も現状user_profile内にあるため、更新頻度(少ない)によらず厳しいということですよね… |
ローカルに限ったとしてもユーザー数が多い場合結局はメモリの問題が出てくるわね
それらはuserで持つようにしても良さそう |
(現存しない"連続"ではなく、現存する"通算"の日数です) |
通算日数は保持してなくて、厳密にはログインした日付の配列だったと思う |
確かに、上に |
諸々了解しました。コンディショナルロールについては「非同期なく即時判定可能なもの」で実装します。 |
(off-topic)
role_assignmentのレコード数は増えますが、逆に言えばそれだけだと思うので… |
実際そのようなものは考えてたし検討の余地はあるわね |
なるほど、ありがとうございます。需要が見込めたら別途issueを建てようと思います。 |
Summary
以下を新たな条件として設定できるようにします。
Purpose
Do you want to implement this feature yourself?
The text was updated successfully, but these errors were encountered: