Module tx_tm_rtm

Part of a generic implementation of transactions using Paxos Commit - the roles of the (replicated) transaction manager TM and RTM.

Copyright © 2009-2015 Zuse Institute Berlin,

Version: $Id$

Behaviours: gen_component.

Authors: Florian Schintke (schintke@zib.de).

Description

Part of a generic implementation of transactions using Paxos Commit - the roles of the (replicated) transaction manager TM and RTM.

Data Types

paxos_id()

abstract datatype: paxos_id()

rtm()

rtm() = 
    {rt_chord:key(),
     {comm:mypid()} | unknown,
     Role :: pos_integer(),
     {Acceptor :: comm:mypid()} | unknown}

rtms()

rtms() = [rtm()]

state()

state() = 
    {RTMs :: rtms(),
     TableName :: pdb:tableid(),
     Role :: pid_groups:pidname(),
     LocalAcceptor :: pid(),
     GLocalLearner :: comm:mypid(),
     OpenTxNum :: non_neg_integer(),
     LocalSnapNo :: non_neg_integer()}

tx_id()

tx_id() = {67, uid:global_uid()}

tx_item_id()

tx_item_id() = 
    {68, TLogUid :: uid:global_uid(), ItemId :: non_neg_integer()}

Function Index

check_config/0Checks whether config parameters for tx_tm_rtm exist and are valid.
commit/4
get_my/2
init/1
msg_commit_reply/3
on/2
on_init/2
rm_send_update/5Notifies the tx_tm_rtm of a changed node ID.
start_gen_component/5
start_link/2

Function Details

start_gen_component/5

start_gen_component(Module :: module(),
                    Handler :: gen_component:handler(),
                    Args :: term(),
                    Options :: [gen_component:option()],
                    Self :: pid()) ->
                       no_return() | ok

msg_commit_reply/3

msg_commit_reply(Client :: comm:mypid(),
                 ClientsID :: any(),
                 Result :: any()) ->
                    ok

commit/4

commit(TM :: comm:erl_local_pid(),
       Client :: comm:mypid(),
       ClientsID :: any(),
       TLog :: tx_tlog:tlog()) ->
          ok

rm_send_update/5

rm_send_update(Subscriber :: pid(),
               Tag :: tx_tm_rtm,
               OldNeighbors :: nodelist:neighborhood(),
               NewNeighbors :: nodelist:neighborhood(),
               Reason :: rm_loop:reason()) ->
                  ok

Notifies the tx_tm_rtm of a changed node ID.

start_link/2

start_link(DHTNodeGroup :: pid_groups:groupname(), Role :: any()) ->
              {ok, pid()}

init/1

init(X1 :: []) ->
        state() |
        {'$gen_component',
         [{on_handler, gen_component:handler()}, ...],
         state()}

on/2

on(Msg :: comm:message(), State :: state()) -> state()

on_init/2

on_init(Msg :: comm:message(), State :: state()) ->
           state() |
           {'$gen_component',
            [{on_handler, Handler :: gen_component:handler()}],
            State :: state()}

get_my/2

get_my(Role :: pid_groups:pidname(), PaxosRole :: atom()) ->
          pid() | failed

check_config/0

check_config() -> boolean()

Checks whether config parameters for tx_tm_rtm exist and are valid.


Generated by EDoc, Feb 29 2016, 16:12:14.