Cheng Chang
8c93b16f02
Track WAL in MANIFEST: Update logic for computing min_log_number_to_keep in atomic flush ( #7660 )
...
Summary:
The logic for computing min_log_number_to_keep in atomic flush was incorrect.
For example, when all column families are flushed, the min_log_number_to_keep should be the latest new log. But the incorrect logic calls `PrecomputeMinLogNumberToKeepNon2PC` for each column family, and returns the minimum of them. However, `PrecomputeMinLogNumberToKeepNon2PC(cf)` assumes column families other than `cf` are flushed, but in case all column families are flushed, this assumption is incorrect.
Without this fix, the WAL referenced by the computed min_log_number_to_keep may actually contain no unflushed data, so the WAL might have actually been deleted from disk on recovery, then an incorrect error `Corruption: missing WAL` will be reported.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/7660
Test Plan:
run `make crash_test_with_atomic_flush` on devserver
added a unit test in `db_flush_test`
Reviewed By: riversand963
Differential Revision: D24906265
Pulled By: cheng-chang
fbshipit-source-id: 08deda62e71f67f59e3b7925cdd86dd09bd4f430
2020-11-17 15:55:55 -08:00
..
2020-10-27 10:33:09 -07:00
2020-11-12 11:43:24 -08:00
2020-11-17 15:55:55 -08:00
2020-08-03 15:23:04 -07:00
2020-08-03 15:23:04 -07:00
2020-11-12 18:44:34 -08:00
2020-11-12 18:44:34 -08:00
2020-10-16 11:04:01 -07:00
2020-10-28 23:22:27 -07:00
2020-11-06 10:25:20 -08:00
2020-10-28 10:12:58 -07:00
2020-10-28 10:12:58 -07:00
2020-07-02 19:25:41 -07:00
2020-10-01 19:14:14 -07:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2020-05-12 18:23:33 -07:00
2020-11-11 08:00:14 -08:00
2020-11-07 22:23:27 -08:00
2020-11-16 22:09:01 -08:00
2020-11-02 19:21:11 -08:00
2020-11-12 20:46:14 -08:00
2020-10-28 10:12:58 -07:00
2020-10-27 10:33:09 -07:00
2020-10-19 11:38:48 -07:00
2020-10-27 10:33:09 -07:00
2020-09-10 22:35:25 -07:00
2020-11-17 15:55:55 -08:00
2020-10-22 17:06:20 -07:00
2020-06-15 10:47:02 -07:00
2020-08-17 18:42:25 -07:00
2020-08-17 18:42:25 -07:00
2020-06-24 16:22:49 -07:00
2020-10-28 10:12:58 -07:00
2020-11-10 17:17:39 -08:00
2020-09-29 09:49:04 -07:00
2020-11-10 17:17:39 -08:00
2020-08-17 18:42:25 -07:00
2020-03-20 15:26:10 -07:00
2020-10-27 10:33:09 -07:00
2020-08-17 18:42:25 -07:00
2020-11-06 15:24:17 -08:00
2020-11-11 20:32:28 -08:00
2020-10-27 10:33:09 -07:00
2020-11-07 22:23:27 -08:00
2020-10-27 10:33:09 -07:00
2020-09-04 23:25:03 -07:00
2020-11-06 14:25:14 -08:00
2020-08-17 18:42:25 -07:00
2020-11-02 19:48:23 -08:00
2020-11-13 13:37:14 -08:00
2020-10-27 10:33:09 -07:00
2020-10-27 10:33:09 -07:00
2020-10-27 10:33:09 -07:00
2020-11-03 09:48:16 -08:00
2020-11-10 14:53:13 -08:00
2020-08-17 18:42:25 -07:00
2020-10-27 10:33:09 -07:00
2020-10-28 23:22:27 -07:00
2020-10-28 10:12:58 -07:00
2020-10-28 10:12:58 -07:00
2020-10-22 17:06:20 -07:00
2020-10-27 10:33:09 -07:00
2020-09-29 18:23:27 -07:00
2020-09-17 20:25:45 -07:00
2020-10-02 16:41:13 -07:00
2020-08-25 10:46:11 -07:00
2020-02-20 12:09:57 -08:00
2020-10-27 10:33:09 -07:00
2020-10-28 16:47:12 -07:00
2020-08-18 16:20:54 -07:00
2020-08-24 11:26:09 -07:00
2020-10-28 23:22:27 -07: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
2020-11-12 18:44:34 -08:00
2020-11-12 18:44:34 -08:00
2020-11-12 18:44:34 -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-21 20:18:06 -07:00
2020-04-15 17:40:44 -07:00
2020-10-28 10:12:58 -07:00
2020-08-18 16:20:54 -07:00
2020-10-27 10:33:09 -07:00
2020-11-12 17:33:04 -08:00
2020-10-15 13:04:47 -07:00
2020-05-04 15:08:13 -07:00
2020-10-28 23:22:27 -07:00
2020-02-20 12:09:57 -08:00
2020-08-26 10:39:20 -07:00
2020-08-26 10:39:20 -07:00
2020-06-03 15:55:03 -07:00
2020-06-18 10:09:12 -07:00
2020-03-27 16:04:43 -07: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-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-03-04 20:15:25 -08:00
2020-09-24 21:48:57 -07:00
2020-11-17 15:55:55 -08:00
2020-10-26 18:23:01 -07:00
2020-11-03 09:45:41 -08:00
2020-09-29 23:17:45 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 10:12:58 -07:00
2020-10-28 10:12:58 -07:00
2020-02-20 12:09:57 -08:00
2020-10-26 18:23:01 -07:00
2020-10-28 23:22:27 -07:00
2020-09-16 15:48:07 -07:00
2020-11-10 23:42:13 -08:00
2020-11-10 23:42:13 -08:00
2020-10-27 10:33:09 -07:00
2020-10-27 10:33:09 -07:00
2020-10-28 23:22:27 -07:00
2020-10-01 19:14:14 -07:00
2020-02-20 12:09:57 -08:00
2020-10-28 23:22:27 -07:00
2020-02-20 12:09:57 -08:00
2020-10-02 17:01:15 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-10-28 10:12:58 -07:00
2020-10-28 10:12:58 -07: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-08-14 19:20:58 -07:00
2020-09-29 16:30:08 -07:00
2020-11-12 18:44:34 -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-11-03 09:45:41 -08:00
2020-08-27 11:21:52 -07:00
2020-09-14 17:01:01 -07:00
2020-10-28 10:12:58 -07:00
2020-02-20 12:09:57 -08:00
2020-08-18 16:20:54 -07:00
2020-08-12 17:31:23 -07: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
2020-10-02 22:11:00 -07:00
2020-06-09 16:51:23 -07:00
2020-11-11 08:00:14 -08:00
2020-11-11 08:00:14 -08:00
2020-11-06 17:22:36 -08:00
2020-11-06 17:22:36 -08:00
2020-11-11 08:00:14 -08:00
2020-11-11 08:00:14 -08:00
2020-11-11 08:00:14 -08:00
2020-11-17 15:55:55 -08:00
2020-11-06 17:22:36 -08:00
2020-11-06 17:22:36 -08:00
2020-11-06 17:22:36 -08:00
2020-10-22 17:06:20 -07:00
2020-10-22 17:06:20 -07:00
2020-08-12 17:31:23 -07:00
2020-02-20 12:09:57 -08:00
2020-02-20 12:09:57 -08:00
2020-11-16 20:39:01 -08:00
2020-11-16 20:39:01 -08:00
2020-06-30 12:31:30 -07: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-02-20 12:09:57 -08:00
2020-10-06 12:44:20 -07:00
2020-10-14 10:47:58 -07:00