Setting Store Parameters

Changing Parameters
Setting Store Wide Policy Parameters
Admin Parameters
Storage Node Parameters
Replication Node Parameters

The three Oracle NoSQL Database service types; Admin, Storage Node and Replication Node; have configuration parameters, some of which can be tweaked after the service is deployed. To see the parameter values that can be changed, you use the following command in the CLI:

show parameters -service <id>

This command allows you to display service parameters and state for the specified service. The service may be a Replication Node, a Storage Node, or Admin service, as identified by any valid string. You can use the -policy optional flag to show global policy parameters.

Changing Parameters

All of the CLI commands used for creating parameter-changing plans share a similar syntax:

plan change-parameters -service <id>...

All such commands can have multiple ParameterName=NewValue assignment arguments on the same command line. If NewValue contains spaces, then the entire assignment argument must be quoted within double quote marks. For example, to change the Admin parameter collectorPollPeriod, you would issue the command:

kv-> plan change-parameters -all-admins -params \
    "collectorPollPeriod=20 SECONDS" 

The following commands are used to change service parameters:

  • plan change-parameters -service <shardId-nodeId> -params [assignments]

    This command is used to change the parameters of a single Replication Node, which must be identified using the shard and node numbers. The shardId-nodeId identifier must be given as a single argument with one embedded hyphen and no spaces. The shardId identifier is represented by rgX, where X refers to the shard number.

  • plan change-parameters -all-rns -params [assignments]

    This command is used to change the parameters of all Replication Nodes in a store. No Replication Node identifier is needed in this case.

  • plan change-parameters -service <storageNodeId> -params [assignments]

    This command is used to change the parameters of a single Storage Node instance. The storageNodeId is a simple integer.

  • plan change-parameters -all-admins -params [assignments]

    This command is used to change Admin parameters. Because each instance of Admin is part of the same replicated service, all instances of the Admin are changed at the same time, so no Admin identifier is needed in this command.

    If an Admin parameter change requires the restarting of the Admin service, KVAdmin loses its connection to the server. Under normal circumstances, KVAdmin automatically reconnects after a brief pause, when the next command is given. At this point the plan is in the INTERRUPTED state, and must be completed manually by issuing the plan execute command.

In all cases, you can choose to create a plan and execute it; or to create the plan and execute it in separate steps by using the -noexecute option of the plan command.

Setting Store Wide Policy Parameters

Most admin, storage node, and replication node parameters are assigned to default values when a store is deployed. It can be inconvenient to adjust them after deployment, so Oracle NoSQL Database provides a way to set the defaults that are used during deployment. These defaults are called store-wide Policy parameters.

You can set policy parameters in the CLI by using this command:

change-policy -params [name=value]

The parameters to change follow the -params flag and are separated by spaces. Parameter values with embedded spaces must be separated by spaces. Parameter values with embedded spaces must be quoted. For example: name = "value with spaces". If the optional dry-run flag is specified, the new parameters are returned without changing them.

Admin Parameters

The following parameters can be set for the Admin service:

  • adminLogFileCount=<Integer>

    Sets the number of log files that are kept.

  • adminLogFileLimit=<Integer>

    Limits the size of log files. After reaching this limit, the logging subsystem switches to a new log file.

  • collectorPollPeriod=<Long TimeUnit>

    Sets the Monitor subsystem's delay for polling the various services for status updates.

  • loggingConfigProps=<String>

    Property settings for the Logging subsystem in the Admin process. Its format is property=value;property=value....

  • eventExpiryAge=<Long TimeUnit>

    You can use this parameter to adjust how long the Admin stores critical event history. The default value is "30 DAYS".

  • configProperties=<String>

    This is an omnibus string of property settings for the underlying BDB JE subsystem. Its format is property=value;property=value....

  • javaMiscParams=<String>

    This is an omnibus string that is added to the command line when the Admin process is started. It is intended for setting Java VM properties.

Storage Node Parameters

The following parameters can be set for Storage Nodes:

  • serviceLogFileCount=<Integer>

    Sets the number of log files that are kept, for this Storage Node and for all Replication Nodes hosted on this Storage Node.

  • serviceLogFileLimit=<Integer>

    Limits the size of log files. After reaching this limit, the logging subsystem switches to a new log file. This setting applies to this Storage Node and to all Replication Nodes hosted on this Storage Node.

  • haPortRange=<String>

    Defines the range of port numbers available for assigning to Replication Nodes that are hosted on this Storage Node. A port is allocated automatically from this range when a Replication Node is deployed. The format of the value string is "lowport,highport".

  • haHostname=<String>

    Sets the name of the network interface used by the HA subsystem.

  • capacity=<Integer>

    Sets the number of Replication Nodes that can be hosted on this Storage Node. This value is used to inform decisions about where to place new Replication Nodes. Capacity can be set to values greater than 1 when the Storage Node has sufficient disk, CPU, and memory to support multiple Replication Nodes. Default value: 1.

  • memoryMB=<Integer>

    Sets the amount of memory known to be available on this Storage Node, in megabytes. This number is used to inform the allocation of resources equitably among Replication Nodes when capacity > 1. Defaults to 0, which means "unknown."

  • numCPUs=<Integer>

    Sets the number of CPUs known to be available on this Storage Node. Default value: 1.

  • rnHeapPercent=<Integer>

    Sets the percentage of a Storage Node's memory reserved for heap, for all RN processes hosted on this SN. Default value: 85.

  • mgmtClass=<String>

    The name of the class that provides the Management Agent implementation. See Standardized Monitoring Interfaces for more information.

  • mgmtPollPort=<Integer>

    Sets the port on which the SNMP agent listens.

  • mgmtTrapHost=<String>

    Sets the host to which SNMP notifications are sent.

  • mgmtTrapPort=<Integer>

    Sets the port to which SNMP notifications are sent.

  • servicePortRange=<String>

    Sets the range of ports that may be used by a Storage Node or a Replication Node when exporting RMI based services. By default any available port may be used when exporting Storage or Replication Node services. The format of the value string is "lowport,highport".

    This parameter is useful when there is a firewall between the clients and the nodes that comprise the store and the firewall is being used to restrict access to specific ports. The range should be large enough to accommodate the Storage Node as well as all the Replication Nodes (as defined by the capacity parameter) hosted on the machines. Each Storage Node consumes two ports and each Replication Node three ports in the range. In addition, the Registry Service, hosted by the Storage Node, consumes a port if it is defined to fall within this range. As a general rule, it is good practice to specify a range that is significantly larger than the minimum to allow for increases in Storage Node capacity or network problems that may render ports temporarily unavailable.

Replication Node Parameters

The following parameters can be set for Replication Nodes:

  • collectEnvStats=<Boolean>

    If true, then the underlying BDB JE subsystem dumps statistics into the .stat file.

  • maxTrackedLatency=<Long TimeUnit>

    The highest latency that is included in the calculation of latency percentiles.

  • configProperties=<String>

    Contains property settings for the underlying BDB JE subsystem. Its format is property=value;property=value....

  • javaMiscParams=<String>

    A string that is added to the command line when the Replication Node process is started. It is intended for setting Java VM properties.

  • loggingConfigProps=<String>

    Contains property settings for the Logging subsystem. The format of this string is like that of configProperties, above.

  • statsInterval=<Long TimeUnit>

    Sets the collection period for latency statistics at this Replication Node.

  • cacheSize=<Long>

    Sets the cache size in the underlying BDB JE subsystem.

  • latencyCeiling=<Integer>

    If the Replication Node's average latency exceeds this number of milliseconds, it is considered an "alertable" event. Such an event produces a popup in the Admin Console, and it is stored in the Admin's database as a critical event. If SNMP or JMX monitoring is enabled, the event also causes an appropriate notification to be sent.

  • throughputFloor=<Integer>

    Similar to latencyCeiling, throughputFloor sets a lower bound on Replication Node throughput. Lower throughput reports are considered alertable. This value is given in operations per second.

  • rnCachePercent=<Integer>

    The portion of an RN's memory set aside for the JE environment cache.