From 918b539a84893e5931bb1128e029c058615819ac Mon Sep 17 00:00:00 2001 From: JimmyCYJ Date: Tue, 2 Oct 2018 15:54:18 -0700 Subject: [PATCH] Revert "To share mixer client across listeners (#1972)" This reverts commit b33ceb25059d9f83589df5607c09bbacca51f912. --- src/envoy/http/mixer/config.h | 1 - src/envoy/http/mixer/control_factory.h | 1 - src/envoy/http/mixer/filter_factory.cc | 23 ++++------------------- src/envoy/tcp/mixer/config.h | 1 - src/envoy/tcp/mixer/control_factory.h | 1 - src/envoy/tcp/mixer/filter_factory.cc | 24 +++++------------------- 6 files changed, 9 insertions(+), 42 deletions(-) diff --git a/src/envoy/http/mixer/config.h b/src/envoy/http/mixer/config.h index dfca3516adf..c72823f65a9 100644 --- a/src/envoy/http/mixer/config.h +++ b/src/envoy/http/mixer/config.h @@ -45,7 +45,6 @@ class Config { // The Http client config. ::istio::mixer::v1::config::client::HttpClientConfig config_pb_; }; -typedef std::unique_ptr ConfigPtr; } // namespace Mixer } // namespace Http diff --git a/src/envoy/http/mixer/control_factory.h b/src/envoy/http/mixer/control_factory.h index 673f019a4d8..83ff0e84ee9 100644 --- a/src/envoy/http/mixer/control_factory.h +++ b/src/envoy/http/mixer/control_factory.h @@ -63,7 +63,6 @@ class ControlFactory : public Logger::Loggable { // This stats object. Utils::MixerFilterStats stats_; }; -typedef std::shared_ptr ControlFactorySharedPtr; } // namespace Mixer } // namespace Http diff --git a/src/envoy/http/mixer/filter_factory.cc b/src/envoy/http/mixer/filter_factory.cc index af7d749c6cf..c46c97d6577 100644 --- a/src/envoy/http/mixer/filter_factory.cc +++ b/src/envoy/http/mixer/filter_factory.cc @@ -75,8 +75,10 @@ class MixerConfigFactory : public NamedHttpFilterConfigFactory { Http::FilterFactoryCb createFilterFactory(const HttpClientConfig& config_pb, const std::string&, FactoryContext& context) { - auto config_obj = std::make_unique(config_pb); - auto control_factory = getControlFactory(std::move(config_obj), context); + std::unique_ptr config_obj( + new Http::Mixer::Config(config_pb)); + auto control_factory = std::make_shared( + std::move(config_obj), context); return [control_factory]( Http::FilterChainFactoryCallbacks& callbacks) -> void { std::shared_ptr instance = @@ -85,23 +87,6 @@ class MixerConfigFactory : public NamedHttpFilterConfigFactory { callbacks.addAccessLogHandler(AccessLog::InstanceSharedPtr(instance)); }; } - - Http::Mixer::ControlFactorySharedPtr getControlFactory( - Http::Mixer::ConfigPtr config_obj, FactoryContext& context) { - const std::string hash = config_obj->config_pb().SerializeAsString(); - Http::Mixer::ControlFactorySharedPtr control_factory = - control_factory_maps_[hash].lock(); - if (!control_factory) { - control_factory = std::make_shared( - std::move(config_obj), context); - control_factory_maps_[hash] = control_factory; - } - return control_factory; - } - - // A weak pointer map to share control factory across different listeners. - std::unordered_map> - control_factory_maps_; }; static Registry::RegisterFactory ConfigPtr; } // namespace Mixer } // namespace Tcp diff --git a/src/envoy/tcp/mixer/control_factory.h b/src/envoy/tcp/mixer/control_factory.h index 5ec6f4f2f65..a33c08151c6 100644 --- a/src/envoy/tcp/mixer/control_factory.h +++ b/src/envoy/tcp/mixer/control_factory.h @@ -70,7 +70,6 @@ class ControlFactory : public Logger::Loggable { // UUID of the Envoy TCP mixer filter. const std::string uuid_; }; -typedef std::shared_ptr ControlFactorySharedPtr; } // namespace Mixer } // namespace Tcp diff --git a/src/envoy/tcp/mixer/filter_factory.cc b/src/envoy/tcp/mixer/filter_factory.cc index 3fa9067ff78..fe9732a8865 100644 --- a/src/envoy/tcp/mixer/filter_factory.cc +++ b/src/envoy/tcp/mixer/filter_factory.cc @@ -52,8 +52,11 @@ class FilterFactory : public NamedNetworkFilterConfigFactory { private: Network::FilterFactoryCb createFilterFactory(const TcpClientConfig& config_pb, FactoryContext& context) { - auto config_obj = std::make_unique(config_pb); - auto control_factory = getControlFactory(std::move(config_obj), context); + std::unique_ptr config_obj( + new Tcp::Mixer::Config(config_pb)); + + auto control_factory = std::make_shared( + std::move(config_obj), context); return [control_factory](Network::FilterManager& filter_manager) -> void { std::shared_ptr instance = std::make_shared(control_factory->control()); @@ -61,23 +64,6 @@ class FilterFactory : public NamedNetworkFilterConfigFactory { filter_manager.addWriteFilter(Network::WriteFilterSharedPtr(instance)); }; } - - Tcp::Mixer::ControlFactorySharedPtr getControlFactory( - Tcp::Mixer::ConfigPtr config_obj, FactoryContext& context) { - const std::string hash = config_obj->config_pb().SerializeAsString(); - Tcp::Mixer::ControlFactorySharedPtr control_factory = - control_factory_maps_[hash].lock(); - if (!control_factory) { - control_factory = std::make_shared( - std::move(config_obj), context); - control_factory_maps_[hash] = control_factory; - } - return control_factory; - } - - // A weak pointer map to share control factory across different listeners. - std::unordered_map> - control_factory_maps_; }; static Registry::RegisterFactory