Maysam Yabandeh
c292dc8540
WritePrepared: reduce prepared_mutex_ overhead ( #5420 )
...
Summary:
The patch reduces the contention over prepared_mutex_ using these techniques:
1) Move ::RemovePrepared() to be called from the commit callback when we have two write queues.
2) Use two separate mutex for PreparedHeap, one prepared_mutex_ needed for ::RemovePrepared, and one ::push_pop_mutex() needed for ::AddPrepared(). Given that we call ::AddPrepared only from the first write queue and ::RemovePrepared mostly from the 2nd, this will result into each the two write queues not competing with each other over a single mutex. ::RemovePrepared might occasionally need to acquire ::push_pop_mutex() if ::erase() ends up with calling ::pop()
3) Acquire ::push_pop_mutex() on the first callback of the write queue and release it on the last.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5420
Differential Revision: D15741985
Pulled By: maysamyabandeh
fbshipit-source-id: 84ce8016007e88bb6e10da5760ba1f0d26347735
2019-06-10 11:53:31 -07:00
..
2019-06-06 13:56:07 -07:00
2019-06-10 11:53:31 -07:00
2019-05-31 11:57:01 -07:00
2019-05-31 17:23:59 -07:00
2019-04-25 11:25:43 -07:00
2019-05-13 17:47:21 -07:00
2019-05-31 15:24:43 -07:00
2019-06-06 13:56:07 -07:00
2019-06-03 19:49:57 -07:00
2019-05-31 11:57:01 -07:00
2019-05-31 11:57:01 -07:00
2019-05-31 15:24:43 -07:00
2019-05-30 17:44:09 -07:00
2019-05-31 11:57:01 -07:00
2019-06-06 13:56:07 -07:00
2019-05-31 11:57:01 -07:00
2019-06-05 23:10:47 -07:00
2017-10-17 08:57:09 -07:00
2019-05-30 11:53:27 -07:00
2019-05-13 17:47:21 -07:00
2019-02-14 14:41:36 -08:00
2019-06-03 22:40:43 -07:00
2018-11-12 16:42:16 -08:00
2019-05-30 11:25:51 -07:00
2019-06-06 13:56:07 -07:00
2019-05-30 11:25:51 -07:00
2019-06-06 13:56:07 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2018-10-29 14:36:31 -07:00
2019-05-30 17:44:09 -07:00
2019-05-30 17:44:09 -07:00
2019-06-07 15:17:05 -07:00
2019-05-31 15:24:43 -07:00
2019-05-30 14:51:11 -07:00
2019-02-14 14:41:36 -08:00
2019-05-15 11:21:48 -07:00
2019-04-02 14:47:16 -07:00
2019-06-03 19:49:57 -07:00
2019-02-15 09:51:41 -08:00
2019-06-04 10:24:14 -07:00
2019-05-30 11:12:59 -07:00
2019-03-01 10:42:09 -08:00
2019-05-30 11:25:51 -07:00
2018-07-17 14:43:18 -07:00
2019-05-30 16:11:27 -07:00
2019-05-13 17:47:21 -07:00
2019-06-06 13:56:07 -07:00
2019-06-03 19:49:57 -07:00
2019-05-30 11:25:51 -07:00
2019-05-30 11:25:51 -07:00
2019-05-30 17:44:09 -07:00
2019-05-31 17:23:59 -07:00
2019-06-06 13:56:07 -07:00
2019-06-05 23:10:47 -07:00
2019-05-31 11:57:01 -07:00
2019-05-30 11:25:51 -07:00
2019-05-31 15:24:43 -07:00
2018-10-04 20:46:50 -07:00
2019-04-22 15:30:07 -07:00
2019-05-31 17:23:59 -07:00
2019-05-31 11:57:01 -07:00
2019-05-30 11:25:51 -07:00
2019-06-06 13:56:07 -07:00
2019-02-12 19:16:17 -08:00
2019-05-30 11:25:51 -07:00
2019-05-31 17:23:59 -07:00
2019-05-30 17:44:09 -07:00
2017-07-15 16:11:23 -07:00
2019-05-30 17:44:09 -07:00
2019-05-31 17:23:59 -07:00
2019-05-30 17:44:09 -07:00
2019-06-06 13:56:07 -07:00
2019-05-31 17:23:59 -07:00
2017-07-15 16:11:23 -07:00
2019-05-13 17:47:21 -07:00
2019-06-06 13:56:07 -07:00
2019-05-31 11:57:01 -07:00
2019-05-30 17:44:09 -07:00
2019-05-31 11:57:01 -07:00
2019-05-24 11:40:05 -07:00
2019-06-06 13:56:07 -07:00
2019-03-19 17:28:19 -07:00
2019-01-15 21:34:38 -08:00
2019-05-31 17:23:59 -07:00
2018-08-24 18:13:20 -07:00
2019-03-26 16:45:31 -07:00
2019-04-24 12:08:44 -07:00
2019-05-30 17:44:09 -07:00
2019-05-21 12:33:17 -07:00
2019-04-25 10:11:41 -07:00
2018-05-03 15:43:09 -07:00
2018-05-03 15:43:09 -07:00
2019-04-11 14:28:26 -07:00
2019-01-03 16:30:12 -08:00
2017-07-15 16:11:23 -07:00
2019-05-30 17:44:09 -07:00
2019-05-30 17:44:09 -07:00
2019-06-06 13:56:07 -07:00
2019-05-31 17:23:59 -07:00
2019-06-05 23:10:47 -07:00
2019-05-30 17:44:09 -07:00
2019-04-11 14:28:26 -07:00
2019-05-30 17:44:09 -07:00
2019-06-04 10:24:14 -07:00
2018-12-17 17:33:46 -08:00
2017-07-15 16:11:23 -07:00
2019-05-31 15:24:43 -07:00
2019-05-31 11:57:01 -07:00
2019-05-31 11:57:01 -07:00
2019-05-30 17:44:09 -07:00
2017-07-15 16:11:23 -07:00
2019-05-31 17:23:59 -07:00
2019-06-10 11:53:31 -07:00
2019-05-31 11:57:01 -07:00
2019-05-30 17:44:09 -07:00
2019-05-30 11:25:51 -07:00
2019-05-31 11:57:01 -07:00
2019-05-31 11:57:01 -07:00
2019-05-30 11:25:51 -07:00
2019-06-06 13:56:07 -07:00
2018-12-17 13:20:51 -08:00
2019-04-12 14:40:41 -07:00
2019-05-31 11:57:01 -07:00
2019-06-06 13:56:07 -07:00
2019-01-16 09:55:32 -08:00
2017-07-15 16:11:23 -07:00
2019-05-03 17:30:22 -07:00
2019-05-30 17:44:09 -07:00
2019-05-24 14:26:43 -07:00
2019-05-31 11:57:01 -07:00
2019-03-18 12:15:34 -07:00
2019-03-18 12:15:34 -07:00
2019-06-06 13:56:07 -07:00
2019-05-29 20:47:06 -07:00
2019-05-31 17:23:59 -07:00
2019-06-06 13:56:07 -07:00
2019-03-26 16:45:31 -07:00
2019-05-30 17:44:09 -07:00
2019-05-31 17:23:59 -07:00
2019-06-04 10:56:19 -07:00
2019-06-04 10:56:19 -07:00
2019-06-06 13:56:07 -07:00
2019-06-04 10:56:19 -07:00
2019-05-31 11:57:01 -07:00
2019-06-06 13:56:07 -07:00
2019-05-24 10:40:30 -07:00
2017-07-15 16:11:23 -07:00
2018-06-28 18:58:29 -07:00
2019-05-30 17:44:09 -07:00
2019-05-31 15:24:43 -07:00
2019-06-10 11:53:31 -07:00
2017-07-15 16:11:23 -07:00
2019-05-30 11:25:51 -07:00
2017-07-15 16:11:23 -07:00
2017-07-15 16:11:23 -07:00
2019-05-30 17:44:09 -07:00
2019-01-03 12:40:42 -08:00