【提案】新しい連投規制 #56
No reviewers
Labels
No Label
announce
bug
discussion
duplicate
Eddi
enhancement
help wanted
invalid
Priority
High
Priority
Low
Priority
Mid
question
wontfix
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: edginer/eddiner#56
Loading…
Reference in New Issue
No description provided.
Delete Branch "kenmo-melon/eddiner:new-res-limit"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
という感じです。以前のものはおそらくD1へのINSERTが反映されるのが少し遅いせいで効きが弱かったので、過去40秒を見ることにしました。40秒というのは勘で決めたのですが、30秒くらいでもいいかもしれません。
適当に試してみたのですが、クッキーを変えない単純なスクリプトであればほぼ確実に弾けます。3回くらいしか連投できないですね。 もう一つ、INSERTを一箇所減らせるのもメリットかなと思います。
デメリットは、テーブルの変更が必要なことです。
めちゃくちゃ連投しているユーザーさんが書き込むと少し処理が増えますが、それでも高々長さ8のVecをソートするだけなのでまあ無視できる範囲かなと思います。
基本的には良さげで色々効きそうなんですが、試験的に導入して微妙にメトリクスとの相談が必要かもしれません
@ -0,0 +1,2 @@
ALTER TABLE authed_cookies DROP COLUMN last_wrote_time;
ALTER TABLE responses ADD COLUMN timestamp INTEGER default 0;
SELECT * FROM responses WHERE authed_token = ? AND timestamp > ?
を呼び出しているので、responsesのauthed_tokenの方にもインデックスを張った方が良さげな気がします
コメントありがとうございます。インデックス貼ってみました。
ちょっと私の手元にあるデータだと小さすぎるので、ある程度大きなデータに対してどれくらい時間がかかるか試していただけたらと思います。