Skip to content
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

cdc: allow visibility into changefeed progress on streaming data in existing tables #43363

Closed
piyush-singh opened this issue Dec 19, 2019 · 2 comments
Labels
A-cdc Change Data Capture E-starter Might be suitable for a starter project for new employees or team members. sync-me-8 T-cdc

Comments

@piyush-singh
Copy link

piyush-singh commented Dec 19, 2019

Is your feature request related to a problem? Please describe.
When starting a changefeed on a table that already has data populated in it, it is difficult to know how much of the initial data has been streamed out of the cluster and how much longer it will take to finish "catching up" to the existing data and start streaming updates.

This recently caused an issue with the telemetry cluster - when setting up a changefeed to stream data out of the cluster, the initial catch-up scan took ~3 days due to us writing out uncompressed NDJSON files. During that window, the default GC TTL of 25 hrs elapsed, so once the changefeed finally caught up to the existing data in table, it wasn't able to proceed since the necessary MVCC keys that would be used to stream updates from when the job was started has already been garbage collected.

Describe the solution you'd like
Being able to see the progress of this initial catch up scan both in the jobs table (% complete) and the UI (% complete and maybe an ETA) would help with planning. For example, if we saw that this was going to take 2 days, I could have updated the TTL window ahead of time.

As Nathan and Andrew have mentioned, compression will help here (we suspect the catch up scan speed bottleneck is actually sending all this data over the wire uncompressed, see also #43103) and protected timestamps might prevent users from encountering these types of errors in the future. One nice thing to note here is that almost everything in the registration cluster is append only (no updates), so using protected timestamps in this case wouldn't actually incur much if any overhead.

cc @ajwerner

Epic CRDB-2365

Jira issue: CRDB-5285

@piyush-singh piyush-singh added the A-cdc Change Data Capture label Dec 19, 2019
@shermanCRL shermanCRL added the E-starter Might be suitable for a starter project for new employees or team members. label Apr 14, 2021
@miretskiy
Copy link
Contributor

@amruss do you think this issue can be closed?

@miretskiy
Copy link
Contributor

Addressed by exposing the metric tracking the number of ranges remaining to be backfilled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-cdc Change Data Capture E-starter Might be suitable for a starter project for new employees or team members. sync-me-8 T-cdc
Projects
None yet
Development

No branches or pull requests

5 participants