Commit Graph

20997 Commits

Author SHA1 Message Date
zmstone 30d4eb9250 docs: fix i18n message lable ID 2024-03-20 14:57:51 +01:00
Andrew Mayorov 7257fe526b
fix(ci): add `ra` to emqx app dependencies as well 2024-03-20 14:46:53 +01:00
zmstone 90fce21adc docs: add change log for #12746
also updated #12520 to include newly added throttled log id
2024-03-20 14:43:28 +01:00
zmstone 38e30622f3 chore(license): add LICENSE tag to logs 2024-03-20 14:42:01 +01:00
zmstone 2c81b56377 feat: add authentication_failure throttled log
also included changes:

1. add 'username' to log metadata
2. add 'tag' to authz warning logs
2024-03-20 14:42:01 +01:00
Zaiming (Stone) Shi e5f9e7631d
Merge pull request #12736 from zmstone/0319-json-schema-draft-06-as-default-version
chore: upgrade to jesse 1.8.0 for draft-06 as default version
2024-03-20 14:39:37 +01:00
Kjell Winblad 27d109ce6d refactor(syskeeper connector): to use emqx_connector_info
This commit refactors the syskeeper connector to use the
`emqx_connector_info` behavior.
2024-03-20 14:29:02 +01:00
Serge Tupchii cb5fdb3c79 fix: rework In-flight / Mqueue API
- use timestamp 'position' to find the next chunk of data
- add 'start' position to response meta
- sort In-flight messages by insertion time
- sort Mqueue messages by priority
2024-03-20 15:25:33 +02:00
ieQu1 be88e906a0
Merge pull request #12747 from ieQu1/dev/bulk-ds-kickout
fix(mgmt): Fix bulk kickout of durable sessions
2024-03-20 14:03:20 +01:00
Kjell Winblad 188ab71673 refactor(rocketmq connector): to use emqx_connector_info
This commit refactors the rocketmq connector to use the
`emqx_connector_info` behavior.
2024-03-20 14:02:18 +01:00
Kjell Winblad aa368bb9d0 refactor(redis connector): to use emqx_connector_info
This commit refactors the redis connector to use the
`emqx_connector_info` behavior.
2024-03-20 13:49:28 +01:00
Kjell Winblad 12717baa0b refactor(mqtt connector): to use emqx_connector_info
This commit refactors the mqtt connector to use the
`emqx_connector_info` behavior.
2024-03-20 13:33:13 +01:00
Andrew Mayorov e55e1dd1b2
chore: whitelist `ra` to make RPCs w/o BPAPIs 2024-03-20 13:20:25 +01:00
Andrew Mayorov a8baff61ec
docs(dsrepl): describe briefly what `n_sites` is for 2024-03-20 13:20:25 +01:00
Andrew Mayorov efac5c6197
test(ds): stabilize `t_message_gc` testcase 2024-03-20 13:20:25 +01:00
Andrew Mayorov fe50a1711b
fix(ds-egress): drop pending batch on failures
Before this commit, messages in the current batch will be retried as
part of next batch. This could have led to message duplication which is
probably not what the user wants by default.
2024-03-20 13:20:25 +01:00
Andrew Mayorov a1f5de3f5b
fix(dsrepl): turn memoize into a safer function 2024-03-20 13:20:24 +01:00
Andrew Mayorov d39ca41070
chore(dsrepl): mark per-node `add_generation` RPC target obsolete
Also annotate internal exports with comments according with their
intended use.
2024-03-20 13:20:24 +01:00
Andrew Mayorov 35b18f9125
fix(dsrepl): properly handle error conditions in generation mgmt
Also update few outdated typespecs. Also make error reasons easier
to comprehend.
2024-03-20 13:20:24 +01:00
Andrew Mayorov f2268aa69a
fix(dsrepl): use correct base dir for ra system stuff
Co-Authored-By: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-03-20 13:20:24 +01:00
Andrew Mayorov 404e919494
refactor(dsrepl): make shard allocator more robust and consistent
Co-Authored-By: Thales Macedo Garitezi <thalesmg@gmail.com>
2024-03-20 13:20:24 +01:00
Andrew Mayorov 0e18bd6e80
fix(dsrepl): increase replication site id bitsize back
In order to minimize chances of site id collision to practically zero.
2024-03-20 13:20:24 +01:00
Andrew Mayorov 46d9adb926
fix(build): sync mix dependencies 2024-03-20 13:20:24 +01:00
Andrew Mayorov ac9700dd28
fix(dsrepl): split shard allocator into a separate module 2024-03-20 13:20:23 +01:00
Andrew Mayorov 1b647035d0
chore(dsrepl): make dialyzer a bit happier 2024-03-20 13:20:23 +01:00
Andrew Mayorov 611b3f0e07
feat(dsrepl): use more straightforward way to drop ra shards 2024-03-20 13:20:23 +01:00
Andrew Mayorov 74881e8706
feat(dsrepl): make storage layer unaware of granularity of time
Storage also becomes a bit more pure, depending on the upper layer to
provide the timestamps, which also makes it possible to handle more
operations idempotently.
2024-03-20 13:20:23 +01:00
ieQu1 783f769a98 fix(mgmt): Fix bulk kickout of durable sessions 2024-03-20 12:52:44 +01:00
Kjell Winblad 223bbc05fe refactor(mysql connector): to use emqx_connector_info
This commit refactors the mysql connector to use the
`emqx_connector_info` behavior.
2024-03-20 11:12:38 +01:00
Kjell Winblad c6d7c57bbd refactor(clickhouse connector): to use emqx_connector_info
This commit refactors the clickhouse connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:59:58 +01:00
JimMoen 5390203184
Merge pull request #12744 from JimMoen/EMQX-12046/fix-otel-cpu-sup
fix(otel): cpu usage/idle metrics for opentelemetry
2024-03-20 17:52:29 +08:00
Kjell Winblad afa3da6d0d refactor(cassandra connector): to use emqx_connector_info
This commit refactors the cassandra connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:50:44 +01:00
Kjell Winblad 159ab81904 refactor(influxdb connector): to use emqx_connector_info
This commit refactors the influxdb connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:39:16 +01:00
Kjell Winblad c1e6092013 refactor(oracle connector): to use emqx_connector_info
This commit refactors the oracle connector to use the
`emqx_connector_info` behavior.
2024-03-20 10:12:55 +01:00
JimMoen 808efe0f64
chore: rm outdated comment 2024-03-20 16:49:36 +08:00
JimMoen b8b4c5a34a
fix(otel): cpu usage/idle metrics for opentelemetry 2024-03-20 16:48:21 +08:00
ieQu1 0547b32727
feat(sessds): Add zone overrides for session durability settings 2024-03-19 22:51:06 +01:00
ieQu1 611e4f6710
Merge pull request #12740 from ieQu1/dev/kick-durable-sessions
fix(sessds): Channel must destroy sessions that are kicked
2024-03-19 21:30:40 +01:00
Andrew Mayorov e2db038e7c
Merge pull request #12734 from keynslug/fix/EMQX-12030/topics-api
fix(api-topics): expose persistent session topics in APIs
2024-03-19 21:08:23 +01:00
Andrew Mayorov 3cb36a5619
feat(ds-lts): extract timestamp from storage key itself
1. This avoids the need to deserialize the message to get the timestamp.
2. It also makes possible to decouple the storage key timestamp from the
   message timestamp, which might be useful for replication purposes.
2024-03-19 20:21:56 +01:00
Andrew Mayorov 5cc0246351
feat(dsrepl): allow to tune select ra options 2024-03-19 20:21:55 +01:00
Andrew Mayorov 54b5adf868
feat(dsrepl): allocate shards predictably
To ensure strictly optimal and fair shard allocation across
cluster. Before this commit it was quite easy to end up with
an allocation significantly skewed towards some node, because
of the nature of randomness and relatively small number of
shards.
2024-03-19 20:21:55 +01:00
Andrew Mayorov d30c99512a
feat(utils-stream): add a few more stream combinators 2024-03-19 20:21:54 +01:00
Andrew Mayorov 887e151be5
fix(dsrepl): handle errors gracefully in shard egress process
Also add cooldown on timeout / unavailability.
2024-03-19 20:21:53 +01:00
Andrew Mayorov e16aee99b4
chore(dsrepl): clarify how to perform leadership transfer in runtime 2024-03-19 20:21:18 +01:00
Ivan Dyachkov 749ad73819
Merge pull request #12721 from emqx/dependabot/github_actions/actions-d8a5788e1a
chore(deps): bump the actions group with 3 updates
2024-03-19 20:16:03 +01:00
Andrew Mayorov 00d509f27b
feat(dsrepl): prefer local replica in read path
To optimize out any unnecessary RPCs. Given the load should be
smoothed evenly across the cluster, choosing non-leader node is
not a priority.
2024-03-19 20:11:42 +01:00
Andrew Mayorov 19305c223c
fix(dsrepl): require majority for replication-related tables 2024-03-19 20:11:42 +01:00
Andrew Mayorov f89909f60c
fix(dsrepl): tolerate trigger election timeouts for existing servers 2024-03-19 20:11:42 +01:00
Andrew Mayorov 6c6ea50e42
fix(boot): add `emqx_durable_storage` to the list of restarted apps 2024-03-19 20:11:42 +01:00