From 1d9ce709f4eaf65b213d8279491b67bb5c7366b0 Mon Sep 17 00:00:00 2001 From: Serge Tupchii Date: Thu, 8 Feb 2024 20:05:24 +0200 Subject: [PATCH] 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)