ibis.satin.impl.loadBalancing
Class LoadBalancing

java.lang.Object
  extended by ibis.satin.impl.loadBalancing.LoadBalancing
All Implemented Interfaces:
Config

public final class LoadBalancing
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
 
Constructor Summary
LoadBalancing(Satin s)
           
 
Method Summary
 void addToOutstandingJobList(InvocationRecord r)
           
 ibis.ipl.IbisIdentifier getCurrentVictim()
          Used for fault tolerance, we must know who the current victim is, in case it crashes.
 void gotJobResult(InvocationRecord ir, ibis.ipl.IbisIdentifier sender)
           
 void handleDelayedMessages()
           
 void handleJobResult(ibis.ipl.ReadMessage m, int opcode)
           
 void handleReply(ibis.ipl.ReadMessage m, int opcode)
           
 void handleStealRequest(ibis.ipl.SendPortIdentifier ident, int opcode)
           
 void queueStealRequest(ibis.ipl.SendPortIdentifier ident, int opcode)
           
 void sendResult(InvocationRecord r, ReturnRecord rr)
           
 void sendStealRequest(Victim v, boolean synchronous, boolean blocking)
           
 void setCurrentVictim(ibis.ipl.IbisIdentifier ident)
           
 InvocationRecord stealJob(Victim v, boolean blockOnServer)
          does a synchronous steal.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LoadBalancing

public LoadBalancing(Satin s)
Method Detail

gotJobResult

public void gotJobResult(InvocationRecord ir,
                         ibis.ipl.IbisIdentifier sender)

addToOutstandingJobList

public void addToOutstandingJobList(InvocationRecord r)

stealJob

public InvocationRecord stealJob(Victim v,
                                 boolean blockOnServer)
does a synchronous steal. If blockOnServer is true, it blocks on server side until work is available, or we must exit. This is used in MasterWorker algorithms.


handleDelayedMessages

public void handleDelayedMessages()

sendResult

public void sendResult(InvocationRecord r,
                       ReturnRecord rr)

handleStealRequest

public void handleStealRequest(ibis.ipl.SendPortIdentifier ident,
                               int opcode)

queueStealRequest

public void queueStealRequest(ibis.ipl.SendPortIdentifier ident,
                              int opcode)

handleReply

public void handleReply(ibis.ipl.ReadMessage m,
                        int opcode)

handleJobResult

public void handleJobResult(ibis.ipl.ReadMessage m,
                            int opcode)

sendStealRequest

public void sendStealRequest(Victim v,
                             boolean synchronous,
                             boolean blocking)
                      throws IOException
Throws:
IOException

getCurrentVictim

public ibis.ipl.IbisIdentifier getCurrentVictim()
Used for fault tolerance, we must know who the current victim is, in case it crashes.


setCurrentVictim

public void setCurrentVictim(ibis.ipl.IbisIdentifier ident)


The Ibis project