-
-
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
feat(backend): fetch the first page of outbox when resolving Person #11130
base: develop
Are you sure you want to change the base?
Conversation
Codecov ReportPatch coverage has no change and project coverage change:
Additional details and impacted files@@ Coverage Diff @@
## develop #11130 +/- ##
===========================================
- Coverage 78.88% 78.74% -0.15%
===========================================
Files 925 174 -751
Lines 97589 22783 -74806
Branches 7746 511 -7235
===========================================
- Hits 76986 17940 -59046
+ Misses 20603 4843 -15760 ☔ View full report in Codecov by Sentry. |
collection; | ||
|
||
// Perform activity but only the first 100 ones | ||
await this.apInboxService.performActivity(user, firstPage, 100); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
100はちょっと多い気がしたけどどうだろう
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
50? 20? 適当に100にしましたが多すぎるかも
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
100 でいいんじゃね
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
30ぐらいでいいんじゃない?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
15でもいいかも
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
15にしようぜ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Misskeyのoutbox limitが20ですのでせめて20はしたいです
const limit = 20; |
なんかsignedGetでCPU使用率がめちゃくちゃやばい |
resolver.resolveをアイテム分だけ呼び出してるけどどうにか1回のリクエストで取得できないの |
1回ならまあなんとかなる |
これ、#11161 は変わらないけど
にならない? |
outbox読むのにsignatureって必要なのかしら?→フォロワー向け投稿周りで必要なのか |
どういう条件でそうなるのでしょうか。同じユーザーは再び照会しても二つ目はローカルからロードするはずですので、同じactivityは再びperformされないものなのではないかと |
あとsignature必修なサーバーとか(フォロワーは最初照会の時は関係ないはず) |
エラーの話は手違いの可能性が高い、すみませんでした |
とにかくsignedGetでCPU使用率がどうしようもなくなるのでsignedGetを1回きりにする必要がある |
エラーはこのPRのせいだった
ap/showで、未知のユーザーの未知のノートを取得するとこうなる。 ap/showで色々呼んでいる途中の
が問題で、これの後に作業中のノートをthis.noteCreateService.createで改めて挿入してしまうためコンフリクトが発生する |
この問題、featuredノートをfetchした場合はどうなるんでしょう
|
updateOutboxFirstPage自体は最大2回signedGetしますので、その場合はそれに含まれるノートに新しいものが沢山入ってるのかも |
conflicted |
(#11130 (comment) の対応をしてなかったので) |
うーーん、リプライとかを永久に引っ張ってきておりデータベースが肥大化してきている performActivityでフェッチする数をdefault.ymlで調整できるようにする必要がある(0で無効化) |
resolvePersonじゃなくtimeline APIとかでtimelineが空いてたらfetchするようにしたらいいかも 元々リモートでも空いてるアカウントとなんとか区別しないと相手サーバーにfetchし続けるようになるのでそれは困難 |
とりあえず設定できるようにした |
placeholderノート作りたい(実際必要な場合にだけfetchするように) |
placeholderにしておいてpack(?)が呼ばれたらresolveするようにということかしら |
そうやってfetch回数をへらしたり、dropboxのplaceholderファイルのように古くて使わないリモートのノートをplaceholderに変えて容量を確報するとか、使い道がいろいろありそうです |
conflicted (p1.a9z.devへマージしているため解消する必要がある) |
解消 |
What
Fixes #9652
Why
ユーザーを最初照会した場合にそのタイムラインが空っぽに見えるのを防止
Additional info (optional)
Checklist