Files
scylladb/tools/read_mutation.hh
Pavel Emelyanov 8220974e76 code: Update callers generating feature service config
Instead of requesting it from gms code, create it "by hand" with the
help of get_disabled_features_from_db_config() method. This is how other
services are configured by main/tools/testing code.

Signed-off-by: Pavel Emelyanov <xemul@scylladb.com>
2025-07-21 19:19:09 +03:00

60 lines
2.2 KiB
C++

/*
* Copyright (C) 2021-present ScyllaDB
*/
/*
* SPDX-License-Identifier: LicenseRef-ScyllaDB-Source-Available-1.0
*/
#pragma once
#include <filesystem>
#include <functional>
#include <string_view>
#include <optional>
#include "init.hh"
#include "db/cache_tracker.hh"
#include "db/config.hh"
#include "db/large_data_handler.hh"
#include "db/corrupt_data_handler.hh"
#include "gms/feature_service.hh"
#include "schema/schema_fwd.hh"
#include "sstables/sstable_directory.hh"
#include "sstables/sstables_manager.hh"
#include "types/types.hh"
#include "reader_permit.hh"
future<std::filesystem::path> get_table_directory(std::filesystem::path scylla_data_path,
std::string_view keyspace_name,
std::string_view table_name);
struct sstable_manager_service {
db::nop_large_data_handler large_data_handler;
db::nop_corrupt_data_handler corrupt_data_handler;
gms::feature_service feature_service;
cache_tracker tracker;
sstables::directory_semaphore dir_sem;
sstables::sstables_manager sst_man;
abort_source abort;
explicit sstable_manager_service(const db::config& dbcfg, sstable_compressor_factory& scf)
: corrupt_data_handler(db::corrupt_data_handler::register_metrics::no)
, feature_service({get_disabled_features_from_db_config(dbcfg)})
, dir_sem(1)
, sst_man("schema_loader", large_data_handler, corrupt_data_handler, dbcfg, feature_service, tracker, memory::stats().total_memory(), dir_sem, []{ return locator::host_id{}; }, scf, abort) {
}
future<> stop() {
return sst_man.close();
}
};
mutation_opt read_mutation_from_table_offline(sharded<sstable_manager_service>& sst_man,
reader_permit permit,
std::filesystem::path table_path,
std::string_view keyspace,
std::function<schema_ptr()> table_schema,
data_value primary_key,
std::optional<data_value> clustering_key);