ibis.satin.impl.loadBalancing
Class LoadBalancingAlgorithm

java.lang.Object
  extended by ibis.satin.impl.loadBalancing.LoadBalancingAlgorithm
All Implemented Interfaces:
Config
Direct Known Subclasses:
ClusterAwareRandomWorkStealing, MasterWorker, RandomWorkStealing

public abstract class LoadBalancingAlgorithm
extends Object
implements Config


Field Summary
 
Fields inherited from interface ibis.satin.impl.Config
abortLogger, ASSERTS, CHECKPOINT_CLUSTER, CHECKPOINT_FILE, CHECKPOINT_FIRST, CHECKPOINT_INTERVAL, CHECKPOINT_MAXFILESIZE, CHECKPOINT_PUSH, CHECKPOINT_QUITTIME, CHECKPOINTING, CLIENT, CLOSE_CONNECTIONS, CLOSED, commLogger, CONNECT_TIMEOUT, CONNECTIONS_ON_DEMAND, connLogger, COORDINATOR_QUIT_DELAY_TIME, DELETE_CLUSTER_TIME, DELETE_TIME, DETAILED_STATS, DUMP, FT_NAIVE, ftLogger, grtLogger, HANDLE_MESSAGES_IN_LATENCY, inletLogger, KEEP_INTRA_CONNECTIONS, KILL_TIME, LABEL_ROUTING_MCAST, mainLogger, MASTER_HOST, MAX_CONNECTIONS, MAX_STEAL_THROTTLE, properties, PROPERTY_PREFIX, QUEUE_STEALS, s_alg, s_asserts, s_client, s_close_connections, s_closed, s_connections_on_demand, s_cpt, s_cpt_cluster, s_cpt_file, s_cpt_first, s_cpt_interval, s_cpt_maxFileSize, s_cpt_push, s_cpt_quit, s_delete_cluster_time, s_delete_time, s_detailed_stats, s_dump, s_ft_connectTimeout, s_ft_naive, s_in_latency, s_keep_intra_connections, s_kill_time, s_masterhost, s_max_connections, s_max_steal_throttle, s_queue_steals, s_so_delay, s_so_lrmc, s_so_size, s_so_wait_time, s_stats, s_steal_wait_timeout, s_throttle_steals, s_unreliable, SO_MAX_INVOCATION_DELAY, SO_MAX_MESSAGE_SIZE, SO_WAIT_FOR_UPDATES_TIME, soBcastLogger, soLogger, spawnLogger, STATS, STEAL_WAIT_TIMEOUT, stealLogger, SUPPLIED_ALG, sysprops, THROTTLE_STEALS, UNRELIABLE
 
Method Summary
abstract  InvocationRecord clientIteration()
          Called in every iteration of the client loop.
 void exit()
          This one is called in the exit procedure so the algorithm can clean up, e.g., wait for pending (async) messages Default implementation does nothing.
 void handleCrash(ibis.ipl.IbisIdentifier ident)
           
 void jobAdded()
          Handler that is called when new work is added to the queue.
 void stealReplyHandler(InvocationRecord ir, ibis.ipl.IbisIdentifier sender, int opcode)
          This one is called for each steal reply by the MessageHandler, so the algorithm knows about the reply (this is needed with asynchronous communication)
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

jobAdded

public void jobAdded()
Handler that is called when new work is added to the queue. Default implementation does nothing.


clientIteration

public abstract InvocationRecord clientIteration()
Called in every iteration of the client loop. It decides which jobs are run, and what kind(s) of steal requests are done. returns a job an success, null on failure.


stealReplyHandler

public void stealReplyHandler(InvocationRecord ir,
                              ibis.ipl.IbisIdentifier sender,
                              int opcode)
This one is called for each steal reply by the MessageHandler, so the algorithm knows about the reply (this is needed with asynchronous communication)


exit

public void exit()
This one is called in the exit procedure so the algorithm can clean up, e.g., wait for pending (async) messages Default implementation does nothing.


handleCrash

public void handleCrash(ibis.ipl.IbisIdentifier ident)


The Ibis project