Copyright © 2009-2013 Zuse Institute Berlin
Version: $Id$
Authors: Florian Schintke (schintke@zib.de).
client_key() = [unicode_char()]
snap_number() = non_neg_integer()
note: from all the value types, only ?value and ?value_dropped remain in the user tlog - the rest are intermediate states!
tlog() = [tlog_entry()]
tlog_entry() = tlog_entry_read() | tlog_entry_write()
tlog_entry_ext() = {Op :: 76, Key :: client_key(), Version :: non_neg_integer() | -1, Status :: tx_status(), SnapshotNumber :: snap_number(), ValueType :: 78, Value :: 78} | {Op :: 77, Key :: client_key(), Version :: non_neg_integer() | -1, Status :: tx_status(), SnapshotNumber :: snap_number(), ValueType :: 75, Value :: rdht_tx:encoded_value()}
-opaque tlog() :: [tlog_entry()]. % creates a false warning in add_or_update_status_by_key/3
tlog_entry_read() = {Op :: 76, Key :: tlog_key(), Version :: non_neg_integer() | -1, Status :: tx_status(), SnapshotNumber :: snap_number(), ValueType :: value_type_r(), Value :: rdht_tx:encoded_value() | 78}
tlog_entry_write() = {Op :: 77, Key :: tlog_key(), Version :: non_neg_integer() | -1, Status :: tx_status(), SnapshotNumber :: snap_number(), ValueType :: value_type_w(), Value :: rdht_tx:encoded_value() | 78}
tlog_ext() = [tlog_entry_ext()]
tlog_key() = client_key() | rt_chord:key()
TODO this does not make sense anymore TLogEntry: {Operation, Key, Version, Status, Value} Sample: {?read,"key3",?value,"value3",0}
tx_op() = 76 | 77
tx_status() = 84 | 85
unicode_char() = 0..55295 | 57344..65533 | 65536..1114111
value_type_r() = 75 | 82 | 86 | {85, atom() | integer()} | 78
value_type_w() = 75 | {85, atom() | integer()} | 78
add_entry/2 | |
add_or_update_status_by_key/3 | |
cleanup/1 | Strips the tlog from read values (sets those values to ?value_dropped). |
drop_value/1 | |
empty/0 | create an empty list. |
find_entry_by_key/2 | |
first_req_per_key_not_in_tlog/2 | Filters a request list with unique keys so that only operations reside that need data from the DHT which is not yet present in the TLog. |
get_entry_key/1 | |
get_entry_operation/1 | |
get_entry_snapshot/1 | |
get_entry_status/1 | |
get_entry_value/1 | |
get_entry_value_type/1 | |
get_entry_version/1 | |
get_insane_keys/1 | |
is_sane_for_commit/1 | |
merge/2 | Merge TLog entries from sorted translogs (see sort_by_key/1), if same key. |
new_entry/5 | |
new_entry/6 | |
new_entry/7 | |
set_entry_key/2 | |
set_entry_operation/2 | |
set_entry_snapshot/2 | |
set_entry_status/2 | |
set_entry_value/3 | |
sort_by_key/1 | |
update_entry/2 |
empty() -> tlog()
create an empty list
add_entry(TransLog :: tlog(), Entry :: tlog_entry()) -> tlog()
add_or_update_status_by_key(T :: tlog(), Key :: tlog_key(), Status :: tx_status()) -> tlog()
update_entry(TLog :: tlog(), Entry :: tlog_entry()) -> tlog()
find_entry_by_key(TLog :: tlog(), Key :: tlog_key()) -> tlog_entry() | false
is_sane_for_commit(TLog :: tlog()) -> boolean()
get_insane_keys(TLog :: tlog_ext()) -> [client_key()]
Merge TLog entries from sorted translogs (see sort_by_key/1), if same key. Check for version mismatch, take over values. Duplicate keys are only allowedif the old TLog only read the value! SortedTlog is old TLog SortedRTlog is TLog received from newer RDHT operations
first_req_per_key_not_in_tlog(SortedTLog :: tlog(), SortedReqList :: [rdht_tx:request_on_key()]) -> [rdht_tx:request_on_key()]
Filters a request list with unique keys so that only operations reside that need data from the DHT which is not yet present in the TLog. Note: uses functions from rdht_tx to cope with requests.
Strips the tlog from read values (sets those values to ?value_dropped).
new_entry(Op :: tx_op(), Key :: rt_chord:key(), Vers :: non_neg_integer() | -1, ValType :: value_type_r() | value_type_w(), Val :: rdht_tx:encoded_value()) -> tlog_entry()
new_entry(Op :: tx_op(), Key :: rt_chord:key(), Vers :: non_neg_integer() | -1, Status :: tx_status(), ValType :: value_type_r() | value_type_w(), Val :: rdht_tx:encoded_value()) -> tlog_entry()
new_entry(Op :: tx_op(), Key :: rt_chord:key(), Vers :: non_neg_integer() | -1, Status :: tx_status(), SnapNumber :: snap_number(), ValType :: value_type_r() | value_type_w(), Val :: rdht_tx:encoded_value()) -> tlog_entry()
get_entry_operation(Element :: tlog_entry()) -> tx_op()
set_entry_operation(Element :: tlog_entry(), Val :: tx_op()) -> tlog_entry()
get_entry_key(Element :: tlog_entry()) -> client_key() | rt_chord:key()
set_entry_key(Entry :: tlog_entry(), Val :: client_key() | rt_chord:key()) -> tlog_entry()
get_entry_version(Element :: tlog_entry()) -> non_neg_integer() | -1
get_entry_status(Element :: tlog_entry()) -> tx_status()
set_entry_status(Element :: tlog_entry(), Val :: tx_status()) -> tlog_entry()
get_entry_snapshot(Element :: tlog_entry()) -> snap_number()
set_entry_snapshot(Element :: tlog_entry(), Val :: snap_number()) -> tlog_entry()
get_entry_value_type(Element :: tlog_entry()) -> value_type_r() | value_type_w()
get_entry_value(Element :: tlog_entry()) -> {value_type_r() | value_type_w(), rdht_tx:encoded_value()}
set_entry_value(Element :: tlog_entry(), ValType :: value_type_r() | value_type_w(), Val :: rdht_tx:encoded_value()) -> tlog_entry()
drop_value(Element :: tlog_entry()) -> tlog_entry()
Generated by EDoc, Feb 29 2016, 16:15:35.