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)

Reply via email to