- Notifications
You must be signed in to change notification settings - Fork 726
Closed
Labels
area/datashardIssues related to datashard tablets (relational table partitions)Issues related to datashard tablets (relational table partitions)
Description
Related to #6030.
We currently have a problem where one tablet in a timecast bucket may block mediator time for all other tablets in the same bucket. We need a way to solve this problem with backwards compatible protocol. Here's how we could solve this:
- Add a new granular watch protocol (TEvMediatorTimecast::TEvGranularWatch) with a list of tablets that timecast service is watching. Unlike previous watch protocol it will always return the latest step, while also tracking frozen steps for tablets we subscribed to.
- Add a TEvGranularWatchModify message which would allow adding and removing tablets with an updated seqno
- When mediator supports the new protocol it will send TEvGranularWatchUpdate messages with the latest known step, freezes for tablets that have pending unacknowledged transactions and unfreezes for tablets that join the common time stream.
Timecast service will use the two atomic variables approach with freeze/unfreeze to advance tablet time. It will also subscribe to both the old and new watch protocol, using the old protocol to advance time for all tablets simultaneously, and granular protocol for more specific updates when available. Special care will be needed when connection to mediator switches between versions of the old and new protocol, the conflicting information will need to be synchronized somehow.
Metadata
Metadata
Assignees
Labels
area/datashardIssues related to datashard tablets (relational table partitions)Issues related to datashard tablets (relational table partitions)