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. |