Conductor Properties (Last updated: $Date: 2001/10/17 16:46:03 $)

Conductor is configured using the properties file. By default the name of the properties file is Conductor.properties, which should be located in the main Conductor directory. A different configuration file can be specified on the command line.

Properties are listed in the properties file one per line. Each line contains an attributed and a value, separated by an equals sign. Blank lines are ignored. Comments follow a pound symbol ('#') on any line. A sample Conductor.properties file can be found in Conductor/Conductor.properties.example.

A special property, IncludeDefaults, can be used to specify the name of a file which contains a set of default properties. The default properties are overidden by any values in this file. A defaults file can also have an IncludeDefaults property, and so on.

Each property has a type: boolean, int, string, or filename. Properties of type boolean are considered true iff they have the value true, 1, or yes (false otherwise). Propreties of type filename can contain the substring ${HOSTNAME} which will be replaced by the local hostname. Values of type int can be specified in any manner acceptable to Integer.parseInt().

The following properties are used to configure which version of an extensible module to use:

Property Name Type Default Value Description
PlannerClass string FMG.Conductor.planning.StaticPlanner The class of the planner module to use. Must be a subclass of FMG.Conductor.planning.Planner.
MonitorClass string FMG.Conductor.monitor.DefaultMonitor The class of the environment monitor to use. Must be a sub-class of FMG.Conductor.monitor.EnvMonitor.
InterfaceClass string FMG.Conductor.Interface The class of the object that runs the interface. Must be a sub-class of FMG.Conductor.Interface.

The following properties are used to configure Conductor's behavior:

Property Name Type Default Value Description
AcceptorPort int 4444 The UDP port number used for path finding.
PlanningPort int 4445 The TCP port number used for planning path connections.
DataPort int 4446 The TCP port number used for datapath connections.
DataQueuingLimit int Integer.MAX_VALUE The number of data messages that are allowed to queue between windows in the data path.
ThreadCacheLimit int Integer.MAX_VALUE The maximum number of running threads that will be cached for future use when they exit. Once the max number of threads is cached, subsequent exiting threads are allowed to die.
ReliabilityEnabled boolean true Controls whether the reliability features are turned on.
InitiateRecovery boolean false (for now) Controls whether recovery is initiated when a failure occurs. The default will become true when the code receives more testing.
UseSecurePlanning boolean false Controls whether a security module will be used to protect planning messages.
SecurityConfig filename ./config/security.cfg The name of the configuration file for secure planning.
MeasurementMask int 0 Allows selected portions of measurement code to be enabled. See FMG.Conductor.util.Measure for more details. This option has no effect unless measurement mode is enabled via the -m command line option.
SocketSendBufferLimit int none Set the output buffering limit on inter-Conductor data stream sockets by setting the SO_SNDBUF socket option.
ConductorNetFile filename ./config/ConductorNet Enabled by the -E option, this file specifies which nodes and networks are part of the Conductor network, and which are not.
Debug.UseMessageLengthGuard boolean false Turn on a safety feature that ensures that the same number of bytes are read and written during the transmission of each message. This feature requries a one-byte-per-message overhead, so it is normally turned off.
GlobalWorkingDir filename /tmp/conductor A directory where working files created by Conductor adaptors are stored for unauthenticated users or authenticated users with no local home directory. Note that authenticated users will by default have their files stored within their home directory.
HomeWorkingDir filename conductor The name of the subdirectory in user's home directory in which working files are stored by adaptors operating on bahalf of that user.
PlanCommInactivityTimeout int 0 (never) The length of inactivity (in seconds) after which planning connections are automatically closed.
PlanCommPriority int -1 (don't set) The priority to give to planning communication sockets using the SO_PRIORITY socket option.
PlanCommLowDelay boolean false Set the type of service on planning sockets to low delay?
MinPlanPathInitTimeout int 500 The minimum amount of time, in milliseconds, to wait for a response to a PathRequest message. The first request will use this timeout. Subsequent timeouts will increase exponentially up to MaxPlanPathInitTimeout.
MaxPlanPathInitTimeout int 10000 The maximum amount of time, in milliseconds, to wait for a response to a PathRequest message. This value provides a cap on the timeout that starts at MinPlanPathInitTimeout and increases exponentially.
CheckForPrematureClose boolean true Should Conductor check for the case in which a client gives up before a connection is formed?
NATinUse boolean true Indicates that Conductor is running on a network that uses NAT. When this is the case, the interface address for a connection is determined by what the next node sees. With NAT, we see a different interface address for ourselves than our neighbor does. When in doubt, enable this option (it is unlikely to be harmful).

The following properties are interpreted by Conductor modules:

Property Name Type Default Value Description
RCInterface.SocketInterface class name none The name of the class to use for the interface served up on a socket.
RCInterface.InterfacePort int none The socket port number on which to serve up an interface.
BasicMonitor.MonitorPort int 4447 The UDP port number used for probes.
BasicMonitor.ProbeFreq int 20000 The frequency (in milliseconds) with which proves are sent.
BasicMonitor.SampleFreq int 5000 The frequency (in milliseconds) with which throughput is updated.

Properties for other modules can be found in the documentation for that modules. In particular, see StaticPlanner.html, and StaticMonitor.html.


Conductor is a product of Mark Yarvis (yarvis@fmg.cs.ucla.edu) and the FMG Research Group at UCLA's Department of Computer Science.
Copyright © 2001 The Regents of the University of California. All Rights Reserved.