Author: degenaro
Date: Tue Aug 9 13:16:15 2016
New Revision: 1755604
URL: http://svn.apache.org/viewvc?rev=1755604&view=rev
Log:
UIMA-4795 DUCC ducc.properties itself should comprise its DUCC Book
documentation
Modified:
uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/duccbook.tex
uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
Modified:
uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/duccbook.tex
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/duccbook.tex?rev=1755604&r1=1755603&r2=1755604&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/duccbook.tex
(original)
+++ uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/duccbook.tex
Tue Aug 9 13:16:15 2016
@@ -18,6 +18,8 @@
%
\documentclass[oneside]{book}
+\usepackage{verbatim}
+
% space between paragraphs
\usepackage{parskip}
Modified:
uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
URL:
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex?rev=1755604&r1=1755603&r2=1755604&view=diff
==============================================================================
---
uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
(original)
+++
uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part4/admin/ducc-properties.tex
Tue Aug 9 13:16:15 2016
@@ -57,1842 +57,18 @@
Some of the properties in ducc.properties are intended as the "glue" that
brings the various
DUCC components together and lets then run as a coherent whole. These
types of properties should
- be modified only by developers of DUCC itself. In the description below
these properties are
- classified as "Private".
+ be modified only by developers of DUCC itself.
Some of the properties are tuning parameters: timeouts, heartbeat
intervals, and so on. These
may be modified by DUCC administrators, but only after experience is
gained with DUCC, and only
to solve specific performance problems. The default tuning parameters have
been chosen by the
- DUCC system developers to provide "best" operation under most reasonable
situations. In the
- description below these properties are classified as "Tuning".
+ DUCC system developers to provide "best" operation under most reasonable
situations.
Some of the properties describe the local cluster configuration: the
location of the ActiveMQ
broker, the location of the Java JRE, port numbers, etc. These should be
modified by the DUCC
- administrators to configure DUCC to each individual installation. In the
description below these
- properties are classified as "Local".
-
- See also
-
-\subsection{General DUCC Properties}
- \begin{description}
-
- \item[ducc.authentication.implementer] \hfill \\
- This specifies the class used for WebServer session authentication.
If unconfigured,
- the Web Server enforces no authentication.
- \begin{description}
- \item[Default]
org.apache.uima.ducc.common.authentication.LinuxAuthenticationManager
- \item[Type] Local
- \end{description}
-
- \item[ducc.authentication.users.include] \hfill \\
- Specify users allowed to log in to the web server. This is used only
- if {\em ducc.authentication.implementor} is the
LinuxAuthenticationManager.
- \begin{description}
- \item[Default] All users may log in.
- \item[Type] Local
- \end{description}
-
- \item[ducc.authentication.users.exclude] \hfill \\
- Specify users not allowed to log in to the webserver. This is used
only
- if {\em ducc.authentication.implementor} is the
LinuxAuthenticationManager.
- \begin{description}
- \item[Default] No users are excluded.
- \item[Type] Local
- \end{description}
-
- \item[ducc.authentication.groups.include] \hfill \\
- Specify groups allowed to log in. Groups are defined by Unix
authentication. Only
- users in the groups specified here may log in to the web server.
This is used only
- if {\em ducc.authentication.implementor} is the
LinuxAuthenticationManager.
- \begin{description}
- \item[Default] Users in all groups may log in.
- \item[Type] Local
- \end{description}
-
- \item[ducc.authentication.groups.exclude] \hfill \\
- Specify groups not allowed to log in. Groups are defined by Unix
authentication.
- Users in the groups specified here may not log in to the web server.
This is used only
- if {\em ducc.authentication.implementor} is the
LinuxAuthenticationManager.
- \begin{description}
- \item[Default] No users are excluded due to group membership.
- \item[Type] Local
- \end{description}
-
- \item[ducc.admin.endpoint] \hfill \\
- This is the JMS endpoint name used for DUCC administration messages.
- \begin{description}
- \item[Default] ducc.admin.channel
- \item[Type] Private
- \end{description}
-
- \item[ducc.admin.endpoint.type] \hfill \\
- This is the JMS message type used for DUCC administration requests.
If changed DUCC
- admin may not work.
- \begin{description}
- \item[Default] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.broker.automanage] \hfill \\
- If set to ``true'', DUCC will start and stop the ActiveMQ broker as
part of its normal start/stop
- scripting.
- \begin{description}
- \item[Default] true
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.broker.configuration] \hfill \\
- This is the ActiveMQ configuration file to use, for auto-managed
brokers only. The path
- must be specified relative to the ActiveMQ installation directory.
- \begin{description}
- \item[Default] conf/activemq-ducc.xml
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.broker.credentials] \hfill \\
- This is the ActiveMQ credentials file used to authenticate DUCC
daemons with the broker, for
- auto-managed brokers only.
- \begin{description}
- \item[Default]
\${ducc.private.resources}/ducc-broker-credentials.properties
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.broker.home] \hfill \\
- For DUCC auto-managed brokers only, this names the location where
ActiveMQ is installed
- installed.
-
- Note that the DUCC installation includes a default ActiveMQ.
- \begin{description}
- \item[Default] \duccruntime/activemq
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.broker.memory.options] \hfill \\
- For DUCC auto-managed brokers only, this names the ActiveMQ
configuration file. The configuration
- file is assumed to reside in the directory specified by {\em
ducc.broker.home}, so the path must be relative
- to that location.
- \begin{description}
- \item[Default] conf/activemq-ducc.xml
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.broker.url.decoration] \hfill \\
- The property is used by the DUCC Job Driver processes to modify the
ActiveMQ broker URL
- when connecting to the Job Processes.
-
- The supplied default is used to disable broker connection timeouts.
From the ActiveMQ
- documentation: "The maximum inactivity duration (before which the
socket is considered
- dead) in milliseconds. On some platforms it can take a long time for
a socket to appear to
- die, so we allow the broker to kill connections if they are inactive
for a period of
- time. Use by some transports to enable a keep alive heart beat
feature. Set to a value
- less-than-or-equal0 to disable inactivity monitoring. Declare the
wire protocol used to
- communicate with ActiveMQ."
-
- This decoration is used to keep the broker connection alive while a
JVM is in a
- long garbage collection. The applications that DUCC is designed to
support can
- spend significant time in garbage collection, which can cause
spurious timeouts. By
- default the DUCC configuration disables the timeout by setting it to
0.
-
- \begin{description}
- \item[Default] wireFormat.maxInactivityDuration=0
- \item[Type] Local
- \end{description}
-
- \item[ducc.broker.hostname] \hfill \\
- This declares the node where the ActiveMQ broker resides. It MUST be
updated to
- the actual node where the broker is running as part of DUCC
installation. The default value
- will not work.
- \begin{description}
- \item[Default] \$\{ducc.head\}. The default is defined in the ducc
property, {\em ducc.head}.
- If you want to run the ActiveMQ broker on the ``ducc head'', this
parameter need not
- be changed.
- \item[Type] Local
- \end{description}
-
- \item[ducc.broker.jmx.port] \hfill \\
- This is the port used to make JMX connections to the broker. This
should only
- be changed by administrators familiar with ActiveMQ configuration.
- \begin{description}
- \item[Default] 1100
- \item[Type] Local
- \end{description}
-
- \item[ducc.broker.memory.options] \hfill \\
- For DUCC auto-managed brokers only, this sets the {\tt -Xmx} heap
size for the broker.
- \begin{description}
- \item[Default] -Xmx2G
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.broker.name] \hfill \\
- This is the internal name of the broker, used to locate Broker's
MBean in JMX Registry.
- It is NOT related to any node name. When using the ActiveMQ
distribution supplied with
- DUCC it should always be set to ``localhost''. The default should be
changed only by
- administrators familiar with ActiveMQ configuration.
- \begin{description}
- \item[Default] localhost
- \item[Type] Local
- \end{description}
-
-
- \item[ducc.broker.port] \hfill \\
- This declares the port on which the ActiveMQ broker is listening for
- messages. It MAY be updated as part of DUCC installation. ActiveMQ
ships with port
- 61616 as the default port, and DUCC uses that default.
- \begin{description}
- \item[Default] 61617
- \item[Type] Local
- \end{description}
-
-
- \item[ducc.broker.protocol] \hfill \\
- Declare the wire protocol used to communicate with ActiveMQ.
- \begin{description}
- \item[Default] tcp
- \item[Type] Private
- \end{description}
-
-
- \item[ducc.broker.server.url.decoration] \hfill \\
- For DUCC auto-managed brokers only, this configures ActiveMQ Server
url decoration.
-
- \begin{description}
- \item[Default] transport.soWriteTimeout=45000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.cli.httpclient.sotimeout] \hfill \\
- This is the timeout used by the CLI to communicate with DUCC, in
milliseconds. If no
- response is heard within this time, the request times out and is
aborted. When set to 0 (the
- default), the request never times out.
- \begin{description}
- \item[Default] 0
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.cluster.name] \hfill \\
- This is a string used in the Web Server banner to identify the local
cluster. It is used
- for informational purposes only and may be set to anything desired.
- \begin{description}
- \item[Default] Apache UIMA-DUCC
- \item[Type] Local
- \end{description}
-
- \item[ducc.head] \hfill \\
- This property declares the node where the DUCC adminstrative
processes run (Orchestrator,
- Resource Manager, Process Manager, Service Manager). This property
is required and MUST be
- configured in new installation. The installation script
- \hyperref[subsec:admin.ducc-post-install]{ducc\_post\_install}
initializes this property to the
- node the script is executed on.
- \begin{description}
- \item[Default] There is no default, this must be configured during
system installation.
- \item[Type] Local
- \end{description}
-
- \item[ducc.jms.provider] \hfill \\
- Declare the type of middleware providing the JMS service used by DUCC.
- \begin{description}
- \item[Default] activemq
- \item[Type]Private
- \end{description}
-
- \item[ducc.jmx.port] \hfill \\
- Every process started by DUCC has JMX enabled by default. When more
than one process
- runs on the same machine this can cause port conflicts. The property
"ducc.jmx.port" is
- used as the base port for JMX. If the port is busy, it is incremented
internally until a free
- port is found.
-
- The web server's \hyperref[sec:system-details.daemons]{"System $->$
Daemons"} tab is used
- to find the JMX URL that gets assigned to each of the DUCC management
processes. The web
- server's \hyperref[sec:ws-job-details]{Job details} page for each job
is used to find the
- JMX URL that is assigned to each JP.
-
- \begin{description}
- \item[Default] 2099
- \item[Type] Private
- \end{description}
-
- \item[ducc.jvm] \hfill \\
- This specifies the full path to the JVM to be used by the DUCC
processes. This MUST be
- configured. The installation script
- \hyperref[subsec:admin.ducc-post-install]{ducc\_post\_install}
initializes this property to
- full path to ``java'' in the installer's environment. (If the
``java'' command cannot
- be found, ducc\_post\_install exits with error.)
- \begin{description}
- \item[Default] None. Must be configured during installation.
- \item[Type] Local
- \end{description}
-
- \item[ducc.local.jars] \hfill \\
- This may be used to list site-specific jars that are required by local
- customizations, e.g. authentication. The value must be a
blank-delimited list of jars
- relative to the {\em DUCC\_HOME/lib} directory.
- \begin{description}
- \item[Default] (unconfigured)
- \item[Type] Local
- \end{description}
-
- \item[ducc.node.min.swap.threshold] \hfill \\
- Specify a minimum amount of free swap space available on a node.
- If an agent detects free swap space dipping below the value defined
- below, it will find the fattest (in terms of memory) process in its
- inventory and kill it. The value of the parameter below is expressed
- in bytes.
-
- If set to 0, the threshold is disabled.
- \begin{description}
- \item[Default] 0
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.agent.jvm.args] \hfill \\
- This specifies the list of arguments passed to the JVM when spawning
the Agent.
- \begin{description}
- \item[Default] -Xmx100M
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.driver.jvm.args] \hfill \\
- If enabled, the arguments here are automatically added to the JVM
arguments specified for
- the Job Driver process.
-
- Note: if the user-supplied JVM arguments contain a -Xmx entry then
- any -Xmx value specified here will be ignored.
- \begin{description}
- \item[Default] (unconfigured)
- \item[Type] Local
- \end{description}
-
- \item[ducc.driver.jetty.max.threads] \hfill \\
- Max number of threads in Jetty thread pool servicing incoming HTTP
requests.
- \begin{description}
- \item[Default] 100
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.driver.jetty.thread.idletime] \hfill \\
- Max idle time for jetty threads (in milliseconds). When a thread
exceeds
- its idle time it will be terminated.
- \begin{description}
- \item[Default] 60000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.orchestrator.jvm.args] \hfill \\
- This specifies the list of arguments passed to the JVM when spawning
the Orchestrator.
- \begin{description}
- \item[Default] -Xmx1G
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.pm.jvm.args] \hfill \\
- This specifies the list of arguments passed to the JVM when spawning
the Process Manager.
- \begin{description}
- \item[Default] -Xmx1G
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.process.jvm.args] \hfill \\
- If enabled, the arguments here are added by DUCC to the JVM arguments
in the user's job
- processes.
- \begin{description}
- \item[Default] (unconfigured)
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.jvm.args] \hfill \\
- This specifies the list of arguments passed to the JVM when spawning
the Resource
- Manager.
- \begin{description}
- \item[Default] -Xmx1G
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.security.home] \hfill \\
- This directory holds the encryption keys used for request validation.
- By default DUCC employs {\em \$\{user.home\}} as the user's security
directory.
- When ducc.security.home is specified, DUCC will instead employ {\em
\$\{ducc.security.home\}/\$\{user.name\}}
- \begin{description}
- \item[Default] (unconfigured)
- \item[Type] Local
- \end{description}
-
- \item[ducc.sm.jvm.args] \hfill \\
- This specifies the list of arguments passed to the JVM when spawning
the Service Manager.
- \begin{description}
- \item[Default] -Xmx1G
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.jvm.args] \hfill \\
- specifies the list of arguments passed to the JVM when spawning the
- Webserver.
- \begin{description}
- \item[Default] -Xmx8G
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.locale.language] \hfill \\
- Establish the language for national language support of messages.
Currently only "en" is
- supported.
- \begin{description}
- \item[Default] en
- \item[Type] Private
- \end{description}
-
- \item[ducc.locale.country] \hfill \\
- Establish the country for National Language Support of messages.
Currently only "us" is
- supported.
- \begin{description}
- \item[Default] us
- \item[Type] Private
- \end{description}
-
-
- \item[ducc.runmode] \hfill \\
- When set to "Test" this property bypasses userid and authentication
checks. It is intended
- for use ONLY by DUCC developers. It allows developers of DUCC to
simulate a multiuser
- environment without the need for root privileges.
-
- Note: WARNING! Enabling this feature in a production DUCC system is a
serious
- security breach. It should only be set by DUCC developers running
with an un-privileged
- ducc\_ling.
- \begin{description}
- \item[Default] Unconfigured. When unconfigured, test mode is
DISABLED.
- \item[Type] Local
- \end{description}
-
-
- \item[ducc.ssh] \hfill \\
- When set to "False" this property bypasses use of ssh.
-
- It is intended for use ONLY by DUCC developers. It allows developers
of DUCC
- to simulate a multinode environment without the need for ssh to
"remote" nodes
- for a single host deployment.
-
- Note: WARNING! Enabling this feature in a production DUCC system is a
serious
- distributed computing usability hinderance. It should only be set by
DUCC developers
- for testing or demo purposes.
-
- \begin{description}
- \item[Default] True
- \item[Type] Local
- \end{description}
-
- \item[ducc.signature.required] \hfill \\
- When set, the CLI signs each request so the Orchestrator can be sure
the requestor is
- actually who he claims to be.
- \begin{description}
- \item[Default] on
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.job.max.pipelines.count] \hfill \\
- This enforces a maximum number of pipelines per job, over all its
processes. No
- job will have more active work-items than this dispatched.
-
- The value is related to the size of the Job Driver heap and the real
memory consumed by JD.
- If the JD is consuming too much memory, try reducing this value.
-
- Note: formerly ducc.threads.limit
-
- \begin{description}
- \item[Default] 5000
- \item[Type] Local
- \end{description}
-
- \item[ducc.environment.propagated] \hfill \\
- This specifies the environmental variables whose values will be
merged with the
- user-specified environment option on job, process and service
submissions.
-
- \begin{description}
- \item[Default] USER HOME LANG DUCC\_SERVICE\_INSTANCE
- \item[Type] Local
- \end{description}
-
- \end{description}
-
-
-\subsection{Web Server Properties}
-
- \begin{description}
- \item[ducc.ws.configuration.class] \hfill \\
- The name of the pluggable java class used to implement the Web
Server.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.ws.config.WebServerConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.ws.node] \hfill \\
- This is the name of the node the web server is started on. If not
specified, the web server is
- started on {\tt \$\{ducc\.head\}}.
- \begin{description}
- \item[Default Value] (unconfigured)
- \item[Type] Local
- \end{description}
-
-
- \item[ducc.ws.ipaddress] \hfill \\
- In multi-homed systems it may be necessary to specify to which of
the multiple addresses
- the Web Server listens for requests. This property is an IP address
that specifies to which
- address the Web Server listens.
- \begin{description}
- \item[Default Value] (unconfigured)
- \item[Type] Local
- \end{description}
-
- \item[ducc.ws.port] \hfill \\
- This is the port on which the DUCC Web Server listens for requests.
- \begin{description}
- \item[Default Value] 42133
- \item[Type] Local
- \end{description}
-
- \item[ducc.ws.port.ssl] \hfill \\
- This is the port that the Web Server uses for SSL requests (such as
authentication).
- \begin{description}
- \item[Default Value] 42155
- \item[Type] Local
- \end{description}
-
- \item[ducc.ws.banner.message] \hfill \\
- A message to be displayed under the banner of each main page.
- Changes are effective immediately.
- Can be used, for example, to post a notice that the cluster will
- be down for maintenenace.
- \begin{description}
- \item[Default Value] None
- \item[Type] Local
- \end{description}
-
- \item[ducc.ws.session.minutes] \hfill \\
- Once authenticated, this property determines the lifetime of the
authenticated session to the
- Web Server.
- \begin{description}
- \item[Default Value] 60
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.max.history.entries] \hfill \\
- DUCC maintains a history of all jobs. The state of jobs, both old
and current are shown
- in the Webserver's Jobs Page. To avoid overloading this page and
the Web Server, the maximum
- number of entries that can be shown is regulated by this parameter.
- \begin{description}
- \item[Default Value] 4096
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.login.enabled] \hfill \\
- If true, users are allowed to login to Webserver. If false, users
are
- not allowed to login to Webserver. Shipped value set to false.
- However, default value if property not specified is true.
- \begin{description}
- \item[Default Value] true
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.precalculate.machines] \hfill \\
- This is a choice between updating the sorted internal representation
of the
- Machines page as each Agent publication arrives (true, somewhat CPU
intensive
- in a large cluster but fast browser response time) and updating only
upon viewer
- demand (false, CPU intensive for each browser request with slower
response time).
- \begin{description}
- \item[Default Value] true
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.automatic.cancel.minutes] \hfill \ Optionally configure
the webserver job
- automatic cancel timeout. To disable this feature specify 0. This
is employed when a user
- specifies {\em$--$wait\_for\_completion} flag on job submission, in
which case the job
- monitor program must visit
-\begin{verbatim}
- http://<host>:<port>/ducc-servlet/proxy-job-status?id=<job-id>
-\end{verbatim}
- within this expiry time. Otherwise the job will be automatically
canceled.
-
- This provides a safeguard against runaway jobs or managed
reservations, if the
- submitter gets disconnected from DUCC in some way.
-
- If the feature is disabled by specifing ``0'', no work is canceled
even if the
- monitor itself disappears.
-
- \begin{description}
- \item[Default Value] 10
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.jsp.compilation.directory] \hfill \\
- This specifies the temporary used by the Web Server's JSP engine to
compile its JSPs.
- The directory contents are removed each time the Web Server is
restarted.
- \begin{description}
- \item[Default Value] /tmp/ducc/jsp
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.requestLog.RetainDays] \hfill \\
- Optionally configure the webserver request log, default, if not
configured, is 0 (meaning no request logging).
- Logs are written to DUCC\_HOME/logs/webserver.
- \begin{description}
- \item[Default Value] 30
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.visualization.strip.domain] \hfill \\
- If set, the visualization will strip domain names from nodes to
present a cleaner visualization.
- \begin{description}
- \item[Default Value] true
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.ws.state.update.endpoint] \hfill \\
- This is the name of the JMS endpoint through which the Webserver
broadcasts its state messages.
- These messages are broadcast to self to determine viability of the
broker.
- \begin{description}
- \item[Default Value] ducc.ws.request
- \item[Type] Private
- \end{description}
-
- \item[ducc.ws.state.update.endpoint.type] \hfill \\
- This is the JMS endpoint type used for the state messages sent by the
Webserver.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.ws.state.publish.rate] \hfill \\
- \phantomsection\label{itm:props-ws.state.publish.rate}
-
- The interval in milliseconds between Webserver publications of its
state.
- \begin{description}
- \item[Default Value] 5000
- \item[Type] Private
- \end{description}
-
- \end{description}
-
-
-\subsection{Job Driver Properties}
- \begin{description}
- \item[ducc.jd.configuration.class] \hfill \\
- The name of the pluggable java class used to implement the Job
Driver (JD).
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.jd.config.JobDriverConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.jd.state.update.endpoint] \hfill \\
- This is the JMS endpoint name by the Job Driver to send state to the
Orchestrator.
- \begin{description}
- \item[Default Value] ducc.jd.state
- \item[Type] Private
- \end{description}
-
- \item[ducc.jd.startup.initialization.error.limit] \hfill \\
- For a newly started Job, the number of Job Process (JP)
initialization failures
- allowed until at least one JP succeeds - otherwise, the Job
self-destructs.
- \begin{description}
- \item[Default Value] 1
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.jd.state.update.endpoint.type] \hfill \\
- This is the JMS message type used to send state to the Orchestrator.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
-
- \item[ducc.jd.state.publish.rate] \hfill \\
- The interval in milliseconds between JD state publications to the
Orchestrator.
- A higher rate (smaller number)
- may slightly increase system response but will increase network
load. A lower rate will
- somewhat decrease system response and lower network load.
- \begin{description}
- \item[Default Value] 15000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.jd.share.quantum] \hfill \\
- When CGroups are enabled, this is the RSS, in MB, that is reserved
for each JD process, and enforced
- by the CGroup support. Larger JDs are permitted, but the CGroup
support will force the excess
- RSS onto swap. This potentially slows the performance of that JD,
but preserves the resources
- for other, better-behaved, JDs.
- \begin{description}
- \item[Default Value] 400
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.jd.workitem.name.maximum.length] \hfill \\
- The maximum length of a work-item name returned by
CAS.getDocumentText().
- Truncation is enforced beyond this limit.
- If not specified, there is no limit.
- \begin{description}
- \item[Default Value] (unconfigured)
- \item[Type] Local
- \end{description}
-
-
- \item[ducc.jd.error.handler.class] \hfill \\
- The error handler class employed when work items fail or time-out in
order
- to determine what to do next in three dimensions:
- job kill or continue, process kill or continue, work item kill or
continue.
- User specified $--$driver\_exception\_handler <class> prevails.
- \begin{description}
- \item[Default Value] org.apache.uima.ducc.ErrorHandler
- \item[Type] Local
- \end{description}
-
- \item[ducc.jd.error.handler.args] \hfill \\
- The error handler args passed to the error handler class (see above).
- These values, if any, are combined with any specified by the user.
- Individual user specified $--$driver\_exception\_handler\_arguments
<args>
- prevail.
- \begin{description}
- \item[Default Value] max\_job\_errors=15
max\_timeout\_retrys\_per\_workitem=0
- \item[Type] Local
- \end{description}
-
- \item[ducc.default.process.per.item.time.max] \hfill \\
- This property specifies the default value for the time, in minutes,
that the JD should
- wait for a work-item to be processed. If processing has not
completed in this time the
- process is terminated and the job's error handler decides whether to
retry the
- work-item or not.
- \begin{description}
- \item[Default Value] 1440
- \item[Type] Local
- \end{description}
-
- \item[ducc.default.process.init.time.max] \hfill \\
- This property specifies the default value for the time, in minutes,
that the agent should
- wait for a JP to complete initialization. If initialization is not
completed in this time
- the process is terminated and and InitializationTimeout status is
sent to the JD
- which decides whether to retry the process or terminate the job.
-
- \begin{description}
- \item[Default Value] 120
- \item[Type] Local
- \end{description}
-
-
- \end{description}
-
-
-
-
-
-\subsection{Service Manager Properties}
- \begin{description}
-
- \item[ducc.sm.configuration.class] \hfill \\
- This is the name of the pluggable java class used to implement the
Service Manager.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.sm.config.JobDriverConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.sm.default.monitor.class] \hfill \\
- This is the name of the default UIMA-AS ping/monitor class. The
default class issues
- {\em get-meta} to a service and uses JMX to fetch queue statistics for
presentation in
- the web server.
-
- This name is either
- \begin{enumerate}
- \item The fully qualified name of the class to use as the default
UIMA-AS pinger. It may
- be necessary to include the class or jar file in the classpath
used to start the SM.
- (The reccomended way to do this is add an entry to the {\em
ducc.local.jars} property
- in {\em ducc.properties.}
-
- \item The name of a pinger registration file. This is the
reccomended way to
- provide installation-customized pingers. See the
\hyperref[chap:sm]{Service Management}
- chapter for details of setting up this file. In short, it resides
in {\em ducc.properties}
- and contains the full set of ping-related properties needed to run
a pinger.
- \end{enumerate}
-
- \begin{description}
- \item[Default Value] org.apache.uima.ducc.cli.UimaAsPing
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.sm.state.update.endpoint] \hfill \\
- This is the JMS endpoint name used for state messages sent by the
Service Manager.
- \begin{description}
- \item[Default Value] ducc.sm.state
- \item[Type] Private
- \end{description}
-
- \item[ducc.sm.state.update.endpoint.type] \hfill \\
- This is the JMS message type used for state messages sent by the
Service Manager.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.sm.meta.ping.rate] \hfill \\
- This is the time, in milliseconds, between pings by the Service Manager
- to each known, running service.
- \begin{description}
- \item[Default Value] 60000
- \item[Typ] Tuning
- \end{description}
-
- \item[ducc.sm.meta.ping.stability] \hfill \\
- This is the number of consecutive pings that may be missed before a
- service is considered unavailable.
- \begin{description}
- \item[Default Value] 10
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.sm.meta.ping.timeout] \hfill \\
- This is the time in milliseconds the SM waits for a response to a
ping. If the service does
- not respond within this time the ping is accounted for as a "missed"
ping.
- \begin{description}
- \item[Default Value] 15000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.sm.http.port] \hfill \\
- This is the HTTP port used by the Service Manager to field requests
from the CLI / API.
- \begin{description}
- \item[Default Value] 19989
- \item[Type] Local
- \end{description}
-
- \item[ducc.sm.http.node] \hfill \\
- This is the node where the Service Manager runs. It MUST be configured
as part of DUCC
- setup. The {\em ducc\_post\_install} procedures initialize this to
{\em \$\{ducc.head\}}.
- \begin{description}
- \item[Default Value] \$\{ducc.head\}
- \item[Type] Local
- \end{description}
-
- \item[ducc.sm.default.linger] \hfill \\
- This is the length of time, in milliseconds, that the SM allows a
service to remain alive after
- all jobs that reference it have exited. If no new job referencing it
enters the system before this time has
- expired, the SM stops the service.
- \begin{description}
- \item[Default Value] 300000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.sm.init.failure.limit] \hfill \\
- This is the maximum number of consecutive failures of service instance
initialization
- permitted before DUCC stops creating new instances. When this cap is
hit the SM
- will disable autostart for the service. It may be overridden by the
service
- registration's {\em instance\_failures\_limit} parameter.
-
- NOTE: This was {\em ducc.sm.instance.failure.max} which is now
deprecated.
- \begin{description}
- \item[Default Value] 2
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.sm.instance.failure.limit] \hfill \\
- This is the maximum number of instance failures allowed within some
period of
- time before the Service Manger disables {\em autostart} and ceases to
restart
- instances automatically. The time window for failures is defined with
the
- property {\em ducc.sm.instance.failure.window}.
-
- This may be overridden by individual service pingers using the
registration
- property {\em instance\_failures\_limit}. See the
- \hyperref[subsec:cli.ducc-services.register]{service registration
options}
- for details.
-
- \begin{description}
- \item[Default Value] 5
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.sm.instance.failure.window] \hfill \\
- This specifies a window of time in minutes over which some number of
service instance
- failures are tolerated. If the maximum number of tolerated failures is
- exceeded within this time window the Service Manager ceases to restart
- instances automatically. The maximum tolerated failures is defined in
- {\em ducc.sm.instance.failure.limit}.
-
- This may be overridden by individual service pingers using the
registration
- property {\em instance\_failures\_window}. See the
- \hyperref[subsec:cli.ducc-services.register]{service registration
options}
- for details.
-
- \begin{description}
- \item[Default Value] 30 (minutes)
- \item[Type] Tuning
- \end{description}
-
- \end{description}
-
-
-\subsection{Orchestrator Properties}
- \begin{description}
- \item[ducc.orchestrator. configuration.class] \hfill \\
- This is the name of the pluggable java class used to implement the
DUCC Orchestrator.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.orchestrator.config.OrchestratorConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.orchestrator.start.type] \hfill \\
- This indicates the level of recovery to be taken on restarting a
- system. There are two levels of startup:
- \begin{description}
- \item[cold] All reservations are canceled, all currently running
- jobs (if any) are terminated. All services are terminated. The
- system starts with no jobs, reservations, or services active.
-
- \item[warm] All unmanaged reservations are restored. All currently
- running jobs (if any) are terminated. All services are started or
- restarted as indicated by their state when the system went down.
- The system starts with no jobs active, but unmanaged reservations
- and services are preserved.
-
- \item[Default Value] warm
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.orchestrator.state.endpoint] \hfill \\
- This is the name of the JMS endpoint through which the Orchestrator
broadcasts its full
- state messages. These messages include full job information and can be
large. This state is
- used by the Process Manager and the Webserver.
- \begin{description}
- \item[Default Value] ducc.orchestrator.request
- \item[Type] Private
- \end{description}
-
- \item[ducc.orchestrator.state.update.endpoint.type] \hfill \\
- This is the JMS endpoint type used for the "full" state messages sent
by the Orchestrator.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.orchestrator.state.publish.rate] \hfill \\
- \phantomsection\label{itm:props-or.state.publish.rate}
-
- The interval in milliseconds between Orchestrator publications of its
non-abbreviated
- state.
- \begin{description}
- \item[Default Value] 10000
- \item[Type] Private
- \end{description}
-
- \item[ducc.orchestrator.maintenance.rate] \hfill \\
- This is the interval in milliseconds between Orchestrator maintenance
cycles, which check
- and update history and state.
- \begin{description}
- \item[Default Value] 60000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.orchestrator.http.port] \hfill \\
- This is the HTTP port used by the Orchestrator to field requests from
the CLI / API.
- \begin{description}
- \item[Default Value] 19988
- \item[Type] Local
- \end{description}
-
- \item[ducc.orchestrator.http.node] \hfill \\
- This is the node where the Orchestrator runs. It MUST be configured as
part of DUCC
- setup. The {\em ducc\_post\_install} procedures initialize this to
{\em \$\{ducc.head\}}.
- \begin{description}
- \item[Default Value] \$\{ducc.head\}
- \item[Type] Local
- \end{description}
-
- \item[ducc.orchestrator.unmanaged.reservations.accepted] \hfill \\
- This flag controls whether the Orchestrator will accept requests for
- unmanaged reservations (true) or deny request for unmanaged
reservations
- (false).
- \begin{description}
- \item[Default Value] true
- \item[Type] Local
- \end{description}
- \end{description}
-
-\subsection{Resource Manager Properties}
-
- \begin{description}
- \item[ducc.rm.configuration.class] \hfill \\
- This is the name of the pluggable java class used to implement the
DUCC Resource
- Manager.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.rm.config.ResourceManagerConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.state.update.endpoint] \hfill \\
- This is the name of the JMS endpoint through which the Resource
Manager broadcasts its
- abbreviated state.
- \begin{description}
- \item[Default Value] ducc.rm.state
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.state.update.endpoint.type] \hfill \\
- This is the JMS endpoint type used for state messages sent by the
Resource Manager.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.state.publish.ratio] \hfill \\
- This specifies the frequency of RM schedules, relative to the number
of Orchestrator publications. If
- the value is set to 1, RM runs and publishes a schedule immediately
on receipt of OR state. If set to
- some number N, RM runs a schedule after receipt of every N
Orchestrator publications.
- \begin{description}
- \item[Default Value] 1
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.rm.share.quantum] \hfill \\
- The share quantum is the smallest amount of RAM that is schedulable
for jobs, in GB.
- Jobs are scheduled based entirely on their memory requirements.
Memory is allocated in
- multiples of the share quantum.
-
- See the \hyperref[chap:rm]{Resource Management} section for more
information on the share quantum.
- \begin{description}
- \item[Default Value] 1
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.rm.global.allotment] \hfill \\
- This specifies the maximum non-preemptable shares any user may be
awarded, in GB. If not configured,
- there is no maximum enforced. This can be overridden on a per-user
basis in the user registry.
- See the \hyperref[chap:rm]{Resource Management} section for more
information on the share quantum.
- \begin{description}
- \item[Default Value] (not set, no limit imposed)
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.rm.scheduler] \hfill \\
- The component that implements the scheduling algorithm is pluggable.
This specifies the
- name of that class.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.rm.scheduler.NodepoolScheduler
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.user.registry] \hfill \\
- This names the file with the user registr, within the
DUCC\_HOME/resources directoryy.
- As of this version of DUCC, the registry is used
- only to override the global allotments. The registry entries may
also be placed in the
- \hyperref[sec:ducc.classes]{\em ducc.classes} file if desired.
- \begin{description}
- \item[Default Value] ducc.users
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.class.definitions] \hfill \\
- This specifies the name of the file that contains the site's class
definitions. This file is
- described in detail in the \hyperref[sec:ducc.classes]{\em
ducc.classes} section.
- \begin{description}
- \item[Default Value] ducc.classes
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.rm.node.stability] \hfill \\
- The RM receives regular "heartbeats" from the DUCC agents in order
to know what
- nodes are available for scheduling. The node.stability property
configures the number of
- consecutive heartbeats that may be missed before the Resource
Manager considers the
- node to be inoperative.
-
- If a node becomes inoperative, the Resource Manager deallocates all
processes on that
- node and attempts to reallocate them on other nodes. The node is
marked offline and is
- unusable until its heartbeats start up again.
-
- The default configuration declares the agent heartbeats to occur at
1 minute intervals.
- Therefore heartbeats must be missed for five minutes before the
Resource Manager takes
- corrective action.
- \begin{description}
- \item[Default Value] 5
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.rm.init.stability] \hfill \\
- During DUCC initialization the Resource Manager must wait some
period of time for
- all the nodes in the cluster to check-in via their "heartbeats". If
the RM were to start
- scheduling too soon there would be a period of significant "churn"
as the perceived cluster
- configurations changes rapidly. As well, it would be impossible to
recover work in a warm
- or hot start if the affected nodes had not yet checked in.
-
- The init.stability property indicates how many heartbeat intervals
the RM must wait before
- it starts scheduling after initialization.
- \begin{description}
- \item[Default Value] 2
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.rm.eviction.policy] \hfill \\
- The alternative value is SHRINK\_BY\_MACHINE.
-
- The eviction.policy is a heuristic to choose which processes of a
job to preempt because of
- competition from other jobs.
-
- The SHRINK\_BY\_INVESTMENT policy attempts to preempt processes such
that the
- least amount of work is lost. It chooses candidates for eviction in
order of:
- \begin{enumerate}
- \item Processes still initializing, with the smallest time spent
in the initializing step.
- \item Processes whose currently active work items have been
executing for the shortest
- time.
- \end{enumerate}
- The SHRINK\_BY\_MACHINE policy attempts to preempt processes so as
to minimize
- fragmentation on machines with large memories that can contain
multiple job processes.
- No consideration of execution time or initialization time is made.
- \begin{description}
- \item[Default Value] SHRINK\_BY\_INVESTMENT
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.rm.initialization.cap] \hfill \\
- The type of jobs supported by DUCC generally have very long and
often fragile
- initialization periods. Errors in the applications and other
problems such is missing or
- errant services can cause processes to fail during this phase.
-
- To avoid preempting running jobs and allocating a large number of
resources to jobs only
- to fail during initialization, the Resource Manager schedules a
small number of processes
- until it is determined that the initialization phase will succeed.
-
- The initialization.cap determines the maximum number of processes
allocated to a job
- until at least one process successfully initializes. Once any
process initializes the Resource
- Manager will proceed to allocate the job its full fair share of
processes.
-
- The initialization cap can be overridden on a class basis by
configuration via
- \hyperref[sec:ducc.classes]{ducc.classes}.
-
- \begin{description}
- \item[Default Value] 1
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.rm.expand.by.doubling] \hfill \\
- When a job expands because its fair share has increased, or it has
completed initialization,
- it may be desired to govern the rate of expansion. If
expand.by.doubling is set to "true",
- rather than allocate the full fair share of processes, the number of
processes is doubled
- each scheduling cycle, up to the maximum allowed.
-
- Expand.by.doubling can be overridden on a class basis by
configuration via
- \hyperref[sec:ducc.classes]{ducc.classes}.
-
- \begin{description}
- \item[Default Value] true
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.rm.prediction] \hfill \\
- Because initialization time may be very long, it may be the case
that a job that might be
- eligible for expansion will be able to complete in the currently
assigned shares before any
- new processes are able to complete their initialization. In this
case expansion results in
- waste of resources and potential eviction of processes that need not
be evicted.
-
- The Resource Manager monitors the rate of task completion and
attempts to predict the
- maximum number of processes that will be needed at a time in the
future based on the
- known process initialization time. If it is determined that
expansion is unnecessary then it
- is not done for the job.
-
- Prediction can be overridden on a class basis by configuration via
- \hyperref[sec:ducc.classes]{ducc.classes}.
- \begin{description}
- \item[Default Value] true
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.rm.prediction.fudge] \hfill \\
- \phantomsection\label{itm:props-rm.prediction.fudge}
-
- When ducc.rm.prediction is enabled, the known initialization time of
a job's processes plus
- some "fudge" factor is used to predict the number of future
resources needed. The "fudge"
- is specified in milliseconds.
-
- The default "fudge" is very conservative. Experience and site policy
should be used to set a
- more practical number.
-
- Prediction.fudge can be overridden on a class basis by configuration
via
- \hyperref[sec:ducc.classes]{ducc.classes}.
-
- \begin{description}
- \item[Default Value] 120000
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.rm.defragmentation.threshold] \hfill \\
- \phantomsection\label{itm:props-rm.defragmentation.threshold}
-
- If {\em ducc.rm.defragmentation} is enable, limited defragmentation
of resources is
- performed by the Resource Manager to create sufficient space to
schedule work
- that has insufficient resources (new jobs, for example.). The term
- {\em insufficient} is defined as ``needing more processes than the
defragmentation
- threshold, but currently having fewer processes than the
defragmentation
- threshold.'' These are called ``needy'' jobs. Additionally, the
Resource Manager
- will never evict processes from ``needy'' jobs for the purpose of
defragmentation.
-
- This property allows installations to customize the value used to
determine if a
- job is ``needy''. Jobs with fewer processes than this are
potentially needed, and
- jobs with more processes are never needy.
-
- \begin{description}
- \item[Default Value] 8
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.rm.admin.endpoint] \hfill \\
- This JMS endpoint used for RM administrative requests.
- \begin{description}
- \item[Default Value] ducc.rm.admin.channe.
- \item[Type] Private
- \end{description}
-
- \item[ducc.rm.admin.type] \hfill \\
- This is the JMS endpoint type used for RM administrative requests.
- \begin{description}
- \item[Default Value] ducc.rm.admin.channe.
- \item[Type] Private
- \end{description}
-
-
- \end{description}
-
-
-
-\subsection{Agent Properties}
-
- \begin{description}
-
- \item[ducc.agent.configuration.class] \hfill \\
- This is the name of the pluggable java class used to implement the
DUCC Agents.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.nodeagent.config.AgentConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.request.endpoint] \hfill \\
- This is the JMS endpoint through which agents receive state from the
Process Manager.
- \begin{description}
- \item[Default Value] ducc.agent
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.request.endpoint.type] \hfill \\
- This is the JMS endpoint type used for state messages sent by the
Process Manager.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.managed.process.state.update.endpoint] \hfill \\
- This is the JMS endpoint used to communicate from the managed
process to the Agent
- (Job Process).
- \begin{description}
- \item[Default Value] ducc.managed.process. state.update
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.managed.process.state.update.endpoint.type] \hfill \\
- This is the JMS endpoint type used to communicate from the managed
process (Job
- Process) to the Agent.
- \begin{description}
- \item[Default Value] socket
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.managed.process. state.update.endpoint.params] \hfill
\\
- These are configuration parameters for the Agent-to-JP communication
socket. These
- should only be modified by DUCC developers.
- \begin{description}
- \item[Default Value] transferExchange=true\&sync=false
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.node.metrics.endpoint] \hfill \\
- This is the JMS endpoint used to send node metrics updates to
listeners. Listeners
- are usually the Resource Manager and Web Server. These messages
serve as node
- "heartbeats". As well, the node metrics heartbeats contain the
amount of RAM on the node
- and the number of processors.
- \begin{description}
- \item[Default Value] ducc.node.metrics
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.node.metrics.endpoint.type] \hfill \\
- This is the JMS endpoint type used to send node metrics updates from
the agents.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.node.metrics.publish.rate] \hfill \\
- The interval in milliseconds between node metric publications.
- Every agent publishes its updates at this rate. On large clusters,
a high rate (small
- interval) can be a burden on the network.
-
- Note: the Resource Manager uses the data in the node metrics for
scheduling.
- \begin{description}
- \item[Default Value] 60000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.node.inventory.endpoint] \hfill \\
- This is the JMS endpoint used to send node inventory messages to
listeners. Listeners are
- usually the Orchestrator and Web Server. Information in these
messages include a map of
- processes being managed on the node.
- \begin{description}
- \item[Default Value] ducc.node.inventory
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.node.inventory.endpoint.type] \hfill \\
- This is the JMS endpoint type used to send node inventory updates
from the agents.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.agent.node.inventory.publish.rate] \hfill \\
- The interval in milliseconds between node inventory publications.
-
- If the inventory has not changed since the last update the agent
bypasses sending the
- update, up to a maximum of
ducc.agent.node.inventory.publish.rate.skip times.
- \begin{description}
- \item[Default Value] 10000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.node.inventory.publish.rate.skip] \hfill \\
- This is the number of times the agent will bypass publishing its
node inventory if the
- inventory has not changed.
- \begin{description}
- \item[Default Value] 30
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.thread.pool.size] \hfill \\
- This is establishes the size of the agent's threadpool used to
manage spawned processes.
- \begin{description}
- \item[Default Value] 10
- \item[Type] Tuning
- \end{description}
- Deprecated.
-
- \item[ducc.agent.launcher.ducc\_spawn\_path] \hfill \\
- This property specifies the full path to the ducc\_ling utility.
During installation ducc\_ling
- is normally moved to local disk and given setuid-root privileges.
Use this property to tell
- the DUCC agents the location of the installed ducc\_ling. The
default location is within
- an architecture dependent subdiretory of DUCC\_HOME/admin.
-
- The arcitecture is derived from
- the JRE property {\em os.arch}. During DUCC installation the {\em
ducc\_ling} utility is
- compiled for the architecture of the host where DUCC is installed.
In heterogeneous
- clusters, the system administrator should run the utility {\em
build\_duccling} once on
- a machine of each architecture to insure this utility gets correctly
installed.
- \begin{description}
- \item[Default Value] \ducchome/admin/\${os.arch}/ducc\_ling
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.process.stop.timeout] \hfill \\
- This property specifies the time, in milliseconds, the agent should
wait before forcibly
- terminating a job process (JP) after an attempted graceful shutdown.
If the child process
- does not terminate in the specified time, it is forcibly terminated
with kill -9.
-
- This type of stop can occur because of preemption or system
shutdown.
- \begin{description}
- \item[Default Value] 60000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.process.init.timeout] \hfill \\
- This property specifies the time, in milliseconds, that the agent
should wait for a job
- process (JP) to complete initialization. If initialization is not
completed in this time the
- process is terminated and and InitializationTimout status is send to
the job driver (JD)
- which decides whether to retry the process or terminate the job.
-
- \begin{description}
- \item[Default Value] 7200000
- \item[Type] Tuning
- \end{description}
- Deprecated. Replaced by ducc.default.process.init.time.max (in
minutes)
-
-
- \item[ducc.agent.share.size.fudge.factor] \hfill \\
-
- The DUCC agent monitors the size of the resident memory of its
spawned processes. If a
- process exceeds its declared memory size by any significant amount
it is terminated and
- a ShareSizeExceeded message is sent. The Job Driver counts this
towards the maximum
- errors for the job and will eventually terminate the job if
excessive such errors occur.
-
- This property defines the percentage over the declared memory size
that a process is
- allowed to grow to before being terminated.
-
- To disable this feature, set the value to -1.
- \begin{description}
- \item[Default Value] 5
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.rogue.process.user.exclusion.filter] \hfill \\
- \phantomsection\label{itm:props-rogue.user}
-
- The DUCC Agents scan nodes for processes that should not be
running; for example,
- a job may have left a 'rogue' process alive when it exits, or a
user may log in to a node
- unexpectedly. These processes are reported to the administrators
via the webserver for
- possible action.
-
- This configuration parameter enumerates userids which are ignored
by the rogue-process
- scan.
- \begin{description}
- \item[Default Value] root,posstfix,ntp,nobody,daemon,100
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.rogue.process.exclusion.filter] \hfill \\
- \phantomsection\label{itm:props-rogue.process}
- The DUCC Agents scan nodes for processes that should not be
running; for example,
- a job may have left a 'rogue' process alive when it exits, or a
user may log in to a node
- unexpectedly. These processes are reported to the administrators
via the webserver for
- possible action.
-
- This configuration parameter enumerates processes by name which
are ignored by the
- rogue process detector.
-
- \begin{description}
- \item[Default Value] sshd:,-bash,-sh,/bin/sh,/bin/bash,grep,ps
- \item[Type] Tuning
- \end{description}
-
-
- \phantomsection\label{itm:props-agent.cgroups.enable}
- \item[ducc.agent.launcher.cgroups.enable] \hfill \\
- Enable or disable CGroups support.
- If CGroups are not installed on a specific machine, this is
ignored.
-
- With CGroups the RSS for a managed process (plus any children
processes it may spawn) is
- limited to the allocated share size. Additional memory use goes to
swap space. DUCC
- monitors and limits swap use to the same proportion of total swap
space as allocated
- share size is to total RAM. If a process exceeds its allowed swap
space it is terminated
- and a ShareSizeExceeded message is sent to the Job Driver.
-
- Nodes not using CGroups fall back to the
ducc.agent.share.size.fudge.factor.
-
- \begin{description}
- \item[Default Value] true
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.cgroups.utils.dir] \hfill \\
- \phantomsection\label{itm:ducc.agent.launcher.cgroups.utils.dir}
- Location of CGroups programs, like cgexec. If CGroups are not
- installed on a specific machine, this is ignored.
-
- Depending on the OS, CGroups programs may be installed in
different places.
- Provide a comma separated list of directories the agent should
search to find the programs.
-
- \begin{description}
- \item[Default Value] /usr/bin
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.cgroups.basedir] \hfill \\
- \phantomsection\label{itm:ducc.agent.launcher.cgroups.basedir}
- Location where ducc related CGroups will be created.
-
- \begin{description}
- \item[Default Value] /cgroup/ducc
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.cgroups.max.retry.count] \hfill \\
- \phantomsection\label{ducc.agent.launcher.cgroups.max.retry.count}
- Defines how many times an agent attempts to create a cgroup after
- a failure.
-
- \begin{description}
- \item[Default Value] 10
- \item[Type] Tuning
- \end{description}
-
-
- \item[ducc.agent.launcher.cgroups.retry.delay.factor] \hfill \\
-
\phantomsection\label{ducc.agent.launcher.cgroups.retry.delay.factor}
- Defines a delay factor in millis an agent will use to determine
how long it
- should sleep between cgroup create retries. Each time cgcreate
fails
- an agent will increment the delay by adding the delay factor to a
previous
- delay. If the delay factor is 2000, on first cgcreate failure an
agent will
- wait 2000 ms, on second failure the wait time will be 4000, on
third 6000, and
- so on.
-
- \begin{description}
- \item[Default Value] 2000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.agent.launcher.cgroups.swappiness] \hfill \\
- \phantomsection\label{ducc.agent.launcher.cgroups.swappiness}
- Defines cgroup swappiness.
-
- \begin{description}
- \item[Default Value] 10
- \item[Type] Tuning
- \end{description}
-
- \phantomsection\label{itm:props-agent.cgroups.exclusion}
- \item[ducc.agent.exclusion.file] \hfill \\
- This specifies the exclusion file to enable node based exclusion
for various
- features. Currently only CGroup exclusion is supported.
-
- The exclusion file has one line per agent of the form:
-\begin{verbatim}
-<node>=cgroups
-\end{verbatim}
- If the keyword ``cgrouops'' is found, the node is excluded from
CGroup
- support.
-
- \begin{description}
- \item[Default Value] Not configured.
- \item[Type] Tuning
- \end{description}
-
-
- \end{description}
-
-
-\subsection{Process Manager Properties}
-
- \begin{description}
-
- \item[ducc.pm.configuration.class] \hfill \\
- This is the name of the pluggable java class used to implement the
DUCC Process
- Manager.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.pm.config.ProcessManagerConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.pm.request.endpoint] \hfill \\
- This is the endpoint through which process manager receive state from
the Orchestrator.
- \begin{description}
- \item[Default Value] ducc.pm
- \item[Type] Private
- \end{description}
-
- \item[ducc.pm.request.endpoint.type] \hfill \\
- This is the JMS endpoint type used for state messages sent by the
Orchestrator.
- \begin{description}
- \item[Default Value] queue
- \item[Type] Private
- \end{description}
-
- \item[ducc.pm.state.update.endpoint] \hfill \\
- This is the endpoint through which process manager sends its
heartbeat. The main receiver
- is the Web Server for it's daemon status page.
- \begin{description}
- \item[Default Value] ducc.pm.state
- \item[Type] Private
- \end{description}
-
- \item[ducc.pm.state.update.endpoint.type] \hfill \\
- This is the JMS endpoint type used for process manager heartbeats. The
primary receiver
- is the Web Server for its daemon status page.
- \begin{description}
- \item[Default Value] topic
- \item[Type] Private
- \end{description}
-
- \item[ducc.pm.state.publish.rate] \hfill \\
- The interval in milliseconds between process manager heartbeat
publications.
- \begin{description}
- \item[Default Value] 25000
- \item[Type] Private
- \end{description}
-
-
- \end{description}
-
-
-\subsection{Job Process Properties}
-
- \begin{description}
-
- \item[ducc.uima-as.configuration.class] \hfill \\
- This is the name of the pluggable java class that implements the the
UIMA-AS service
- shell for job processes (JPs).
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.transport.configuration.jp.JobProcessConfiguration
- \item[Type] Private
- \end{description}
-
- \item[ducc.uima-as.endpoint] \hfill \\
- This is the endpoint through which job processes (JPs) receive
messages from the Agents.
- \begin{description}
- \item[Default Value] ducc.job.managed.service
- \item[Type] Private
- \end{description}
-
- \item[ducc.uima-as.endpoint.type] \hfill \\
- This is the JMS endpoint type used for messages sent to the JPs from
the Agents.
- \begin{description}
- \item[Default Value] socket
- \item[Type] Private
- \end{description}
-
- \item[ducc.uima-as.endpoint.params] \hfill \\
- This configures the JP-to-Agent communication socket. It should be
changed only by
- DUCC developers.
- \begin{description}
- \item[Default Value] transferExchange=true\&sync=false
- \item[Type] Private
- \end{description}
-
- \item[ducc.uima-as.saxon.jar.path] \hfill \\
- This configures the path the required Saxon jar.
- \begin{description}
- \item[Default Value] file:\ducchome/apache-uima/saxon/saxon8.jar
- \item[Type] Private
- \end{description}
-
-
- \item[ducc.uima-as.dd2spring.xsl.path] \hfill \\
- This configures the path the required dd2spring xsl definitions.
- \begin{description}
- \item[Default Value] \ducchome/apache-uima/bin/dd2spring.xsl
- \item[Type] Private
- \end{description}
-
- \item[ducc.uima-as.flow-controller.specifier] \hfill \\
- This configures the pluggable class that implements the default flow
controller used in the
- DUCC job processes (JPs).
- \begin{description}
- \item[Default Value] org.apache.uima.ducc.FlowController
- \item[Type] Private
- \end{description}
-
- \item[ducc.process.request.timeout] \hfill \\
- This is the maximum amount of time to wait for a response from a JD,
in milliseconds. This value
- is used by a JP when sending requests to the JD.
- \begin{description}
- \item[Default Value] 30000
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.process.uima.as.container.class] \hfill \\
- Define process container class for DD jobs to instantiate and invoke
via reflection.
- The container provides classpath isolation for user defined analytics.
- The container is instantiated with classes from a System classloader.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.user.jp.UimaASProcessContainer
- \item[Type] Private
- \end{description}
-
- \item[ducc.process.uima.container.class] \hfill \\
- Define process container class for non-DD jobs to instantiate and
invoke via reflection.
- The container provides classpath isolation for user defined
analytics.
- The container is instantiated with classes from a System classloader.
- \begin{description}
- \item[Default Value]
org.apache.uima.ducc.user.jp.UimaProcessContainer
- \item[Type] Private
- \end{description}
-
- \item[ducc.process.thread.sleep.time] \hfill \\
- Define the sleep time in milliseconds for JP to use when JD sends
empty CAS. In this case the
- JD's CR has processed its collection. The JP threads need to slow down
sending
- requests
- \begin{description}
- \item[Default Value] 3000
- \item[Type] Tuning
- \end{description}
-
-
- \end{description}
-
-
-\subsection{Database Configuration Properties}
-\label{subsec:ducc.database.properties}
-
- \begin{description}
-
- \item[ducc.database.host] \hfill \\
- This is the name of the host where the database is run. It usually
defaults to the
- same host as the ducc.head. Those knowledgable of the database can
install the
- database elsewhere. Use this parameter to specify that location.
-
- To disable use of the database, set this parameter to the string {\em
--disabled--}.
- \begin{description}
- \item[Default Value] The same as your ducc.head.
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.database.jmx.host] \hfill \\
- This is the name of the database host for JMX access. If it is
``localhost'' then only local
- JMX access is supported. If it is set to the real name of the
database host then remote JMX
- access is possible.
- \begin{description}
- \item[Default Value] localhost
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.database.jmx.port] \hfill \\
- This is the JMX port used by the database. Normally it need not be
changed.
- It is set via the cassandra-env.sh script so must not be in the range
of values used by the
- other daemons, i.e. values just above {\em ducc.jmx.port}.
- \begin{description}
- \item[Default Value] 7199
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.database.mem.heap] \hfill \\
- This is the value used to set {\em Xmx and Xms} when the database
starts. The
- Cassandra database makes an attempt to determine the best value of
this. The
- default is one-half of real memory, up to a maximum of 8G. It is
recommended that
- the default be used. However, small installations may reduce this to
as little
- as 512M. Note that both Xmx and Xms are set.
- \begin{description}
- \item[Default Value] Determined by Cassandra, up to 8G max.
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.database.mem.new] \hfill \\
- This is the default for the ``young'' generation when the JVM needs
more memory.
- In general, the default is correct. If you're not familiar with
Java's memory
- management it is safest to not modify this.
- \begin{description}
- \item[Default Value] Determined by Cassandra.
- \item[Type] Tuning
- \end{description}
-
- \item[ducc.service.persistence.impl] \hfill \\
- This specifies the class used to implement persistence for the Service
Manager's registry.
- The installation procedures for the database automatically update your
{\em site.ducc.properties}
- to use the correct default.
-
- There
- are two supported values:
-\begin{verbatim}
-org.apache.uima.ducc.common.persistence.services.StateServices
-org.apache.uima.ducc.database.StateServicesDb
-\end{verbatim}
-
- The first value implements the service registry in the file system in
the directory
- {\tt DUCC\_HOME/state/services}.
-
- When the database is installed, the service registry is implemented
over the database.
-
- \begin{description}
- \item[Default Value] When the database is enabled:
-\begin{verbatim}
- org.apache.uima.ducc.database.StateServicesDb
-\end{verbatim}
-
- When the database is not enabled:
-\begin{verbatim}
- org.apache.uima.ducc.common.persistence.services.StateServices
-\end{verbatim}
- \item[Type] Private
- \end{description}
-
-
- \item[ducc.job.history.impl] \hfill \\
- This specifies the class used to implement persistence for job history
and the
- Orchestrator checkpoint.
- The installation procedures for the database automatically update your
{\em site.ducc.properties}
- to use the correct default.
-
- The two supported values are:
-\begin{verbatim}
-org.apache.uima.ducc.transport.event.common.history.HistoryPersistenceManager
-org.apache.uima.ducc.database.HistoryManagerDb
-\end{verbatim}
-
- The first value causes job history to be stored in {\tt
DUCC\_HOME/history}
- and the Orchestrator checkpoint to be stored in {\tt
DUCC\_HOME/orchestrator.ckpt}.
-
- The second causes both history and checkpoint to be saved in the
database.
-
- \begin{description}
- \item[Default Value] If the database is enabled:
-\begin{verbatim}
- org.apache.uima.ducc.database.HistoryManagerDb
-\end{verbatim}
- If the database is not enabled:
-\begin{verbatim}
-
org.apache.uima.ducc.transport.event.common.history.HistoryPersistenceManager
-\end{verbatim}
- \item[Type] Private
- \end{description}
-
-
- \item[ducc.rm.persistence.impl] \hfill \\
- This specifies the class used to implement persistence for the
Resource Manager's
- dynamic state.
- The installation procedures for the database automatically update your
{\em site.ducc.properties}
- to use the correct default.
-
- The two supported values are:
-\begin{verbatim}
-org.apache.uima.ducc.database.RmStatePersistence
-org.apache.uima.ducc.common.persistence.rm.NullRmStatePersistence
-\end{verbatim}
-
- The first value implements RM's use of the database to store its
dynamic state. The second
- disables RM state persistence. There is no implementation that
persists RM state
- in the filesystem.
-
- \begin{description}
- \item[Default Value] If the
- database is enabled:
-\begin{verbatim}
- org.apache.uima.ducc.database.RmStatePersistence
-\end{verbatim}
- If the database is not enabled:
-\begin{verbatim}
- org.apache.uima.ducc.common.persistence.rm.NullRmStatePersistence
-\end{verbatim}
- \item[Type] Private
- \end{description}
- \end{description}
-
-\section{ducc.private.properties}
-\label{sec:ducc.private.properties}
-
-\subsection{Web Server Properties}
-
- \begin{description}
-
- \item[ducc.ws.port.ssl.pw] \hfill \\
- This is the password used to generate the Web Server's keystore used
for HTTPS requests. Usually
- this keystore is created at initial installation time using
\hyperref[subsec:admin.ducc-post-installl]{ducc\_post\_install.}
- \begin{description}
- \item[Default Value] Randomly generated at install time.
- \item[Type] Local
- \end{description}
- \end{description}
-
-
-\subsection{Database Properties}
-
- \begin{description}
-
- \item[db\_password] \hfill \\
- This is the database superuser password. It is set during {\em
ducc\_post\_install} or {\em db\_create}. Both
- these procedures randomly generate the password.
-
- NOTE: The database superuser ID is always ``ducc'', and is set
during database installation.
- \begin{description}
- \item[Default Value] Randomly generated at install time.
- \item[Type] Local
- \end{description}
- \end{description}
-
+ administrators to configure DUCC to each individual installation.
+
+\section{default.ducc.properties}
+\label{sec:default.ducc.properties}
+
\verbatiminput{../../../../../src/main/resources/default.ducc.properties}
+
\ No newline at end of file