yb-ts-cli

yb-ts-cli is a command line tool that can be used to perform an operation on a particular tablet server (yb-tserver). Some of the commands perform operations similar to yb-admin commands. The yb-admin commands focus on cluster administration, the yb-ts-cli commands apply to specific YB-TServer nodes.

yb-ts-cli is a binary file installed with YugabyteDB and is located in the bin directory of the YugabyteDB home directory.

Syntax

  1. yb-ts-cli [ --server_address=<host>:<port> ] <command> <options>
  • host:port: The host and port of the tablet server. Default is localhost:9100.
  • command: The operation to be performed. See Commands below.
  • options: The options to be applied to the command. See Options.

Command line help

To display the available online help, run yb-ts-cli without any commands or options (flags) at the YugabyteDB home directory.

  1. $ ./bin/yb-ts-cli

Commands

are_tablets_running

If all tablets are running, returns “All tablets are running”.

Syntax

  1. yb-ts-cli [ --server_address=<host>:<port> ] are_tablets_running
  • host:port: The host and port of the tablet server. Default is localhost:9100.
count_intents

Print the count of uncommitted intents (or provisional records). Useful for debugging transactional workloads.

Syntax

  1. $ ./bin/yb-ts-cli [ --server_address=<host>:<port> ] count_intents
  • host:port: The host and port of the tablet server. Default is localhost:9100.
current_hybrid_time

Prints the value of the current hybrid time.

Syntax

  1. $ ./bin/yb-ts-cli [ --server_address=<host>:<port> ] current_hybrid_time
  • host:port: The host and port of the tablet server. Default is localhost:9100.
delete_tablet

Deletes the tablet with the specified tablet ID (tablet_id) and reason.

Syntax

  1. $ ./bin/yb-ts-cli [ --server_address=<host>:<port> ] delete_tablet <tablet_id> "<reason-string>"
  • host:port: The host and port of the tablet server. Default is localhost:9100.
  • tablet_id: The identifier (ID) for the tablet.
  • reason-string: Text string providing useful information on why the tablet was deleted.
dump_tablet

Dump, or export, the specified tablet ID (tablet_id).

Syntax

  1. yb-ts-cli [ --server_address=<host>:<port> ] dump_tablet <tablet_id>
  • host:port: The host and port of the tablet server. Default is localhost:9100.
  • tablet_id: The identifier (ID) for the tablet.
list_tablets

Lists the tablets on the specified tablet server, displaying the following properties: column name, tablet ID, state, table name, partition, and schema.

Syntax

  1. yb-ts-cli [ --server_address=<host>:<port> ] list_tablets
  • host:port: The host and port of the tablet server. Default is localhost:9100.
set_flag

Sets the specified configuration option (flag) for the tablet server.

Syntax

  1. $ ./bin/yb-ts-cli [ --server_address=<host>:<port> ] set_flag [ --force ] <flag> <value>
  • host:port: The host and port of the tablet server. Default is localhost:9100.
  • —force: Flag to to allow a change to a flag (option) that is not explicitly marked as runtime-settable. Note that the change may be ignored on the server or may cause the server to crash, if unsafe values are provided. See —force.
  • flag: The yb-tserver configuration option (without the prefix) to be set. See yb-tserver
  • value: The value to be applied.

Important

The set_flag command changes the in-memory value of the specified flag, atomically, for a running process and can alter its behavior. The change does NOT persist across restarts.

In practice, there are some flags (options) that are runtime safe to change (runtime-settable) and some that are not. For example, the bind address of the server cannot be changed at runtime, since the server binds just once at startup. While most of the flags are probably runtime-settable, we need to review the flags and note in the configuration pages which flags are not runtime-settable. (See GitHub issue #3534).

One typical operational flow is that you can use this to modify runtime flags in memory and then out of band also modify the configuration file that the server uses to start. This allows for flags to be changed on running processes, without executing a restart of the process.

status

Prints the status of the tablet server, including information on the node instance, bound RPC addresses, bound HTTP addresses, and version information.

Syntax

  1. $ ./bin/yb-ts-cli [ --server_address=<host>:<port> ] status
  • host:port: The host and port of the tablet server. Default is localhost:9100.

For an example, see Return the status of a tablet server

Options

The following options (or flags) can be used, when specified, with the commands above.

—force

Use this flag with the set_flag command to allow a change to a flag (option) that is not explicitly marked as runtime-settable. TNote that the change may be ignored on the server or may cause the server to crash, if unsafe values are provided.

Default: false

—server-address

The address (host and port) of the tablet server to run against.

Default: localhost:9100

—timeout_ms

The duration, in milliseconds (ms), before the RPC request times out.

Default: 60000 (1000 ms = 1 sec)

Examples

Return the status of a tablet server

  1. $ ./bin/yb-ts-cli -server_address=127.0.0.1 status
  1. node_instance {
  2. permanent_uuid: "237678d61086489991080bdfc68a28db"
  3. instance_seqno: 1579278624770505
  4. }
  5. bound_rpc_addresses {
  6. host: "127.0.0.1"
  7. port: 9100
  8. }
  9. bound_http_addresses {
  10. host: "127.0.0.1"
  11. port: 9000
  12. }
  13. version_info {
  14. git_hash: "83610e77c7659c7587bc0c8aea76db47ff8e2df1"
  15. build_hostname: "yb-macmini-6.dev.yugabyte.com"
  16. build_timestamp: "06 Jan 2020 17:47:22 PST"
  17. build_username: "jenkins"
  18. build_clean_repo: true
  19. build_id: "743"
  20. build_type: "RELEASE"
  21. version_number: "2.0.10.0"
  22. build_number: "4"
  23. }

Display the current hybrid time

  1. $ ./bin/yb-ts-cli [ --server_address=yb-tserver-1:9100 ] current_hybrid_time
  1. 6470519323472437248