From 59b7e8e3bac74dafd82a88d7fc356a6833cc8395 Mon Sep 17 00:00:00 2001 From: William Yang Date: Wed, 28 Apr 2021 11:59:12 +0200 Subject: [PATCH] perf(lock): upgrade code for new lock types. --- src/emqx.appup.src | 63 ++++++++++++++++++++++++++++++++++++++------- src/emqx_router.erl | 2 +- 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/src/emqx.appup.src b/src/emqx.appup.src index fff2a2634..f6c3171ca 100644 --- a/src/emqx.appup.src +++ b/src/emqx.appup.src @@ -15,7 +15,11 @@ {update, emqx_ws_connection, {advanced, []}}, {load_module, emqx_os_mon, brutal_purge, soft_purge, []}, {load_module, emqx_shared_sub, brutal_purge, soft_purge, []}, - {resume, [esockd_acceptor,emqx_connection, emqx_ws_connection]} + {resume, [esockd_acceptor,emqx_connection, emqx_ws_connection]}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, []}, + {load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]} ]}, {"4.2.1", [ {add_module, emqx_congestion}, @@ -29,7 +33,11 @@ {update, emqx_ws_connection, {advanced, []}}, {load_module, emqx_os_mon, brutal_purge, soft_purge, []}, {load_module, emqx_shared_sub, brutal_purge, soft_purge, []}, - {resume, [esockd_acceptor, emqx_connection, emqx_ws_connection]} + {resume, [esockd_acceptor, emqx_connection, emqx_ws_connection]}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, []}, + {load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]} ]}, {<<"4.2.[23]">>, [ {add_module, emqx_congestion}, @@ -40,7 +48,11 @@ {load_module, emqx_connection, brutal_purge, soft_purge, []}, {load_module, emqx_ws_connection, brutal_purge, soft_purge, []}, {load_module, emqx_os_mon, brutal_purge, soft_purge, []}, - {load_module, emqx_shared_sub, brutal_purge, soft_purge, []} + {load_module, emqx_shared_sub, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, []}, + {load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]} ]}, {<<"4.2.4">>, [ {load_module, emqx_frame, brutal_purge, soft_purge, []}, @@ -49,7 +61,11 @@ {load_module, emqx_congestion, brutal_purge, soft_purge, []}, {load_module, emqx_connection, brutal_purge, soft_purge, []}, {load_module, emqx_ws_connection, brutal_purge, soft_purge, []}, - {load_module, emqx_alarm, brutal_purge, soft_purge, []} + {load_module, emqx_alarm, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, []}, + {load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]} ]}, {<<"4.2.5">>, [ {load_module, emqx_channel, brutal_purge, soft_purge, []}, @@ -57,7 +73,11 @@ {load_module, emqx_congestion, brutal_purge, soft_purge, []}, {load_module, emqx_connection, brutal_purge, soft_purge, []}, {load_module, emqx_ws_connection, brutal_purge, soft_purge, []}, - {load_module, emqx_alarm, brutal_purge, soft_purge, []} + {load_module, emqx_alarm, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, []}, + {load_module, emqx_router, soft_purge, soft_purge, [emqx_trie]} ]}, {<<".*">>, []} ], @@ -75,7 +95,12 @@ {load_module, emqx_channel, brutal_purge, soft_purge, []}, {load_module, emqx_session, brutal_purge, soft_purge, []}, {resume, [esockd_acceptor, emqx_connection, emqx_ws_connection]}, - {delete_module, emqx_congestion} + {delete_module, emqx_congestion}, + {load_module, emqx_session, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, [emqx_router]}, + {load_module, emqx_router, soft_purge, soft_purge, []} ]}, {"4.2.1", [ {load_module, emqx_shared_sub, brutal_purge, soft_purge, []}, @@ -89,7 +114,12 @@ {update, emqx_ws_connection, {advanced, []}}, {load_module, emqx_alarm, brutal_purge, soft_purge, []}, {resume, [esockd_acceptor, emqx_connection, emqx_ws_connection]}, - {delete_module, emqx_congestion} + {delete_module, emqx_congestion}, + {load_module, emqx_session, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, [emqx_router]}, + {load_module, emqx_router, soft_purge, soft_purge, []} ]}, {<<"4.2.[23]">>, [ {load_module, emqx_shared_sub, brutal_purge, soft_purge, []}, @@ -100,7 +130,12 @@ {load_module, emqx_session, brutal_purge, soft_purge, []}, {load_module, emqx_alarm, brutal_purge, soft_purge, []}, {load_module, emqx_frame, brutal_purge, soft_purge, []}, - {delete_module, emqx_congestion} + {delete_module, emqx_congestion}, + {load_module, emqx_session, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, [emqx_router]}, + {load_module, emqx_router, soft_purge, soft_purge, []} ]}, {<<"4.2.4">>, [ {load_module, emqx_frame, brutal_purge, soft_purge, []}, @@ -109,7 +144,11 @@ {load_module, emqx_connection, brutal_purge, soft_purge, []}, {load_module, emqx_ws_connection, brutal_purge, soft_purge, []}, {load_module, emqx_alarm, brutal_purge, soft_purge, []}, - {load_module, emqx_session, brutal_purge, soft_purge, []} + {load_module, emqx_session, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, [emqx_router]}, + {load_module, emqx_router, soft_purge, soft_purge, []} ]}, {<<"4.2.5">>, [ {load_module, emqx_channel, brutal_purge, soft_purge, []}, @@ -117,7 +156,11 @@ {load_module, emqx_congestion, brutal_purge, soft_purge, []}, {load_module, emqx_connection, brutal_purge, soft_purge, []}, {load_module, emqx_ws_connection, brutal_purge, soft_purge, []}, - {load_module, emqx_alarm, brutal_purge, soft_purge, []} + {load_module, emqx_alarm, brutal_purge, soft_purge, []}, + {load_module, emqx_router_sup, soft_purge, soft_purge, []}, + {load_module, emqx_broker, soft_purge, soft_purge, []}, + {load_module, emqx_trie, soft_purge, soft_purge, [emqx_router]}, + {load_module, emqx_router, soft_purge, soft_purge, []} ]}, {<<".*">>, []} ] diff --git a/src/emqx_router.erl b/src/emqx_router.erl index b77311e62..f3f878794 100644 --- a/src/emqx_router.erl +++ b/src/emqx_router.erl @@ -251,7 +251,7 @@ delete_trie_route(Route = #route{topic = Topic}) -> %% @private -spec(maybe_trans(function(), list(any())) -> ok | {error, term()}). maybe_trans(Fun, Args) -> - case persistent_term:get(emqx_route_lock_type) of + case persistent_term:get(emqx_route_lock_type, key) of key -> trans(Fun, Args); global ->