74 static constexpr std::string_view
kName =
"dynamic-config-client-updater";
76 DynamicConfigClientUpdater(
const ComponentConfig&,
const ComponentContext&);
78 ~DynamicConfigClientUpdater()
override;
88 Update(
cache::
UpdateType update_type,
const std::chrono::system_clock::time_point& last_update,
const std::chrono::system_clock::time_point& now,
cache::UpdateStatisticsScope&)
91 void UpdateFull(
const std::vector<std::string>& docs_map_keys,
cache::UpdateStatisticsScope&);
93 void UpdateIncremental(
const std::vector<std::string>& docs_map_keys,
cache::UpdateStatisticsScope&);
95 void SetDisabledKillSwitchesToDefault(
96 dynamic_config::DocsMap& docs_map,
97 const std::vector<std::string>& kill_switches_disabled
100 dynamic_config::DocsMap MergeDocsMap(
101 const dynamic_config::DocsMap& current,
102 dynamic_config::DocsMap&& update,
103 const std::vector<std::string>& removed
105 void StoreIfEnabled(
const dynamic_config::DocsMap& value);
107 using DocsMapKeys = utils::
impl::TransparentSet<std::string>;
108 using AdditionalDocsMapKeys = std::unordered_set<std::shared_ptr<std::vector<std::string>>>;
110 std::vector<std::string> GetDocsMapKeysToFetch(AdditionalDocsMapKeys& additional_docs_map_keys);
112 void UpdateAdditionalKeys(
const std::vector<std::string>& keys);
114 bool IsDuplicate(
cache::
UpdateType update_type,
const dynamic_config::DocsMap& new_value)
const;
117 const bool load_only_my_values_;
118 const bool store_enabled_;
120 dynamic_config::Client& config_client_;
122 dynamic_config::Client::Timestamp server_timestamp_;
124 engine::Mutex update_config_mutex_;
125 dynamic_config::DocsMap docs_map_defaults_;
126 DocsMapKeys docs_map_keys_;
127 concurrent::Variable<AdditionalDocsMapKeys> additional_docs_map_keys_;