Octopus Administrator's Guide
Configuring a Single-Server Octopus System

 

Previous Topic:
Octopus Configuration
Chapter Index
Next Topic:
Configuring Octopus for Multi-Server Operation

 

Subclass Configuration


A Subclass is the implementation of a Class on a specific Node (host computer). In the basic (single-computer) Octopus implementation, the section header for a Subclass consists simply of the keyword SUBCLASS followed by the Class name: since no Node name is specified, the Subclass is considered to reside on the main Octopus host computer. For instructions on configuring Subclasses residing on remote Nodes, consult the next section, Configuring Octopus for Multi-Server Operation.

Take care to ensure that the spelling of the Class name matches that used in the OCTOPUS section; otherwise the section will not be recognized.

Note:
It is possible to reconfigure the Cache and NumberOfEngines values for Octopus Subclasses “on-the-fly”. For details, consult the Octopus Operations section.

If the Class name is the last in the list of values for the Classes parameter in the OCTOPUS section, and OctoRunMode is set to PublicUpdate, then the Subclass is automatically defined as updatable. If the Class name is first in the Classes list, and the LoginClass=TRUE parameter is also included in the OCTOPUS section, the Subclass is reserved for the processing of client database login requests.

[SUBCLASS class-name]

NumberOfEngines= 

(Required) The number of OctoEng’s that will be started for this Subclass when Octopus starts. If the Subclass is updatable, it can contain only one OctoEng.

 

The following are optional Subclass parameters:

Cache= 

The maximum amount of virtual memory (in megabytes) that will be allocated for database operations for OctoEng’s in this Subclass.

Minimum: 64
Maximum: UNIX: 131072 (128 GB); Windows: 2047 (2 GB minus 1 MB)
Default, or when value is out of range: 128

DeltaPath=  The location of the Delta Files to which changes to the database will be written. A period ( . ) indicates the current directory.

Default: DatabasePath value from the OCTOPUS section

IntegerDivisionScale=

Sets the scale for the results of integer division. By default, if a division operation contains an INTEGER, SMALLINT, or UNSIGNED value as the divisor and dividend, the resulting value is an integer, and any decimal portion of the result is truncated. When the IntegerDivisionScale parameter is set to a positive number, integer division will instead return a value rounded to the specified number of decimal places.

The IntegerDivisionScale parameter must be set to a non-negative integer number n, where n is the number of decimal places that will be returned by integer division. For instance, IntegerDivisionScale=1 means that results have one decimal place, IntegerDivisionScale=2 means two decimal places, and so on to a maximum of 50 decimal places. However, for large IntegerDivisionScale values, the actual maximum scale depends on the number being divided. For A divided by B:

  • If A is SMALLINT, then an IntegerDivisionScale value of 45 to 50 yields a result with a maximum of 45 decimal places.
  • If A is INTEGER, then an IntegerDivisionScale value of 40 to 50 yields a result with a maximum of 40 decimal places.
  • If A is UNSIGNED, then an IntegerDivisionScale value of 31 to 50 yields a result with a maximum of 31 decimal places.

Note that IntegerDivisionScale can also be set in the [DATABASE...] and [OCTOPUS...] sections to change the scope of the parameter.

Default: 0
Minimum: 0
Maximum: 50

MaxDeltaFileSize=
MaxDeltaFileRatio= 
The maximum size of the Delta Files (one per OctoEng in each Subclass) to which changes to the database will be written. MaxDeltaFileSize expresses this figure in megabytes (0 = unlimited); MaxDeltaFileRatio expresses it as a percentage of database size. When MaxDeltaFileRatio=0, the MaxDeltaFileSize value is used.

If both parameters are included, the MaxDeltaFileRatio setting is used, except when MaxDeltaFileRatio=0.

Defaults:
MaxDeltaFileSize=2048 (2 GB)

MaxDeltaFileRatio=0 (MaxDeltaFileSize value is used)

MaxVMem=

(UNIX only) Sets the maximum amount of virtual memory (in megabytes) that the OctoEng's will use. If MaxVMem is not set, a server will use the environment’s hard ulimit setting to determine its virtual memory limit, based on the hard ulimit’s relation to the minimum memory requirements for the server (Cache value + 1024 MB).

If the MaxVMem setting is less than the Cache value + 1024 MB (1 GB), it is automatically set to Cache + 1 GB. If the MaxVMem setting is greater than the hard ulimit setting, it is automatically set to the hard ulimit setting. If MaxVMem is not set and the hard ulimit setting is unlimited, MaxVMem defaults to Cache + 1 GB.

The maximum virtual memory settings are summarized in the table below:

MaxVMem is not set   MaxVMem is set
ulimit < (Cache + 1 GB) Maximum virtual memory is set to the hard ulimit value, which is below OctoEng ’s minimum memory requirements (Cache value + 1 GB), so the server will fail to start. MaxVMem < (Cache + 1 GB) Maximum virtual memory is set to (Cache value + 1 GB).
ulimit > (Cache + 1 GB) Maximum virtual memory is set to the hard ulimit value. MaxVMem > (Cache + 1 GB) Maximum virtual memory is set to the MaxVMem value, up to a maximum of the hard ulimit value.
ulimit is unlimited Maximum virtual memory is set to (Cache value + 1 GB). ulimit is unlimited Maximum virtual memory is set to the MaxVMem value.


A setting of 0 removes any limits on virtual memory usage by the server, although it is still bound by the hard ulimit. However, if the hard ulimit is unlimited, a setting of 0 means that the OctoEng will attempt to use as much memory as possible for its operations, irrespective of other, non-SAND processes. This situation is not recommended unless the machine is dedicated to running SAND operations. Otherwise, it is best to ensure that a certain amount of system memory is reserved for non-SAND processes.

Note that MaxVMem can also be set in the [DATABASE...] and [OCTOPUS...] sections to change the scope of the parameter.

Minimum: Cache value + 1024 MB
Maximum: the hard ulimit setting
Default: Cache value + 1024 MB (set only if MaxVMem is undefined and the hard ulimit is unlimited)

ODDBMaxVMem= (On-Demand Database mode) See the MaxVMem parameter description above.
ODDBSubClass= (On-Demand Database mode) Specifies whether the Subclass can be used to start ODDB instances. Only Subclasses that have this parameter set to TRUE will be used for ODDB operations.

Defaults:
TRUE (if there is only one Subclass)
FALSE (if there are multiple Subclasses)

RescheduleTimeout=  The maximum time (in seconds) allowed for query processing by OctoEng’s in this Subclass. A value of 0 indicates unlimited time. If the results have not been returned when this period has elapsed, the query is passed to the next Class specified in the Classes list in the OCTOPUS section. If not set to 0, the minimum RescheduleTimeout setting is 5 seconds.

Default: 15


 

Previous Topic:
Octopus Configuration
Chapter Index
Next Topic:
Configuring Octopus for Multi-Server Operation