David Alves created KUDU-1697:
---------------------------------
Summary: Operations that have to wait for a certain time/condition
to pass shouldn't block threads
Key: KUDU-1697
URL: https://issues.apache.org/jira/browse/KUDU-1697
Project: Kudu
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,
&thread_pool).
Similar reversals should likely be made on the MvccManager's
WaitForCleanSnapshotAtTimestamp() and WaitForCleanSnapshot().
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)