Merge pull request #11597 from SergeTupchiy/mria-bootstrap-batch-size-config

Mria bootstrap batch size config
This commit is contained in:
SergeTupchiy 2023-09-13 13:19:03 +03:00 committed by GitHub
commit e20cc9d26f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 30 additions and 3 deletions

View File

@ -28,7 +28,7 @@
{gproc, {git, "https://github.com/emqx/gproc", {tag, "0.9.0.1"}}},
{cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}},
{esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.6"}}},
{ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.11"}}},
{ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.13"}}},
{gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}},
{hocon, {git, "https://github.com/emqx/hocon.git", {tag, "0.39.16"}}},
{emqx_http_lib, {git, "https://github.com/emqx/emqx_http_lib.git", {tag, "0.5.3"}}},

View File

@ -674,6 +674,16 @@ fields("node") ->
default => #{}
}
)},
{"default_bootstrap_batch_size",
sc(
pos_integer(),
#{
mapping => "mria.bootstrap_batch_size",
importance => ?IMPORTANCE_HIDDEN,
default => 500,
desc => ?DESC(db_default_bootstrap_batch_size)
}
)},
{"broker_pool_size",
sc(
pos_integer(),

View File

@ -0,0 +1,7 @@
- Upgrade ekka to 0.15.13, which includes the following changes:
- upgrade Mria to 0.6.2:
- make bootstrap batch size configurable, [Mria PR](https://github.com/emqx/mria/pull/159)
- improve robustness of mria_membership processes, [Mria PR](https://github.com/emqx/mria/pull/156)
- fix log message formatting error
- Add `node.default_bootstrap_batch_size` option to EMQX configuration.
Increasing the value of this option can greatly reduce a replicant node startup time, especially when EMQX cluster interconnect network latency is high and EMQX built-in database holds large amount of data, e.g. when the number of subscriptions is high.

View File

@ -55,7 +55,7 @@ defmodule EMQXUmbrella.MixProject do
{:cowboy, github: "emqx/cowboy", tag: "2.9.2", override: true},
{:esockd, github: "emqx/esockd", tag: "5.9.6", override: true},
{:rocksdb, github: "emqx/erlang-rocksdb", tag: "1.8.0-emqx-1", override: true},
{:ekka, github: "emqx/ekka", tag: "0.15.11", override: true},
{:ekka, github: "emqx/ekka", tag: "0.15.13", override: true},
{:gen_rpc, github: "emqx/gen_rpc", tag: "2.8.1", override: true},
{:grpc, github: "emqx/grpc-erl", tag: "0.6.8", override: true},
{:minirest, github: "emqx/minirest", tag: "1.3.11", override: true},

View File

@ -62,7 +62,7 @@
, {cowboy, {git, "https://github.com/emqx/cowboy", {tag, "2.9.2"}}}
, {esockd, {git, "https://github.com/emqx/esockd", {tag, "5.9.6"}}}
, {rocksdb, {git, "https://github.com/emqx/erlang-rocksdb", {tag, "1.8.0-emqx-1"}}}
, {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.11"}}}
, {ekka, {git, "https://github.com/emqx/ekka", {tag, "0.15.13"}}}
, {gen_rpc, {git, "https://github.com/emqx/gen_rpc", {tag, "2.8.1"}}}
, {grpc, {git, "https://github.com/emqx/grpc-erl", {tag, "0.6.8"}}}
, {minirest, {git, "https://github.com/emqx/minirest", {tag, "1.3.11"}}}

View File

@ -776,6 +776,16 @@ the default is to use the value set in <code>db.default_shard_transport</code>."
db_shard_transports.label:
"""Shard Transports"""
db_default_bootstrap_batch_size.desc:
"""The number of built-in database table records to be pushed in one chunk from a core node to a replicant node during bootstrap.
The bootstrapping occurs when a new replicant node is added to the cluster or an existing replicant node reconnects to a core one.
Increasing this value may greatly reduce a replicant node startup time, especially when EMQX cluster interconnect network latency is high
and EMQX built-in database holds large amount of data, e.g. when the number of subscriptions is high.
Defaults to 500."""
db_default_bootstrap_batch_size.label:
"""Default Bootstrap Batch Size"""
node_broker_pool_size.desc:
"""The number of workers in emqx_broker pool. Increasing this value may improve performance
by enhancing parallelism, especially when EMQX cluster interconnect network latency is high.