@nxtedition/rocksdb 7.0.39 → 7.0.40
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 +2 -12
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +2 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +13 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +273 -134
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +33 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +133 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +130 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +8 -4
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +11 -9
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +209 -12
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +54 -39
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +102 -19
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +30 -11
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +28 -25
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +0 -14
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +63 -54
- package/deps/rocksdb/rocksdb/db/db_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/error_handler.cc +7 -0
- package/deps/rocksdb/rocksdb/db/error_handler.h +10 -9
- package/deps/rocksdb/rocksdb/db/log_test.cc +13 -6
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +21 -0
- package/deps/rocksdb/rocksdb/db/table_cache.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set.cc +3 -2
- package/deps/rocksdb/rocksdb/db/version_set.h +6 -4
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +8 -6
- package/deps/rocksdb/rocksdb/db/wal_edit.cc +22 -15
- package/deps/rocksdb/rocksdb/db/wal_edit.h +10 -0
- package/deps/rocksdb/rocksdb/db/wal_edit_test.cc +4 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +0 -36
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +1 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +23 -29
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +0 -5
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +7 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +0 -5
- package/deps/rocksdb/rocksdb/env/io_posix.cc +1 -7
- package/deps/rocksdb/rocksdb/options/options_test.cc +16 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +51 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +3 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +14 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +8 -38
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +27 -21
- package/deps/rocksdb/rocksdb/util/rate_limiter.h +12 -10
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +11 -8
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +59 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +12 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +31 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -3
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
package/binding.cc
CHANGED
|
@@ -130,17 +130,6 @@ static std::optional<int> Int32Property(napi_env env, napi_value obj, const std:
|
|
|
130
130
|
return {};
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
static std::optional<int64_t> Int64Property(napi_env env, napi_value obj, const std::string_view& key) {
|
|
134
|
-
if (HasProperty(env, obj, key.data())) {
|
|
135
|
-
const auto value = GetProperty(env, obj, key.data());
|
|
136
|
-
int64_t result;
|
|
137
|
-
napi_get_value_int64(env, value, &result);
|
|
138
|
-
return result;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return {};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
133
|
static napi_status ToString(napi_env env, napi_value from, std::string& to) {
|
|
145
134
|
napi_valuetype type;
|
|
146
135
|
NAPI_STATUS_RETURN(napi_typeof(env, from, &type));
|
|
@@ -1925,7 +1914,8 @@ NAPI_METHOD(db_flush_wal) {
|
|
|
1925
1914
|
return 0;
|
|
1926
1915
|
}
|
|
1927
1916
|
|
|
1928
|
-
|
|
1917
|
+
template<typename T>
|
|
1918
|
+
napi_status FromLogFile(napi_env env, const T& file, napi_value* obj) {
|
|
1929
1919
|
NAPI_STATUS_RETURN(napi_create_object(env, obj));
|
|
1930
1920
|
|
|
1931
1921
|
napi_value pathName;
|
|
@@ -414,7 +414,7 @@ void BlobFileReader::MultiGetBlob(const ReadOptions& read_options,
|
|
|
414
414
|
assert(blob_reqs[i]->offset >= adjustment);
|
|
415
415
|
adjustments.push_back(adjustment);
|
|
416
416
|
|
|
417
|
-
FSReadRequest read_req;
|
|
417
|
+
FSReadRequest read_req = {};
|
|
418
418
|
read_req.offset = blob_reqs[i]->offset - adjustment;
|
|
419
419
|
read_req.len = blob_reqs[i]->len + adjustment;
|
|
420
420
|
read_reqs.emplace_back(read_req);
|
|
@@ -786,13 +786,13 @@ namespace {
|
|
|
786
786
|
std::unique_ptr<WriteControllerToken> SetupDelay(
|
|
787
787
|
WriteController* write_controller, uint64_t compaction_needed_bytes,
|
|
788
788
|
uint64_t prev_compaction_need_bytes, bool penalize_stop,
|
|
789
|
-
bool
|
|
789
|
+
bool auto_compactions_disabled) {
|
|
790
790
|
const uint64_t kMinWriteRate = 16 * 1024u; // Minimum write rate 16KB/s.
|
|
791
791
|
|
|
792
792
|
uint64_t max_write_rate = write_controller->max_delayed_write_rate();
|
|
793
793
|
uint64_t write_rate = write_controller->delayed_write_rate();
|
|
794
794
|
|
|
795
|
-
if (
|
|
795
|
+
if (auto_compactions_disabled) {
|
|
796
796
|
// When auto compaction is disabled, always use the value user gave.
|
|
797
797
|
write_rate = max_write_rate;
|
|
798
798
|
} else if (write_controller->NeedsDelay() && max_write_rate > kMinWriteRate) {
|
|
@@ -1116,7 +1116,7 @@ TEST_P(ColumnFamilyTest, DifferentWriteBufferSizes) {
|
|
|
1116
1116
|
CreateColumnFamilies({"one", "two", "three"});
|
|
1117
1117
|
ColumnFamilyOptions default_cf, one, two, three;
|
|
1118
1118
|
// setup options. all column families have max_write_buffer_number setup to 10
|
|
1119
|
-
// "default" -> 100KB memtable, start flushing
|
|
1119
|
+
// "default" -> 100KB memtable, start flushing immediately
|
|
1120
1120
|
// "one" -> 200KB memtable, start flushing with two immutable memtables
|
|
1121
1121
|
// "two" -> 1MB memtable, start flushing with three immutable memtables
|
|
1122
1122
|
// "three" -> 90KB memtable, start flushing with four immutable memtables
|
|
@@ -660,7 +660,7 @@ bool Compaction::IsOutputLevelEmpty() const {
|
|
|
660
660
|
}
|
|
661
661
|
|
|
662
662
|
bool Compaction::ShouldFormSubcompactions() const {
|
|
663
|
-
if (
|
|
663
|
+
if (cfd_ == nullptr) {
|
|
664
664
|
return false;
|
|
665
665
|
}
|
|
666
666
|
|
|
@@ -671,9 +671,19 @@ bool Compaction::ShouldFormSubcompactions() const {
|
|
|
671
671
|
return false;
|
|
672
672
|
}
|
|
673
673
|
|
|
674
|
+
// Round-Robin pri under leveled compaction allows subcompactions by default
|
|
675
|
+
// and the number of subcompactions can be larger than max_subcompactions_
|
|
676
|
+
if (cfd_->ioptions()->compaction_pri == kRoundRobin &&
|
|
677
|
+
cfd_->ioptions()->compaction_style == kCompactionStyleLevel) {
|
|
678
|
+
return output_level_ > 0;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
if (max_subcompactions_ <= 1) {
|
|
682
|
+
return false;
|
|
683
|
+
}
|
|
684
|
+
|
|
674
685
|
if (cfd_->ioptions()->compaction_style == kCompactionStyleLevel) {
|
|
675
|
-
return (start_level_ == 0 || is_manual_compaction_) && output_level_ > 0
|
|
676
|
-
!IsOutputLevelEmpty();
|
|
686
|
+
return (start_level_ == 0 || is_manual_compaction_) && output_level_ > 0;
|
|
677
687
|
} else if (cfd_->ioptions()->compaction_style == kCompactionStyleUniversal) {
|
|
678
688
|
return number_levels_ > 1 && output_level_ > 0;
|
|
679
689
|
} else {
|