Commit Graph

17589 Commits

Author SHA1 Message Date
Thales Macedo Garitezi
b30bcf32bd feat(ds): introduce keyspace concept
Fixes https://emqx.atlassian.net/browse/EMQX-10579

This introduces the concept of "keyspaces" to our durable storage (DS) implementation, and
also refactors some places where "shard" and "keyspace" would be mixed up.

We might want to tune the storage options differently for distinct sets of topics, the
keyspaces.  The keyspace is composed by one or more shards.

- Keyspaces are identified simply by binary strings.
- DS configuration is scoped by keyspaces instead of shards.
- Starting a new DS shard requires definining to which keyspace the shard belongs.
2023-09-14 16:39:00 -03:00
Thales Macedo Garitezi
e41f7dd68c
Merge pull request #11598 from thalesmg/ds-fix-ps-router-m-20230912
fixes and improvements to persistent session router
2023-09-14 10:00:58 -03:00
lafirest
e07179a054
Merge pull request #11576 from lafirest/fix/banned_typo
fix(banned): fix typos
2023-09-14 14:31:22 +08:00
firest
3eb46be2ae fix(banned): fix typos 2023-09-14 14:01:59 +08:00
Thales Macedo Garitezi
803b69d878
refactor: use more consistent return types
Co-authored-by: Andrew Mayorov <encube.ul@gmail.com>
2023-09-13 10:49:45 -03:00
Thales Macedo Garitezi
f55f6dc779 docs(ps_session): add notes explaining rationale about operation order and consistency 2023-09-13 10:12:27 -03:00
Thales Macedo Garitezi
e081abb9e6 perf(ps_router): only check if there are any routes when deciding whether to persist message 2023-09-13 10:02:39 -03:00
Thales Macedo Garitezi
cae9ae1fab fix(ps_router): use disc_copies for storing persistent session routes 2023-09-13 10:02:39 -03:00
SergeTupchiy
cf334d5542
Merge pull request #11567 from SergeTupchiy/EMQX-10835-increase-graceful-stop-timeout
fix(nodetool): increase graceful stop timeout
2023-09-13 13:22:39 +03:00
SergeTupchiy
e20cc9d26f
Merge pull request #11597 from SergeTupchiy/mria-bootstrap-batch-size-config
Mria bootstrap batch size config
2023-09-13 13:19:03 +03:00
Serge Tupchii
a336300ab5 chore: add changelog 2023-09-13 10:54:50 +03:00
Serge Tupchii
e1456c1c04 feat(emqx_conf_schema): add node.default_bootstrap_batch_size config parameter 2023-09-13 10:11:14 +03:00
Serge Tupchii
af015bc2bb chore(ekka): bump version to 0.15.13 2023-09-13 10:11:14 +03:00
Serge Tupchii
f790690d8b fix(bin/emqx): don't suppress wait_for command output, as it can print warning messages 2023-09-12 19:55:16 +03:00
Serge Tupchii
6dd9e54ab8 fix(bin/emqx): remove ps -e opt, as it lists all processes regardless of -p <pid> 2023-09-12 19:55:16 +03:00
Serge Tupchii
9b3f88aeeb feat(nodetool): print shutdown status messages while EMQX is stopping 2023-09-12 19:55:16 +03:00
Serge Tupchii
9de9631d6b fix(nodetool): increase graceful stop timeout, handle and report {badrpc, timeout} error 2023-09-12 19:55:16 +03:00
Thales Macedo Garitezi
f2346b2e9a
Merge pull request #11574 from thalesmg/ds-topic-filter-m-20230907
feat(ds): add filter for message persistence
2023-09-12 12:47:26 -03:00
Thales Macedo Garitezi
59b94788bf refactor: address review comments 2023-09-11 16:25:34 -03:00
Thales Macedo Garitezi
64fcdb671d test: fix a bunch of inter-suite interferences 2023-09-11 16:25:34 -03:00
Thales Macedo Garitezi
f1294736b7 feat(ds): add filter for message persistence
Fixes https://emqx.atlassian.net/browse/EMQX-10520
2023-09-11 16:25:34 -03:00
Thales Macedo Garitezi
fe4640922d feat(ds): add delete callback 2023-09-11 16:25:33 -03:00
Thales Macedo Garitezi
7805cc8c9b fix(session): check if session is persistent 2023-09-11 16:25:33 -03:00
Thales Macedo Garitezi
a054049d12
Merge pull request #11586 from thalesmg/fix-session-record-m-20230911
fix(session): remove recently added `iterators` field from `#session{}` record
2023-09-11 16:03:26 -03:00
Thales Macedo Garitezi
063913f245 fix(session): remove recently added iterators field from #session{} record
Fixes https://emqx.atlassian.net/browse/EMQX-10945

This could lead to `badrecord` errors being raised if a takeover were to happen during a
rolling cluster upgrade, as the old nodes could receive a record with more fields than
expected.
2023-09-11 14:46:12 -03:00
Andrew Mayorov
19abb7c99e
Merge pull request #11579 from keynslug/fix/otp-24-compat
fix(router): use `ets:new/2` options compatible with OTP 24
2023-09-08 18:52:24 +04:00
Andrew Mayorov
3d133801af
fix(router): use ets:new/2 options compatible with OTP 24
While essentially keeping the same effect.
2023-09-08 18:04:29 +04:00
Thales Macedo Garitezi
e089fda260
Merge pull request #11568 from thalesmg/republish-props-m-20230905
feat(republish): allow templating mqtt properties
2023-09-07 16:43:00 -03:00
Thales Macedo Garitezi
68293231b8 test: add cases for more complex placeholders 2023-09-07 13:40:03 -03:00
Thales Macedo Garitezi
014bc64d3b chore: ensure general prop is a binary 2023-09-07 13:40:03 -03:00
Thales Macedo Garitezi
02b8bbf76a chore: drop templating support for Subscription-Identifier
This is highly-dependent on the session state, as is `Topic-Alias`.
2023-09-07 13:40:03 -03:00
Thales Macedo Garitezi
47bd19dee4 chore: lower error log messages down to debug 2023-09-07 13:40:03 -03:00
Thales Macedo Garitezi
080cb73da1 fix: handle badmap inside emqx_placeholder:proc_tmpl 2023-09-07 13:40:03 -03:00
zhongwencool
0376c0fd10
Merge pull request #11569 from zmstone/0906-sync-release-52-to-master
0906 sync release 52 to master
2023-09-07 11:18:59 +08:00
Zaiming (Stone) Shi
7c2f87fabe test: merge broker and router boot modules 2023-09-06 21:36:16 +02:00
Thales Macedo Garitezi
bb55b04d46 refactor: inline fn clauses, improve error logging 2023-09-06 13:54:40 -03:00
Thales Macedo Garitezi
c9100c7591
refactor: improve logging information and descriptions
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-09-06 13:33:59 -03:00
Thales Macedo Garitezi
78c5a779d7 feat(republish): allow templating mqtt properties
Fixes https://emqx.atlassian.net/browse/EMQX-10912
2023-09-06 09:54:02 -03:00
Zaiming (Stone) Shi
18c6bfec97 chore: bump app vsns 2023-09-06 11:12:56 +02:00
Zaiming (Stone) Shi
916306b6ba chore: delete beta release feature changelog 2023-09-06 09:56:36 +02:00
Zaiming (Stone) Shi
e794143ae1 Merge remote-tracking branch 'origin/release-52' into 0906-sync-release-52-to-master 2023-09-06 09:08:22 +02:00
Thales Macedo Garitezi
954b73a9aa
Merge pull request #11533 from thalesmg/ds-unsubscribe-m-20230828
feat(ds): close iterators when handling `UNSUBSCRIBE` packets
2023-09-05 09:47:17 -03:00
ieQu1
51b5ac11d2
Merge pull request #11564 from ieQu1/dev/mria-0.6.1
chore(mria): Bump mria to 0.6.1
2023-09-05 12:58:17 +02:00
ieQu1
01a128878f chore(mria): Bump mria to 0.6.1 2023-09-05 11:08:32 +02:00
Andrew Mayorov
d26995a2aa
Merge pull request #11524 from keynslug/ft/EMQX-10713/unified-route-tab
feat(router): add routing storage schema with 2 tables
2023-09-05 12:38:00 +04:00
Zaiming (Stone) Shi
f6d347304b
Merge pull request #11562 from thalesmg/cluster-purge-r52-20230904
feat: cluster purge (r5.2)
2023-09-05 10:22:43 +02:00
Thales Macedo Garitezi
23d63f5e01 refactor: fork clientid type for emqx_ds:session_id/0 2023-09-04 15:38:25 -03:00
Thales Macedo Garitezi
60ae3c15c8 refactor: disregard impossible case 2023-09-04 15:38:25 -03:00
Thales Macedo Garitezi
2cfe5ba057 fix(plugins_api): fix response types and test 2023-09-04 14:37:25 -03:00
Thales Macedo Garitezi
02c3d6a0a7 fix(data_import): rm duplicate import call and fix test 2023-09-04 14:19:59 -03:00