diff --git a/main.cc b/main.cc index df7107ff0d..bebd3ef03b 100644 --- a/main.cc +++ b/main.cc @@ -518,14 +518,15 @@ int main(int ac, char** av) { directories.insert(db.local().get_config().commitlog_directory()); supervisor::notify("creating hints directories"); - - boost::filesystem::path hints_base_dir(db.local().get_config().hints_directory()); - dirs.touch_and_lock(db.local().get_config().hints_directory()).get(); - directories.insert(db.local().get_config().hints_directory()); - for (unsigned i = 0; i < smp::count; ++i) { - sstring shard_dir((hints_base_dir / seastar::to_sstring(i).c_str()).native()); - dirs.touch_and_lock(shard_dir).get(); - directories.insert(std::move(shard_dir)); + if (hinted_handoff_enabled) { + boost::filesystem::path hints_base_dir(db.local().get_config().hints_directory()); + dirs.touch_and_lock(db.local().get_config().hints_directory()).get(); + directories.insert(db.local().get_config().hints_directory()); + for (unsigned i = 0; i < smp::count; ++i) { + sstring shard_dir((hints_base_dir / seastar::to_sstring(i).c_str()).native()); + dirs.touch_and_lock(shard_dir).get(); + directories.insert(std::move(shard_dir)); + } } boost::filesystem::path view_pending_updates_base_dir = boost::filesystem::path(db.local().get_config().data_file_directories()[0]) / "view_pending_updates"; sstring view_pending_updates_base_dir_str = view_pending_updates_base_dir.native(); diff --git a/service/storage_proxy.cc b/service/storage_proxy.cc index 5ed5a7744c..03c0755c11 100644 --- a/service/storage_proxy.cc +++ b/service/storage_proxy.cc @@ -726,21 +726,19 @@ storage_proxy::storage_proxy(distributed& db, stdx::optionalregister_metrics("hints_manager"); + _hints_resource_manager.register_manager(*_hints_manager); + } - _hints_manager->register_metrics("hints_manager"); _hints_for_views_manager.register_metrics("hints_for_views_manager"); - _hints_resource_manager.register_manager(*_hints_manager); _hints_resource_manager.register_manager(_hints_for_views_manager); } @@ -3647,7 +3645,7 @@ get_restricted_ranges(locator::token_metadata& tm, const schema& s, dht::partiti } bool storage_proxy::hints_enabled(db::write_type type) noexcept { - return _hints_enabled_for_user_writes || (type == db::write_type::VIEW && bool(_hints_manager)); + return bool(_hints_manager) || type == db::write_type::VIEW; } db::hints::manager& storage_proxy::hints_manager_for(db::write_type type) { diff --git a/service/storage_proxy.hh b/service/storage_proxy.hh index 2fa2e2fa93..313c98138c 100644 --- a/service/storage_proxy.hh +++ b/service/storage_proxy.hh @@ -152,7 +152,6 @@ private: db::hints::resource_manager _hints_resource_manager; stdx::optional _hints_manager; db::hints::manager _hints_for_views_manager; - bool _hints_enabled_for_user_writes = false; stats _stats; static constexpr float CONCURRENT_SUBREQUESTS_MARGIN = 0.10; // for read repair chance calculation