Skip to content
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

fix: ノート取得時にノート数がlimitよりも少ない事がある問題を修正 #12254

Closed
wants to merge 50 commits into from

Conversation

hideki0403
Copy link
Contributor

@hideki0403 hideki0403 commented Nov 5, 2023

What

  • API notes/timeline notes/local-timeline notes/hybrid-timeline notes/user-list-timeline users/notes にプロパティallowPartialを追加
    • これがfalseの場合かつ、Redis側にキャッシュしてあったノートがフィルタされ、返すことのできるノート数がlimitを下回った場合にデータベース側から不足分を取得するように

Why

Fix #12160

Additional info (optional)

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

tamaina and others added 30 commits February 23, 2023 22:15
Merge pull request misskey-dev#10048 from misskey-dev/develop
Merge pull request misskey-dev#10050 from misskey-dev/develop
* Add dialog to remove follower (misskey-dev#9718)

* update PULL_REQUEST_TEMPLATE

* 起動時にRedisの疎通確認を行う (misskey-dev#9832)

* 起動時にRedisの疎通確認を行う

* check:connectをstart内に移動

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* Pass `--detectOpenHandles` to Jest (misskey-dev#9895)

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* enhance(client): MkUrlPreviewの閉じるボタンを見やすく (misskey-dev#9913)

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* test(backend): restore ap-request tests (misskey-dev#9997)

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* fix/refaftor(client): MkTime.vueの変更 (misskey-dev#10061)

* fix(client): MkTime.timeにstringでもDateでない値が入った場合、?を表示

* fix(client): MkTimeを改良

* numberを許容

* falsyな値もとる

* 不明

* ありません

* fix

* fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする (misskey-dev#9911)

* fix(server): notes/createで、fileIdsと見つかったファイルの数が異なる場合はエラーにする

* NO_SUCH_FILE

* Update codecov.yml

* Update apple-touch-icon.png

* デプロイされているプレビュー環境がない場合はプレビュー環境を削除しないようにする (misskey-dev#10062)

* デプロイされているプレビュー環境がない場合はDestroy preview environmentを実行しないようにする

* CIがない場合の処理追加

* enhance(client): improve clip menu ux

* 未知のユーザーが deleteActor されたら処理をスキップする (misskey-dev#10067)

* fix(client): Android ChromeでPWAとしてインストールできない問題を修正 (misskey-dev#10069)

* fix(client): Android ChromeでPWAとしてインストールできない問題を修正

* 順番関係ある?

* Windows環境でswcを使うと正常にビルドができない問題の修正 (misskey-dev#10074)

* Update @swc/core to v1.3.36

* Update CHANGELOG.md

* Update CHANGELOG.md

* バックグラウンドで一定時間経過したらページネーションのアイテム更新をしない (misskey-dev#10053)

* 🎨

* feat: 2つの検索画面の統合 (misskey-dev#9949) (misskey-dev#10038)

* feat: 検索画面の UI を統一

* fix: エラーの修正

* add: changelog

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* enhance(client): ノートメニューからユーザーメニューを開けるように

Resolve misskey-dev#10019

* enhance(client): renoteした際の表示を改善

Resolve misskey-dev#10078

* Update CHANGELOG.md

* enhance(client): tweak contextmenu position calculation

* 🎨

* 🎨

* feat: in-channel featured note

Resolve misskey-dev#9938

* refactor(frontend): fix eslint error (misskey-dev#10084)

* Simplify search.vue (remove dead code) (misskey-dev#10088)

* Simplify search.vue

This is already handled by the code above it, no need to handle it twice

* Remove unused imports

* Update about-misskey.vue

* test(server): add validation test of api:notes/create (misskey-dev#10090)

* fix(server): notes/createのバリデーションが効いていない
Fix misskey-dev#10079

Co-Authored-By: mei23 <m@m544.net>

* anyOf内にバリデーションを書いても最初の一つしかチェックされない

* ✌️

* wip

* wip

* ✌️

* RequiredProp

* Revert "RequiredProp"

This reverts commit 7469390.

* add api:notes/create

* fix lint

* text

* ✌️

* improve readability

---------

Co-authored-by: mei23 <m@m544.net>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* New Crowdin updates (misskey-dev#10059)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Romanian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Vietnamese)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Thai)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Thai)

* New translations ja-JP.yml (Thai)

* New translations ja-JP.yml (Thai)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* enhance(client): improve user menu ux

* enhance(client): photoswipe 表示時に戻る操作をしても前の画面に戻らないように (misskey-dev#10098)

* enhance(client): photoswipe 表示時に戻る操作をしても前の画面に戻らないように

* add: changelog

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* enhance(client): メニューの「もっと」からインスタンス情報を見れるように

* [Fix] fixed an typo in error message (misskey-dev#10102)

* Update codecov.yml

* Update CHANGELOG.md

* fix(server): エラーのスタックトレースは返さないように

Fix misskey-dev#10064

* [chore]Editorconfig: ymlに加えてyamlファイルに対しても同じ規約を適用する (misskey-dev#10081)

* Added yaml file in addition to yml file, in editorconfig

* Applied editorconfig for pnpm-workspace.yaml

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>

* update deps

* ホームタイムラインの読み込みでクエリタイムアウトになるのを修正する (misskey-dev#10106)

* refactor

* New translations ja-JP.yml (French) (misskey-dev#10103)

* Update CHANGELOG.md

* 13.8.0

---------

Co-authored-by: atsuchan <83960488+atsu1125@users.noreply.github.com>
Co-authored-by: Masaya Suzuki <15100604+massongit@users.noreply.github.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: Kagami Sascha Rosylight <saschanaz@outlook.com>
Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
Co-authored-by: xianon <xianon@hotmail.co.jp>
Co-authored-by: kabo2468 <28654659+kabo2468@users.noreply.github.com>
Co-authored-by: YS <47836716+yszkst@users.noreply.github.com>
Co-authored-by: Khsmty <me@khsmty.com>
Co-authored-by: Soni L <EnderMoneyMod@gmail.com>
Co-authored-by: mei23 <m@m544.net>
Co-authored-by: daima3629 <52790780+daima3629@users.noreply.github.com>
Co-authored-by: Windymelt <1113940+windymelt@users.noreply.github.com>
* refactor(frontend): use css modules

* feat: 投稿したコンテンツのAIによる学習を軽減するオプションを追加

Resolve misskey-dev#10819

* enhance(backend): publicReactionsをデフォルトtrueに

* 念のためnoimageaiもつける

* add X-Robots-Tag: noai

* Update ja-JP.yml

* fix(frontend): ブラーエフェクトを有効にしている状態で高負荷になる問題を修正

* enhance(backend): graceful shutdown for job queue and refactor

* fix(backend): テスト時は一部のサービスを停止

* fix test

* New Crowdin updates (misskey-dev#10815)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Chinese Traditional)

* refactor

* bump

* refactor(frontend): use css module

* refactor(frontend): use css module

* delete unused component

* センシティブワードを正規表現、CWにも適用するように (misskey-dev#10688)

* cwにセンシティブが効いてない

* CWが無いときにTextを見るように

* 比較演算子間違えた

* とりあえずチェック

* 正規表現対応

* /test/giにも対応

* matchでしなくてもいいのでは感

* レビュー修正

* Update packages/backend/src/core/NoteCreateService.ts

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* Update packages/backend/src/core/NoteCreateService.ts

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* 修正

* wipかも

* wordsでスペース区切りのものできたかも

* なんか動いたかも

* test作成

* 文言の修正

* 修正

* note参照

---------

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* Update CHANGELOG.md

* New Crowdin updates (misskey-dev#10823)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* ci: fix typo

* fix(frontend): より明確な説明にしたのとtypo修正

* fix typo

* fix(frontend): カラーバーがリプライには表示されないのを修正

* fix(frontend): チャンネル内の検索ボックスが挙動不審な問題を修正

Fix misskey-dev#10793

* enhance(backend): ノートのハッシュタグもMeilisearchに突っ込むように

今後ハッシュタグ検索とか実装するときのため

* feat(frontend): ユーザー指定ノート検索

* fix(frontend): fix retention chart rendering

* Update about-misskey.vue

* meta: Remove @rinsuki from reviewer-lottery (misskey-dev#10830)

* New Crowdin updates (misskey-dev#10824)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Norwegian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Thai)

* enhance(frontend): アカウント初期設定ウィザードにプライバシー設定を追加

* Update CHANGELOG.md

* fix(backend): ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正

* fix MkUserSetupDialog.Privacy.vue

* ci: skip non-Japanese locale on TurboSnap

* ci: notify on changes for push events

* ci: fix missing branch

* Update basic.cy.js

* [ci skip] New Crowdin updates (misskey-dev#10834)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Arabic)

* 🎨

* 🎨

* enhance(frontend): add retention line chart

* update deps

* refactor

* fix(frontend): Pageにおいて画像ブロックに画像を設定できない問題を修正

Fix misskey-dev#10837

---------

Co-authored-by: nenohi <kimutipartylove@gmail.com>
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
@github-actions github-actions bot added packages/frontend Client side specific issue/PR packages/backend Server side specific issue/PR labels Nov 5, 2023
Copy link

codecov bot commented Nov 5, 2023

Codecov Report

Attention: 30 lines in your changes are missing coverage. Please review.

Comparison is base (89389ad) 78.85% compared to head (abd6194) 78.82%.

Files Patch % Lines
...es/backend/src/server/api/endpoints/users/notes.ts 81.03% 22 Missing ⚠️
...d/src/server/api/endpoints/notes/local-timeline.ts 71.42% 8 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop   #12254      +/-   ##
===========================================
- Coverage    78.85%   78.82%   -0.04%     
===========================================
  Files          947      945       -2     
  Lines       102287   102168     -119     
  Branches      8262     8270       +8     
===========================================
- Hits         80654    80529     -125     
- Misses       21633    21639       +6     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

github-actions bot commented Nov 5, 2023

このPRによるapi.jsonの差分

差分はこちら
--- base
+++ head
@@ -42963,6 +42963,10 @@
                   "withReplies": {
                     "type": "boolean",
                     "default": false
+                  },
+                  "allowPartial": {
+                    "type": "boolean",
+                    "default": true
                   }
                 },
                 "required": []
@@ -43161,6 +43165,10 @@
                   },
                   "untilDate": {
                     "type": "integer"
+                  },
+                  "allowPartial": {
+                    "type": "boolean",
+                    "default": true
                   }
                 },
                 "required": []
@@ -45915,6 +45923,10 @@
                   "withRenotes": {
                     "type": "boolean",
                     "default": true
+                  },
+                  "allowPartial": {
+                    "type": "boolean",
+                    "default": true
                   }
                 },
                 "required": []
@@ -46475,6 +46487,10 @@
                     "type": "boolean",
                     "default": false,
                     "description": "Only show notes that have attached files."
+                  },
+                  "allowPartial": {
+                    "type": "boolean",
+                    "default": true
                   }
                 },
                 "required": [
@@ -56447,6 +56463,10 @@
                   "excludeNsfw": {
                     "type": "boolean",
                     "default": false
+                  },
+                  "allowPartial": {
+                    "type": "boolean",
+                    "default": true
                   }
                 },
                 "required": [

Get diff files from Workflow Page

@syuilo
Copy link
Member

syuilo commented Nov 15, 2023

allowPartial はデフォルトで true でいい気がするわね

@github-actions github-actions bot removed the packages/frontend Client side specific issue/PR label Nov 15, 2023
@hideki0403
Copy link
Contributor Author

デフォルトをtrueに変更しました:pray:

@syuilo
Copy link
Member

syuilo commented Nov 16, 2023

1つでも件数が足りないとDBにフォールバックする実装だと、多分結構なケースでフォールバックが発生してあまりFTTの意味がなくなりそうなので、足りない場合はDBではなくRedisに追加で問い合わせるようにした方が良いかもしれないですね

@hideki0403
Copy link
Contributor Author

Redis側から取得するように変更しました:eyes:

ただ、今の実装だとミュートを多用されている方がTLを取得した場合に"データベース側から不足分のノート情報を取得→フィルタ→不足分のノート情報取得→フィルタ→・・・"のループに入り、データベースへの問い合わせが増えてしまうケースが少なからず存在する(特に不足しているノート数が少ない場合に顕著)ので、

  • 不足分が一定数を下回った場合は不足分よりもN件多くノートを取得→フィルタ→余剰分は取り除いて追加(取得件数を犠牲に問い合わせ回数を減らす)
  • 現状のまま(問い合わせ回数を犠牲に最低限のノートのみ取得するように)

のいずれかで対処しようと考えているのですが、どちらの方がよさそうでしょうか...?

@syuilo
Copy link
Member

syuilo commented Nov 17, 2023

うーーーーーーーむ

@hideki0403
Copy link
Contributor Author

根本的な部分から改善できそうなので一旦このPR閉じて作り直します:pray:

@hideki0403 hideki0403 closed this Nov 21, 2023
@syuilo syuilo mentioned this pull request Dec 2, 2023
5 tasks
@hideki0403 hideki0403 deleted the fix-12160 branch February 18, 2024 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/backend Server side specific issue/PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[2023.10.x~]ノート取得時にノート数がlimitよりも少ない事がある
4 participants