Skip to content

AuthDB - ignore for now#932

Draft
chrisburr wants to merge 2 commits into
DIRACGrid:mainfrom
chrisburr:feat/authdb-partition-maintenance-2
Draft

AuthDB - ignore for now#932
chrisburr wants to merge 2 commits into
DIRACGrid:mainfrom
chrisburr:feat/authdb-partition-maintenance-2

Conversation

@chrisburr
Copy link
Copy Markdown
Member

No description provided.

chrisburr added 2 commits June 2, 2026 13:30
Replace the row-level DELETE sweeps for the RefreshTokens table with maintenance of its monthly JTI range-partitions: drop partitions whose whole month is older than the retention horizon, and add partitions ahead of time so the p_future catch-all never fills. Dropping a partition is an O(1) metadata operation and avoids the row-lock and lock-memory cost of large DELETEs.

Retention is now expressed in calendar months via the new DIRACX_SERVICE_AUTH_REFRESH_TOKEN_RETENTION_MONTHS setting (default 6), replacing revoked_refresh_token_retention_minutes. Partition maintenance is implemented for MySQL only and raises NotImplementedError for other dialects. The unpartitioned flow tables keep their existing DELETE-based cleanup.
Replace the single bulk DELETE of expired authorization/device flows with
a batched loop that deletes up to FLOW_DELETE_BATCH_SIZE rows per
transaction, bounding lock usage on large tables. Add creation_time
indexes on both flow tables to keep the cutoff scans cheap.

Rename the completed_flow_retention_minutes setting to
expired_flow_retention_days (default 7 days) and update the retention vs.
expiration validation accordingly.
@read-the-docs-community
Copy link
Copy Markdown

Documentation build overview

📚 diracx | 🛠️ Build #32990079 | 📁 Comparing 08879a0 against latest (06b9cee)

  🔍 Preview build  

1 file changed
± admin/reference/env-variables/index.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant