Anand Ananthabhotla
854a4be03f
Handle mixed slowdown/no_slowdown writer properly ( #4475 )
...
Summary:
There is a bug when the write queue leader is blocked on a write
delay/stop, and the queue has writers with WriteOptions::no_slowdown set
to true. They are not woken up until the write stall is cleared.
The fix introduces a dummy writer inserted at the tail to indicate a
write stall and prevent further inserts into the queue, and a condition
variable that writers who can tolerate slowdown wait on before adding
themselves to the queue. The leader calls WriteThread::BeginWriteStall()
to add the dummy writer and then walk the queue to fail any writers with
no_slowdown set. Once the stall clears, the leader calls
WriteThread::EndWriteStall() to remove the dummy writer and signal the
condition variable.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4475
Differential Revision: D10285827
Pulled By: anand1976
fbshipit-source-id: 747465e5e7f07a829b1fb0bc1afcd7b93f4ab1a9
2018-10-09 22:52:40 -07:00
..
2018-08-23 10:12:58 -07:00
2018-08-09 16:58:40 -07:00
2018-09-14 20:57:22 -07:00
2018-09-13 14:27:31 -07:00
2018-10-09 14:10:13 -07:00
2018-05-03 15:43:09 -07:00
2018-04-27 11:57:39 -07:00
2018-10-02 10:42:01 -07:00
2018-10-08 22:54:43 -07:00
2018-03-05 13:13:41 -08:00
2017-08-19 14:10:08 -07:00
2018-08-24 15:17:54 -07:00
2018-08-24 15:17:54 -07:00
2018-06-21 21:28:05 -07:00
2018-07-13 17:27:39 -07:00
2018-09-15 13:43:04 -07:00
2018-10-09 15:19:38 -07:00
2018-06-28 12:34:40 -07:00
2018-07-27 16:12:23 -07:00
2018-07-27 16:12:23 -07:00
2018-05-29 15:44:34 -07:00
2018-10-09 17:15:51 -07:00
2018-06-27 17:42:38 -07:00
2018-10-09 15:19:38 -07:00
2018-10-09 15:19:38 -07:00
2018-07-13 17:27:39 -07:00
2018-06-27 17:13:34 -07:00
2018-07-13 17:27:39 -07:00
2018-07-13 17:27:39 -07:00
2018-07-13 17:27:39 -07:00
2017-10-17 08:57:09 -07:00
2018-05-24 15:57:33 -07:00
2018-09-17 17:28:15 -07:00
2018-05-30 16:15:16 -07:00
2018-10-01 11:57:55 -07:00
2018-04-15 17:26:26 -07:00
2017-07-15 16:11:23 -07:00
2018-10-09 17:15:51 -07:00
2018-10-05 15:41:17 -07:00
2018-10-09 17:15:51 -07:00
2018-10-08 22:54:43 -07:00
2018-08-03 17:42:34 -07:00
2018-07-11 14:57:46 -07:00
2018-10-08 22:54:43 -07:00
2018-08-22 22:43:13 -07:00
2018-03-15 11:58:12 -07:00
2018-10-09 22:52:40 -07:00
2018-10-08 22:54:43 -07:00
2018-10-09 22:52:40 -07:00
2018-10-09 17:15:51 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-26 21:11:47 -07:00
2018-05-21 14:43:11 -07:00
2018-06-12 16:57:36 -07:00
2018-10-09 17:07:27 -07:00
2018-08-10 17:57:40 -07:00
2018-08-10 17:57:40 -07:00
2018-04-15 17:26:26 -07:00
2018-03-05 13:13:41 -08:00
2018-06-27 12:23:07 -07:00
2018-10-08 22:54:43 -07:00
2018-08-09 16:58:40 -07:00
2018-07-27 16:12:23 -07:00
2018-08-08 07:27:46 -07:00
2017-07-15 16:11:23 -07:00
2018-09-20 15:15:28 -07:00
2018-07-17 14:43:18 -07:00
2018-10-08 14:24:16 -07:00
2018-09-17 17:28:15 -07:00
2018-10-08 22:54:43 -07:00
2018-10-09 22:52:40 -07:00
2018-07-20 14:43:38 -07:00
2018-09-26 10:37:48 -07:00
2018-05-14 21:13:35 -07:00
2018-07-13 17:42:38 -07:00
2018-08-06 18:27:44 -07:00
2018-07-16 17:13:10 -07:00
2018-07-13 17:27:39 -07:00
2018-09-17 13:14:07 -07:00
2018-10-04 20:46:50 -07:00
2018-10-04 20:46:50 -07:00
2018-09-15 13:43:04 -07:00
2018-09-15 13:43:04 -07:00
2018-04-12 17:59:16 -07:00
2018-07-13 22:43:09 -07:00
2018-10-04 20:46:50 -07:00
2018-07-27 16:12:23 -07:00
2018-07-17 14:13:16 -07:00
2018-07-13 17:27:39 -07:00
2018-03-05 13:13:41 -08:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-08-23 10:12:58 -07:00
2018-10-05 15:41:17 -07:00
2018-05-03 15:43:09 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-09-27 10:35:00 -07:00
2018-03-05 13:13:41 -08:00
2018-06-15 17:28:01 -07:00
2018-06-15 17:28:01 -07:00
2018-08-03 17:42:34 -07:00
2018-09-15 13:43:04 -07:00
2018-08-24 18:13:20 -07:00
2018-09-14 11:12:52 -07:00
2018-09-13 17:13:03 -07:00
2018-09-13 17:13:03 -07:00
2018-05-14 10:57:56 -07:00
2018-05-14 10:57:56 -07:00
2018-05-03 15:43:09 -07:00
2018-05-03 15:43:09 -07:00
2018-03-06 16:27:54 -08:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-10-05 15:41:17 -07:00
2018-10-05 15:41:17 -07:00
2018-10-05 15:41:17 -07:00
2018-08-16 10:58:05 -07:00
2018-08-23 17:14:25 -07:00
2018-08-16 10:58:05 -07:00
2017-07-15 16:11:23 -07:00
2018-07-12 14:42:39 -07:00
2018-09-05 18:13:31 -07:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-08-03 13:57:40 -07:00
2018-07-13 17:27:39 -07:00
2018-08-22 22:43:13 -07:00
2017-07-15 16:11:23 -07:00
2018-07-13 17:27:39 -07:00
2018-04-05 11:12:16 -07:00
2018-07-13 17:27:39 -07:00
2018-09-21 16:13:08 -07:00
2018-10-09 15:19:38 -07:00
2018-10-09 15:19:38 -07:00
2018-10-09 15:19:38 -07:00
2018-06-27 12:23:07 -07:00
2018-08-28 12:43:18 -07:00
2018-09-13 17:13:03 -07:00
2018-08-23 10:12:58 -07:00
2017-07-15 16:11:23 -07:00
2018-08-06 16:57:42 -07:00
2018-10-09 15:19:38 -07:00
2018-10-09 15:19:38 -07:00
2018-08-23 10:12:58 -07:00
2018-03-05 13:13:41 -08:00
2018-03-05 13:13:41 -08:00
2018-09-13 17:13:03 -07:00
2017-11-10 17:28:12 -08:00
2018-07-27 16:12:23 -07:00
2018-09-14 19:43:04 -07:00
2018-05-21 14:43:11 -07:00
2018-08-20 14:58:00 -07:00
2018-08-20 14:58:00 -07:00
2018-08-20 14:58:00 -07:00
2018-08-23 10:12:58 -07:00
2018-10-09 15:19:38 -07:00
2018-08-20 14:58:00 -07:00
2018-08-23 10:12:58 -07:00
2018-09-13 17:13:03 -07:00
2018-01-11 18:57:33 -08:00
2017-07-15 16:11:23 -07:00
2018-06-28 18:58:29 -07:00
2018-07-06 17:59:13 -07:00
2018-07-24 00:13:18 -07:00
2018-07-13 17:27:39 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-10-09 22:52:40 -07:00
2018-10-09 22:52:40 -07:00