-type log_operation() :: #log_operation{}.
log_payload :: any_log_payload()
-type any_log_payload() :: #update_log_payload{}
| #prepare_log_payload{}.
-type commit_log_payload() :: #commit_log_payload{}.
-type update_log_payload() :: #update_log_payload{}.
-type op_number() :: #op_number{}.
-type op_name() :: atom().
-type op_param() :: term().
-type op() :: {op_name(), op_param()}.
-record(commit_log_payload, {
commit_time :: dc_and_commit_time(),
snapshot_time :: snapshot_time()
-record(update_log_payload, {
-record(abort_log_payload, {}).
-record(prepare_log_payload, {prepare_time :: non_neg_integer()}).
node :: undefined | {node(), dcid()},
global :: undefined | non_neg_integer(),
local :: undefined | non_neg_integer()