roma_logo ROMA-Project
  • Getting Started
  • Learn
    • Tutorial
    • Status List
    • Monitoring Point
    • Trouble Shooting
    • FAQ
    • ROMA Training Map
  • Docs
    • About ROMA
    • Versions
    • Architectures
    • Configuration File
    • Plugin
    • High Stability
    • Storage Architecture
    • Developer Manual
    • PHP client
    • Ruby client
    • Java client
  • Commands
  • GUI Tools
  • Discuss
    • Blog
    • Mailing List
    • Issues
    • Twitter
    • Facebook
    • Google+
    • Github
    • Quora

    Status

  • Config
  • Stats
  • Storages
  • Write behind
  • Routing
  • Connection
  • Others

Status List

You can check ROMA status by the "stat" command.

stat <regexp>\r\n
Ex.)
$ telnet ${HOST1} ${PORT1}
> stat
version 1.3.0
config.DEFAULT_LOST_ACTION auto_assign
config.LOG_SHIFT_AGE 10
config.LOG_SHIFT_SIZE 10485760
.
.
.
END

> stat DEFAULT_LOST_ACTION
config.DEFAULT_LOST_ACTION auto_assign
END
Please refer the command page for more detail of stat command.

Config

These items display parameters which are read in configuration file.

Name Description
config.DEFAULT_LOST_ACTION DEFAULT_LOST_ACTION specifies the default action when ROMA loses data by server trouble.

no_action:
ROMA denies access to lost data.
auto_assign:
ROMA can access the data as if the lost data never existed.
shutdown:
ROMA will shutdown if the data is lost.
config.LOG_SHIFT_AGE Specify number of log files which are rotated.
config.LOG_SHIFT_SIZE Specify size (in bytes) of the log files.
When the log file reaches this size, it will rotate to the next file.
config.LOG_PATH Specify directory that ROMA create log files in.
The default directory is current directory.
config.RTTABLE_PATH Specify directory for ROMA to retrieve routing information file.
Default directory is current directory.
config.STORAGE_DELMARK_EXPTIME Specify interval (in seconds) in which the deleted value is collected by GC.
Default is 5 days.
config.STORAGE_EXCEPTION_ACTION Choose the action which ROMA takes if the storage encounters Exception Error.

no_action : Error instance keep working.
shutdown : Error instance will be shutdown.
config.DATACOPY_STREAM_COPY_WAIT_PARAM Specify waiting time (in seconds) to copy the data slowly between nodes.
config.PLUGIN_FILES Specify plugin which are read, when ROMA process is started.
config.WRITEBEHIND_PATH Specify directory for ROMA to create event log files asynchronously.
Default directory is "./wb" directory.
config.WRITEBEHIND_SHIFT_SIZE Specify size (in bytes) of the event log files.
When log file reaches this size, then log file rotates to the next file.
Default size is 10MB.
config.CONNECTION_DESCRIPTOR_TABLE_SIZE Specify the maximum number of FileDescriptor when ROMA use epoll system-call(default setting).

This value must be smaller than OS settings.
(You can check FD by use shell command(`ulimit -n`)).

Stats

These items display basic status of ROMA.

Name Description
stats.config_path PATH of configuration file.
Which is referred when ROMA booting.
stats.address Address of ROMA server which you refer to.
stats.port Port of ROMA which you refer to.
stats.daemon booting with daemon mode.
stats.name Your ROMA's name.
Defalut is "ROMA".
stats.verbose Detail log mode.
Which output many infomation than the debug log mode.
stats.enabled_repetition_host_in_routing This option allow booting ROMA in only 1server.
Unless this option, data redundancy keep in multi servers.
stats.run_recover Recovering process going or not.
stats.run_sync_routing Sync_routing process going or not.
stats.run_iterate_storage Iterate_storage process going or not.
stats.run_storage_clean_up Storage_clean_up process going or not.
This process execute physical deletion for data which have del flag.
stats.run_receive_a_vnode Instance is getting vnodes or not.
stats.run_release Release process is going or not.
This process release the all primary & secondary node.
So after this process, this instance have no data.
stats.run_join Join process is going or not.
stats.run_balance Balance process is going or not.
stats.gui_run_snapshot Snapshot process is going or not.
stats.last_clean_up Date of last executing of clean up storage.
stats.gui_last_snapshot Date of last executing of snapshot.
stats.spushv_protection In case of true, this instance deny the spushv command.
(pushv process exchange the data between the nodes.
Ex.) recover, join, release)
stats.stream_copy_wait_param Specify waiting time (in seconds) to copy the data slowly between nodes.
stats.stream_show_wait_param Specify waiting time (in seconds) to show gathered log data each of 10 lines.
stats.dcnice "dcnice" command is setting priority for a data-copy thread.
A niceness of 1 is the highest priority and 5 is the lowest priority.

when n ==1 # highest priority
  stream_copy_wait_param = 0.001
  each_vn_dump_sleep = 0.001
  each_vn_dump_sleep_count = 1000

when n == 2
  stream_copy_wait_param = 0.005
  each_vn_dump_sleep = 0.005
  each_vn_dump_sleep_count = 100

when n == 3 # default priority
  stream_copy_wait_param = 0.01
  each_vn_dump_sleep = 0.001
  each_vn_dump_sleep_count = 10

when n == 4
  stream_copy_wait_param = 0.01
  each_vn_dump_sleep = 0.005
  each_vn_dump_sleep_count = 10

when n == 5 # lowest priority
  stream_copy_wait_param = 0.01
  each_vn_dump_sleep = 0.01
  each_vn_dump_sleep_count = 10
stats.clean_up_interval Specify the time(sec) interval to execute cleanup.
Cleanup process delete the data which have del flg.
stats.size_of_zredundant Specify the maximum size (in bytes) of data.
While data is forwarded to other nodes for redundancy, data that exceed this size will be compressed before forwarding.
Default data size is 0.
If the value is 0 then the data will not be compressed.
stats.write_count Total write count of this instance.
stats.read_count Total read count of this instance.
stats.delete_count Total delete count(logical delete) of this instance.
stats.out_count Total delete count(physical delete) of this instance as a primary node.
stats.out_message_count Total delete count(physical delete) of this instance as a secondary node.
stats.redundant_count Count of getting [rset|rzset] command.
These commands send from primary node's instance to secondary node's instance.
stats.hilatency_warn_time Specify time (in seconds) to which decide the normal limit of executing time of command.
if some operations take time over this setting second, error log will be output.
stats.wb_command_map Target command list of write-behind func.
Ex.)
  {:get=>1, :set=>2}
stats.latency_log Latency checking is working or not.
stats.latency_check_cmd Target command of latency checking.
stats.latency_check_time_count Specify the interval to calculate the latency average.
stats.spushv_klength_warn Specify the limit size of key length.
When target key size over the this setting, warning log will be output.
During the vnode copy.(ex.recover, join)
stats.spushv_vlength_warn Specify the limit size of value length.
When target value size over the this setting, warning log will be output.
During the vnode copy.(ex.recover, join)
stats.spushv_read_timeout Specify the coefficient of Timeout time by using spushv command.
Timeout time = (handler.timeout * spushv_read_timeout)
Defalut timeout time is 1000(sec).
10 * 100 = 1000
stats.reqpushv_timeout_count Specify the coefficient of Timeout time of getting vnode.

Next request send when last request is finished or this timeout time is elasped.

Timeout time is (0.1 * reqpushv_timeout_count).

(pushv process exchange the data between the nodes.
Ex.) recover, join, release)
stats.routing_trans_timeout Specify the transaction time of routing change.
When over the this setting time, routing will be rollback.
stats.log_shift_size Specify size (in bytes) of the log files.
When the log file reaches this size, it will rotate to the next file.
stats.log_shift_age Specify number of log files which are rotated.
stats.log_level Specify level of log.
You can select [ debug | error | warn | info ].

Storages

When you choose Tokyo Cabinet as storage engine, stats command could display details of storage information.

Name Description
storages[hashname].storage.storage_path Specify directory that ROMA should create storage files in.
This is required when ROMA select file-based storage implementation.
Default directory is current directory.
storages[hashname].storage.st_class Specify the storage type.

RubyHashStorage : RubyHash(OS memory)
TCStorage : TokyoCabinet
GroongaStorage : groonga
SQLite3Storage : SQLite
storages[hashname].storage.divnum Specify the number which divides the storage of ROMA process.
storages[hashname].storage.option bnum :
count of keys which locate in first line of tc file.
Basically not change.

xmsiz :
rate of memory using in each tc files.
If data size over this value, disk access will occure.

opts :
l => Support large file(over the 2GB)
d => bzip compression. it decrease tc files amount.

dfunit :
Unit of defrag. Basically not change.
storages[hashname].storage.each_vn_dump_sleep When vnode_dump operation, non-target vnodes were skipped.
But at this time, skipping with no-sleep time triggers increasing stress of storage access.
On the other hand, skipping with sleep each time triggers increasing stress of process.
So ROMA specify the time of sleeping during v-nodes dump operations by use this setting.
storages[hashname].storage.each_vn_dump_sleep_count When vnode_dump operation, non-target vnodes were skipped.
But at this time, skipping with no-sleep time triggers increasing stress of storage access.
On the other hand, skipping with sleep each time triggers increasing stress of process.
So ROMA specify the interval of executing sleeping during v-nodes dump operation by use this setting.
storages[hashname].storage.each_clean_up_sleep Specify the time of sleeping in each keys when clean up executing.
So at least, clean_up process take time over ([storage.each_clean_up_sleep] * Key count)sec.
storages[hashname].storage.logic_clock_expire ROMA's data have date data & logic clock.
But sometimes some difference happen between date data & logic clock.
This setting specify the time lag to estimate which node's data is correct.
storages[hashname].storage.safecopy_stats TC file's status of snapshot process.
storages[hashname].storage[n].path Absolute path of the nth storage file.
storages[hashname].storage[n].rnum Number of keys which the nth storage file holds.(Including the deletion marked keys.)
storages[hashname].storage[n].fsiz File size (in bytes) of the nth storage file.

Write behind

These items display write behind function's setting.

Name Description
write-behind.path Absolute path of write-behind process. ( Same as WRITEBEHIND_PATH in config.rb )
write-behind.shift_size specify size (in bytes) of the log files.
When the log file reaches this size, it will rotate to the next file.
write-behind.do_write Write-Behind func is working or not.
Write-behind function keep history of target command.
Ex.) Excecuting time, value, etc...
write-behind.run_replication Cluster Replicaion(Hot Standby) process going or not.
write-behind.run_existing_data_replication Cluster Replicaion process are replicating the existing data from main to replica cluster.
write-behind.replica_mklhash Hash value of replica cluster's constitution.
If replica cluster's constitution will be change, this value will be change, too.
write-behind.replica_nodelist Node list of replica cluster.

Routing

These items display routing information(cluster architecture) of ROMA.

Name Description
routing.redundant Redundancy of nodes in same group.
routing.nodes.length Number of nodes in group.
routing.nodes Node list of ROMA.
routing.dgst_bits Counts of digest bits.

Each node have unique hash value(SHA1).
Basically SHA1 generate 160bit digest.

But it is difficult to use it by client soft which were developed by C or Java.

So ROMA can decrease digest bit count by use this setting.
Default is 32bits.
routing.div_bits Specify the count of vnodes.
vnodes count = (2**x)
routing.vnodes.length Number of buckets ( virtual nodes ) in group.
routing.primary Count of the primary node which this instance have.
routing.secondary Count of the secondary node which this instance have.
routing.short_vnodes Count of short vnodes.
Short vnodes is the node which break the redundancy.
So this value should be 0 in general.
routing.lost_vnodes Count of lost nodes.
This node's data was lost and ROMA can't access.
So this value should be 0 in general.
routing.fail_cnt_threshold Counts for judge fail-over.
When ROMA fails to health check continuously of this setting count, ROMA will execute failover.
routing.fail_cnt_gap Specify time (in seconds).
When ROMA can't get the routing information while ROUTING_FAIL_CNT_GAP time elapse, ROMA counts up a counter for fail-over.
routing.sub_nid ROMA can convert own routing temporarily.
This value is the conversion pattern of routing.
Pattern is below
   {"Target Net Mask"=>{
    :regexp=>"substitution target IP",
    :replace=>"substitution pattern"
   }}

Ex.)
   {"127.0.0.0/24"=>{
    :regexp=>"127.0.0.1",
    :replace=>"127.0.0.2"
   }}
routing.lost_action DEFAULT_LOST_ACTION specifies the default action when ROMA loses data by server trouble.

no_action : ROMA denies access to lost data.
auto_assign : ROMA can access the data as if the lost data never existed.
shutdown : ROMA will shutdown if the data is lost.
routing.auto_recover In case of true, ROMA will execute recover when short vnodes rise.
routing.auto_recover_time Specify the waiting time to execute auto-recover after short vnode rising.
routing.auto_recover_status waiting : Nothing to do (Default)
preparing : prepare for execute recover(relate to auto_recover_time)
executing : executing recover
routing.event The list of event(node down and join).
routing.event_limit_line Specify the counts how many event are stored.
routing.version_of_nodes ROMA version of each nodes.
In case of all number are same, all instance use same version of ROMA.
Otherwise some instance use wrong version.
routing.min_version Oldest version of instance in ROMA cluster.

Connection

These items display connection status of ROMA.

Name Description
connection.count Connection counts of Eventmachine.
connection.descriptor_table_size Specify the maximum number of FD(File descriptor).

This param is required when ROMA use epoll system-call.
(You can check ROMA use epoll system or not by the "CONNECTION_USE_EPOLL")

This value must be smaller than OS settings.
connection.continuous_limit Specify the upper limit of connections.
Specify the three colon separated values ''start:rate:full''
(Ex. '200(conns):30(%):300(conns)).

start :
ROMA will disconnect unused connection with a probability of ''rate/100'', when connection reach this value.

full :
If the number of using connections reaches "full", ROMA will disconnect unused connections with a probability of 100%.
connection.accepted_connection_expire_time Specify time(in seconds).

When a connection which ROMA received isn't used while CONNECTION_EXPTIME seconds, ROMA will disconnect this connection.

If the value is 0, then ROMA will not disconnect.
connection.handler_instance_count Current connection counts.
connection.pool_maxlength Specify the maximum number of connections which the connection pool of asynchronous connection keeps.
connection.pool_expire_time Specify time(in seconds).
When ROMA uses a connection pool of asynchronous connection,

ROMA will disconnect the connection which isn't used while CONNECTION_POOL_EXPTIME seconds after the connection is returned to the pool.

This parameter should be smaller than CONNECTION_EXPTIME parameter.
connection.EMpool_maxlength Specify the maximum number of EventMachine's connections which the connection pool of synchronous connection keeps.

The amount of synchronous connection depends on the traffic of client accesses.

The recommended value is approximately-same as the number of ROMA client pool settings, as a rough guide 10 to 15.
(EM is EventMachine)
connection.EMpool_expire_time Specify time(in seconds).
When ROMA uses a connection pool of synchronous connection,

ROMA will disconnect the connection which isn't used while CONNECTION_EMPOOL_EXPTIME seconds after the connection is returned to the pool.

The parameter should be smaller than CONNECTION_EXPTIME parameter.
(EM is EventMachine)

Others

Name Description
version ROMA's version
dns_caching dns caching func is going or not.
dns info keep in each instance as a cache.

Back to top

@ 2017 Roma Project / Promoted by Rakuten, Inc. and Rakuten Institute of Technology