Commit Graph

5689 Commits

Author SHA1 Message Date
William Yang e7fc75fdf2 perf(broker): Optimization for handling bursty traffic
intro. new lock type: 'spawn' of broker.perf.route_lock_type

mnesia get lock calls are not optimized for selective receive.

hence taking locks would be very expensive while there are tones of
messages in the brokers message queue.

This optimization run the transaction in a separate process to utilize
the selective receive optimization of the compiler.
2021-04-28 15:39:46 +02:00
Zaiming Shi 4bdcdfb9b9 chore(config): Add new configs to emqx.conf 2021-04-28 15:19:53 +02:00
wwhai 54dc75ed79 fix(deps): fix function clause at apply_new_config 2021-04-28 20:39:16 +08:00
Zaiming Shi fbe15859f5 fix(emqx_rule_utils): http connectivity check ipv6 support 2021-04-28 10:43:36 +02:00
Zaiming Shi 078ca67268 test(emqx_auth_http): test ipv6 + hostname resolution 2021-04-28 10:43:36 +02:00
Zaiming Shi 29475eb610 feat(emqx_http_lib): try to parse host ip 2021-04-28 10:43:36 +02:00
Zaiming Shi a37f47887a fix(ipv6): add ipv6_probe socket option only when supported
ipv6_probe is a socket option supported in EMQ's otp.git fork.
If the target hostname has a ipv6 DNS resolution, gen_tcp
tries to establish a connection on ipv6.
If it fails, then a fallback to default gen_tcp:connection
2021-04-28 10:43:36 +02:00
zhouzb d9c7c72612 feat(ipv6 probe): automatically probe whether it is IPv6 2021-04-28 10:43:36 +02:00
Zaiming Shi b688bcfe74 feat(eqmx_misc): add an api to ensure ipv6_probe socket option 2021-04-28 10:43:36 +02:00
Zaiming Shi e54433d342 feat(emqx_vm): add api to inspect which otp version running on 2021-04-28 10:43:36 +02:00
wwhai 4facf4afe0 fix(deps): change ecpool to 0.5.1 2021-04-28 09:50:31 +08:00
Zaiming Shi cacb56a25c build: pin erl23.2.7.2-emqx-1 2021-04-27 21:23:40 +02:00
JianBo He 7ae06590de test(auth-mnesia): test the password_hash option 2021-04-27 21:10:33 +08:00
JianBo He d5abfd0caa fix(auth-mnesia): fix env name typos 2021-04-27 21:10:33 +08:00
wwhai 773b8eef2f fix(deps): increase time sleep 2021-04-27 21:04:24 +08:00
Shawn bea28d887c fix(rule_engine): refresh rules and then re-enable it 2021-04-27 15:45:25 +08:00
Shawn 6557b132a2 fix(rule_engine): only refresh enabled rules at bootup 2021-04-27 11:17:12 +08:00
Shawn 7198c018e2 fix(rule_engine): change the rule state when force enabled/disabled 2021-04-27 11:17:12 +08:00
Shawn 18688da0c1 fix(rule_engine): only auto re-enable the rule when it was force disabled 2021-04-27 11:17:12 +08:00
Shawn da81ab7988 fix(rule_engine): remove sleep before refresh rules 2021-04-27 11:17:12 +08:00
Shawn e3501acc02 fix(rule_engine): delete resource crashes when dependent rule exists 2021-04-27 11:17:12 +08:00
Shawn 3646e76a7a fix(rule_engine): re-enable rules after resource started 2021-04-27 11:17:12 +08:00
Shawn 9fd43ef882 fix(rule_engine): reformat some code for dependent rules discovery 2021-04-27 11:17:12 +08:00
Ertan Deniz 07d5c0f9df feat(exhook): add ssl cert info to ClientInfo 2021-04-27 09:20:38 +08:00
k32 18ea764628
Merge pull request #4683 from k32/ignore-coverall-errors
chore(ci): Don't fail builds when coveralls is misbehaving
2021-04-26 14:58:45 +02:00
zhanghongtong 883614e8c3 chore(release): update emqx release version 2021-04-26 20:42:36 +08:00
Zaiming Shi d926800204 chore: add emqx_broker_bench.erl 2021-04-26 14:40:39 +02:00
k32 5fe1e30ad9 chore(ci): Don't fail builds when coveralls is misbehaving 2021-04-26 14:27:22 +02:00
JianBo He 910449e67b fix(exhook): allow certificate options absent 2021-04-26 20:27:17 +08:00
k32 6d4da4a01a chore(snabbkaffe): Update version to 0.12.0 2021-04-26 14:20:52 +02:00
Zaiming Shi cdacaf8694 perf(emqx_trie): use ordered_set 2021-04-26 14:18:40 +02:00
Zaiming Shi b1df759adc refactor(emqx_trie): rename internal function to match_# 2021-04-26 14:18:40 +02:00
Zaiming Shi 8d55d425dc chore(emqx_trie): add test case to cover multiple levels of + wildcards 2021-04-26 14:18:40 +02:00
Zaiming Shi eb946eb80c fix(emqx_trie): do not try to match wildcard topics 2021-04-26 14:18:40 +02:00
Zaiming Shi 22e72cdd82 refactor(emqx_trie): rename record from eqmx_topic to emqx_trie 2021-04-26 14:18:40 +02:00
Zaiming Shi bc6a87946c refactor(emqx_trie): store only prefixes
This commit refactors emqx_trie implementation
with mainly two changes

1. Deleted the edge table.

   In the old implementation, trie consist of nodes and edges.
   e.g. for topic 'a/b/+/d', node 'a' with edge 'b'
   points to node 'a/b' and so on.

   However, edges can be computed at runtime,
   so there is no need to store them in a table.
2021-04-26 14:18:40 +02:00
Zaiming Shi 7128bc9e6e chore(emqx_app): do not print 'starting' log when test 2021-04-26 14:18:40 +02:00
Zaiming Shi b97b36d077 test(emqx_coap): publish to non-wildcard topic 2021-04-26 14:18:40 +02:00
Zaiming Shi 5569c86319 docs(emqx_trie): no doc for internal functions 2021-04-26 14:18:40 +02:00
Zaiming Shi 6be28cecab chore(logging): default to multi-line logging 2021-04-26 11:11:27 +02:00
Zaiming Shi 4bc349b596 chore: move docker env var from Dockerfile to entrypoints 2021-04-26 11:08:23 +02:00
Zaiming Shi 6c403061db chore(docker): manual port setting for gen_rpc when start in docker 2021-04-26 15:38:56 +08:00
DDDHuang 29592fe1b4
Fix rule engine build fail (#4673)
* fix: add rule engine resources time
2021-04-26 15:32:54 +08:00
wwhai 92e8ba574c fix(deps): update ecpool to 0.5.2 2021-04-26 15:15:30 +08:00
William Yang 907502fed0
Merge pull request #4645 from qzhuyan/dev/william/fix-issue-2985-c3
fix: issue 2985 attempt 3
2021-04-25 12:39:52 +02:00
Zaiming Shi 708420eb97 fix(emqx_connection): log true stacktrace 2021-04-25 12:01:05 +02:00
Shawn ab5b4beffe fix(gen_rpc): the port discovery not working on a large offset 2021-04-25 13:58:33 +08:00
Shawn dc95c1476a fix(emqx_sn): willmsgs not sent 2021-04-25 09:45:16 +08:00
zhanghongtong 5154a00252 chore(CI): fix packages version error for windows 2021-04-24 15:10:34 +02:00
Zaiming Shi d61b100cc9 chore: more copyright updates 2021-04-23 20:43:00 +02:00