senooken JP Social
  • FAQ
  • Login
senooken JP Socialはsenookenの専用分散SNSです。
  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:16:29 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!

    trending_tags_scheduler.rb からは def perform の中で(おそらくこれがジョブの実行内容の定義だと思う)TrendingTags.update! をコールしており、

    trending_tags.rb では redis のデータをなんやらいい感じにしてる感じね、Ruby なんも分からんけど

    In conversation Monday, 31-Aug-2020 17:16:29 JST from mstdn.yakitamago.info permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:26:34 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      データベースからハッシュタグのなんらかを引っ張ってくるのがこれっぽい、tags = Tag.where(id: tag_ids.uniq)

      Ruby だからなのか ActiveRecord だからなのかは知らないけど、これは確か class Tag を見れば実際の Query が書いてあるはず……?

      In conversation Monday, 31-Aug-2020 17:26:34 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:29:02 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      ちがいますね……

      In conversation Monday, 31-Aug-2020 17:29:02 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:34:22 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      tag_ids が Redis からなんらかを引っ張ってきてるように見えるんだけど、トレンドタグに載る権利を持ってるハッシュタグ ID の一覧が Redis に存在するのか?

      In conversation Monday, 31-Aug-2020 17:34:22 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:41:13 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      例えば redis-cli で

      zrange trending_tags 0 10

      みたいなのをうてば、ハッシュタグ ID と思われる値がいろいろ返ってくる

      In conversation Monday, 31-Aug-2020 17:41:13 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:41:28 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      で? ? スコアとかは Redis じゃないんすかね

      In conversation Monday, 31-Aug-2020 17:41:28 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:45:46 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      > keys trending_tags* 1) "trending_tags:used:1594339200"

      という感じで、trending_tags の後ろに :used:timestamp のフォーマットでたくさんなんらかがセットされてる

      In conversation Monday, 31-Aug-2020 17:45:46 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:50:56 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      UTC で 2020-08-31 00:00:00 なタイムスタンプが設定された key も見つけた

      1) "trending_tags:used:1598832000"

      In conversation Monday, 31-Aug-2020 17:50:56 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:51:39 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      昨日のもある

      In conversation Monday, 31-Aug-2020 17:51:39 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:53:22 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      で、スコアは?w

      In conversation Monday, 31-Aug-2020 17:53:22 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:55:53 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      activity:tags:#{tag.id}:#{(at_time - 1.day).beginning_of_day.to_i}:accounts

      っていう KEY もあるみたい?

      In conversation Monday, 31-Aug-2020 17:55:53 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 17:56:26 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      9000 個キーが出てきて泣いた

      In conversation Monday, 31-Aug-2020 17:56:26 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 18:00:14 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      ハッシュタグが使われるたびに pfadd を呼び出して内部でカウントして、トレンドタグを計算するときに pfcount を使ってそれまでにハッシュタグが何回使われたかを取得している感じか

      In conversation Monday, 31-Aug-2020 18:00:14 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Monday, 31-Aug-2020 18:01:15 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      ちがうね、pfadd / pfcount は、そのハッシュタグを使ったユーザー数をカウントするために使ってるっぽい

      In conversation Monday, 31-Aug-2020 18:01:15 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:15:24 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      実際のスコアは、どうやら trending_tags キーに、これはソート済リストというデータ構造らしいんだけど、リストのインデックスがタグ ID で、その値がスコア、という形で保存されているように見える

      In conversation Tuesday, 01-Sep-2020 12:15:24 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:18:53 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      んー、「ソート済セット」が正しい用語で、キーにエレメントとそれに対応するスコアという形でストアして、スコアの大きさによってエレメントが自動で並び変わる感じなのかな。

      In conversation Tuesday, 01-Sep-2020 12:18:53 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:23:31 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      実際 trending_tags の中、トップ 2 はprecure_fun あなたの四連休予定表になっており、precure_fun はまあ常時観測できるタグなのでさておき、あなたの四連休うんたらって 7 月の四連休前に流行ったやつっすかね? 私のサーバーでは 7月23日 が最後の観測です。

      ちなみに、これはいま私の WebUI に見えてるトレンドタグとも異なっており、 ? が無限に発生している感じですね

      In conversation Tuesday, 01-Sep-2020 12:23:31 JST permalink
    • ぷーざ@美食丼 :sabacan: (pooza@mstdn.b-shock.org)'s status on Tuesday, 01-Sep-2020 12:26:53 JST ぷーざ@美食丼 :sabacan: ぷーざ@美食丼 :sabacan:
      in reply to

      @yakitama precure_funタグの件は、ご迷惑をおかけしておりますw

      In conversation Tuesday, 01-Sep-2020 12:26:53 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:26:53 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to
      • ぷーざ@美食丼 :sabacan:

      @pooza いやいや、むしろのっけてダイレクトマーケティングしていく必要があるでしょうw

      In conversation Tuesday, 01-Sep-2020 12:26:53 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:31:34 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      一部だけ調べるのもアレだろうということで全部調べたところ、Subway Tooter が引っ張ってきたトレンドタグの一覧と完全に一致しましたので、 ? は消えました。どうやら Redis の trending_tags のリストが更新されていないことがトレンドタグが更新されない理由っぽい。じゃあ、この子はどこでアップデートされるべきなのかを Mastodon のコードに戻って見に行きましょう

      In conversation Tuesday, 01-Sep-2020 12:31:34 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:35:56 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      trending_tags.rb の中で record_use っていうなんらかが、スコアの計算のためのルーチンをあれこれ呼び出してて、record_use 自体は

      create.rb (ActivityPub 受け取り?)process_hashtag_service.rb (自鯖発信トゥートのハッシュタグ関連処理?)

      からコールされてますね。で、そのあたりは問題なさそうなんすよ、ちゃんと Redis には今日の日付のキーができてるので。

      In conversation Tuesday, 01-Sep-2020 12:35:56 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:51:15 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      関連する Redis のストアを整理しようね

      ● trending_tags 現在のトレンドタグの一覧。データ構造: ソート済セット。スコアはトレンドスコアっぽい。

      ● trending_tags:used:timestamp今日使われたハッシュタグの一覧。データ構造: セット。

      ● activity:tags:tag_id:timestampまだ調べてない。increment_historical_use で更新する。

      ● activity:tags:tag_id:timestamp:accounts1日にそのタグをトゥートしたアカウントの数。データ構造?: PFADD とかを使うやつ。

      In conversation Tuesday, 01-Sep-2020 12:51:15 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 12:57:38 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      処理の内容もちゃんと理解しないと、どこまで走ってどのデータ構造がアップデートされてどれがうまくいっていないのかわからない感じ。

      トレンドタグの更新処理は `update!` 内で走るっぽくて、これは Sidekiq が定期ジョブとして走らせるスケジューラーからコールされてるやつ。まず、大前提として、トレンドタグ用に各タグはその日の最大スコアと現在のスコアという要素があり、最大スコアは Redis から引っ張ってくるっぽい(KEY = trending_tags:used:timestamp がそうっぽい)、ちなみにタグ ID のリストとしては追加で KEY = trending_tags の一覧もマージしてるっぽいので、それらがトレンドスコア更新処理対象となるっぽい

      In conversation Tuesday, 01-Sep-2020 12:57:38 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:00:48 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      現在のスコアは計算されたあと、そのスコアがその日の最大スコアを超えると、最大スコアを上書きする。おそらくだけど、トレンドタグは、その日の最大スコアを記録したハッシュタグの一覧、という実装らしい。ちなみにだけど decaying_score という計算もあって、ここでちょっとずつスコアが下がってるっぽく見えるんだよな、その decaying_score したあとの値が KEY = trending_tags に書き込まれてるので……

      1. 現在のスコアを計算する2. もし現在のスコアがその日の最大スコアを上回っていれば最大スコアを更新する3. 数式により定義される減衰量をスコアに適用する4. トレンドタグ一覧を記録する

      という感じ? トレンドタグにのり続けるには一定以上はトゥートされ続けなければならない感じか?

      In conversation Tuesday, 01-Sep-2020 13:00:48 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:03:59 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      ただ、とりあえずひとつ答えが見えたんだけど、そもそも僕の環境では Sidekiq が Scheduler::TrendingTagsScheduler をキューに追加するものの、誰もそのジョブを実行しないんだよな、それは journalctl -u mastodon-sidekiq してれば分かるんだけど。これが走らないから KEY = trending_tags は更新されないし、トレンドタグは更新されない。スコアの再計算も走らない。ただ、AP 受取時の create.rb や自鯖発信時の process_hashtag_service.rb からコールされる TrendingTags.record_use は正常に動作するから、タイムスタンプを含むキーの内容は正常に Redis 上に存在する。

      In conversation Tuesday, 01-Sep-2020 13:03:59 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:04:29 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      なので、やはりなぜ Sidekiq が TrendingTagsScheduler を起動できないのか、というところに焦点を合わせればいいっぽい。Sidekiq はなんも分からんけど。

      In conversation Tuesday, 01-Sep-2020 13:04:29 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:11:28 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      ちなみに、念のため、trending_tags_scheduler.rb から update が呼び出されるには、Settings クラスの trends メンバが true でないといけなくて、Settings クラスは config/settings.yml からいい感じにあれこれ読み取るっぽくて、で実際に settings.yml を確認したところちゃんと trends true になってたので、そこは問題なさそう。もちろん、仮にそこが false になってるからトレンドが走らないのであって Sidekiq が正常にジョブを処理しているのなら、journalctl でログを見てたらジョブは正常に走ったように見えるはずなんだよな

      In conversation Tuesday, 01-Sep-2020 13:11:28 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:17:57 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      sidekiq_options で lock: :until_executed ってあるけど、実行が完了するまでなんらかをロックしてるよね? もう少し調べる

      In conversation Tuesday, 01-Sep-2020 13:17:57 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:18:47 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      https://github.com/mhenrixon/sidekiq-unique-jobs#until-executed

      In conversation Tuesday, 01-Sep-2020 13:18:47 JST permalink

      Attachments

      1. Domain not in remote thumbnail source whitelist: avatars0.githubusercontent.com
        mhenrixon/sidekiq-unique-jobs
        Ensure uniqueness of your Sidekiq jobs. Contribute to mhenrixon/sidekiq-unique-jobs development by creating an account on GitHub.
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:19:19 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      仮に失敗したらロックが解除されない?

      In conversation Tuesday, 01-Sep-2020 13:19:19 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 13:53:22 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      sidekiq-scheduler:pushed:trending_tags_scheduler には実行されてキューにプッシュされた時刻と思われるソート済リストが存在する。sidekiq-scheduler:pushed:shceduled_statuses_scheduler も同じ感じのソート済リストが存在する。

      In conversation Tuesday, 01-Sep-2020 13:53:22 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 14:29:38 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      Redis の uniquejobs にいっぱいなんらかが残っていたのが気になって、Sidekiq ダッシュボードで見てみたら Unique Digests ってところで同じものが見れたので、試しにそいつらをすべて削除で一掃したら、TrendingTagsScheduler が走るようになりましたね

      In conversation Tuesday, 01-Sep-2020 14:29:38 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 14:30:46 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      そもそもこいつは消していいやつなのかどうかが分からない、それはさすがに Mastodon 全体の設計と Sidekiq まわりの仕様を知らないと答えが出ない気がするので、私では分からない

      In conversation Tuesday, 01-Sep-2020 14:30:46 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 14:31:32 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      これを tootsuite/mastodon の issued で議論してもらうのはありかもしれない。

      In conversation Tuesday, 01-Sep-2020 14:31:32 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 17:09:53 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      trending_tags の MAX_SCORE ってデータベースに格納されてるのか?

      In conversation Tuesday, 01-Sep-2020 17:09:53 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 17:13:56 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      trending_tags 関連、まだおかしいわとってきたタグ一覧から、データベースの tags テーブル引いて、max_score カラムに格納されてる値を使って新しいスコアを計算して trending_tags キーを更新するはずだけど、trending_tags キーに何もいない。ということは、trending_tags の update で処理対象になるはずの tag_ids が空っぽになってるとか、そういう感じの不具合がある気がする。

      In conversation Tuesday, 01-Sep-2020 17:13:56 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 17:14:07 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      Ruby ってなんかデバッグログとか出力できないんすかね

      In conversation Tuesday, 01-Sep-2020 17:14:07 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 17:22:35 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to
      • zunda

      @zundan おー、ありがとうございます、なんかログ吐く機構は備わっているから、それ使えば任意のログを追加で吐かせることもできるかもしれませんね!

      In conversation Tuesday, 01-Sep-2020 17:22:35 JST permalink
    • zunda (zundan@mastodon.zunda.ninja)'s status on Tuesday, 01-Sep-2020 17:22:36 JST zunda zunda
      in reply to

      @yakitama RAILS_LOG_LEVEL環境変数をたぶんDEBUGにするとずいぶん賑やかになります、が主にPostgres周りのログか多かったと思うのでRedisやSidekiqまわりではあんまり情報得られないのかも…

      https://github.com/tootsuite/mastodon/blob/master/config/environments/production.rb#L49

      In conversation Tuesday, 01-Sep-2020 17:22:36 JST permalink
    • やきたまちゃんはおしまい! (yakitama@mstdn.yakitamago.info)'s status on Tuesday, 01-Sep-2020 18:05:09 JST やきたまちゃんはおしまい! やきたまちゃんはおしまい!
      in reply to

      ちょっとあれこれデバッグした結果、トレンドタグのスコアは正常に計算されており、そのうち然るべきハッシュタグがトレンドにのるだろう、という感じ

      In conversation Tuesday, 01-Sep-2020 18:05:09 JST permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

senooken JP Social is a social network, courtesy of senooken. It runs on GNU social, version 2.0.2-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All senooken JP Social content and data are available under the Creative Commons Attribution 3.0 license.