From c9ee5addb4faea15ec35fb7c5a5dfc9fa3703a0c Mon Sep 17 00:00:00 2001 From: Serge Tupchii Date: Thu, 8 Feb 2024 20:00:26 +0200 Subject: [PATCH 1/2] perf: upgrade mongodb-erlang to v3.0.23 Fixes: EMQX-11825 --- apps/emqx_mongodb/rebar.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/emqx_mongodb/rebar.config b/apps/emqx_mongodb/rebar.config index 9cee51c35..b9390afc6 100644 --- a/apps/emqx_mongodb/rebar.config +++ b/apps/emqx_mongodb/rebar.config @@ -4,5 +4,5 @@ {deps, [ {emqx_connector, {path, "../../apps/emqx_connector"}}, {emqx_resource, {path, "../../apps/emqx_resource"}}, - {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.22"}}} + {mongodb, {git, "https://github.com/emqx/mongodb-erlang", {tag, "v3.0.23"}}} ]}. From 1d9ce709f4eaf65b213d8279491b67bb5c7366b0 Mon Sep 17 00:00:00 2001 From: Serge Tupchii Date: Thu, 8 Feb 2024 20:05:24 +0200 Subject: [PATCH 2/2] perf: un-deprecate mongodb topology pool_size and set it to 10 by default Benchmarks proved that it effects performance: 10 ecpool workers / 10 topology pool workers outperform 100 ecpool / 1 topology worker. Fixes: EMQX-11825 --- apps/emqx_mongodb/src/emqx_mongodb.erl | 22 +++------------------- changes/ee/perf-12494.en.md | 3 +++ 2 files changed, 6 insertions(+), 19 deletions(-) create mode 100644 changes/ee/perf-12494.en.md diff --git a/apps/emqx_mongodb/src/emqx_mongodb.erl b/apps/emqx_mongodb/src/emqx_mongodb.erl index 2c246e506..e959804cc 100644 --- a/apps/emqx_mongodb/src/emqx_mongodb.erl +++ b/apps/emqx_mongodb/src/emqx_mongodb.erl @@ -131,8 +131,8 @@ fields(topology) -> hoconsc:mk( pos_integer(), #{ - deprecated => {since, "5.1.1"}, - importance => ?IMPORTANCE_HIDDEN + importance => ?IMPORTANCE_HIDDEN, + default => 10 } )}, {max_overflow, fun max_overflow/1}, @@ -201,23 +201,7 @@ on_start( false -> [{ssl, false}] end, - Topology0 = maps:get(topology, NConfig, #{}), - %% we fix this at 1 because we already have ecpool - case maps:get(pool_size, Topology0, 1) =:= 1 of - true -> - ok; - false -> - ?SLOG( - info, - #{ - msg => "mongodb_overriding_topology_pool_size", - connector => InstId, - reason => "this option is deprecated; please set `pool_size' for the connector", - value => 1 - } - ) - end, - Topology = Topology0#{pool_size => 1}, + Topology = maps:get(topology, NConfig, #{}), Opts = [ {mongo_type, init_type(NConfig)}, {hosts, Hosts}, diff --git a/changes/ee/perf-12494.en.md b/changes/ee/perf-12494.en.md new file mode 100644 index 000000000..6c447caec --- /dev/null +++ b/changes/ee/perf-12494.en.md @@ -0,0 +1,3 @@ +Improve MongoDB connector performance. + +- [mongodb-erlang PR](https://github.com/emqx/mongodb-erlang/pull/41)