リレーを使うようになると使われてない古い投稿がタンスのDBに溜まっていくと思うんですが、どうにかいい感じに削除してディスク容量を空けられないものか…? と思ってこんなクエリを考えてみたけど、どんなもんだろうか gist.github.com/tateisu/3d9829

とりあえず、リレー参加中のテスト鯖 mastodon2.juggler.jp/ でdelete クエリをかけてみる。

スレッドを表示

テスト鯖なので1時間より古い使われてないトゥートを削除してみた。それなりに動いてる模様。メンションがあればローカル住人と無関係でも残すとか、pinned投稿なら残すとかあるので、思ったよりは他タンスの投稿が残る。添付メディアはstatusとの関連が切れるだけなので別途tootctl media remove_remote する必要がある

スレッドを表示

@tateisu 目的がブレる(別物)になりますが、数千・数万のフォロー先を持つローカルユーザーも、無意味にデータベースを肥大化させるので、

・ローカルユーザーにフォローされていない→フォローされてても削除
・メンションがある→ローカルユーザーを含むメンションがある、に限定

という条件のクエリが別途あると有用かもしれませんね。

@noellabo 蓄積される投稿と違ってユーザ情報は現在の状態なので、「古いものを削る」という判定ができないんですよね…。

@noellabo メンションや返信について、会話ツリー全体をみないと「ローカルと無関係」とは言いきれないんですよ。けっこう大変なので今回のクエリではメンションを含む投稿や返信や被返信は対象外にしてます。レスが付く=重要性が高いという見方もできるので、フィルタ的には割と良い感じです

フォロー

@tateisu リプライ・被リプライ(会話ツリー・context)ってメンションの有無
と無関係に形成されてませんか?

メンションの方は、ローカル絡んでいるか、ステータス単独で判定いけるんじゃないかな……。

まぁ何が重要かは評価関数要りますよね。削除対象レベルをスコアで指定できそう。
(便乗して欲張っているだけの話なので、ひとまず捨て置いてください)

@noellabo 会話ツリー中一部だけメンションされたとしても、ローカルユーザはその会話ツリー全体を見たいですよね。それを妨げるのは私はナシだと思います

ログインして会話に参加
DTP-Mstdn.jp

DTP-Mstdn.jpは、DTP・デザイン・印刷に関わる人々のためのMastodonインスタンスです。特定分野の専門インスタンスですので、日々のつぶやき、耳寄りな情報の共有、ディスカッション、質問とその回答、役立つスクリプトなど、他では投稿しづらい内容も、思う存分トゥートしましょう!