Commit Graph

2143 Commits

Author SHA1 Message Date
Zaiming Shi
6701d716dd feat: async API to support tcp keepalive inet options 2021-05-24 19:01:13 +02:00
Zaiming Shi
623ffc7861 fix: add emqx_plugins to appup 2021-05-24 10:45:56 +02:00
Zaiming Shi
4ec1046160 fix: bad test case 2021-05-24 10:45:56 +02:00
Zaiming Shi
faecde9ce1 fix(emqx_plugins): allow loading conf for plugin app dir
Prior to this change, plugin config files are only allowed
to be placed in the collective config dir etc/plugins.
In order to support external plugin's drop-in deployment,
this commit made emqx_plugins module to read conf file
in application's etc dir
2021-05-24 10:45:56 +02:00
Zaiming Shi
67245b06b1 chore: make sure emqx_app is reloaded
we bump release version number in emqx_release.hrl for each release
this version is retrieved from emqx_app module, so we must always
reload this module during hot upgrade
2021-05-22 14:56:11 +08:00
Turtle
e8790f6e11 fix(mqtt-sn): Fix stop due to keepAlive at sleep mode 2021-05-21 19:22:32 +08:00
Zaiming Shi
4e1798e3f3 fix(emqx_cm): do not log noproc as error
1. websocket call exit with noproc reason.
2. do not capture stacktrace when no need for it
2021-05-19 23:16:11 +02:00
Zaiming Shi
dfab9492c6 fix(emqx_connection): do not log einval error
einval happens when trying to send data to a closed socket.
2021-05-18 20:30:27 +08:00
Shawn
97e27faf05
fix(emqx): check if the congestion alarm was sent before clearing (#4824) 2021-05-18 10:34:23 +08:00
Zaiming Shi
5013fb6920 fix(node_dump): obfuscate more secrets 2021-05-17 09:17:29 +02:00
Zaiming Shi
ed0ad3e796 chore: skip printing memory 2021-05-14 10:45:58 +02:00
Zaiming Shi
78fd1a80c5 fix(bench): test more publish levels 2021-05-14 10:45:58 +02:00
Zaiming Shi
55316b3ac3 perf: micro optimisation: no lookup for non-wildcard in trie 2021-05-14 10:45:58 +02:00
Zaiming Shi
3c03047c9f fix(emqx_trie): performance issue when many levels 2021-05-14 10:45:58 +02:00
Zaiming Shi
30990edbd4 fix(emqx_broker_bench): test real match performance 2021-05-14 10:45:17 +02:00
Zaiming Shi
d0971ceb53 fix: add emqx appup 2021-05-14 10:42:11 +02:00
Zaiming Shi
de43da881a fix(emqx_frame): poor large frame concatenation performance
piror to this change, binary concatenation eats most of the CPU
2021-05-13 22:58:22 +02:00
Zaiming Shi
1e3f7319ac fix(emqx_metrics): infinity gen_server call in upgrade 2021-05-13 22:57:44 +02:00
JianBo He
c929306cb9 chore(metrics): update ets table in the metrics proc 2021-05-13 22:57:44 +02:00
JianBo He
1ba8d71e7e fix(metrics): set the retained/delayed metrics to counter type
The metrics for messages.* shows the number of times such messages are
received, and it should be a counter rather than a gauge type.
2021-05-12 22:16:14 +08:00
Zaiming Shi
1cabd140c5 fix(logging): add line-break after each JSON log 2021-05-10 12:03:01 +02:00
Zaiming Shi
18cd7e7af5 fix(emqx_logger_jsonfmt): corner test case 2021-05-07 21:25:10 +02:00
Zaiming Shi
05c5378265 feat(http_lib): add normalise_headers API 2021-05-07 10:14:19 +08:00
Zaiming Shi
c81cd8550d perf(trie): do not call ets:info/2 to check if table is empty
emqx_trie table is a ordered_set, with write_concurrency set to
true, the counter is not centrialsed, the ets:info/2 call to
check size == 0 is very expensive
2021-05-06 23:27:29 +08:00
Zaiming Shi
cfec4c9690 fix(logger): fix json formatter
crash when invalid string as json key.
2021-05-06 15:12:56 +02:00
k32
1db8483bb3 feat(node_dump): Hide `secret' configuration keys
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2021-05-06 14:19:09 +02:00
k32
e6c85dfb04 fix(node_dump): Attempt to censor passwords 2021-05-06 14:19:09 +02:00
Zaiming Shi
4cff5c4dac chore: fix config doc 2021-05-06 11:03:02 +02:00
Zaiming Shi
6b0487d69d feat(logger): merge metadata to log data 2021-05-06 11:03:02 +02:00
Zaiming Shi
79181072e2 feat(logger): add formatter emqx_logger_jsonfmt 2021-05-06 11:03:02 +02:00
Zaiming Shi
92d3e16d43 perf(router): receive-mark optimise for short-lived transaction process 2021-05-05 11:00:00 +02:00
Zaiming Shi
f8700e3f27 fix(emqx_packet): no crash if publish packet has no data 2021-05-04 13:48:35 +02:00
Zaiming Shi
bf4baf708a fix(emqx_packet): list element index out of range 2021-05-04 09:24:54 +02:00
Zaiming Shi
171933301a fix(dashboard): display full Erlang/OTP version 2021-04-30 12:26:59 +02:00
William Yang
e122ac5716 perf(broker): speedup trans when broker has a big mqueue 2021-04-29 08:52:42 +02:00
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
29475eb610 feat(emqx_http_lib): try to parse host ip 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
Zaiming Shi
d926800204 chore: add emqx_broker_bench.erl 2021-04-26 14:40:39 +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
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
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