@nxtedition/rocksdb 13.1.5 → 13.3.0
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/binding.cc +62 -15
- package/deps/rocksdb/rocksdb/{TARGETS → BUCK} +27 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +3 -1
- package/deps/rocksdb/rocksdb/Makefile +2 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +3 -1
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +2 -0
- package/deps/rocksdb/rocksdb/db/attribute_group_iterator_impl.h +34 -9
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +7 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +22 -14
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +149 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +13 -24
- package/deps/rocksdb/rocksdb/db/coalescing_iterator.h +35 -10
- package/deps/rocksdb/rocksdb/db/column_family.cc +21 -10
- package/deps/rocksdb/rocksdb/db/column_family.h +15 -8
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +98 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +126 -16
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +51 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +2 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +24 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +52 -22
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +9 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +36 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +6 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +30 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +26 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +43 -33
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +6 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +19 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +6 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +632 -411
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +171 -51
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +7 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +37 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +51 -11
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +10 -3
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +350 -154
- package/deps/rocksdb/rocksdb/db/convenience.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +62 -27
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +68 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +91 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +134 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +71 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +43 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +47 -33
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +27 -19
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +38 -25
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +3 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +7 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +258 -42
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +161 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +118 -86
- package/deps/rocksdb/rocksdb/db/db_iter.h +44 -17
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +27 -6
- package/deps/rocksdb/rocksdb/db/db_test.cc +48 -16
- package/deps/rocksdb/rocksdb/db/db_test2.cc +60 -15
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +97 -44
- package/deps/rocksdb/rocksdb/db/db_test_util.h +7 -1
- package/deps/rocksdb/rocksdb/db/dbformat.cc +15 -5
- package/deps/rocksdb/rocksdb/db/dbformat.h +137 -55
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +1 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +54 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +663 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +152 -91
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +134 -11
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +55 -9
- package/deps/rocksdb/rocksdb/db/flush_job.cc +52 -29
- package/deps/rocksdb/rocksdb/db/flush_job.h +5 -3
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +18 -12
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +23 -29
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +3 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +9 -6
- package/deps/rocksdb/rocksdb/db/internal_stats.h +54 -0
- package/deps/rocksdb/rocksdb/db/job_context.h +1 -1
- package/deps/rocksdb/rocksdb/db/log_reader.cc +6 -7
- package/deps/rocksdb/rocksdb/db/manifest_ops.cc +47 -0
- package/deps/rocksdb/rocksdb/db/manifest_ops.h +20 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +165 -64
- package/deps/rocksdb/rocksdb/db/memtable.h +422 -243
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +99 -68
- package/deps/rocksdb/rocksdb/db/memtable_list.h +63 -38
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +28 -25
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_impl.h +118 -60
- package/deps/rocksdb/rocksdb/db/multi_cf_iterator_test.cc +344 -89
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +2 -3
- package/deps/rocksdb/rocksdb/db/repair.cc +15 -14
- package/deps/rocksdb/rocksdb/db/repair_test.cc +0 -13
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +7 -0
- package/deps/rocksdb/rocksdb/db/table_cache.cc +62 -65
- package/deps/rocksdb/rocksdb/db/table_cache.h +70 -76
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +5 -6
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +8 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +17 -19
- package/deps/rocksdb/rocksdb/db/version_builder.h +13 -12
- package/deps/rocksdb/rocksdb/db/version_edit.h +30 -0
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +3 -5
- package/deps/rocksdb/rocksdb/db/version_set.cc +89 -129
- package/deps/rocksdb/rocksdb/db/version_set.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -2
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +12 -8
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +0 -15
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -2
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +9 -7
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +0 -8
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +28 -2
- package/deps/rocksdb/rocksdb/db/write_batch.cc +32 -10
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +9 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/write_thread.cc +3 -1
- package/deps/rocksdb/rocksdb/db/write_thread.h +6 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +15 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +7 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +18 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +100 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +34 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +223 -78
- package/deps/rocksdb/rocksdb/env/file_system.cc +6 -1
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +53 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +63 -17
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +132 -48
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +92 -24
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +727 -109
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +3 -4
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/attribute_groups.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +9 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +10 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +34 -37
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator_base.h +21 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +56 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +36 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +84 -60
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/secondary_index.h +102 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +89 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +32 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +30 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +23 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +2 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +79 -21
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +41 -18
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +1 -5
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.cc +169 -0
- package/deps/rocksdb/rocksdb/memtable/wbwi_memtable.h +400 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +137 -82
- package/deps/rocksdb/rocksdb/options/cf_options.h +18 -6
- package/deps/rocksdb/rocksdb/options/configurable.cc +31 -17
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +7 -6
- package/deps/rocksdb/rocksdb/options/options_helper.cc +10 -8
- package/deps/rocksdb/rocksdb/options/options_parser.cc +74 -54
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +89 -0
- package/deps/rocksdb/rocksdb/options/options_test.cc +112 -26
- package/deps/rocksdb/rocksdb/port/port.h +5 -9
- package/deps/rocksdb/rocksdb/src.mk +8 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_based/block.h +1 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +62 -80
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +13 -3
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +16 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +38 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +12 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +204 -1
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +4 -0
- package/deps/rocksdb/rocksdb/table/format.cc +3 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +4 -1
- package/deps/rocksdb/rocksdb/table/mock_table.cc +0 -50
- package/deps/rocksdb/rocksdb/table/mock_table.h +53 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +4 -0
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +1 -1
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +10 -5
- package/deps/rocksdb/rocksdb/table/table_builder.h +3 -1
- package/deps/rocksdb/rocksdb/table/table_properties.cc +181 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/table/table_test.cc +71 -64
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +45 -45
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +35 -35
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +43 -43
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +41 -4
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +1 -1
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +13 -0
- package/deps/rocksdb/rocksdb/util/aligned_buffer.h +24 -5
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +7 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +0 -52
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +1 -10
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +92 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +1 -0
- package/deps/rocksdb/rocksdb/util/udt_util.cc +50 -4
- package/deps/rocksdb/rocksdb/util/udt_util.h +24 -11
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +26 -13
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +1 -16
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.cc +214 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index.h +60 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/faiss_ivf_index_test.cc +124 -0
- package/deps/rocksdb/rocksdb/utilities/secondary_index/secondary_index_mixin.h +441 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +34 -3
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +7 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +437 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +34 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +14 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +7 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +17 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +20 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +1290 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +324 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +18 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +8 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +57 -12
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +32 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +33 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +721 -9
- package/deps/rocksdb/rocksdb.gyp +2 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
|
@@ -395,10 +395,10 @@ Status SstFileWriter::Open(const std::string& file_path, Temperature temp) {
|
|
|
395
395
|
r->ioptions, r->mutable_cf_options, ReadOptions(), r->write_options,
|
|
396
396
|
r->internal_comparator, &internal_tbl_prop_coll_factories,
|
|
397
397
|
compression_type, compression_opts, cf_id, r->column_family_name,
|
|
398
|
-
unknown_level, false /* is_bottommost */,
|
|
399
|
-
0 /* oldest_key_time */,
|
|
400
|
-
"SST Writer" /* db_id */, r->db_session_id,
|
|
401
|
-
r->next_file_number);
|
|
398
|
+
unknown_level, kUnknownNewestKeyTime, false /* is_bottommost */,
|
|
399
|
+
TableFileCreationReason::kMisc, 0 /* oldest_key_time */,
|
|
400
|
+
0 /* file_creation_time */, "SST Writer" /* db_id */, r->db_session_id,
|
|
401
|
+
0 /* target_file_size */, r->next_file_number);
|
|
402
402
|
// External SST files used to each get a unique session id. Now for
|
|
403
403
|
// slightly better uniqueness probability in constructing cache keys, we
|
|
404
404
|
// assign fake file numbers to each file (into table properties) and keep
|
|
@@ -416,7 +416,7 @@ Status SstFileWriter::Open(const std::string& file_path, Temperature temp) {
|
|
|
416
416
|
|
|
417
417
|
// TODO(tec) : If table_factory is using compressed block cache, we will
|
|
418
418
|
// be adding the external sst file blocks into it, which is wasteful.
|
|
419
|
-
r->builder.reset(r->
|
|
419
|
+
r->builder.reset(r->mutable_cf_options.table_factory->NewTableBuilder(
|
|
420
420
|
table_builder_options, r->file_writer.get()));
|
|
421
421
|
|
|
422
422
|
r->file_info = ExternalSstFileInfo();
|
|
@@ -533,4 +533,9 @@ Status SstFileWriter::Finish(ExternalSstFileInfo* file_info) {
|
|
|
533
533
|
|
|
534
534
|
uint64_t SstFileWriter::FileSize() { return rep_->file_info.file_size; }
|
|
535
535
|
|
|
536
|
+
bool SstFileWriter::CreatedBySstFileWriter(const TableProperties& tp) {
|
|
537
|
+
const auto& uprops = tp.user_collected_properties;
|
|
538
|
+
return uprops.find(ExternalSstFilePropertyNames::kVersion) != uprops.end();
|
|
539
|
+
}
|
|
540
|
+
|
|
536
541
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -108,7 +108,7 @@ struct TableBuilderOptions : public TablePropertiesCollectorFactory::Context {
|
|
|
108
108
|
CompressionType _compression_type,
|
|
109
109
|
const CompressionOptions& _compression_opts, uint32_t _column_family_id,
|
|
110
110
|
const std::string& _column_family_name, int _level,
|
|
111
|
-
bool _is_bottommost = false,
|
|
111
|
+
const int64_t _newest_key_time, bool _is_bottommost = false,
|
|
112
112
|
TableFileCreationReason _reason = TableFileCreationReason::kMisc,
|
|
113
113
|
const int64_t _oldest_key_time = 0,
|
|
114
114
|
const uint64_t _file_creation_time = 0, const std::string& _db_id = "",
|
|
@@ -129,6 +129,7 @@ struct TableBuilderOptions : public TablePropertiesCollectorFactory::Context {
|
|
|
129
129
|
compression_opts(_compression_opts),
|
|
130
130
|
column_family_name(_column_family_name),
|
|
131
131
|
oldest_key_time(_oldest_key_time),
|
|
132
|
+
newest_key_time(_newest_key_time),
|
|
132
133
|
target_file_size(_target_file_size),
|
|
133
134
|
file_creation_time(_file_creation_time),
|
|
134
135
|
db_id(_db_id),
|
|
@@ -147,6 +148,7 @@ struct TableBuilderOptions : public TablePropertiesCollectorFactory::Context {
|
|
|
147
148
|
const CompressionOptions& compression_opts;
|
|
148
149
|
const std::string& column_family_name;
|
|
149
150
|
const int64_t oldest_key_time;
|
|
151
|
+
const int64_t newest_key_time;
|
|
150
152
|
const uint64_t target_file_size;
|
|
151
153
|
const uint64_t file_creation_time;
|
|
152
154
|
const std::string db_id;
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#include "port/port.h"
|
|
11
11
|
#include "rocksdb/env.h"
|
|
12
12
|
#include "rocksdb/unique_id.h"
|
|
13
|
+
#include "rocksdb/utilities/options_type.h"
|
|
13
14
|
#include "table/table_properties_internal.h"
|
|
14
15
|
#include "table/unique_id_impl.h"
|
|
15
16
|
#include "util/random.h"
|
|
@@ -140,6 +141,8 @@ std::string TableProperties::ToString(const std::string& prop_delim,
|
|
|
140
141
|
|
|
141
142
|
AppendProperty(result, "time stamp of earliest key", oldest_key_time,
|
|
142
143
|
prop_delim, kv_delim);
|
|
144
|
+
AppendProperty(result, "time stamp of newest key", newest_key_time,
|
|
145
|
+
prop_delim, kv_delim);
|
|
143
146
|
|
|
144
147
|
AppendProperty(result, "file creation time", file_creation_time, prop_delim,
|
|
145
148
|
kv_delim);
|
|
@@ -301,6 +304,8 @@ const std::string TablePropertiesNames::kCompressionOptions =
|
|
|
301
304
|
const std::string TablePropertiesNames::kCreationTime = "rocksdb.creation.time";
|
|
302
305
|
const std::string TablePropertiesNames::kOldestKeyTime =
|
|
303
306
|
"rocksdb.oldest.key.time";
|
|
307
|
+
const std::string TablePropertiesNames::kNewestKeyTime =
|
|
308
|
+
"rocksdb.newest.key.time";
|
|
304
309
|
const std::string TablePropertiesNames::kFileCreationTime =
|
|
305
310
|
"rocksdb.file.creation.time";
|
|
306
311
|
const std::string TablePropertiesNames::kSlowCompressionEstimatedDataSize =
|
|
@@ -316,6 +321,182 @@ const std::string TablePropertiesNames::kUserDefinedTimestampsPersisted =
|
|
|
316
321
|
const std::string TablePropertiesNames::kKeyLargestSeqno =
|
|
317
322
|
"rocksdb.key.largest.seqno";
|
|
318
323
|
|
|
324
|
+
static std::unordered_map<std::string, OptionTypeInfo>
|
|
325
|
+
table_properties_type_info = {
|
|
326
|
+
{"orig_file_number",
|
|
327
|
+
{offsetof(struct TableProperties, orig_file_number),
|
|
328
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
329
|
+
OptionTypeFlags::kNone}},
|
|
330
|
+
{"data_size",
|
|
331
|
+
{offsetof(struct TableProperties, data_size), OptionType::kUInt64T,
|
|
332
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
333
|
+
{"index_size",
|
|
334
|
+
{offsetof(struct TableProperties, index_size), OptionType::kUInt64T,
|
|
335
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
336
|
+
{"index_partitions",
|
|
337
|
+
{offsetof(struct TableProperties, index_partitions),
|
|
338
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
339
|
+
OptionTypeFlags::kNone}},
|
|
340
|
+
{"top_level_index_size",
|
|
341
|
+
{offsetof(struct TableProperties, top_level_index_size),
|
|
342
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
343
|
+
OptionTypeFlags::kNone}},
|
|
344
|
+
{"index_key_is_user_key",
|
|
345
|
+
{offsetof(struct TableProperties, index_key_is_user_key),
|
|
346
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
347
|
+
OptionTypeFlags::kNone}},
|
|
348
|
+
{"index_value_is_delta_encoded",
|
|
349
|
+
{offsetof(struct TableProperties, index_value_is_delta_encoded),
|
|
350
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
351
|
+
OptionTypeFlags::kNone}},
|
|
352
|
+
{"filter_size",
|
|
353
|
+
{offsetof(struct TableProperties, filter_size), OptionType::kUInt64T,
|
|
354
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
355
|
+
{"raw_key_size",
|
|
356
|
+
{offsetof(struct TableProperties, raw_key_size), OptionType::kUInt64T,
|
|
357
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
358
|
+
{"raw_value_size",
|
|
359
|
+
{offsetof(struct TableProperties, raw_value_size),
|
|
360
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
361
|
+
OptionTypeFlags::kNone}},
|
|
362
|
+
{"num_data_blocks",
|
|
363
|
+
{offsetof(struct TableProperties, num_data_blocks),
|
|
364
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
365
|
+
OptionTypeFlags::kNone}},
|
|
366
|
+
{"num_entries",
|
|
367
|
+
{offsetof(struct TableProperties, num_entries), OptionType::kUInt64T,
|
|
368
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
369
|
+
{"num_filter_entries",
|
|
370
|
+
{offsetof(struct TableProperties, num_filter_entries),
|
|
371
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
372
|
+
OptionTypeFlags::kNone}},
|
|
373
|
+
{"num_deletions",
|
|
374
|
+
{offsetof(struct TableProperties, num_deletions), OptionType::kUInt64T,
|
|
375
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
376
|
+
{"num_merge_operands",
|
|
377
|
+
{offsetof(struct TableProperties, num_merge_operands),
|
|
378
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
379
|
+
OptionTypeFlags::kNone}},
|
|
380
|
+
{"num_range_deletions",
|
|
381
|
+
{offsetof(struct TableProperties, num_range_deletions),
|
|
382
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
383
|
+
OptionTypeFlags::kNone}},
|
|
384
|
+
{"format_version",
|
|
385
|
+
{offsetof(struct TableProperties, format_version),
|
|
386
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
387
|
+
OptionTypeFlags::kNone}},
|
|
388
|
+
{"fixed_key_len",
|
|
389
|
+
{offsetof(struct TableProperties, fixed_key_len), OptionType::kUInt64T,
|
|
390
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
391
|
+
{"column_family_id",
|
|
392
|
+
{offsetof(struct TableProperties, column_family_id),
|
|
393
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
394
|
+
OptionTypeFlags::kNone}},
|
|
395
|
+
{"creation_time",
|
|
396
|
+
{offsetof(struct TableProperties, creation_time), OptionType::kUInt64T,
|
|
397
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone}},
|
|
398
|
+
{"oldest_key_time",
|
|
399
|
+
{offsetof(struct TableProperties, oldest_key_time),
|
|
400
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
401
|
+
OptionTypeFlags::kNone}},
|
|
402
|
+
{"newest_key_time",
|
|
403
|
+
{offsetof(struct TableProperties, newest_key_time),
|
|
404
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
405
|
+
OptionTypeFlags::kNone}},
|
|
406
|
+
{"file_creation_time",
|
|
407
|
+
{offsetof(struct TableProperties, file_creation_time),
|
|
408
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
409
|
+
OptionTypeFlags::kNone}},
|
|
410
|
+
{"slow_compression_estimated_data_size",
|
|
411
|
+
{offsetof(struct TableProperties,
|
|
412
|
+
slow_compression_estimated_data_size),
|
|
413
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
414
|
+
OptionTypeFlags::kNone}},
|
|
415
|
+
{"fast_compression_estimated_data_size",
|
|
416
|
+
{offsetof(struct TableProperties,
|
|
417
|
+
fast_compression_estimated_data_size),
|
|
418
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
419
|
+
OptionTypeFlags::kNone}},
|
|
420
|
+
{"external_sst_file_global_seqno_offset",
|
|
421
|
+
{offsetof(struct TableProperties,
|
|
422
|
+
external_sst_file_global_seqno_offset),
|
|
423
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
424
|
+
OptionTypeFlags::kNone}},
|
|
425
|
+
{"tail_start_offset",
|
|
426
|
+
{offsetof(struct TableProperties, tail_start_offset),
|
|
427
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
428
|
+
OptionTypeFlags::kNone}},
|
|
429
|
+
{"user_defined_timestamps_persisted",
|
|
430
|
+
{offsetof(struct TableProperties, user_defined_timestamps_persisted),
|
|
431
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
432
|
+
OptionTypeFlags::kNone}},
|
|
433
|
+
{"key_largest_seqno",
|
|
434
|
+
{offsetof(struct TableProperties, key_largest_seqno),
|
|
435
|
+
OptionType::kUInt64T, OptionVerificationType::kNormal,
|
|
436
|
+
OptionTypeFlags::kNone}},
|
|
437
|
+
{"db_id",
|
|
438
|
+
{offsetof(struct TableProperties, db_id), OptionType::kEncodedString}},
|
|
439
|
+
{"db_session_id",
|
|
440
|
+
{offsetof(struct TableProperties, db_session_id),
|
|
441
|
+
OptionType::kEncodedString}},
|
|
442
|
+
{"db_host_id",
|
|
443
|
+
{offsetof(struct TableProperties, db_host_id),
|
|
444
|
+
OptionType::kEncodedString}},
|
|
445
|
+
{"column_family_name",
|
|
446
|
+
{offsetof(struct TableProperties, column_family_name),
|
|
447
|
+
OptionType::kEncodedString}},
|
|
448
|
+
{"filter_policy_name",
|
|
449
|
+
{offsetof(struct TableProperties, filter_policy_name),
|
|
450
|
+
OptionType::kEncodedString}},
|
|
451
|
+
{"comparator_name",
|
|
452
|
+
{offsetof(struct TableProperties, comparator_name),
|
|
453
|
+
OptionType::kEncodedString}},
|
|
454
|
+
{"merge_operator_name",
|
|
455
|
+
{offsetof(struct TableProperties, merge_operator_name),
|
|
456
|
+
OptionType::kEncodedString}},
|
|
457
|
+
{"prefix_extractor_name",
|
|
458
|
+
{offsetof(struct TableProperties, prefix_extractor_name),
|
|
459
|
+
OptionType::kEncodedString}},
|
|
460
|
+
{"property_collectors_names",
|
|
461
|
+
{offsetof(struct TableProperties, property_collectors_names),
|
|
462
|
+
OptionType::kEncodedString}},
|
|
463
|
+
{"compression_name",
|
|
464
|
+
{offsetof(struct TableProperties, compression_name),
|
|
465
|
+
OptionType::kEncodedString}},
|
|
466
|
+
{"compression_options",
|
|
467
|
+
{offsetof(struct TableProperties, compression_options),
|
|
468
|
+
OptionType::kEncodedString}},
|
|
469
|
+
{"seqno_to_time_mapping",
|
|
470
|
+
{offsetof(struct TableProperties, seqno_to_time_mapping),
|
|
471
|
+
OptionType::kEncodedString}},
|
|
472
|
+
{"user_collected_properties",
|
|
473
|
+
OptionTypeInfo::StringMap(
|
|
474
|
+
offsetof(struct TableProperties, user_collected_properties),
|
|
475
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone)},
|
|
476
|
+
{"readable_properties",
|
|
477
|
+
OptionTypeInfo::StringMap(
|
|
478
|
+
offsetof(struct TableProperties, readable_properties),
|
|
479
|
+
OptionVerificationType::kNormal, OptionTypeFlags::kNone)},
|
|
480
|
+
};
|
|
481
|
+
|
|
482
|
+
Status TableProperties::Serialize(const ConfigOptions& opts,
|
|
483
|
+
std::string* output) const {
|
|
484
|
+
return OptionTypeInfo::SerializeType(opts, table_properties_type_info, this,
|
|
485
|
+
output);
|
|
486
|
+
}
|
|
487
|
+
Status TableProperties::Parse(const ConfigOptions& opts,
|
|
488
|
+
const std::string& serialized,
|
|
489
|
+
TableProperties* table_properties) {
|
|
490
|
+
return OptionTypeInfo::ParseType(opts, serialized, table_properties_type_info,
|
|
491
|
+
table_properties);
|
|
492
|
+
}
|
|
493
|
+
bool TableProperties::AreEqual(const ConfigOptions& opts,
|
|
494
|
+
const TableProperties* other_table_properties,
|
|
495
|
+
std::string* mismatch) const {
|
|
496
|
+
return OptionTypeInfo::TypesAreEqual(opts, table_properties_type_info, this,
|
|
497
|
+
other_table_properties, mismatch);
|
|
498
|
+
}
|
|
499
|
+
|
|
319
500
|
#ifndef NDEBUG
|
|
320
501
|
// WARNING: TEST_SetRandomTableProperties assumes the following layout of
|
|
321
502
|
// TableProperties
|
|
@@ -100,11 +100,11 @@ void TableReaderBenchmark(Options& opts, EnvOptions& env_options,
|
|
|
100
100
|
int unknown_level = -1;
|
|
101
101
|
const WriteOptions write_options;
|
|
102
102
|
tb = opts.table_factory->NewTableBuilder(
|
|
103
|
-
TableBuilderOptions(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
103
|
+
TableBuilderOptions(
|
|
104
|
+
ioptions, moptions, read_options, write_options, ikc,
|
|
105
|
+
&internal_tbl_prop_coll_factories, CompressionType::kNoCompression,
|
|
106
|
+
CompressionOptions(), 0 /* column_family_id */,
|
|
107
|
+
kDefaultColumnFamilyName, unknown_level, kUnknownNewestKeyTime),
|
|
108
108
|
file_writer.get());
|
|
109
109
|
} else {
|
|
110
110
|
s = DB::Open(opts, dbname, &db);
|