リアクションごとにノートのリアクション情報が更新されるのは重い · Issue #11093 · misskey-dev/misskey · GitHub
Skip to content

リアクションごとにノートのリアクション情報が更新されるのは重い #11093

Closed
@syuilo

Description

Summary

Issueあった気がしたけど見当たらなかった

例えば1秒間に100回リアクションがつく場合リアクションレコードの挿入に加えて、100回ノートレコードの更新(=PostgreSQLでは実質的にノートテーブルの新規挿入&削除)が走ることになりかなり負荷が高い

そのためノートレコードごとにリアクション情報を非正規化して持つのをやめたいが、ノート取得するたびにリアクションを集計してくるのもかなり負荷が高いと思われるので、何かいい解決策を考える必要がある

例えばRedisにうまいことキャッシュできないかしら

  • Redisにキャッシュして定期的にDBにベイクする(つまりRedis→DB)
    • 懸念: 結局ベイクが重そう、実装が難しそう
  • Redisにキャッシュしてキャッシュがある場合はそれを使い、ない場合はDBから集計+キャッシュ追加(つまりDB→Redis)
    • 懸念: DBから集計が重そう
  • 非正規化リアクション情報用DBを別に用意できるようにする

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions