-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sql: TTL v1 meta issue #75428
Comments
75602: sql: persist TTL metadata to the descriptor r=postamar a=otan These commits allow the WITH option in a table to symbolize TTL. Furthermore, these values can be introspected. Refs: #75428 See individual commits for details. 75688: ptreconcile,server: rework ptreconciler for multi-tenant r=ajwerner,miretskiy a=adityamaru The ptreconciler is responisble for periodically scanning the `system.pts_records` table, and checking if there are any stale records to be released, based on callbacks registerd on server startup. Previously, the ptreconciler used the meta1leaseholder to ensure that there was only one instance of it running in the cluster. Additionally, it was reliant on the ptcache to iterate over the records when checking whether they were stale. In the multi-tenant version of the protected timestamp subsystem, the SQL pod running the reconciler cannot use the meta1leaseholder to determine whether or not it should run the reconciliation loop. To get around this, we move the `Start` of the ptreconciler to the Resume hook of the auto span config job. We are guaranteed via the spanconfig manager, that there will always be atmost one instance of this job in a cluster. Further, this is a forever running job, and so we can tie the execution of the ptreconciler to the lifetime of the spanconfig job resumer. Additionally, since we will be doing away with the ptcache, we switchover to doing a full table scan every time the reconciliation loop is run. While not ideal, this is not alarming since we have a conservative limit on the total size of all records that can be stored in the table, and reconciliation only runs once every 5mins by default. Additionally, we do not expect many concurrent BACKUP/CDC jobs to exist in the cluster at a given point in time. This change also refactors some of the server and tenant code to plumb a ptreconciler to the ExecutorConfig, for use by the auto span config job. We move the relevant job+schedule tests into a ccl pacakge to allow testing from within a secondary tenant. Informs: #73727 Release note: None Co-authored-by: Oliver Tan <[email protected]> Co-authored-by: Aditya Maru <[email protected]>
If we think we might need the flexibility/tuning with QoS for TTL, I am ok deferring this alignment until later.
In docs, we will call it beta support but that shouldn't apply to any exposed settings or code. |
Should we file issues for out of scope items like |
This is a meta issue for the v1 TTL meta issue.
⛔ = blocked
✔️ = in review
♻️ = in progress
Done
out of scoped
By February 25
Stability items
debug doctor
Product Questions
SET ADMISSION PRIORITY
(i.e. using numbers versus enums)aggmetric
for metrics, child labels are not applied by default... see slack)Epic CRDB-10488
Jira issue: CRDB-12666
The text was updated successfully, but these errors were encountered: