@nxtedition/rocksdb 8.1.3 → 8.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/deps/rocksdb/rocksdb/CMakeLists.txt +0 -9
- package/deps/rocksdb/rocksdb/Makefile +1 -13
- package/deps/rocksdb/rocksdb/TARGETS +0 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +0 -11
- package/deps/rocksdb/rocksdb/db/builder.cc +4 -13
- package/deps/rocksdb/rocksdb/db/builder.h +1 -2
- package/deps/rocksdb/rocksdb/db/c.cc +0 -15
- package/deps/rocksdb/rocksdb/db/c_test.c +0 -3
- package/deps/rocksdb/rocksdb/db/column_family.cc +5 -11
- package/deps/rocksdb/rocksdb/db/column_family.h +0 -20
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +0 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +37 -31
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +0 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -24
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +1 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +2 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +26 -104
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +0 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +18 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +16 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +6 -19
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +5 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +22 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +5 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +52 -81
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +5 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +2 -8
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +0 -8
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +138 -266
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +1 -86
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +123 -897
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +20 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +9 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +28 -121
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +0 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +4 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +0 -10
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +4 -325
- package/deps/rocksdb/rocksdb/db/db_test.cc +0 -3
- package/deps/rocksdb/rocksdb/db/db_test2.cc +8 -233
- package/deps/rocksdb/rocksdb/db/db_test_util.h +0 -3
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +0 -129
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +0 -21
- package/deps/rocksdb/rocksdb/db/dbformat.cc +0 -25
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -2
- package/deps/rocksdb/rocksdb/db/experimental.cc +2 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +0 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +13 -92
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +1 -38
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +110 -14
- package/deps/rocksdb/rocksdb/db/flush_job.cc +4 -6
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +0 -4
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +53 -56
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +1 -1
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +0 -4
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/repair.cc +22 -65
- package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -54
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +26 -26
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +1 -3
- package/deps/rocksdb/rocksdb/db/version_builder.cc +43 -90
- package/deps/rocksdb/rocksdb/db/version_builder.h +0 -20
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +93 -218
- package/deps/rocksdb/rocksdb/db/version_edit.cc +1 -27
- package/deps/rocksdb/rocksdb/db/version_edit.h +9 -33
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +6 -13
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +6 -17
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +17 -19
- package/deps/rocksdb/rocksdb/db/version_set.cc +26 -166
- package/deps/rocksdb/rocksdb/db/version_set.h +2 -32
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +31 -65
- package/deps/rocksdb/rocksdb/db/write_thread.cc +2 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +0 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +32 -31
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +1 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +6 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +0 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +4 -11
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +15 -16
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +1 -13
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +75 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +0 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +0 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +1 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +3 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +0 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +9 -69
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/memory/arena.cc +87 -23
- package/deps/rocksdb/rocksdb/memory/arena.h +31 -25
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +0 -90
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +26 -26
- package/deps/rocksdb/rocksdb/src.mk +0 -2
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +2 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/format.cc +20 -24
- package/deps/rocksdb/rocksdb/table/format.h +2 -5
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +105 -54
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +0 -80
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +2 -2
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +6 -7
- package/deps/rocksdb/rocksdb/test_util/testutil.h +0 -10
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +2 -2
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/status.cc +0 -7
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +74 -250
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -199
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +0 -39
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +0 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -59
- package/deps/rocksdb/rocksdb.gyp +0 -3
- package/index.js +2 -2
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/port/mmap.cc +0 -98
- package/deps/rocksdb/rocksdb/port/mmap.h +0 -70
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +0 -142
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.h +0 -241
|
@@ -64,16 +64,15 @@ class VersionBuilderTest : public testing::Test {
|
|
|
64
64
|
uint64_t num_entries = 0, uint64_t num_deletions = 0,
|
|
65
65
|
bool sampled = false, SequenceNumber smallest_seqno = 0,
|
|
66
66
|
SequenceNumber largest_seqno = 0,
|
|
67
|
-
uint64_t oldest_blob_file_number = kInvalidBlobFileNumber
|
|
68
|
-
uint64_t epoch_number = kUnknownEpochNumber) {
|
|
67
|
+
uint64_t oldest_blob_file_number = kInvalidBlobFileNumber) {
|
|
69
68
|
assert(level < vstorage_.num_levels());
|
|
70
69
|
FileMetaData* f = new FileMetaData(
|
|
71
70
|
file_number, path_id, file_size, GetInternalKey(smallest, smallest_seq),
|
|
72
71
|
GetInternalKey(largest, largest_seq), smallest_seqno, largest_seqno,
|
|
73
72
|
/* marked_for_compact */ false, Temperature::kUnknown,
|
|
74
73
|
oldest_blob_file_number, kUnknownOldestAncesterTime,
|
|
75
|
-
kUnknownFileCreationTime,
|
|
76
|
-
kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
74
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
75
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
77
76
|
f->compensated_file_size = file_size;
|
|
78
77
|
f->num_entries = num_entries;
|
|
79
78
|
f->num_deletions = num_deletions;
|
|
@@ -99,8 +98,7 @@ class VersionBuilderTest : public testing::Test {
|
|
|
99
98
|
vstorage_.AddBlobFile(std::move(meta));
|
|
100
99
|
}
|
|
101
100
|
|
|
102
|
-
void AddDummyFile(uint64_t table_file_number, uint64_t blob_file_number
|
|
103
|
-
uint64_t epoch_number) {
|
|
101
|
+
void AddDummyFile(uint64_t table_file_number, uint64_t blob_file_number) {
|
|
104
102
|
constexpr int level = 0;
|
|
105
103
|
constexpr char smallest[] = "bar";
|
|
106
104
|
constexpr char largest[] = "foo";
|
|
@@ -114,11 +112,11 @@ class VersionBuilderTest : public testing::Test {
|
|
|
114
112
|
|
|
115
113
|
Add(level, table_file_number, smallest, largest, file_size, path_id,
|
|
116
114
|
smallest_seq, largest_seq, num_entries, num_deletions, sampled,
|
|
117
|
-
smallest_seq, largest_seq, blob_file_number
|
|
115
|
+
smallest_seq, largest_seq, blob_file_number);
|
|
118
116
|
}
|
|
119
117
|
|
|
120
118
|
void AddDummyFileToEdit(VersionEdit* edit, uint64_t table_file_number,
|
|
121
|
-
uint64_t blob_file_number
|
|
119
|
+
uint64_t blob_file_number) {
|
|
122
120
|
assert(edit);
|
|
123
121
|
|
|
124
122
|
constexpr int level = 0;
|
|
@@ -130,13 +128,12 @@ class VersionBuilderTest : public testing::Test {
|
|
|
130
128
|
constexpr SequenceNumber largest_seqno = 300;
|
|
131
129
|
constexpr bool marked_for_compaction = false;
|
|
132
130
|
|
|
133
|
-
edit->AddFile(
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
kUnknownFileChecksumFuncName, kNullUniqueId64x2, 0);
|
|
131
|
+
edit->AddFile(
|
|
132
|
+
level, table_file_number, path_id, file_size, GetInternalKey(smallest),
|
|
133
|
+
GetInternalKey(largest), smallest_seqno, largest_seqno,
|
|
134
|
+
marked_for_compaction, Temperature::kUnknown, blob_file_number,
|
|
135
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
136
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
140
137
|
}
|
|
141
138
|
|
|
142
139
|
void UpdateVersionStorageInfo(VersionStorageInfo* vstorage) {
|
|
@@ -160,13 +157,7 @@ void UnrefFilesInVersion(VersionStorageInfo* new_vstorage) {
|
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
TEST_F(VersionBuilderTest, ApplyAndSaveTo) {
|
|
163
|
-
Add(0, 1U, "150", "200", 100U
|
|
164
|
-
/*smallest_seq*/ 100, /*largest_seq*/ 100,
|
|
165
|
-
/*num_entries*/ 0, /*num_deletions*/ 0,
|
|
166
|
-
/*sampled*/ false, /*smallest_seqno*/ 0,
|
|
167
|
-
/*largest_seqno*/ 0,
|
|
168
|
-
/*oldest_blob_file_number*/ kInvalidBlobFileNumber,
|
|
169
|
-
/*epoch_number*/ 1);
|
|
160
|
+
Add(0, 1U, "150", "200", 100U);
|
|
170
161
|
|
|
171
162
|
Add(1, 66U, "150", "200", 100U);
|
|
172
163
|
Add(1, 88U, "201", "300", 100U);
|
|
@@ -186,8 +177,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveTo) {
|
|
|
186
177
|
version_edit.AddFile(
|
|
187
178
|
2, 666, 0, 100U, GetInternalKey("301"), GetInternalKey("350"), 200, 200,
|
|
188
179
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
189
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
190
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
180
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
181
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
191
182
|
version_edit.DeleteFile(3, 27U);
|
|
192
183
|
|
|
193
184
|
EnvOptions env_options;
|
|
@@ -213,12 +204,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveTo) {
|
|
|
213
204
|
TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic) {
|
|
214
205
|
ioptions_.level_compaction_dynamic_level_bytes = true;
|
|
215
206
|
|
|
216
|
-
Add(0, 1U, "150", "200", 100U, 0, 200U, 200U, 0, 0, false, 200U, 200U
|
|
217
|
-
|
|
218
|
-
/*epoch_number*/ 2);
|
|
219
|
-
Add(0, 88U, "201", "300", 100U, 0, 100U, 100U, 0, 0, false, 100U, 100U,
|
|
220
|
-
/*oldest_blob_file_number*/ kInvalidBlobFileNumber,
|
|
221
|
-
/*epoch_number*/ 1);
|
|
207
|
+
Add(0, 1U, "150", "200", 100U, 0, 200U, 200U, 0, 0, false, 200U, 200U);
|
|
208
|
+
Add(0, 88U, "201", "300", 100U, 0, 100U, 100U, 0, 0, false, 100U, 100U);
|
|
222
209
|
|
|
223
210
|
Add(4, 6U, "150", "179", 100U);
|
|
224
211
|
Add(4, 7U, "180", "220", 100U);
|
|
@@ -233,9 +220,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic) {
|
|
|
233
220
|
version_edit.AddFile(
|
|
234
221
|
3, 666, 0, 100U, GetInternalKey("301"), GetInternalKey("350"), 200, 200,
|
|
235
222
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
236
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
237
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
238
|
-
|
|
223
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
224
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
239
225
|
version_edit.DeleteFile(0, 1U);
|
|
240
226
|
version_edit.DeleteFile(0, 88U);
|
|
241
227
|
|
|
@@ -264,12 +250,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic) {
|
|
|
264
250
|
TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic2) {
|
|
265
251
|
ioptions_.level_compaction_dynamic_level_bytes = true;
|
|
266
252
|
|
|
267
|
-
Add(0, 1U, "150", "200", 100U, 0, 200U, 200U, 0, 0, false, 200U, 200U
|
|
268
|
-
|
|
269
|
-
/*epoch_number*/ 2);
|
|
270
|
-
Add(0, 88U, "201", "300", 100U, 0, 100U, 100U, 0, 0, false, 100U, 100U,
|
|
271
|
-
/*oldest_blob_file_number*/ kInvalidBlobFileNumber,
|
|
272
|
-
/*epoch_number*/ 1);
|
|
253
|
+
Add(0, 1U, "150", "200", 100U, 0, 200U, 200U, 0, 0, false, 200U, 200U);
|
|
254
|
+
Add(0, 88U, "201", "300", 100U, 0, 100U, 100U, 0, 0, false, 100U, 100U);
|
|
273
255
|
|
|
274
256
|
Add(4, 6U, "150", "179", 100U);
|
|
275
257
|
Add(4, 7U, "180", "220", 100U);
|
|
@@ -284,8 +266,8 @@ TEST_F(VersionBuilderTest, ApplyAndSaveToDynamic2) {
|
|
|
284
266
|
version_edit.AddFile(
|
|
285
267
|
4, 666, 0, 100U, GetInternalKey("301"), GetInternalKey("350"), 200, 200,
|
|
286
268
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
287
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
288
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
269
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
270
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
289
271
|
version_edit.DeleteFile(0, 1U);
|
|
290
272
|
version_edit.DeleteFile(0, 88U);
|
|
291
273
|
version_edit.DeleteFile(4, 6U);
|
|
@@ -320,28 +302,28 @@ TEST_F(VersionBuilderTest, ApplyMultipleAndSaveTo) {
|
|
|
320
302
|
version_edit.AddFile(
|
|
321
303
|
2, 666, 0, 100U, GetInternalKey("301"), GetInternalKey("350"), 200, 200,
|
|
322
304
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
323
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
324
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
305
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
306
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
325
307
|
version_edit.AddFile(
|
|
326
308
|
2, 676, 0, 100U, GetInternalKey("401"), GetInternalKey("450"), 200, 200,
|
|
327
309
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
328
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
329
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
310
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
311
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
330
312
|
version_edit.AddFile(
|
|
331
313
|
2, 636, 0, 100U, GetInternalKey("601"), GetInternalKey("650"), 200, 200,
|
|
332
314
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
333
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
334
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
315
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
316
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
335
317
|
version_edit.AddFile(
|
|
336
318
|
2, 616, 0, 100U, GetInternalKey("501"), GetInternalKey("550"), 200, 200,
|
|
337
319
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
338
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
339
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
320
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
321
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
340
322
|
version_edit.AddFile(
|
|
341
323
|
2, 606, 0, 100U, GetInternalKey("701"), GetInternalKey("750"), 200, 200,
|
|
342
324
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
343
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
344
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
325
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
326
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
345
327
|
|
|
346
328
|
EnvOptions env_options;
|
|
347
329
|
constexpr TableCache* table_cache = nullptr;
|
|
@@ -379,43 +361,43 @@ TEST_F(VersionBuilderTest, ApplyDeleteAndSaveTo) {
|
|
|
379
361
|
version_edit.AddFile(
|
|
380
362
|
2, 666, 0, 100U, GetInternalKey("301"), GetInternalKey("350"), 200, 200,
|
|
381
363
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
382
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
383
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
364
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
365
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
384
366
|
version_edit.AddFile(
|
|
385
367
|
2, 676, 0, 100U, GetInternalKey("401"), GetInternalKey("450"), 200, 200,
|
|
386
368
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
387
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
388
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
369
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
370
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
389
371
|
version_edit.AddFile(
|
|
390
372
|
2, 636, 0, 100U, GetInternalKey("601"), GetInternalKey("650"), 200, 200,
|
|
391
373
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
392
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
393
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
374
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
375
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
394
376
|
version_edit.AddFile(
|
|
395
377
|
2, 616, 0, 100U, GetInternalKey("501"), GetInternalKey("550"), 200, 200,
|
|
396
378
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
397
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
398
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
379
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
380
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
399
381
|
version_edit.AddFile(
|
|
400
382
|
2, 606, 0, 100U, GetInternalKey("701"), GetInternalKey("750"), 200, 200,
|
|
401
383
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
402
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
403
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
384
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
385
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
404
386
|
ASSERT_OK(version_builder.Apply(&version_edit));
|
|
405
387
|
|
|
406
388
|
VersionEdit version_edit2;
|
|
407
389
|
version_edit.AddFile(
|
|
408
390
|
2, 808, 0, 100U, GetInternalKey("901"), GetInternalKey("950"), 200, 200,
|
|
409
391
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
410
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
411
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
392
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
393
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
412
394
|
version_edit2.DeleteFile(2, 616);
|
|
413
395
|
version_edit2.DeleteFile(2, 636);
|
|
414
396
|
version_edit.AddFile(
|
|
415
397
|
2, 806, 0, 100U, GetInternalKey("801"), GetInternalKey("850"), 200, 200,
|
|
416
398
|
false, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
417
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
418
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
399
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
400
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
419
401
|
|
|
420
402
|
ASSERT_OK(version_builder.Apply(&version_edit2));
|
|
421
403
|
ASSERT_OK(version_builder.SaveTo(&new_vstorage));
|
|
@@ -520,13 +502,13 @@ TEST_F(VersionBuilderTest, ApplyFileDeletionAndAddition) {
|
|
|
520
502
|
|
|
521
503
|
constexpr bool marked_for_compaction = false;
|
|
522
504
|
|
|
523
|
-
addition.AddFile(
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
505
|
+
addition.AddFile(level, file_number, path_id, file_size,
|
|
506
|
+
GetInternalKey(smallest, smallest_seq),
|
|
507
|
+
GetInternalKey(largest, largest_seq), smallest_seqno,
|
|
508
|
+
largest_seqno, marked_for_compaction, Temperature::kUnknown,
|
|
509
|
+
kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
|
|
510
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
511
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
530
512
|
|
|
531
513
|
ASSERT_OK(builder.Apply(&addition));
|
|
532
514
|
|
|
@@ -574,8 +556,8 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyInBase) {
|
|
|
574
556
|
new_level, file_number, path_id, file_size, GetInternalKey(smallest),
|
|
575
557
|
GetInternalKey(largest), smallest_seqno, largest_seqno,
|
|
576
558
|
marked_for_compaction, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
577
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
578
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
559
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
560
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
579
561
|
|
|
580
562
|
const Status s = builder.Apply(&edit);
|
|
581
563
|
ASSERT_TRUE(s.IsCorruption());
|
|
@@ -606,12 +588,12 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
|
|
|
606
588
|
constexpr SequenceNumber largest_seqno = 1000;
|
|
607
589
|
constexpr bool marked_for_compaction = false;
|
|
608
590
|
|
|
609
|
-
edit.AddFile(
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
591
|
+
edit.AddFile(level, file_number, path_id, file_size, GetInternalKey(smallest),
|
|
592
|
+
GetInternalKey(largest), smallest_seqno, largest_seqno,
|
|
593
|
+
marked_for_compaction, Temperature::kUnknown,
|
|
594
|
+
kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
|
|
595
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
596
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
615
597
|
|
|
616
598
|
ASSERT_OK(builder.Apply(&edit));
|
|
617
599
|
|
|
@@ -623,8 +605,8 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAlreadyApplied) {
|
|
|
623
605
|
new_level, file_number, path_id, file_size, GetInternalKey(smallest),
|
|
624
606
|
GetInternalKey(largest), smallest_seqno, largest_seqno,
|
|
625
607
|
marked_for_compaction, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
626
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
627
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
608
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
609
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
628
610
|
|
|
629
611
|
const Status s = builder.Apply(&other_edit);
|
|
630
612
|
ASSERT_TRUE(s.IsCorruption());
|
|
@@ -659,8 +641,8 @@ TEST_F(VersionBuilderTest, ApplyFileAdditionAndDeletion) {
|
|
|
659
641
|
level, file_number, path_id, file_size, GetInternalKey(smallest),
|
|
660
642
|
GetInternalKey(largest), smallest_seqno, largest_seqno,
|
|
661
643
|
marked_for_compaction, Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
662
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
663
|
-
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
644
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
645
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
664
646
|
|
|
665
647
|
ASSERT_OK(builder.Apply(&addition));
|
|
666
648
|
|
|
@@ -709,8 +691,7 @@ TEST_F(VersionBuilderTest, ApplyBlobFileAddition) {
|
|
|
709
691
|
|
|
710
692
|
// Add dummy table file to ensure the blob file is referenced.
|
|
711
693
|
constexpr uint64_t table_file_number = 1;
|
|
712
|
-
AddDummyFileToEdit(&edit, table_file_number, blob_file_number
|
|
713
|
-
1 /*epoch_number*/);
|
|
694
|
+
AddDummyFileToEdit(&edit, table_file_number, blob_file_number);
|
|
714
695
|
|
|
715
696
|
ASSERT_OK(builder.Apply(&edit));
|
|
716
697
|
|
|
@@ -832,7 +813,7 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileInBase) {
|
|
|
832
813
|
ASSERT_NE(meta, nullptr);
|
|
833
814
|
|
|
834
815
|
// Add dummy table file to ensure the blob file is referenced.
|
|
835
|
-
AddDummyFile(table_file_number, blob_file_number
|
|
816
|
+
AddDummyFile(table_file_number, blob_file_number);
|
|
836
817
|
|
|
837
818
|
UpdateVersionStorageInfo();
|
|
838
819
|
|
|
@@ -911,8 +892,7 @@ TEST_F(VersionBuilderTest, ApplyBlobFileGarbageFileAdditionApplied) {
|
|
|
911
892
|
|
|
912
893
|
// Add dummy table file to ensure the blob file is referenced.
|
|
913
894
|
constexpr uint64_t table_file_number = 1;
|
|
914
|
-
AddDummyFileToEdit(&addition, table_file_number, blob_file_number
|
|
915
|
-
1 /*epoch_number*/);
|
|
895
|
+
AddDummyFileToEdit(&addition, table_file_number, blob_file_number);
|
|
916
896
|
|
|
917
897
|
ASSERT_OK(builder.Apply(&addition));
|
|
918
898
|
|
|
@@ -1009,8 +989,7 @@ TEST_F(VersionBuilderTest, BlobFileGarbageOverflow) {
|
|
|
1009
989
|
|
|
1010
990
|
// Add dummy table file to ensure the blob file is referenced.
|
|
1011
991
|
constexpr uint64_t table_file_number = 1;
|
|
1012
|
-
AddDummyFileToEdit(&addition, table_file_number, blob_file_number
|
|
1013
|
-
1 /*epoch_number*/);
|
|
992
|
+
AddDummyFileToEdit(&addition, table_file_number, blob_file_number);
|
|
1014
993
|
|
|
1015
994
|
ASSERT_OK(builder.Apply(&addition));
|
|
1016
995
|
|
|
@@ -1071,7 +1050,7 @@ TEST_F(VersionBuilderTest, SaveBlobFilesTo) {
|
|
|
1071
1050
|
const uint64_t table_file_number = 2 * i;
|
|
1072
1051
|
const uint64_t blob_file_number = 2 * i + 1;
|
|
1073
1052
|
|
|
1074
|
-
AddDummyFile(table_file_number, blob_file_number
|
|
1053
|
+
AddDummyFile(table_file_number, blob_file_number);
|
|
1075
1054
|
}
|
|
1076
1055
|
|
|
1077
1056
|
UpdateVersionStorageInfo();
|
|
@@ -1192,8 +1171,7 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
|
|
|
1192
1171
|
constexpr uint64_t garbage_blob_count = 0;
|
|
1193
1172
|
constexpr uint64_t garbage_blob_bytes = 0;
|
|
1194
1173
|
|
|
1195
|
-
AddDummyFile(base_table_file_number, base_blob_file_number
|
|
1196
|
-
1 /*epoch_number*/);
|
|
1174
|
+
AddDummyFile(base_table_file_number, base_blob_file_number);
|
|
1197
1175
|
AddBlob(base_blob_file_number, base_total_blob_count, base_total_blob_bytes,
|
|
1198
1176
|
checksum_method, checksum_value,
|
|
1199
1177
|
BlobFileMetaData::LinkedSsts{base_table_file_number},
|
|
@@ -1228,12 +1206,12 @@ TEST_F(VersionBuilderTest, SaveBlobFilesToConcurrentJobs) {
|
|
|
1228
1206
|
constexpr uint64_t total_blob_count = 234;
|
|
1229
1207
|
constexpr uint64_t total_blob_bytes = 1 << 22;
|
|
1230
1208
|
|
|
1231
|
-
edit.AddFile(
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1209
|
+
edit.AddFile(level, table_file_number, path_id, file_size,
|
|
1210
|
+
GetInternalKey(smallest), GetInternalKey(largest),
|
|
1211
|
+
smallest_seqno, largest_seqno, marked_for_compaction,
|
|
1212
|
+
Temperature::kUnknown, blob_file_number,
|
|
1213
|
+
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
1214
|
+
checksum_value, checksum_method, kNullUniqueId64x2);
|
|
1237
1215
|
edit.AddBlobFile(blob_file_number, total_blob_count, total_blob_bytes,
|
|
1238
1216
|
checksum_method, checksum_value);
|
|
1239
1217
|
|
|
@@ -1319,9 +1297,8 @@ TEST_F(VersionBuilderTest, CheckConsistencyForBlobFiles) {
|
|
|
1319
1297
|
/* largest_seqno */ 200, /* marked_for_compaction */ false,
|
|
1320
1298
|
Temperature::kUnknown,
|
|
1321
1299
|
/* oldest_blob_file_number */ 16, kUnknownOldestAncesterTime,
|
|
1322
|
-
kUnknownFileCreationTime,
|
|
1323
|
-
|
|
1324
|
-
kNullUniqueId64x2, 0);
|
|
1300
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
1301
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
1325
1302
|
|
|
1326
1303
|
edit.AddFile(/* level */ 1, /* file_number */ 700, /* path_id */ 0,
|
|
1327
1304
|
/* file_size */ 100, /* smallest */ GetInternalKey("801"),
|
|
@@ -1329,9 +1306,8 @@ TEST_F(VersionBuilderTest, CheckConsistencyForBlobFiles) {
|
|
|
1329
1306
|
/* largest_seqno */ 200, /* marked_for_compaction */ false,
|
|
1330
1307
|
Temperature::kUnknown,
|
|
1331
1308
|
/* oldest_blob_file_number */ 1000, kUnknownOldestAncesterTime,
|
|
1332
|
-
kUnknownFileCreationTime,
|
|
1333
|
-
|
|
1334
|
-
kNullUniqueId64x2, 0);
|
|
1309
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
1310
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
1335
1311
|
edit.AddBlobFile(/* blob_file_number */ 1000, /* total_blob_count */ 2000,
|
|
1336
1312
|
/* total_blob_bytes */ 200000,
|
|
1337
1313
|
/* checksum_method */ std::string(),
|
|
@@ -1551,8 +1527,8 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
|
|
|
1551
1527
|
/* largest_seqno */ 2100, /* marked_for_compaction */ false,
|
|
1552
1528
|
Temperature::kUnknown,
|
|
1553
1529
|
/* oldest_blob_file_number */ 1, kUnknownOldestAncesterTime,
|
|
1554
|
-
kUnknownFileCreationTime,
|
|
1555
|
-
kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
1530
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
1531
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
1556
1532
|
|
|
1557
1533
|
// Add an SST that does not reference any blob files.
|
|
1558
1534
|
edit.AddFile(
|
|
@@ -1561,8 +1537,8 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
|
|
|
1561
1537
|
/* largest */ GetInternalKey("22", 2200), /* smallest_seqno */ 2200,
|
|
1562
1538
|
/* largest_seqno */ 2200, /* marked_for_compaction */ false,
|
|
1563
1539
|
Temperature::kUnknown, kInvalidBlobFileNumber, kUnknownOldestAncesterTime,
|
|
1564
|
-
kUnknownFileCreationTime,
|
|
1565
|
-
kUnknownFileChecksumFuncName, kNullUniqueId64x2
|
|
1540
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
1541
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
1566
1542
|
|
|
1567
1543
|
// Delete a file that references a blob file.
|
|
1568
1544
|
edit.DeleteFile(/* level */ 1, /* file_number */ 6);
|
|
@@ -1583,9 +1559,8 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
|
|
|
1583
1559
|
/* largest_seqno */ 300, /* marked_for_compaction */ false,
|
|
1584
1560
|
Temperature::kUnknown,
|
|
1585
1561
|
/* oldest_blob_file_number */ 3, kUnknownOldestAncesterTime,
|
|
1586
|
-
kUnknownFileCreationTime,
|
|
1587
|
-
|
|
1588
|
-
kNullUniqueId64x2, 0);
|
|
1562
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
1563
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
1589
1564
|
|
|
1590
1565
|
// Trivially move a file that does not reference any blob files.
|
|
1591
1566
|
edit.DeleteFile(/* level */ 1, /* file_number */ 13);
|
|
@@ -1596,8 +1571,8 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
|
|
|
1596
1571
|
/* largest_seqno */ 1300, /* marked_for_compaction */ false,
|
|
1597
1572
|
Temperature::kUnknown, kInvalidBlobFileNumber,
|
|
1598
1573
|
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
1599
|
-
|
|
1600
|
-
|
|
1574
|
+
kUnknownFileChecksum, kUnknownFileChecksumFuncName,
|
|
1575
|
+
kNullUniqueId64x2);
|
|
1601
1576
|
|
|
1602
1577
|
// Add one more SST file that references a blob file, then promptly
|
|
1603
1578
|
// delete it in a second version edit before the new version gets saved.
|
|
@@ -1609,9 +1584,8 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
|
|
|
1609
1584
|
/* largest_seqno */ 2300, /* marked_for_compaction */ false,
|
|
1610
1585
|
Temperature::kUnknown,
|
|
1611
1586
|
/* oldest_blob_file_number */ 5, kUnknownOldestAncesterTime,
|
|
1612
|
-
kUnknownFileCreationTime,
|
|
1613
|
-
|
|
1614
|
-
kNullUniqueId64x2, 0);
|
|
1587
|
+
kUnknownFileCreationTime, kUnknownFileChecksum,
|
|
1588
|
+
kUnknownFileChecksumFuncName, kNullUniqueId64x2);
|
|
1615
1589
|
|
|
1616
1590
|
VersionEdit edit2;
|
|
1617
1591
|
|
|
@@ -1660,13 +1634,7 @@ TEST_F(VersionBuilderTest, MaintainLinkedSstsForBlobFiles) {
|
|
|
1660
1634
|
}
|
|
1661
1635
|
|
|
1662
1636
|
TEST_F(VersionBuilderTest, CheckConsistencyForFileDeletedTwice) {
|
|
1663
|
-
Add(0, 1U, "150", "200",
|
|
1664
|
-
/*smallest_seq*/ 100, /*largest_seq*/ 100,
|
|
1665
|
-
/*num_entries*/ 0, /*num_deletions*/ 0,
|
|
1666
|
-
/*sampled*/ false, /*smallest_seqno*/ 0,
|
|
1667
|
-
/*largest_seqno*/ 0,
|
|
1668
|
-
/*oldest_blob_file_number*/ kInvalidBlobFileNumber,
|
|
1669
|
-
/*epoch_number*/ 1);
|
|
1637
|
+
Add(0, 1U, "150", "200", 100U);
|
|
1670
1638
|
|
|
1671
1639
|
UpdateVersionStorageInfo();
|
|
1672
1640
|
|
|
@@ -1698,99 +1666,6 @@ TEST_F(VersionBuilderTest, CheckConsistencyForFileDeletedTwice) {
|
|
|
1698
1666
|
UnrefFilesInVersion(&new_vstorage2);
|
|
1699
1667
|
}
|
|
1700
1668
|
|
|
1701
|
-
TEST_F(VersionBuilderTest, CheckConsistencyForL0FilesSortedByEpochNumber) {
|
|
1702
|
-
Status s;
|
|
1703
|
-
// To verify files of same epoch number of overlapping ranges are caught as
|
|
1704
|
-
// corrupted
|
|
1705
|
-
VersionEdit version_edit_1;
|
|
1706
|
-
version_edit_1.AddFile(
|
|
1707
|
-
/* level */ 0, /* file_number */ 1U, /* path_id */ 0,
|
|
1708
|
-
/* file_size */ 100, /* smallest */ GetInternalKey("a", 1),
|
|
1709
|
-
/* largest */ GetInternalKey("c", 3), /* smallest_seqno */ 1,
|
|
1710
|
-
/* largest_seqno */ 3, /* marked_for_compaction */ false,
|
|
1711
|
-
Temperature::kUnknown,
|
|
1712
|
-
/* oldest_blob_file_number */ kInvalidBlobFileNumber,
|
|
1713
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
1714
|
-
1 /* epoch_number */, kUnknownFileChecksum, kUnknownFileChecksumFuncName,
|
|
1715
|
-
kNullUniqueId64x2, 0);
|
|
1716
|
-
version_edit_1.AddFile(
|
|
1717
|
-
/* level */ 0, /* file_number */ 2U, /* path_id */ 0,
|
|
1718
|
-
/* file_size */ 100, /* smallest */ GetInternalKey("b", 2),
|
|
1719
|
-
/* largest */ GetInternalKey("d", 4), /* smallest_seqno */ 2,
|
|
1720
|
-
/* largest_seqno */ 4, /* marked_for_compaction */ false,
|
|
1721
|
-
Temperature::kUnknown,
|
|
1722
|
-
/* oldest_blob_file_number */ kInvalidBlobFileNumber,
|
|
1723
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
1724
|
-
1 /* epoch_number */, kUnknownFileChecksum, kUnknownFileChecksumFuncName,
|
|
1725
|
-
kNullUniqueId64x2, 0);
|
|
1726
|
-
|
|
1727
|
-
VersionBuilder version_builder_1(EnvOptions(), &ioptions_,
|
|
1728
|
-
nullptr /* table_cache */, &vstorage_,
|
|
1729
|
-
nullptr /* file_metadata_cache_res_mgr */);
|
|
1730
|
-
VersionStorageInfo new_vstorage_1(
|
|
1731
|
-
&icmp_, ucmp_, options_.num_levels, kCompactionStyleLevel,
|
|
1732
|
-
nullptr /* src_vstorage */, true /* force_consistency_checks */);
|
|
1733
|
-
|
|
1734
|
-
ASSERT_OK(version_builder_1.Apply(&version_edit_1));
|
|
1735
|
-
s = version_builder_1.SaveTo(&new_vstorage_1);
|
|
1736
|
-
EXPECT_TRUE(s.IsCorruption());
|
|
1737
|
-
EXPECT_TRUE(std::strstr(
|
|
1738
|
-
s.getState(), "L0 files of same epoch number but overlapping range"));
|
|
1739
|
-
UnrefFilesInVersion(&new_vstorage_1);
|
|
1740
|
-
|
|
1741
|
-
// To verify L0 files not sorted by epoch_number are caught as corrupted
|
|
1742
|
-
VersionEdit version_edit_2;
|
|
1743
|
-
version_edit_2.AddFile(
|
|
1744
|
-
/* level */ 0, /* file_number */ 1U, /* path_id */ 0,
|
|
1745
|
-
/* file_size */ 100, /* smallest */ GetInternalKey("a", 1),
|
|
1746
|
-
/* largest */ GetInternalKey("a", 1), /* smallest_seqno */ 1,
|
|
1747
|
-
/* largest_seqno */ 1, /* marked_for_compaction */ false,
|
|
1748
|
-
Temperature::kUnknown,
|
|
1749
|
-
/* oldest_blob_file_number */ kInvalidBlobFileNumber,
|
|
1750
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
1751
|
-
1 /* epoch_number */, kUnknownFileChecksum, kUnknownFileChecksumFuncName,
|
|
1752
|
-
kNullUniqueId64x2, 0);
|
|
1753
|
-
version_edit_2.AddFile(
|
|
1754
|
-
/* level */ 0, /* file_number */ 2U, /* path_id */ 0,
|
|
1755
|
-
/* file_size */ 100, /* smallest */ GetInternalKey("b", 2),
|
|
1756
|
-
/* largest */ GetInternalKey("b", 2), /* smallest_seqno */ 2,
|
|
1757
|
-
/* largest_seqno */ 2, /* marked_for_compaction */ false,
|
|
1758
|
-
Temperature::kUnknown,
|
|
1759
|
-
/* oldest_blob_file_number */ kInvalidBlobFileNumber,
|
|
1760
|
-
kUnknownOldestAncesterTime, kUnknownFileCreationTime,
|
|
1761
|
-
2 /* epoch_number */, kUnknownFileChecksum, kUnknownFileChecksumFuncName,
|
|
1762
|
-
kNullUniqueId64x2, 0);
|
|
1763
|
-
|
|
1764
|
-
VersionBuilder version_builder_2(EnvOptions(), &ioptions_,
|
|
1765
|
-
nullptr /* table_cache */, &vstorage_,
|
|
1766
|
-
nullptr /* file_metadata_cache_res_mgr */);
|
|
1767
|
-
VersionStorageInfo new_vstorage_2(
|
|
1768
|
-
&icmp_, ucmp_, options_.num_levels, kCompactionStyleLevel,
|
|
1769
|
-
nullptr /* src_vstorage */, true /* force_consistency_checks */);
|
|
1770
|
-
|
|
1771
|
-
ASSERT_OK(version_builder_2.Apply(&version_edit_2));
|
|
1772
|
-
s = version_builder_2.SaveTo(&new_vstorage_2);
|
|
1773
|
-
ASSERT_TRUE(s.ok());
|
|
1774
|
-
|
|
1775
|
-
const std::vector<FileMetaData*>& l0_files = new_vstorage_2.LevelFiles(0);
|
|
1776
|
-
ASSERT_EQ(l0_files.size(), 2);
|
|
1777
|
-
// Manually corrupt L0 files's epoch_number
|
|
1778
|
-
l0_files[0]->epoch_number = 1;
|
|
1779
|
-
l0_files[1]->epoch_number = 2;
|
|
1780
|
-
|
|
1781
|
-
// To surface corruption error by applying dummy version edit
|
|
1782
|
-
VersionEdit dummy_version_edit;
|
|
1783
|
-
VersionBuilder dummy_version_builder(
|
|
1784
|
-
EnvOptions(), &ioptions_, nullptr /* table_cache */, &vstorage_,
|
|
1785
|
-
nullptr /* file_metadata_cache_res_mgr */);
|
|
1786
|
-
ASSERT_OK(dummy_version_builder.Apply(&dummy_version_edit));
|
|
1787
|
-
s = dummy_version_builder.SaveTo(&new_vstorage_2);
|
|
1788
|
-
EXPECT_TRUE(s.IsCorruption());
|
|
1789
|
-
EXPECT_TRUE(std::strstr(s.getState(), "L0 files are not sorted properly"));
|
|
1790
|
-
|
|
1791
|
-
UnrefFilesInVersion(&new_vstorage_2);
|
|
1792
|
-
}
|
|
1793
|
-
|
|
1794
1669
|
TEST_F(VersionBuilderTest, EstimatedActiveKeys) {
|
|
1795
1670
|
const uint32_t kTotalSamples = 20;
|
|
1796
1671
|
const uint32_t kNumLevels = 5;
|
|
@@ -135,8 +135,7 @@ bool VersionEdit::EncodeTo(std::string* dst) const {
|
|
|
135
135
|
bool min_log_num_written = false;
|
|
136
136
|
for (size_t i = 0; i < new_files_.size(); i++) {
|
|
137
137
|
const FileMetaData& f = new_files_[i].second;
|
|
138
|
-
if (!f.smallest.Valid() || !f.largest.Valid()
|
|
139
|
-
f.epoch_number == kUnknownEpochNumber) {
|
|
138
|
+
if (!f.smallest.Valid() || !f.largest.Valid()) {
|
|
140
139
|
return false;
|
|
141
140
|
}
|
|
142
141
|
PutVarint32(dst, kNewFile4);
|
|
@@ -185,11 +184,6 @@ bool VersionEdit::EncodeTo(std::string* dst) const {
|
|
|
185
184
|
&varint_file_creation_time);
|
|
186
185
|
PutLengthPrefixedSlice(dst, Slice(varint_file_creation_time));
|
|
187
186
|
|
|
188
|
-
PutVarint32(dst, NewFileCustomTag::kEpochNumber);
|
|
189
|
-
std::string varint_epoch_number;
|
|
190
|
-
PutVarint64(&varint_epoch_number, f.epoch_number);
|
|
191
|
-
PutLengthPrefixedSlice(dst, Slice(varint_epoch_number));
|
|
192
|
-
|
|
193
187
|
PutVarint32(dst, NewFileCustomTag::kFileChecksum);
|
|
194
188
|
PutLengthPrefixedSlice(dst, Slice(f.file_checksum));
|
|
195
189
|
|
|
@@ -231,13 +225,6 @@ bool VersionEdit::EncodeTo(std::string* dst) const {
|
|
|
231
225
|
std::string unique_id_str = EncodeUniqueIdBytes(&unique_id);
|
|
232
226
|
PutLengthPrefixedSlice(dst, Slice(unique_id_str));
|
|
233
227
|
}
|
|
234
|
-
if (f.compensated_range_deletion_size) {
|
|
235
|
-
PutVarint32(dst, kCompensatedRangeDeletionSize);
|
|
236
|
-
std::string compensated_range_deletion_size;
|
|
237
|
-
PutVarint64(&compensated_range_deletion_size,
|
|
238
|
-
f.compensated_range_deletion_size);
|
|
239
|
-
PutLengthPrefixedSlice(dst, Slice(compensated_range_deletion_size));
|
|
240
|
-
}
|
|
241
228
|
|
|
242
229
|
TEST_SYNC_POINT_CALLBACK("VersionEdit::EncodeTo:NewFile4:CustomizeFields",
|
|
243
230
|
dst);
|
|
@@ -365,11 +352,6 @@ const char* VersionEdit::DecodeNewFile4From(Slice* input) {
|
|
|
365
352
|
return "invalid file creation time";
|
|
366
353
|
}
|
|
367
354
|
break;
|
|
368
|
-
case kEpochNumber:
|
|
369
|
-
if (!GetVarint64(&field, &f.epoch_number)) {
|
|
370
|
-
return "invalid epoch number";
|
|
371
|
-
}
|
|
372
|
-
break;
|
|
373
355
|
case kFileChecksum:
|
|
374
356
|
f.file_checksum = field.ToString();
|
|
375
357
|
break;
|
|
@@ -411,11 +393,6 @@ const char* VersionEdit::DecodeNewFile4From(Slice* input) {
|
|
|
411
393
|
return "invalid unique id";
|
|
412
394
|
}
|
|
413
395
|
break;
|
|
414
|
-
case kCompensatedRangeDeletionSize:
|
|
415
|
-
if (!GetVarint64(&field, &f.compensated_range_deletion_size)) {
|
|
416
|
-
return "Invalid compensated range deletion size";
|
|
417
|
-
}
|
|
418
|
-
break;
|
|
419
396
|
default:
|
|
420
397
|
if ((custom_tag & kCustomTagNonSafeIgnoreMask) != 0) {
|
|
421
398
|
// Should not proceed if cannot understand it
|
|
@@ -831,8 +808,6 @@ std::string VersionEdit::DebugString(bool hex_key) const {
|
|
|
831
808
|
AppendNumberTo(&r, f.oldest_ancester_time);
|
|
832
809
|
r.append(" file_creation_time:");
|
|
833
810
|
AppendNumberTo(&r, f.file_creation_time);
|
|
834
|
-
r.append(" epoch_number:");
|
|
835
|
-
AppendNumberTo(&r, f.epoch_number);
|
|
836
811
|
r.append(" file_checksum:");
|
|
837
812
|
r.append(Slice(f.file_checksum).ToString(true));
|
|
838
813
|
r.append(" file_checksum_func_name: ");
|
|
@@ -952,7 +927,6 @@ std::string VersionEdit::DebugJSON(int edit_num, bool hex_key) const {
|
|
|
952
927
|
jw << "LargestIKey" << f.largest.DebugString(hex_key);
|
|
953
928
|
jw << "OldestAncesterTime" << f.oldest_ancester_time;
|
|
954
929
|
jw << "FileCreationTime" << f.file_creation_time;
|
|
955
|
-
jw << "EpochNumber" << f.epoch_number;
|
|
956
930
|
jw << "FileChecksum" << Slice(f.file_checksum).ToString(true);
|
|
957
931
|
jw << "FileChecksumFuncName" << f.file_checksum_func_name;
|
|
958
932
|
if (f.temperature != Temperature::kUnknown) {
|