23:54:36 @tateisu@mastodon.juggler.jp
icon

あとウチで目立つスロークエリは SELECT COUNT(DISTINCT "accounts"."domain") FROM "accounts"; が600-800msかかってるんだけど、対策を思いつかないし無視していいかな…

23:24:29 @tateisu@mastodon.juggler.jp
icon

ActiveRecordでコレを書くの面倒そうだなあ…という印象だがそもそもRuby分からんので識者によるPRが望まれる

23:19:20 @tateisu@mastodon.juggler.jp
icon

index_statuses_20180106 のDM限定版インデクスを作った場合の実行計画も追記してみたけど、ウチの環境だと負荷が低すぎて有効なのかどうか分からなかった

23:11:31 @tateisu@mastodon.juggler.jp
icon

gist.github.com/tateisu/a7de7a unionの左辺と右辺にもlimitを入れた場合の実行計画を追記した

23:10:42 @tateisu@mastodon.juggler.jp
icon

create index ではサブクエリを使えないので、mentionsテーブルのDM用部分インデクスを作るにはテーブルにカラムを追加してやる必要があるな…

23:01:29 @tateisu@mastodon.juggler.jp
icon

@valerauko actualの方は別にそうではないので。

22:56:46 @tateisu@mastodon.juggler.jp
icon

@fn_aki それはいらなくない? gist.github.com/tateisu/a7de7a みるとメンションみつけてそれにあわせたステータスを探すときにstatuses_dm 使われてるから。

22:55:37 @tateisu@mastodon.juggler.jp
icon

gist.github.com/tateisu/a7de7a union使うやつの実行計画。20件ずつ読んでるという訳ではないのだ。。

22:54:38 @tateisu@mastodon.juggler.jp
icon

あと実行計画みると、limit 20 がかかるのは Append してSortして Unique してまたソートした最後の部分だけなんで、ソート対象の一時データは結構な件数がある。 アプリ側でマージする方をお勧めする

22:49:46 @tateisu@mastodon.juggler.jp
icon

「部分インデクスいらない」とまでは言い難いなー。

22:48:55 @tateisu@mastodon.juggler.jp
icon

DMカラムにはmin_id使うようなクエリはなさそうなので、ページネーション書くの面倒そうだけど破綻はしないと思う。なお "statuses"."id" as status_id って書いてorder byの対象には名前つきの列名を指定しないとクエリできなかった

22:46:57 @tateisu@mastodon.juggler.jp
icon

unionでやるやつexplainかけてみたら、自分あてのメンション集める部分ではstatuses_dm (DM用部分インデクス)も使われたし index_statuses_20180106 の部分インデクス版もあった方が速いだろう。ていうかウチの場合はないとunionじゃない奴の方が速い。DMとそれ以外の比率が結構激しい。ねこまんまさんが言ってるのはコレのことじゃないかと思う

22:35:37 @tateisu@mastodon.juggler.jp
icon

index_statuses_20180106 がだいたいそうじゃん。公開範囲全部を含むだけで >account_id, idへのインデックスをvisibility = 3に対して

18:45:40 @tateisu@mastodon.juggler.jp
icon

youtu.be/6wuLef1DolY 寒天を避けつつキューブを斬るエクササイズを録画してみた

Attach YouTube
09:38:01 @tateisu@mastodon.juggler.jp
icon

マストドンのWebPushってVAPIDキーを.env.productionに設定しないことで機能しないようにできるとかあるんですけど、プッシュ購読APIはその状態でも200 OKを返すというね…。(レスポンス中のサーバキーが空になるから判別不可能な訳ではない)

09:36:07 @tateisu@mastodon.juggler.jp
icon

2.4以降のタンスだけに限定するんならプッシュ通知だけに割り切った設計もできるんですけど、まだ時期尚早

09:34:51 @tateisu@mastodon.juggler.jp
icon

@osapon 今の通知取得はネットワークアクセス要求するし場合によっては10秒に収まらないので、なんらか通知をださないとバックグラウンド動作制限にひっかかるんですよね…

09:17:58 @tateisu@mastodon.juggler.jp
icon

Zzz…

00:44:34 @tateisu@mastodon.juggler.jp
icon

でプッシュ購読をご利用の方で1アカウントだけ、タンスにVAPID_PUBLIC_KEYが設定されておらずタンス側でWebPushが動作していないと思われる方が存在します。

00:33:25 @tateisu@mastodon.juggler.jp
icon

Let's encryptの有効期限の短い鍵でHPKPするのが間違いなんだろうか…

00:06:16 @tateisu@mastodon.juggler.jp
icon

証明書の更新でPublic-Key-Pinsにささった奴です…