David Alves created KUDU-1697:
Summary: Operations that have to wait for a certain time/condition
to pass shouldn't block threads
Issue Type: Improvement
Reporter: David Alves
Certain operations, like waiting for a scan timestamp to be "safe" before
proceeding with the scan, or waiting in the context of commit-wait in the
transaction manager can easily block threads which will starve all other work.
Both these operation end up calling WaitUntilAfter() or WaitUntilAfterLocally()
on the HybridClock. We should use a notification mechanism instead, i.e.
NotifyMeAfter(ts, &callback, &thread_pool), NotifyMeAfterLocally(ts, &callback,
Similar reversals should likely be made on the MvccManager's
WaitForCleanSnapshotAtTimestamp() and WaitForCleanSnapshot().
This message was sent by Atlassian JIRA