You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sql: improve observability of index merge timestamp
When building an index, the merge phase copies any new rows added since
the index build started. A timestamp is used to set an upper bound for
this scan. We suspect that the chosen timestamp may be omitting some
rows.
Our theory is that this happens if new rows were inserted before the
merge phase but were committed with a timestamp after the merge. This
discrepancy could be due to clock skew between nodes. However, attempts
to reproduce this issue via unit tests were unsuccessful, so this
remains a hypothesis.
To address this, this change includes:
- An adjustment to the merge timestamp to account for potential clock
skew.
- Additional logging of the merge timestamp chosen and the timestamps
observed on each node when draining leased descriptors. These logs will
help track the timestamp across nodes during the merge phase.
- Treat index validation errors for non-unique indexes as assertion
failures. We previously treated as a duplicat key error, which was
very confusing because duplicates are allowed for non-unique indexes.
Epic: none
Release note: none
Closes: #142751
0 commit comments