Compare commits

...
1 Commits
Author SHA1 Message Date
Sujit Maharjan 87b7675f59 Fixing crash test and other refactoring 2025-06-16 15:00:42 -07:00
4 changed files with 13 additions and 18 deletions

No files matched your search

+2 -2
View File
@@ -874,13 +874,13 @@ set(SOURCES
trace_replay/trace_record.cc
trace_replay/trace_replay.cc
util/async_file_reader.cc
util/auto_skip_compressor.cc
util/cleanable.cc
util/coding.cc
util/compaction_job_stats_impl.cc
util/comparator.cc
util/compression.cc
util/simple_mixed_compressor.cc
util/auto_skip_compressor.cc
util/compression_context_cache.cc
util/concurrent_task_limiter_impl.cc
util/crc32c.cc
@@ -1447,7 +1447,6 @@ if(WITH_TESTS)
table/table_test.cc
table/block_fetcher_test.cc
test_util/testutil_test.cc
util/compression_test.cc
trace_replay/block_cache_tracer_test.cc
trace_replay/io_tracer_test.cc
tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc
@@ -1459,6 +1458,7 @@ if(WITH_TESTS)
util/autovector_test.cc
util/bloom_test.cc
util/coding_test.cc
util/compression_test.cc
util/crc32c_test.cc
util/defer_test.cc
util/dynamic_bloom_test.cc
+1 -1
View File
@@ -1011,7 +1011,7 @@ def finalize_and_sanitize(src_params):
dest_params["compression_type"] = "zstd"
dest_params["bottommost_compression_type"] = "zstd"
elif dest_params.get("compression_manager") == "autoskip":
# disabling compression parallel threads if mixed manager is being used as the predictor is not thread safe
# disabling compression parallel threads if auto skip manager is being used as the predictor is not thread safe
dest_params["compression_parallel_threads"] = 1
# esuring the compression is being used
if dest_params.get("compression_type") == "none":
+8 -11
View File
@@ -8,6 +8,7 @@
#include "options/options_helper.h"
#include "rocksdb/advanced_compression.h"
#include "test_util/sync_point.h"
#include "util/random.h"
namespace ROCKSDB_NAMESPACE {
@@ -31,9 +32,10 @@ bool CompressionRejectionProbabilityPredictor::Record(
} else {
compressed_count_++;
}
if (attempted_compression_count() >= window_size_) {
pred_rejection_prob_percentage_ = static_cast<int>(
rejected_count_ * 100 / (compressed_count_ + rejected_count_));
auto attempted = attempted_compression_count();
if (attempted >= window_size_) {
pred_rejection_prob_percentage_ =
static_cast<int>(rejected_count_ * 100 / attempted);
compressed_count_ = 0;
rejected_count_ = 0;
assert(attempted_compression_count() == 0);
@@ -41,16 +43,11 @@ bool CompressionRejectionProbabilityPredictor::Record(
return true;
}
AutoSkipCompressorWrapper::AutoSkipCompressorWrapper(
std::unique_ptr<Compressor> compressor, const CompressionOptions& opts,
const CompressionType type)
std::unique_ptr<Compressor> compressor, const CompressionOptions& opts)
: CompressorWrapper::CompressorWrapper(std::move(compressor)),
opts_(opts),
type_(type),
predictor_(
std::make_shared<CompressionRejectionProbabilityPredictor>(10)) {
(void)type_;
(void)opts_;
}
std::make_shared<CompressionRejectionProbabilityPredictor>(10)) {}
Status AutoSkipCompressorWrapper::CompressBlock(
Slice uncompressed_data, std::string* compressed_output,
@@ -100,7 +97,7 @@ std::unique_ptr<Compressor> AutoSkipCompressorManager::GetCompressorForSST(
assert(GetSupportedCompressions().size() > 1);
assert(preferred != kNoCompression);
return std::make_unique<AutoSkipCompressorWrapper>(
wrapped_->GetCompressorForSST(context, opts, preferred), opts, preferred);
wrapped_->GetCompressorForSST(context, opts, preferred), opts);
}
std::shared_ptr<CompressionManagerWrapper> CreateAutoSkipCompressionManager(
+2 -4
View File
@@ -37,8 +37,7 @@ class CompressionRejectionProbabilityPredictor {
class AutoSkipCompressorWrapper : public CompressorWrapper {
public:
explicit AutoSkipCompressorWrapper(std::unique_ptr<Compressor> compressor,
const CompressionOptions& opts,
const CompressionType type);
const CompressionOptions& opts);
Status CompressBlock(Slice uncompressed_data, std::string* compressed_output,
CompressionType* out_compression_type,
@@ -51,8 +50,7 @@ class AutoSkipCompressorWrapper : public CompressorWrapper {
ManagedWorkingArea* wa);
static constexpr int kExplorationPercentage = 10;
static constexpr int kProbabilityCutOff = 50;
const CompressionOptions& opts_;
const CompressionType type_;
const CompressionOptions opts_;
std::shared_ptr<CompressionRejectionProbabilityPredictor> predictor_;
};