Module lb_active_directories

Implementation of a modified version of the paper below.

Copyright © 2014-2015 Zuse Institute Berlin

Version: $Id$

Behaviours: lb_active_beh.

Authors: Maximilian Michels (michels@zib.de).

References

Description

Implementation of a modified version of the paper below. This implementation doesn't use virtual servers but can still benefit from the load balancing algorithm's attributes, respectively the load directories and the emergency transfer of load.

Many-to-Many scheme

Data Types

dht_message()

dht_message() = 
    {lb_active, request_load, pid()} |
    {lb_active,
     before_jump,
     HeavyNode :: lb_info:lb_info(),
     LightNode :: lb_info:lb_info()}

directory_name()

directory_name() = string()

message()

message() = 
    {publish_trigger} |
    {post_load, lb_info:lb_info()} |
    {directory_trigger} |
    {get_state_response, intervals:interval()}

reassign()

reassign() = 
    #reassign{light = lb_info:lb_info(),
              heavy = lb_info:lb_info()}

schedule()

schedule() = [reassign()]

state()

state() = 
    #state{my_dirs = [directory_name()], schedule = schedule()}

Function Index

check_config/0
get_web_debug_kv/1
handle_dht_msg/2Load balancing messages received by the dht node.
handle_msg/2
init/0

Function Details

init/0

init() -> state()

handle_msg/2

handle_msg(Msg :: message(), State :: state()) -> state()

handle_dht_msg/2

handle_dht_msg(Msg :: dht_message(),
               DhtState :: dht_node_state:state()) ->
                  dht_node_state:state()

Load balancing messages received by the dht node.

get_web_debug_kv/1

get_web_debug_kv(State :: state()) -> [{string(), string()}]

check_config/0

check_config() -> boolean()


Generated by EDoc, Feb 29 2016, 16:13:43.