Yanqin Jin
659a16d52b
Fix bug causing incorrect data returned by snapshot read ( #9648 )
...
Summary:
This bug affects use cases that meet the following conditions
- (has only the default column family or disables WAL) and
- has at least one event listener
- atomic flush is NOT affected.
If the above conditions meet, then RocksDB can release the db mutex before picking all the
existing memtables to flush. In the meantime, a snapshot can be created and db's sequence
number can still be incremented. The upcoming flush will ignore this snapshot.
A later read using this snapshot can return incorrect result.
To fix this issue, we call the listeners callbacks after picking the memtables so that we avoid
creating snapshots during this interval.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9648
Test Plan: make check
Reviewed By: ajkr
Differential Revision: D34555456
Pulled By: riversand963
fbshipit-source-id: 1438981e9f069a5916686b1a0ad7627f734cf0ee
2022-03-02 21:03:14 -08:00
..
2022-02-16 23:18:14 -08:00
2022-02-18 14:23:07 -08:00
2022-03-02 21:03:14 -08:00
2021-06-16 16:51:38 -07:00
2021-09-29 04:04:40 -07:00
2022-01-21 11:37:46 -08:00
2021-09-16 17:23:36 -07:00
2022-02-12 07:05:57 -08:00
2022-03-01 13:58:02 -08:00
2021-12-10 08:13:26 -08:00
2021-11-24 14:52:00 -08:00
2021-09-08 12:22:04 -07:00
2022-02-22 12:23:00 -08:00
2021-12-10 08:13:26 -08:00
2022-02-16 23:18:14 -08:00
2022-01-04 16:45:49 -08:00
2021-10-18 23:32:01 -07:00
2022-02-17 16:31:41 -08:00
2022-02-04 14:15:58 -08:00
2022-03-01 13:58:02 -08:00
2021-07-23 08:38:45 -07:00
2022-03-02 13:43:00 -08:00
2022-01-27 13:01:09 -08:00
2021-07-23 08:38:45 -07:00
2022-02-09 12:36:43 -08:00
2022-03-02 21:03:14 -08:00
2021-07-30 12:16:44 -07:00
2020-06-15 10:47:02 -07:00
2021-07-23 08:38:45 -07:00
2021-11-08 11:05:59 -08:00
2021-05-05 14:00:17 -07:00
2022-01-28 13:28:38 -08:00
2022-01-28 13:28:38 -08:00
2021-09-29 04:04:40 -07:00
2021-07-23 08:38:45 -07:00
2022-02-01 22:19:01 -08:00
2021-08-10 11:10:07 -07:00
2020-12-09 21:21:16 -08:00
2021-07-23 08:38:45 -07:00
2022-02-15 12:25:18 -08:00
2021-07-23 08:38:45 -07:00
2022-02-08 19:31:28 -08:00
2022-01-28 13:28:38 -08:00
2021-10-20 10:04:13 -07:00
2022-02-16 23:18:14 -08:00
2022-01-04 16:45:49 -08:00
2022-01-04 16:45:49 -08:00
2021-09-07 13:28:29 -07:00
2021-11-19 17:31:01 -08:00
2021-07-23 08:38:45 -07:00
2022-02-22 12:23:00 -08:00
2022-02-09 12:36:43 -08:00
2022-01-28 13:28:38 -08:00
2022-02-03 15:15:23 -08:00
2021-11-18 17:31:50 -08:00
2022-02-17 16:19:31 -08:00
2022-02-08 12:15:35 -08:00
2022-02-08 12:15:35 -08:00
2021-11-08 11:05:59 -08:00
2021-11-08 11:05:59 -08:00
2021-11-08 11:05:59 -08:00
2021-11-10 10:49:04 -08:00
2022-02-09 09:50:54 -08:00
2021-11-08 11:05:59 -08:00
2021-12-20 23:16:52 -08:00
2022-02-07 18:24:36 -08:00
2021-11-08 15:49:17 -08:00
2021-12-08 14:30:57 -08:00
2021-12-08 14:30:57 -08:00
2020-02-20 12:09:57 -08:00
2021-11-08 11:05:59 -08:00
2022-03-02 17:41:02 -08:00
2021-12-16 17:15:13 -08:00
2022-01-04 16:45:49 -08:00
2021-12-13 09:00:36 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2022-02-08 12:15:35 -08:00
2022-02-09 12:36:43 -08:00
2021-09-29 04:04:40 -07:00
2020-02-20 12:09:57 -08:00
2021-03-19 12:09:47 -07:00
2022-01-12 09:31:12 -08:00
2022-01-21 11:37:46 -08:00
2022-01-21 11:37:46 -08:00
2022-02-18 18:23:07 -08:00
2021-12-16 17:15:13 -08:00
2021-07-23 08:38:45 -07:00
2022-02-10 12:42:11 -08:00
2021-10-20 13:17:00 -07:00
2021-09-10 10:00:26 -07:00
2021-11-16 10:20:50 -08:00
2022-02-22 12:23:00 -08:00
2022-02-17 16:19:31 -08:00
2022-02-17 16:19:31 -08:00
2022-02-17 16:19:31 -08:00
2022-02-23 23:45:04 -08:00
2022-02-17 16:19:31 -08:00
2022-02-17 16:19:31 -08:00
2020-02-20 12:09:57 -08:00
2021-03-19 12:09:47 -07:00
2021-09-29 04:04:40 -07:00
2021-09-07 11:31:59 -07:00
2020-02-20 12:09:57 -08:00
2022-01-12 09:31:12 -08:00
2021-12-02 11:45:39 -08:00
2021-12-17 04:20:47 -08:00
2021-12-17 04:20:47 -08:00
2022-01-27 14:55:04 -08:00
2022-01-27 14:55:04 -08:00
2021-05-10 12:50:25 -07:00
2021-11-19 17:53:47 -08:00
2021-11-19 17:53:47 -08:00
2021-11-19 17:53:47 -08:00
2020-02-20 12:09:57 -08:00
2022-01-04 16:45:49 -08:00
2021-12-10 11:05:35 -08:00
2020-12-23 16:55:53 -08:00
2021-09-29 04:04:40 -07:00
2021-09-29 04:04:40 -07:00
2021-03-15 04:34:11 -07:00
2021-07-23 08:38:45 -07:00
2021-03-15 04:34:11 -07:00
2021-01-25 22:09:11 -08:00
2021-09-07 11:31:59 -07:00
2022-01-21 11:37:46 -08:00
2021-09-10 10:00:26 -07:00
2021-03-15 04:34:11 -07:00
2021-10-06 07:48:31 -07:00
2021-10-06 07:48:31 -07:00
2020-10-28 10:12:58 -07:00
2021-03-25 21:18:08 -07:00
2021-10-06 07:48:31 -07:00
2021-06-18 04:57:27 -07:00
2021-06-18 04:57:27 -07:00
2021-09-10 10:00:26 -07:00
2021-07-28 16:44:14 -07:00
2022-01-21 11:37:46 -08:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2021-09-10 10:00:26 -07:00
2022-02-18 14:23:07 -08:00
2022-01-21 11:37:46 -08:00
2021-11-18 11:43:44 -08:00
2021-03-25 15:00:45 -07:00
2021-11-19 11:37:06 -08:00
2021-12-10 11:05:35 -08:00
2021-09-29 04:04:40 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2022-02-09 12:36:43 -08:00
2022-02-09 12:36:43 -08:00
2022-01-21 11:37:46 -08:00
2022-02-04 08:19:20 -08:00
2021-06-10 12:55:20 -07:00
2021-12-03 14:43:14 -08:00
2021-11-22 09:30:47 -08:00
2022-02-04 08:19:20 -08:00
2022-02-11 08:41:41 -08:00
2022-02-17 16:31:41 -08:00
2022-02-15 12:25:18 -08:00
2020-12-09 16:02:12 -08:00
2020-12-09 16:02:12 -08:00
2020-12-09 16:02:12 -08:00
2021-09-21 09:23:48 -07:00
2021-07-30 12:16:44 -07:00
2021-07-30 12:16:44 -07:00
2020-02-20 12:09:57 -08:00
2022-02-22 14:23:01 -08:00
2022-02-22 14:23:01 -08:00
2022-02-22 14:23:01 -08:00
2021-07-07 11:14:05 -07:00
2020-02-20 12:09:57 -08:00
2021-03-18 09:47:31 -07:00
2021-03-18 09:47:31 -07:00
2021-03-18 09:47:31 -07:00
2021-04-21 13:54:02 -07:00
2021-06-18 17:14:51 -07:00