diff --git a/apps/emqx/src/emqx_persistent_message.erl b/apps/emqx/src/emqx_persistent_message.erl index 50e25e0be..30ebe7417 100644 --- a/apps/emqx/src/emqx_persistent_message.erl +++ b/apps/emqx/src/emqx_persistent_message.erl @@ -54,12 +54,14 @@ is_persistence_enabled() -> storage_backend() -> storage_backend(emqx_config:get([session_persistence, storage])). -storage_backend(#{builtin := #{enable := true}}) -> +storage_backend(#{ + builtin := #{enable := true, n_shards := NShards, replication_factor := ReplicationFactor} +}) -> #{ backend => builtin, storage => {emqx_ds_storage_bitfield_lts, #{}}, - n_shards => 16, - replication_factor => 3 + n_shards => NShards, + replication_factor => ReplicationFactor }. %%-------------------------------------------------------------------- diff --git a/apps/emqx/src/emqx_schema.erl b/apps/emqx/src/emqx_schema.erl index 1e6db805b..8e401a442 100644 --- a/apps/emqx/src/emqx_schema.erl +++ b/apps/emqx/src/emqx_schema.erl @@ -341,22 +341,6 @@ fields("persistent_session_store") -> importance => ?IMPORTANCE_HIDDEN } )}, - {"n_shards", - sc( - pos_integer(), - #{ - default => 16, - importance => ?IMPORTANCE_HIDDEN - } - )}, - {"replication_factor", - sc( - pos_integer(), - #{ - default => 3, - importance => ?IMPORTANCE_HIDDEN - } - )}, {"on_disc", sc( boolean(), @@ -1807,6 +1791,22 @@ fields("session_storage_backend_builtin") -> desc => ?DESC(session_storage_backend_enable), default => true } + )}, + {"n_shards", + sc( + pos_integer(), + #{ + desc => ?DESC(session_builtin_n_shards), + default => 16 + } + )}, + {"replication_factor", + sc( + pos_integer(), + #{ + default => 3, + importance => ?IMPORTANCE_HIDDEN + } )} ]. diff --git a/rel/i18n/emqx_schema.hocon b/rel/i18n/emqx_schema.hocon index d12f6a2d1..389a1f91b 100644 --- a/rel/i18n/emqx_schema.hocon +++ b/rel/i18n/emqx_schema.hocon @@ -1565,6 +1565,9 @@ session_persistence_storage.desc: session_storage_backend_enable.desc: """Enable this backend.""" +session_builtin_n_shards.desc: +"""Number of shards used for storing the messages.""" + session_storage_backend_builtin.desc: """Builtin session storage backend utilizing embedded RocksDB key-value store."""