rocksdb-native 2.2.0 → 2.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.c +92 -10
- package/index.js +9 -0
- package/lib/batch.js +11 -1
- package/lib/iterator.js +3 -1
- package/lib/snapshot.js +21 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
- package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-x64/rocksdb-native.node +0 -0
- package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-x64/rocksdb-native.node +0 -0
- package/vendor/librocksdb/include/rocksdb.h +38 -4
- package/vendor/librocksdb/src/rocksdb.cc +114 -14
- package/vendor/librocksdb/vendor/rocksdb/CMakeLists.txt +21 -4
- package/vendor/librocksdb/vendor/rocksdb/cache/secondary_cache_adapter.cc +6 -3
- package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.cc +4 -4
- package/vendor/librocksdb/vendor/rocksdb/db/arena_wrapped_db_iter.h +4 -2
- package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.cc +20 -0
- package/vendor/librocksdb/vendor/rocksdb/db/attribute_group_iterator_impl.h +83 -0
- package/vendor/librocksdb/vendor/rocksdb/db/builder.cc +9 -5
- package/vendor/librocksdb/vendor/rocksdb/db/builder.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/db/c.cc +231 -6
- package/vendor/librocksdb/vendor/rocksdb/db/c_test.c +202 -2
- package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.cc +47 -0
- package/vendor/librocksdb/vendor/rocksdb/db/coalescing_iterator.h +79 -0
- package/vendor/librocksdb/vendor/rocksdb/db/column_family.cc +28 -0
- package/vendor/librocksdb/vendor/rocksdb/db/column_family.h +17 -0
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.cc +8 -1
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction.h +11 -9
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.cc +50 -23
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_iterator.h +13 -0
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.cc +22 -25
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_job.h +2 -0
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.cc +8 -1
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_outputs.h +1 -0
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.cc +40 -17
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker.h +20 -14
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_level.cc +11 -6
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +77 -24
- package/vendor/librocksdb/vendor/rocksdb/db/compaction/compaction_service_job.cc +2 -0
- package/vendor/librocksdb/vendor/rocksdb/db/convenience.cc +3 -0
- package/vendor/librocksdb/vendor/rocksdb/db/db_filesnapshot.cc +125 -31
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.cc +457 -231
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl.h +172 -73
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +152 -133
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_files.cc +58 -52
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.cc +348 -0
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_follower.h +54 -0
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_open.cc +136 -117
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +4 -3
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_secondary.h +7 -6
- package/vendor/librocksdb/vendor/rocksdb/db/db_impl/db_impl_write.cc +134 -80
- package/vendor/librocksdb/vendor/rocksdb/db/db_iter.cc +11 -0
- package/vendor/librocksdb/vendor/rocksdb/db/db_test2.cc +1 -1
- package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.cc +11 -1
- package/vendor/librocksdb/vendor/rocksdb/db/db_test_util.h +11 -7
- package/vendor/librocksdb/vendor/rocksdb/db/dbformat.cc +19 -4
- package/vendor/librocksdb/vendor/rocksdb/db/dbformat.h +3 -2
- package/vendor/librocksdb/vendor/rocksdb/db/error_handler.cc +34 -39
- package/vendor/librocksdb/vendor/rocksdb/db/error_handler.h +3 -4
- package/vendor/librocksdb/vendor/rocksdb/db/event_helpers.cc +6 -3
- package/vendor/librocksdb/vendor/rocksdb/db/experimental.cc +3 -2
- package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +76 -18
- package/vendor/librocksdb/vendor/rocksdb/db/external_sst_file_ingestion_job.h +11 -0
- package/vendor/librocksdb/vendor/rocksdb/db/flush_job.cc +37 -5
- package/vendor/librocksdb/vendor/rocksdb/db/flush_job.h +14 -0
- package/vendor/librocksdb/vendor/rocksdb/db/import_column_family_job.cc +49 -45
- package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.cc +60 -1
- package/vendor/librocksdb/vendor/rocksdb/db/internal_stats.h +20 -1
- package/vendor/librocksdb/vendor/rocksdb/db/log_reader.cc +15 -6
- package/vendor/librocksdb/vendor/rocksdb/db/log_writer.cc +59 -10
- package/vendor/librocksdb/vendor/rocksdb/db/log_writer.h +8 -0
- package/vendor/librocksdb/vendor/rocksdb/db/memtable.cc +24 -40
- package/vendor/librocksdb/vendor/rocksdb/db/memtable.h +10 -10
- package/vendor/librocksdb/vendor/rocksdb/db/memtable_list.cc +9 -8
- package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator_impl.h +296 -0
- package/vendor/librocksdb/vendor/rocksdb/db/range_tombstone_fragmenter.h +8 -10
- package/vendor/librocksdb/vendor/rocksdb/db/repair.cc +4 -3
- package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.cc +30 -0
- package/vendor/librocksdb/vendor/rocksdb/db/seqno_to_time_mapping.h +9 -0
- package/vendor/librocksdb/vendor/rocksdb/db/table_cache.cc +17 -2
- package/vendor/librocksdb/vendor/rocksdb/db/table_cache.h +9 -1
- package/vendor/librocksdb/vendor/rocksdb/db/table_properties_collector.h +9 -2
- package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.cc +3 -3
- package/vendor/librocksdb/vendor/rocksdb/db/transaction_log_impl.h +7 -7
- package/vendor/librocksdb/vendor/rocksdb/db/version_edit.cc +0 -1
- package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.cc +39 -5
- package/vendor/librocksdb/vendor/rocksdb/db/version_edit_handler.h +24 -15
- package/vendor/librocksdb/vendor/rocksdb/db/version_set.cc +117 -64
- package/vendor/librocksdb/vendor/rocksdb/db/version_set.h +27 -10
- package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.cc +37 -29
- package/vendor/librocksdb/vendor/rocksdb/db/wal_manager.h +6 -5
- package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns.cc +2 -3
- package/vendor/librocksdb/vendor/rocksdb/db/wide/wide_columns_helper.cc +6 -0
- package/vendor/librocksdb/vendor/rocksdb/db/write_batch.cc +89 -31
- package/vendor/librocksdb/vendor/rocksdb/db/write_thread.cc +53 -5
- package/vendor/librocksdb/vendor/rocksdb/db/write_thread.h +36 -4
- package/vendor/librocksdb/vendor/rocksdb/env/composite_env_wrapper.h +21 -0
- package/vendor/librocksdb/vendor/rocksdb/env/env.cc +15 -0
- package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.cc +331 -0
- package/vendor/librocksdb/vendor/rocksdb/env/fs_on_demand.h +139 -0
- package/vendor/librocksdb/vendor/rocksdb/env/io_posix.cc +8 -6
- package/vendor/librocksdb/vendor/rocksdb/env/io_posix.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.cc +130 -27
- package/vendor/librocksdb/vendor/rocksdb/file/delete_scheduler.h +61 -8
- package/vendor/librocksdb/vendor/rocksdb/file/file_util.cc +25 -4
- package/vendor/librocksdb/vendor/rocksdb/file/file_util.h +15 -0
- package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.cc +1 -0
- package/vendor/librocksdb/vendor/rocksdb/file/sequence_file_reader.h +9 -4
- package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.cc +18 -0
- package/vendor/librocksdb/vendor/rocksdb/file/sst_file_manager_impl.h +31 -4
- package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.cc +40 -38
- package/vendor/librocksdb/vendor/rocksdb/file/writable_file_writer.h +48 -15
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/advanced_options.h +12 -3
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/attribute_groups.h +114 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/c.h +90 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/cache.h +5 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/comparator.h +27 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/db.h +71 -12
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/env.h +9 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/experimental.h +5 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/file_system.h +14 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator.h +9 -71
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/iterator_base.h +90 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/listener.h +21 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/options.h +125 -12
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/perf_context.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/sst_file_reader.h +11 -1
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table.h +6 -6
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/table_properties.h +19 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/transaction_log.h +12 -6
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/types.h +12 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/universal_compaction.h +31 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/user_write_callback.h +29 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +4 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +4 -2
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +0 -1
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -7
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +4 -4
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +24 -5
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +46 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction.h +42 -17
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +5 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/types_util.h +36 -0
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +71 -3
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/version.h +2 -2
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/wide_columns.h +87 -72
- package/vendor/librocksdb/vendor/rocksdb/include/rocksdb/write_batch_base.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/memory/memory_allocator.cc +1 -0
- package/vendor/librocksdb/vendor/rocksdb/options/cf_options.cc +13 -2
- package/vendor/librocksdb/vendor/rocksdb/options/cf_options.h +6 -2
- package/vendor/librocksdb/vendor/rocksdb/options/db_options.cc +27 -1
- package/vendor/librocksdb/vendor/rocksdb/options/db_options.h +10 -3
- package/vendor/librocksdb/vendor/rocksdb/options/options.cc +3 -0
- package/vendor/librocksdb/vendor/rocksdb/options/options_helper.cc +1 -0
- package/vendor/librocksdb/vendor/rocksdb/port/jemalloc_helper.h +2 -2
- package/vendor/librocksdb/vendor/rocksdb/port/stack_trace.cc +1 -0
- package/vendor/librocksdb/vendor/rocksdb/port/win/port_win.cc +3 -2
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +1 -2
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_builder.cc +47 -31
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_factory.cc +15 -0
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +37 -18
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_iterator.h +10 -3
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.cc +102 -41
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader.h +15 -7
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -3
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -6
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_cache.h +31 -0
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/block_prefetcher.cc +6 -0
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/cachable_entry.h +10 -5
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block.h +34 -28
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +17 -11
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_block_reader_common.h +5 -2
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/filter_policy.cc +12 -3
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.cc +37 -30
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/full_filter_block.h +11 -13
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/hash_index_reader.cc +1 -2
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.cc +62 -53
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_builder.h +60 -38
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.cc +14 -9
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/index_reader_common.h +4 -1
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +135 -94
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_filter_block.h +52 -46
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +51 -13
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/partitioned_index_reader.h +2 -0
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +3 -11
- package/vendor/librocksdb/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +2 -3
- package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.cc +8 -10
- package/vendor/librocksdb/vendor/rocksdb/table/block_fetcher.h +2 -1
- package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.cc +9 -10
- package/vendor/librocksdb/vendor/rocksdb/table/compaction_merging_iterator.h +3 -2
- package/vendor/librocksdb/vendor/rocksdb/table/format.cc +1 -2
- package/vendor/librocksdb/vendor/rocksdb/table/iterator.cc +4 -0
- package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.cc +18 -13
- package/vendor/librocksdb/vendor/rocksdb/table/merging_iterator.h +5 -3
- package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.cc +18 -4
- package/vendor/librocksdb/vendor/rocksdb/table/meta_blocks.h +4 -0
- package/vendor/librocksdb/vendor/rocksdb/table/plain/plain_table_builder.cc +2 -2
- package/vendor/librocksdb/vendor/rocksdb/table/sst_file_dumper.cc +6 -6
- package/vendor/librocksdb/vendor/rocksdb/table/sst_file_reader.cc +24 -2
- package/vendor/librocksdb/vendor/rocksdb/table/sst_file_writer_collectors.h +3 -1
- package/vendor/librocksdb/vendor/rocksdb/table/table_builder.h +8 -7
- package/vendor/librocksdb/vendor/rocksdb/table/table_iterator.h +69 -0
- package/vendor/librocksdb/vendor/rocksdb/table/table_reader.h +9 -0
- package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.cc +25 -0
- package/vendor/librocksdb/vendor/rocksdb/test_util/testutil.h +12 -0
- package/vendor/librocksdb/vendor/rocksdb/tools/db_bench_tool.cc +32 -0
- package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd.cc +618 -124
- package/vendor/librocksdb/vendor/rocksdb/tools/ldb_cmd_impl.h +19 -1
- package/vendor/librocksdb/vendor/rocksdb/tools/ldb_tool.cc +9 -0
- package/vendor/librocksdb/vendor/rocksdb/util/aligned_storage.h +24 -0
- package/vendor/librocksdb/vendor/rocksdb/util/autovector.h +4 -0
- package/vendor/librocksdb/vendor/rocksdb/util/comparator.cc +12 -0
- package/vendor/librocksdb/vendor/rocksdb/util/filter_bench.cc +1 -1
- package/vendor/librocksdb/vendor/rocksdb/util/random.cc +2 -1
- package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.cc +3 -4
- package/vendor/librocksdb/vendor/rocksdb/util/stderr_logger.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/util/udt_util.cc +33 -0
- package/vendor/librocksdb/vendor/rocksdb/util/udt_util.h +7 -0
- package/vendor/librocksdb/vendor/rocksdb/util/write_batch_util.h +5 -0
- package/vendor/librocksdb/vendor/rocksdb/util/xxhash.h +36 -29
- package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +3 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +20 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.cc +29 -9
- package/vendor/librocksdb/vendor/rocksdb/utilities/cache_dump_load_impl.h +14 -3
- package/vendor/librocksdb/vendor/rocksdb/utilities/debug.cc +16 -4
- package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.cc +677 -248
- package/vendor/librocksdb/vendor/rocksdb/utilities/fault_injection_fs.h +325 -158
- package/vendor/librocksdb/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -8
- package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.cc +144 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_for_tiering_collector.h +45 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +12 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +3 -3
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +116 -20
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +33 -1
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +78 -13
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +33 -1
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.cc +106 -7
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_base.h +68 -10
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_test.h +7 -3
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.cc +8 -5
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/transaction_util.h +7 -4
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +18 -12
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +4 -4
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +17 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +11 -9
- package/vendor/librocksdb/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +2 -1
- package/vendor/librocksdb/vendor/rocksdb/utilities/types_util.cc +88 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +313 -14
- package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +7 -0
- package/vendor/librocksdb/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +1 -1
- package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator.cc +0 -102
- package/vendor/librocksdb/vendor/rocksdb/db/multi_cf_iterator.h +0 -159
|
@@ -43,7 +43,8 @@ class TransactionUtil {
|
|
|
43
43
|
const std::string& key, SequenceNumber snap_seq,
|
|
44
44
|
const std::string* const ts, bool cache_only,
|
|
45
45
|
ReadCallback* snap_checker = nullptr,
|
|
46
|
-
SequenceNumber min_uncommitted = kMaxSequenceNumber
|
|
46
|
+
SequenceNumber min_uncommitted = kMaxSequenceNumber,
|
|
47
|
+
bool enable_udt_validation = true);
|
|
47
48
|
|
|
48
49
|
// For each key,SequenceNumber pair tracked by the LockTracker, this function
|
|
49
50
|
// will verify there have been no writes to the key in the db since that
|
|
@@ -70,13 +71,15 @@ class TransactionUtil {
|
|
|
70
71
|
// seq > `snap_seq`: applicable to conflict
|
|
71
72
|
// `min_uncommitted` <= seq <= `snap_seq`: call `snap_checker` to determine.
|
|
72
73
|
//
|
|
73
|
-
// If user-defined timestamp is enabled
|
|
74
|
-
// operation for `key` with timestamp
|
|
74
|
+
// If user-defined timestamp is enabled and `enable_udt_validation` is set to
|
|
75
|
+
// true, a write conflict is detected if an operation for `key` with timestamp
|
|
76
|
+
// greater than `ts` exists.
|
|
75
77
|
static Status CheckKey(DBImpl* db_impl, SuperVersion* sv,
|
|
76
78
|
SequenceNumber earliest_seq, SequenceNumber snap_seq,
|
|
77
79
|
const std::string& key, const std::string* const ts,
|
|
78
80
|
bool cache_only, ReadCallback* snap_checker = nullptr,
|
|
79
|
-
SequenceNumber min_uncommitted = kMaxSequenceNumber
|
|
81
|
+
SequenceNumber min_uncommitted = kMaxSequenceNumber,
|
|
82
|
+
bool enable_udt_validation = true);
|
|
80
83
|
};
|
|
81
84
|
|
|
82
85
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -154,8 +154,9 @@ Status WritePreparedTxn::PrepareInternal() {
|
|
|
154
154
|
const bool DISABLE_MEMTABLE = true;
|
|
155
155
|
uint64_t seq_used = kMaxSequenceNumber;
|
|
156
156
|
s = db_impl_->WriteImpl(write_options, GetWriteBatch()->GetWriteBatch(),
|
|
157
|
-
/*callback*/ nullptr,
|
|
158
|
-
|
|
157
|
+
/*callback*/ nullptr, /*user_write_cb=*/nullptr,
|
|
158
|
+
&log_number_, /*log ref*/ 0, !DISABLE_MEMTABLE,
|
|
159
|
+
&seq_used, prepare_batch_cnt_,
|
|
159
160
|
&add_prepared_callback);
|
|
160
161
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
161
162
|
auto prepare_seq = seq_used;
|
|
@@ -247,9 +248,10 @@ Status WritePreparedTxn::CommitInternal() {
|
|
|
247
248
|
// TransactionOptions::use_only_the_last_commit_time_batch_for_recovery to
|
|
248
249
|
// true. See the comments about GetCommitTimeWriteBatch() in
|
|
249
250
|
// include/rocksdb/utilities/transaction.h.
|
|
250
|
-
s = db_impl_->WriteImpl(write_options_, working_batch, nullptr,
|
|
251
|
-
|
|
252
|
-
batch_cnt,
|
|
251
|
+
s = db_impl_->WriteImpl(write_options_, working_batch, nullptr,
|
|
252
|
+
/*user_write_cb=*/nullptr, nullptr, zero_log_number,
|
|
253
|
+
disable_memtable, &seq_used, batch_cnt,
|
|
254
|
+
pre_release_callback);
|
|
253
255
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
254
256
|
const SequenceNumber commit_batch_seq = seq_used;
|
|
255
257
|
if (LIKELY(do_one_write || !s.ok())) {
|
|
@@ -284,8 +286,9 @@ Status WritePreparedTxn::CommitInternal() {
|
|
|
284
286
|
const bool DISABLE_MEMTABLE = true;
|
|
285
287
|
const size_t ONE_BATCH = 1;
|
|
286
288
|
const uint64_t NO_REF_LOG = 0;
|
|
287
|
-
s = db_impl_->WriteImpl(write_options_, &empty_batch, nullptr,
|
|
288
|
-
|
|
289
|
+
s = db_impl_->WriteImpl(write_options_, &empty_batch, nullptr,
|
|
290
|
+
/*user_write_cb=*/nullptr, nullptr, NO_REF_LOG,
|
|
291
|
+
DISABLE_MEMTABLE, &seq_used, ONE_BATCH,
|
|
289
292
|
&update_commit_map_with_aux_batch);
|
|
290
293
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
291
294
|
return s;
|
|
@@ -450,8 +453,9 @@ Status WritePreparedTxn::RollbackInternal() {
|
|
|
450
453
|
// DB in one shot. min_uncommitted still works since it requires capturing
|
|
451
454
|
// data that is written to DB but not yet committed, while
|
|
452
455
|
// the rollback batch commits with PreReleaseCallback.
|
|
453
|
-
s = db_impl_->WriteImpl(write_options_, &rollback_batch, nullptr,
|
|
454
|
-
|
|
456
|
+
s = db_impl_->WriteImpl(write_options_, &rollback_batch, nullptr,
|
|
457
|
+
/*user_write_cb=*/nullptr, nullptr, NO_REF_LOG,
|
|
458
|
+
!DISABLE_MEMTABLE, &seq_used, ONE_BATCH,
|
|
455
459
|
pre_release_callback);
|
|
456
460
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
457
461
|
if (!s.ok()) {
|
|
@@ -476,8 +480,9 @@ Status WritePreparedTxn::RollbackInternal() {
|
|
|
476
480
|
// In the absence of Prepare markers, use Noop as a batch separator
|
|
477
481
|
s = WriteBatchInternal::InsertNoop(&empty_batch);
|
|
478
482
|
assert(s.ok());
|
|
479
|
-
s = db_impl_->WriteImpl(write_options_, &empty_batch, nullptr,
|
|
480
|
-
|
|
483
|
+
s = db_impl_->WriteImpl(write_options_, &empty_batch, nullptr,
|
|
484
|
+
/*user_write_cb=*/nullptr, nullptr, NO_REF_LOG,
|
|
485
|
+
DISABLE_MEMTABLE, &seq_used, ONE_BATCH,
|
|
481
486
|
&update_commit_map_with_prepare);
|
|
482
487
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
483
488
|
ROCKS_LOG_DETAILS(db_impl_->immutable_db_options().info_log,
|
|
@@ -524,7 +529,8 @@ Status WritePreparedTxn::ValidateSnapshot(ColumnFamilyHandle* column_family,
|
|
|
524
529
|
// TODO(yanqin): support user-defined timestamp
|
|
525
530
|
return TransactionUtil::CheckKeyForConflicts(
|
|
526
531
|
db_impl_, cfh, key.ToString(), snap_seq, /*ts=*/nullptr,
|
|
527
|
-
false /* cache_only */, &snap_checker, min_uncommitted
|
|
532
|
+
false /* cache_only */, &snap_checker, min_uncommitted,
|
|
533
|
+
txn_db_impl_->GetTxnDBOptions().enable_udt_validation);
|
|
528
534
|
}
|
|
529
535
|
|
|
530
536
|
void WritePreparedTxn::SetSnapshot() {
|
|
@@ -213,8 +213,8 @@ Status WritePreparedTxnDB::WriteInternal(const WriteOptions& write_options_orig,
|
|
|
213
213
|
} else {
|
|
214
214
|
pre_release_callback = &add_prepared_callback;
|
|
215
215
|
}
|
|
216
|
-
s = db_impl_->WriteImpl(write_options, batch, nullptr, nullptr,
|
|
217
|
-
!DISABLE_MEMTABLE, &seq_used, batch_cnt,
|
|
216
|
+
s = db_impl_->WriteImpl(write_options, batch, nullptr, nullptr, nullptr,
|
|
217
|
+
no_log_ref, !DISABLE_MEMTABLE, &seq_used, batch_cnt,
|
|
218
218
|
pre_release_callback);
|
|
219
219
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
220
220
|
uint64_t prepare_seq = seq_used;
|
|
@@ -240,8 +240,8 @@ Status WritePreparedTxnDB::WriteInternal(const WriteOptions& write_options_orig,
|
|
|
240
240
|
write_options.sync = false;
|
|
241
241
|
const size_t ONE_BATCH = 1; // Just to inc the seq
|
|
242
242
|
s = db_impl_->WriteImpl(write_options, &empty_batch, nullptr, nullptr,
|
|
243
|
-
no_log_ref, DISABLE_MEMTABLE, &seq_used,
|
|
244
|
-
&update_commit_map_with_prepare);
|
|
243
|
+
nullptr, no_log_ref, DISABLE_MEMTABLE, &seq_used,
|
|
244
|
+
ONE_BATCH, &update_commit_map_with_prepare);
|
|
245
245
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
246
246
|
// Note: RemovePrepared is called from within PreReleaseCallback
|
|
247
247
|
return s;
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
#include <unordered_map>
|
|
14
14
|
#include <vector>
|
|
15
15
|
|
|
16
|
+
#include "db/attribute_group_iterator_impl.h"
|
|
16
17
|
#include "db/db_iter.h"
|
|
17
18
|
#include "db/pre_release_callback.h"
|
|
18
19
|
#include "db/read_callback.h"
|
|
@@ -101,6 +102,22 @@ class WritePreparedTxnDB : public PessimisticTransactionDB {
|
|
|
101
102
|
const std::vector<ColumnFamilyHandle*>& column_families,
|
|
102
103
|
std::vector<Iterator*>* iterators) override;
|
|
103
104
|
|
|
105
|
+
using DB::NewCoalescingIterator;
|
|
106
|
+
std::unique_ptr<Iterator> NewCoalescingIterator(
|
|
107
|
+
const ReadOptions& /*options*/,
|
|
108
|
+
const std::vector<ColumnFamilyHandle*>& /*column_families*/) override {
|
|
109
|
+
return std::unique_ptr<Iterator>(
|
|
110
|
+
NewErrorIterator(Status::NotSupported("Not supported yet")));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
using DB::NewAttributeGroupIterator;
|
|
114
|
+
std::unique_ptr<AttributeGroupIterator> NewAttributeGroupIterator(
|
|
115
|
+
const ReadOptions& /*options*/,
|
|
116
|
+
const std::vector<ColumnFamilyHandle*>& /*column_families*/) override {
|
|
117
|
+
return NewAttributeGroupErrorIterator(
|
|
118
|
+
Status::NotSupported("Not supported yet"));
|
|
119
|
+
}
|
|
120
|
+
|
|
104
121
|
// Check whether the transaction that wrote the value with sequence number seq
|
|
105
122
|
// is visible to the snapshot with sequence number snapshot_seq.
|
|
106
123
|
// Returns true if commit_seq <= snapshot_seq
|
|
@@ -378,7 +378,8 @@ Status WriteUnpreparedTxn::FlushWriteBatchToDBInternal(bool prepared) {
|
|
|
378
378
|
// WriteImpl should not overwrite that value, so set log_used to nullptr if
|
|
379
379
|
// log_number_ is already set.
|
|
380
380
|
s = db_impl_->WriteImpl(write_options, GetWriteBatch()->GetWriteBatch(),
|
|
381
|
-
/*callback*/ nullptr,
|
|
381
|
+
/*callback*/ nullptr, /*user_write_cb=*/nullptr,
|
|
382
|
+
&last_log_number_,
|
|
382
383
|
/*log ref*/ 0, !DISABLE_MEMTABLE, &seq_used,
|
|
383
384
|
prepare_batch_cnt_, &add_prepared_callback);
|
|
384
385
|
if (log_number_ == 0) {
|
|
@@ -595,7 +596,7 @@ Status WriteUnpreparedTxn::CommitInternal() {
|
|
|
595
596
|
const uint64_t zero_log_number = 0ull;
|
|
596
597
|
size_t batch_cnt = UNLIKELY(commit_batch_cnt) ? commit_batch_cnt : 1;
|
|
597
598
|
s = db_impl_->WriteImpl(write_options_, working_batch, nullptr, nullptr,
|
|
598
|
-
zero_log_number, disable_memtable, &seq_used,
|
|
599
|
+
nullptr, zero_log_number, disable_memtable, &seq_used,
|
|
599
600
|
batch_cnt, pre_release_callback);
|
|
600
601
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
601
602
|
const SequenceNumber commit_batch_seq = seq_used;
|
|
@@ -639,8 +640,8 @@ Status WriteUnpreparedTxn::CommitInternal() {
|
|
|
639
640
|
const size_t ONE_BATCH = 1;
|
|
640
641
|
const uint64_t NO_REF_LOG = 0;
|
|
641
642
|
s = db_impl_->WriteImpl(write_options_, &empty_batch, nullptr, nullptr,
|
|
642
|
-
NO_REF_LOG, DISABLE_MEMTABLE, &seq_used,
|
|
643
|
-
&update_commit_map_with_commit_batch);
|
|
643
|
+
nullptr, NO_REF_LOG, DISABLE_MEMTABLE, &seq_used,
|
|
644
|
+
ONE_BATCH, &update_commit_map_with_commit_batch);
|
|
644
645
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
645
646
|
// Note RemovePrepared should be called after WriteImpl that publishsed the
|
|
646
647
|
// seq. Otherwise SmallestUnCommittedSeq optimization breaks.
|
|
@@ -771,8 +772,8 @@ Status WriteUnpreparedTxn::RollbackInternal() {
|
|
|
771
772
|
// data that is written to DB but not yet committed, while the rollback
|
|
772
773
|
// batch commits with PreReleaseCallback.
|
|
773
774
|
s = db_impl_->WriteImpl(write_options_, rollback_batch.GetWriteBatch(),
|
|
774
|
-
nullptr, nullptr,
|
|
775
|
-
&seq_used, rollback_batch_cnt,
|
|
775
|
+
nullptr, nullptr, nullptr, NO_REF_LOG,
|
|
776
|
+
!DISABLE_MEMTABLE, &seq_used, rollback_batch_cnt,
|
|
776
777
|
do_one_write ? &update_commit_map : nullptr);
|
|
777
778
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
778
779
|
if (!s.ok()) {
|
|
@@ -807,8 +808,8 @@ Status WriteUnpreparedTxn::RollbackInternal() {
|
|
|
807
808
|
s = WriteBatchInternal::InsertNoop(&empty_batch);
|
|
808
809
|
assert(s.ok());
|
|
809
810
|
s = db_impl_->WriteImpl(write_options_, &empty_batch, nullptr, nullptr,
|
|
810
|
-
NO_REF_LOG, DISABLE_MEMTABLE, &seq_used,
|
|
811
|
-
&update_commit_map_with_rollback_batch);
|
|
811
|
+
nullptr, NO_REF_LOG, DISABLE_MEMTABLE, &seq_used,
|
|
812
|
+
ONE_BATCH, &update_commit_map_with_rollback_batch);
|
|
812
813
|
assert(!s.ok() || seq_used != kMaxSequenceNumber);
|
|
813
814
|
// Mark the txn as rolled back
|
|
814
815
|
if (s.ok()) {
|
|
@@ -1076,7 +1077,8 @@ Status WriteUnpreparedTxn::ValidateSnapshot(ColumnFamilyHandle* column_family,
|
|
|
1076
1077
|
// TODO(yanqin): Support user-defined timestamp.
|
|
1077
1078
|
return TransactionUtil::CheckKeyForConflicts(
|
|
1078
1079
|
db_impl_, cfh, key.ToString(), snap_seq, /*ts=*/nullptr,
|
|
1079
|
-
false /* cache_only */, &snap_checker, min_uncommitted
|
|
1080
|
+
false /* cache_only */, &snap_checker, min_uncommitted,
|
|
1081
|
+
txn_db_impl_->GetTxnDBOptions().enable_udt_validation);
|
|
1080
1082
|
}
|
|
1081
1083
|
|
|
1082
1084
|
const std::map<SequenceNumber, size_t>&
|
|
@@ -180,7 +180,8 @@ Status WriteUnpreparedTxnDB::RollbackRecoveredTransaction(
|
|
|
180
180
|
const size_t kOneBatch = 1;
|
|
181
181
|
uint64_t seq_used = kMaxSequenceNumber;
|
|
182
182
|
s = db_impl_->WriteImpl(w_options, &rollback_batch, nullptr, nullptr,
|
|
183
|
-
kNoLogRef, !kDisableMemtable, &seq_used,
|
|
183
|
+
nullptr, kNoLogRef, !kDisableMemtable, &seq_used,
|
|
184
|
+
kOneBatch);
|
|
184
185
|
if (!s.ok()) {
|
|
185
186
|
return s;
|
|
186
187
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
//
|
|
3
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
4
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
5
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
6
|
+
|
|
7
|
+
#include "rocksdb/utilities/types_util.h"
|
|
8
|
+
|
|
9
|
+
#include "db/dbformat.h"
|
|
10
|
+
|
|
11
|
+
namespace ROCKSDB_NAMESPACE {
|
|
12
|
+
|
|
13
|
+
Status GetInternalKeyForSeek(const Slice& user_key,
|
|
14
|
+
const Comparator* comparator, std::string* buf) {
|
|
15
|
+
if (!comparator) {
|
|
16
|
+
return Status::InvalidArgument(
|
|
17
|
+
"Constructing an internal key requires user key comparator.");
|
|
18
|
+
}
|
|
19
|
+
size_t ts_sz = comparator->timestamp_size();
|
|
20
|
+
Slice max_ts = comparator->GetMaxTimestamp();
|
|
21
|
+
if (ts_sz != max_ts.size()) {
|
|
22
|
+
return Status::InvalidArgument(
|
|
23
|
+
"The maximum timestamp returned by Comparator::GetMaxTimestamp is "
|
|
24
|
+
"invalid.");
|
|
25
|
+
}
|
|
26
|
+
buf->reserve(user_key.size() + ts_sz + kNumInternalBytes);
|
|
27
|
+
buf->assign(user_key.data(), user_key.size());
|
|
28
|
+
if (ts_sz) {
|
|
29
|
+
buf->append(max_ts.data(), max_ts.size());
|
|
30
|
+
}
|
|
31
|
+
PutFixed64(buf, PackSequenceAndType(kMaxSequenceNumber, kValueTypeForSeek));
|
|
32
|
+
return Status::OK();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
Status GetInternalKeyForSeekForPrev(const Slice& user_key,
|
|
36
|
+
const Comparator* comparator,
|
|
37
|
+
std::string* buf) {
|
|
38
|
+
if (!comparator) {
|
|
39
|
+
return Status::InvalidArgument(
|
|
40
|
+
"Constructing an internal key requires user key comparator.");
|
|
41
|
+
}
|
|
42
|
+
size_t ts_sz = comparator->timestamp_size();
|
|
43
|
+
Slice min_ts = comparator->GetMinTimestamp();
|
|
44
|
+
if (ts_sz != min_ts.size()) {
|
|
45
|
+
return Status::InvalidArgument(
|
|
46
|
+
"The minimum timestamp returned by Comparator::GetMinTimestamp is "
|
|
47
|
+
"invalid.");
|
|
48
|
+
}
|
|
49
|
+
buf->reserve(user_key.size() + ts_sz + kNumInternalBytes);
|
|
50
|
+
buf->assign(user_key.data(), user_key.size());
|
|
51
|
+
if (ts_sz) {
|
|
52
|
+
buf->append(min_ts.data(), min_ts.size());
|
|
53
|
+
}
|
|
54
|
+
PutFixed64(buf, PackSequenceAndType(0, kValueTypeForSeekForPrev));
|
|
55
|
+
return Status::OK();
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
Status ParseEntry(const Slice& internal_key, const Comparator* comparator,
|
|
59
|
+
ParsedEntryInfo* parsed_entry) {
|
|
60
|
+
if (internal_key.size() < kNumInternalBytes) {
|
|
61
|
+
return Status::InvalidArgument("Internal key size invalid.");
|
|
62
|
+
}
|
|
63
|
+
if (!comparator) {
|
|
64
|
+
return Status::InvalidArgument(
|
|
65
|
+
"Parsing an internal key requires user key comparator.");
|
|
66
|
+
}
|
|
67
|
+
ParsedInternalKey pikey;
|
|
68
|
+
Status status = ParseInternalKey(internal_key, &pikey, /*log_err_key=*/false);
|
|
69
|
+
if (!status.ok()) {
|
|
70
|
+
return status;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
size_t ts_sz = comparator->timestamp_size();
|
|
74
|
+
if (pikey.user_key.size() < ts_sz) {
|
|
75
|
+
return Status::InvalidArgument("User key(with timestamp) size invalid.");
|
|
76
|
+
}
|
|
77
|
+
if (ts_sz == 0) {
|
|
78
|
+
parsed_entry->user_key = pikey.user_key;
|
|
79
|
+
} else {
|
|
80
|
+
parsed_entry->user_key = StripTimestampFromUserKey(pikey.user_key, ts_sz);
|
|
81
|
+
parsed_entry->timestamp =
|
|
82
|
+
ExtractTimestampFromUserKey(pikey.user_key, ts_sz);
|
|
83
|
+
}
|
|
84
|
+
parsed_entry->sequence = pikey.sequence;
|
|
85
|
+
parsed_entry->type = ROCKSDB_NAMESPACE::GetEntryType(pikey.type);
|
|
86
|
+
return Status::OK();
|
|
87
|
+
}
|
|
88
|
+
} // namespace ROCKSDB_NAMESPACE
|