From edc1581b4b9087313071f886752a75781bbedf21 Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 27 Oct 2021 08:26:02 +0200 Subject: [PATCH 1/5] perf(pool): change emqx_retainer_pool type to hash --- apps/emqx_retainer/src/emqx_retainer_pool.erl | 2 +- apps/emqx_retainer/src/emqx_retainer_sup.erl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/emqx_retainer/src/emqx_retainer_pool.erl b/apps/emqx_retainer/src/emqx_retainer_pool.erl index 59ea1077a..6b48c0453 100644 --- a/apps/emqx_retainer/src/emqx_retainer_pool.erl +++ b/apps/emqx_retainer/src/emqx_retainer_pool.erl @@ -172,7 +172,7 @@ cast(Msg) -> %% @private worker() -> - gproc_pool:pick_worker(?POOL). + gproc_pool:pick_worker(?POOL, self()). run({M, F, A}) -> erlang:apply(M, F, A); diff --git a/apps/emqx_retainer/src/emqx_retainer_sup.erl b/apps/emqx_retainer/src/emqx_retainer_sup.erl index 3811ed8f2..0234c20e7 100644 --- a/apps/emqx_retainer/src/emqx_retainer_sup.erl +++ b/apps/emqx_retainer/src/emqx_retainer_sup.erl @@ -26,7 +26,7 @@ start_link() -> supervisor:start_link({local, ?MODULE}, ?MODULE, []). init([]) -> - PoolSpec = emqx_pool_sup:spec([emqx_retainer_pool, random, emqx_vm:schedulers(), + PoolSpec = emqx_pool_sup:spec([emqx_retainer_pool, hash, emqx_vm:schedulers(), {emqx_retainer_pool, start_link, []}]), {ok, {{one_for_one, 10, 3600}, [#{id => retainer, From 1c93331e34e531164e63622970eb03285f2266f4 Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 27 Oct 2021 08:43:34 +0200 Subject: [PATCH 2/5] perf(pool): emqx_authn_http pool type hash --- apps/emqx_authn/src/simple_authn/emqx_authn_http.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl b/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl index ceb4b30a8..66ea00af4 100644 --- a/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl +++ b/apps/emqx_authn/src/simple_authn/emqx_authn_http.erl @@ -133,7 +133,7 @@ create(#{ method := Method case emqx_resource:create_local(Unique, emqx_connector_http, Config#{base_url => maps:remove(query, URIMap), - pool_type => random}) of + pool_type => hash}) of {ok, already_created} -> {ok, State}; {ok, _} -> From 34979c51d7976f6f221f14e63e93023dd4c67413 Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 27 Oct 2021 08:45:13 +0200 Subject: [PATCH 3/5] perf(config): emqx_bridge default hash pool --- apps/emqx_bridge/etc/emqx_bridge.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_bridge/etc/emqx_bridge.conf b/apps/emqx_bridge/etc/emqx_bridge.conf index f26172ef6..e1d2d4be7 100644 --- a/apps/emqx_bridge/etc/emqx_bridge.conf +++ b/apps/emqx_bridge/etc/emqx_bridge.conf @@ -51,7 +51,7 @@ # connect_timeout: "30s" # max_retries: 3 # retry_interval = "10s" -# pool_type = "random" +# pool_type = "hash" # pool_size = 4 # enable_pipelining = true # ssl { From 9c8cd6c43753ce0fa0e24688e7077de82460ef8c Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 27 Oct 2021 08:47:02 +0200 Subject: [PATCH 4/5] perf(pool): change emqx_connector default pool type to hash --- apps/emqx_connector/src/emqx_connector_http.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_connector/src/emqx_connector_http.erl b/apps/emqx_connector/src/emqx_connector_http.erl index c724ddb7a..61fcb1c67 100644 --- a/apps/emqx_connector/src/emqx_connector_http.erl +++ b/apps/emqx_connector/src/emqx_connector_http.erl @@ -105,7 +105,7 @@ retry_interval(default) -> <<"1s">>; retry_interval(_) -> undefined. pool_type(type) -> pool_type(); -pool_type(default) -> random; +pool_type(default) -> hash; pool_type(_) -> undefined. pool_size(type) -> non_neg_integer(); From 5e6dab435a921b200630d4c563a252b74ef12fe7 Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 27 Oct 2021 08:48:41 +0200 Subject: [PATCH 5/5] perf(pool): authz http example pool_type to hash --- apps/emqx_authz/src/emqx_authz_api_schema.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_authz/src/emqx_authz_api_schema.erl b/apps/emqx_authz/src/emqx_authz_api_schema.erl index b05476b03..3aa0cd677 100644 --- a/apps/emqx_authz/src/emqx_authz_api_schema.erl +++ b/apps/emqx_authz/src/emqx_authz_api_schema.erl @@ -86,7 +86,7 @@ definitions() -> pool_type => #{ type => string, enum => [<<"random">>, <<"hash">>], - example => <<"random">> + example => <<"hash">> }, pool_size => #{type => integer}, enable_pipelining => #{type => boolean},