Skip to content

Commit 1aabbe3

Browse files
authored
Run cleanup on more tables (#2467)
* cleanup more tables * use task retention period * use task retention period * cleanup * fix query
1 parent bc3dc53 commit 1aabbe3

File tree

5 files changed

+159
-0
lines changed

5 files changed

+159
-0
lines changed

pkg/repository/v1/sqlcv1/matches.sql

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,3 +260,20 @@ JOIN
260260
ORDER BY
261261
m.id
262262
FOR UPDATE;
263+
264+
-- name: CleanupMatchWithMatchConditions :exec
265+
WITH deleted_match_ids AS (
266+
DELETE FROM
267+
v1_match
268+
WHERE
269+
signal_task_inserted_at < @date::date
270+
OR trigger_dag_inserted_at < @date::date
271+
OR trigger_parent_task_inserted_at < @date::date
272+
OR trigger_existing_task_inserted_at < @date::date
273+
RETURNING
274+
id
275+
)
276+
DELETE FROM
277+
v1_match_condition
278+
WHERE
279+
v1_match_id IN (SELECT id FROM deleted_match_ids);

pkg/repository/v1/sqlcv1/matches.sql.go

Lines changed: 23 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/repository/v1/sqlcv1/queue.sql

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -471,3 +471,43 @@ WHERE (task_id, task_inserted_at, retry_count) IN (
471471
SELECT task_id, task_inserted_at, retry_count
472472
FROM locked_qis
473473
);
474+
475+
-- name: CleanupV1RetryQueueItem :execresult
476+
WITH locked_qis as (
477+
SELECT qi.task_id, qi.task_inserted_at, qi.task_retry_count
478+
FROM v1_retry_queue_item qi
479+
WHERE NOT EXISTS (
480+
SELECT 1
481+
FROM v1_task vt
482+
WHERE qi.task_id = vt.id
483+
AND qi.task_inserted_at = vt.inserted_at
484+
)
485+
ORDER BY qi.task_id, qi.task_inserted_at, qi.task_retry_count
486+
LIMIT @batchSize::int
487+
FOR UPDATE SKIP LOCKED
488+
)
489+
DELETE FROM v1_retry_queue_item
490+
WHERE (task_id, task_inserted_at) IN (
491+
SELECT task_id, task_inserted_at
492+
FROM locked_qis
493+
);
494+
495+
-- name: CleanupV1RateLimitedQueueItem :execresult
496+
WITH locked_qis as (
497+
SELECT qi.task_id, qi.task_inserted_at, qi.retry_count
498+
FROM v1_rate_limited_queue_items qi
499+
WHERE NOT EXISTS (
500+
SELECT 1
501+
FROM v1_task vt
502+
WHERE qi.task_id = vt.id
503+
AND qi.task_inserted_at = vt.inserted_at
504+
)
505+
ORDER BY qi.task_id, qi.task_inserted_at, qi.retry_count
506+
LIMIT @batchSize::int
507+
FOR UPDATE SKIP LOCKED
508+
)
509+
DELETE FROM v1_rate_limited_queue_items
510+
WHERE (task_id, task_inserted_at) IN (
511+
SELECT task_id, task_inserted_at
512+
FROM locked_qis
513+
);

pkg/repository/v1/sqlcv1/queue.sql.go

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/repository/v1/task.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3664,6 +3664,35 @@ func (r *TaskRepositoryImpl) Cleanup(ctx context.Context) (bool, error) {
36643664
shouldContinue = true
36653665
}
36663666

3667+
result, err = r.queries.CleanupV1RetryQueueItem(ctx, tx, batchSize)
3668+
if err != nil {
3669+
return false, fmt.Errorf("error cleaning up v1_retry_queue_item: %v", err)
3670+
}
3671+
3672+
if result.RowsAffected() == batchSize {
3673+
shouldContinue = true
3674+
}
3675+
3676+
result, err = r.queries.CleanupV1RateLimitedQueueItem(ctx, tx, batchSize)
3677+
if err != nil {
3678+
return false, fmt.Errorf("error cleaning up v1_rate_limited_queue_items: %v", err)
3679+
}
3680+
3681+
if result.RowsAffected() == batchSize {
3682+
shouldContinue = true
3683+
}
3684+
3685+
today := time.Now().UTC()
3686+
removeBefore := today.Add(-1 * r.taskRetentionPeriod)
3687+
3688+
err = r.queries.CleanupMatchWithMatchConditions(ctx, tx, pgtype.Date{
3689+
Time: removeBefore,
3690+
Valid: true,
3691+
})
3692+
if err != nil {
3693+
return false, fmt.Errorf("error cleaning up v1_match and v1_match_condition: %v", err)
3694+
}
3695+
36673696
result, err = r.queries.CleanupV1TaskRuntime(ctx, tx, batchSize)
36683697
if err != nil {
36693698
return false, fmt.Errorf("error cleaning up v1_task_runtime: %v", err)

0 commit comments

Comments
 (0)