diff options
author | Igor Ribeiro Sucupira <[email protected]> | 2010-01-10 03:37:34 -0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2010-02-02 12:18:23 +0100 |
commit | 3757d8fb1dfd1ff9b80aed2376070b5c4888aaba (patch) | |
tree | b45c518db1277d723c6d7b69bb00fd960c93a970 /lib/mnesia/src/mnesia_monitor.erl | |
parent | 36c0041ea56d915ba9a2259cc918fca76b8c08f9 (diff) | |
download | otp-3757d8fb1dfd1ff9b80aed2376070b5c4888aaba.tar.gz otp-3757d8fb1dfd1ff9b80aed2376070b5c4888aaba.tar.bz2 otp-3757d8fb1dfd1ff9b80aed2376070b5c4888aaba.zip |
Add option to compress data when copying tables between Mnesia nodes
Optionally using data compression for copying Mnesia tables allows
the system to be tuned to eliminate network bottlenecks from
deployments where enough CPU is available to use zlib.
With this patch, running erl -mnesia send_compressed <level>
will enable compression for sending tables between nodes. The
compression level can be any integer in [0, 9], with 0 (the
default) meaning no compression (exactly the previous behaviour)
and 9 being the highest compression level.
To set any non-zero compression level at the sender, both nodes
must have the updated Mnesia modules (the receiver will work
according to the sender's configuration).
Diffstat (limited to 'lib/mnesia/src/mnesia_monitor.erl')
-rw-r--r-- | lib/mnesia/src/mnesia_monitor.erl | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/mnesia/src/mnesia_monitor.erl b/lib/mnesia/src/mnesia_monitor.erl index 05ae943e3b..b39ee92fa8 100644 --- a/lib/mnesia/src/mnesia_monitor.erl +++ b/lib/mnesia/src/mnesia_monitor.erl @@ -674,7 +674,8 @@ env() -> core_dir, pid_sort_order, no_table_loaders, - dc_dump_limit + dc_dump_limit, + send_compressed ]. default_env(access_module) -> @@ -717,7 +718,9 @@ default_env(pid_sort_order) -> default_env(no_table_loaders) -> 2; default_env(dc_dump_limit) -> - 4. + 4; +default_env(send_compressed) -> + 0. check_type(Env, Val) -> case catch do_check_type(Env, Val) of @@ -763,7 +766,8 @@ do_check_type(pid_sort_order, standard) -> standard; do_check_type(pid_sort_order, "standard") -> standard; do_check_type(pid_sort_order, _) -> false; do_check_type(no_table_loaders, N) when is_integer(N), N > 0 -> N; -do_check_type(dc_dump_limit,N) when is_number(N), N > 0 -> N. +do_check_type(dc_dump_limit,N) when is_number(N), N > 0 -> N; +do_check_type(send_compressed, L) when is_integer(L), L >= 0, L =< 9 -> L. bool(true) -> true; bool(false) -> false. |