Project: YugabyteDB (App Definition and Development / Database)
File: yb-tserver.md

title: yb-tserver configuration reference headerTitle: yb-tserver linkTitle: yb-tserver description: YugabyteDB Tablet Server (yb-tserver) binary and configuration flags to store and manage data for client applications. menu: v2.18: identifier: yb-tserver parent: configuration weight: 2440 type: docs Use the `yb-tserver` binary and its flags to configure the server. The `yb-tserver` executable file is located in the `bin` directory of YugabyteDB home. ```sh yb-tserver [ flags ] ``` ```sh ./bin/yb-tserver \ --tservermasteraddrs 172.151.17.130:7100,172.151.17.220:7100,172.151.17.140:7100 \ --rpcbindaddresses 172.151.17.130 \ --enable_ysql \ --fsdatadirs "/home/centos/disk1,/home/centos/disk2" & ``` To display the online help, run `yb-tserver --help` from the YugabyteDB home directory: ```sh ./bin/yb-tserver --help ``` Displays help on all flags. Displays help on modules named by the specified flag value. Specifies the file to load the configuration flags from. The configuration flags must be in the same format as supported by the command line flags. Shows version and build info, then exits. Specifies a comma-separated list of all the `yb-master` RPC addresses. Required. Default: `127.0.0.1:7100` The number of comma-separated values should match the total number of YB-Master servers (or the replication factor). Specifies a comma-separated list of mount directories, where `yb-tserver` will add a `yb-data/tserver` data directory, `tserver.err`, `tserver.out`, and `pg_data` directory. Required. Changing the value of this flag after the cluster has already been created is not supported. Specifies a comma-separated list of directories, where `yb-tserver` will store write-ahead (WAL) logs. This can be the same as one of the directories listed in `--fsdatadirs`, but not a subdirectory of a data directory. Default: The same value as `--fsdatadirs` Specifies the expected maximum clock skew, in microseconds (s), between any two nodes in your deployment. Default: `500000` (500,000 s = 500ms) Specifies the comma-separated list of the network interface addresses to which to bind for RPC connections. The values must match on all and `yb-tserver` configurations. Default: Private IP address of the host on which the server is running, as defined in `/home/yugabyte/tserver/conf/server.conf`. For example: ```sh egrep -i rpc /home/yugabyte/tserver/conf/server.conf --rpcbindaddresses=172.161.x.x:9100 ``` Make sure that the flag is set correctly if the following applies: `rpcbindaddresses` is set to `0.0.0.0` `rpcbindaddresses` involves public IP addresses such as, for example, `0.0.0.0:9100`, which instructs the server to listen on all available network interfaces. Specifies the public IP or DNS hostname of the server (with an optional port). This value is used by servers to communicate with one another, depending on the connection policy parameter. Default: `""` Specifies the queue size for the tablet server to serve reads and writes from applications. Default: `5000` Specifies the duration, in milliseconds, until a cached DNS resolution expires. When hostnames are used instead of IP addresses, a DNS resolver must be queried to match hostnames to IP addresses. By using a local DNS cache to temporarily store DNS lookups, DNS queries can be resolved quicker and additional queries can be avoided, thereby reducing latency, improving load times, and reducing bandwidth and CPU consumption. Default: `60000` (1 minute) If you change this value from the default, be sure to add the identical value to all YB-Master and YB-TServer configurations. Specifies the policy that determines when to use private IP addresses for inter-node communication. Possible values are `never`, `zone`, `cloud`, and `region`. Based on the values of the . Valid values for the policy are: `never` Always use . `zone` Use the private IP inside a zone; use outside the zone. `region` Use the private IP address across all zone in a region; use outside the region. Default: `never` The address to bind for the web server user interface. Default: `0.0.0.0` (`127.0.0.1`) The port for monitoring the web

Default: `9000` The monitoring web server home directory.. Default: The `www` directory in the YugabyteDB home directory. Location of the SSL certificate file (in .pem format) to use for the web server. If empty, SSL is not enabled for the web server. Default: `""` Domain used for `.htpasswd` authentication. This should be used in conjunction with . Default: `""` Location of the `.htpasswd` file containing usernames and hashed passwords, for authentication to the web server. Default: `""` The directory to write `yb-tserver` log files. Default: The same as Write log messages to `stderr` instead of `logfiles`. Default: `false` The maximum log size, in megabytes (MB). A value of `0` will be silently overridden to `1`. Default: `1800` (1.8 GB) The minimum level to log messages. Values are: `0` (INFO), `1`, `2`, `3` (FATAL). Default: `0` (INFO) Log messages at, or above, this level are copied to `stderr` in addition to log files. Default: `2` Stop attempting to log to disk if the disk is full. Default: `false` For a typical deployment, values used for Raft and the write ahead log (WAL) flags in `yb-tserver` configurations should match the values in configurations. The duration, in seconds, after which a follower is considered to be failed because the leader has not received a heartbeat. The follower is then evicted from the configuration and the data is re-replicated elsewhere. Default: `900` (15 minutes) The `--followerunavailableconsideredfailedsec` value should match the value for . Failed followers will be evicted from the Raft group and the data will be re-replicated. Default: `true` The maximum heartbeat periods that the leader can fail to heartbeat in before the leader is considered to be failed. The total failure timeout, in milliseconds (ms), is multiplied by `--leaderfailuremaxmissedheartbeat_periods`. For read replica clusters, set the value to `10` in all `yb-tserver` and `yb-master` configurations. Because the data is globally replicated, RPC latencies are higher. Use this flag to increase the failure detection interval in such a higher RPC latency deployment. Default: `6` The leader lease duration, in milliseconds. A leader keeps establishing a new lease or extending the existing one with every consensus update. A new server is not allowed to serve as a leader (that is, serve up-to-date read requests or acknowledge write requests) until a lease of this duration has definitely expired on the old leader's side, or the old leader has explicitly acknowledged the new leader's lease. This lease allows the leader to safely serve reads for the duration of its lease, even during a network partition. For more information, refer to . Leader lease duration should be longer than the heartbeat interval, and less than the multiple of `--leaderfailuremaxmissedheartbeatperiods` multiplied by `--raftheartbeatintervalms`. Default: `2000` Specifies the maximum bounded staleness (duration), in milliseconds, before a follower forwards a read request to the leader. In a geo-distributed cluster, with followers located a long distance from the tablet leader, you can use this setting to increase the maximum bounded staleness. Default: `10000` (10 seconds) The heartbeat interval, in milliseconds (ms), for Raft replication. The leader produces heartbeats to followers at this interval. The followers expect a heartbeat at this interval and consider a leader to have failed if it misses several in a row. Default: `500` Ensure that values used for the write ahead log (WAL) in `yb-tserver` configurations match the values for `yb-master` configurations. The directory where the `yb-tserver` retains WAL files. May be the same as one of the directories listed in , but not a subdirectory of a data

Default: The same as `--fsdatadirs` If set to `false`, the writes to the WAL are synchronized to disk every milliseconds (ms) or every megabyte (MB), whichever comes first. This default setting is recommended only for multi-AZ or multi-region deployments where the availability zones (AZs) or regions are independent failure domains and there is not a risk of correlated power loss. For single AZ deployments, this flag should be set to `true`. Default: `false` When is false, writes to the WAL are synced to disk every `--intervaldurablewalwritems` or , whichever comes first. Default: `1000` When is `false`, writes to the WAL are synced to disk every `--bytesdurablewalwritemb` or `--intervaldurablewalwritems`, whichever comes first. Default: `1` The minimum duration, in seconds, to retain WAL segments, regardless of durability requirements. WAL segments can be retained for a longer amount of time, if they are necessary for correct restart. This value should be set long enough such that a tablet server which has temporarily failed can be restarted in the given time period. Default: `900` (15 minutes) The minimum number of WAL segments (files) to retain, regardless of durability requirements. The value must be at least `1`. Default: `2` The size, in megabytes (MB), of a WAL segment (file). When the WAL segment reaches the specified size, then a log rollover occurs and a new WAL segment file is created. Default: `64` When the server restarts from a previous crash, if the tablet's last WAL file size is less than or equal to this threshold value, the last WAL file will be reused. Otherwise, WAL will allocate a new file at bootstrap. To disable WAL reuse, set the value to `-1`. Default: The default value in `2.18.1` is `-1` - feature is disabled by default. The default value starting from `2.19.1` is `524288` (0.5 MB) - feature is enabled by default. The number of shards (tablets) per YB-TServer for each YCQL table when a user table is created. Default: `-1`, where the number of shards is determined at runtime, as follows: If is `true` The default value is considered as `1`. For servers with 4 CPU cores or less, the number of tablets for each table doesn't depend on the number of YB-TServers. Instead, for 2 CPU cores or less, 1 tablet per cluster is created; for 4 CPU cores or less, 2 tablets per cluster are created. If `enableautomatictablet_splitting` is `false` For servers with up to two CPU cores, the default value is considered as `4`. For three or more CPU cores, the default value is considered as `8`. Local cluster installations created using `yb-ctl` and `yb-docker-ctl` use a default value of `2` for this flag. Clusters created using `yugabyted` always use a default value of `1`. {{< note title="Note" >}} This value must match on all `yb-master` and `yb-tserver` configurations of a YugabyteDB cluster. If the value is set to Default (`-1`), then the system automatically determines an appropriate value based on the number of CPU cores and internally updates the flag with the intended value during startup prior to version 2.18 and the flag remains unchanged starting from version 2.18. The clause can be used on a per-table basis to override the `ybnumshardspertserver` value. {{< /note >}} The number of shards (tablets) per YB-TServer for each YSQL table when a user table is created. Default: `-1`, where the number of shards is determined at runtime, as follows: If is `true` The default value is considered as `1`. For servers with 4 CPU cores or less, the number of tablets for each table doesn't depend on the number of

Instead, for 2 CPU cores or less, 1 tablet per cluster is created; for 4 CPU cores or less, 2 tablets per cluster are created. If `enableautomatictablet_splitting` is `false` For servers with up to two CPU cores, the default value is considered as 2. For servers with three or four CPU cores, the default value is considered as 4. Beyond four cores, the default value is considered as 8. Local cluster installations created using `yb-ctl` and `yb-docker-ctl` use a default value of `2` for this flag. Clusters created using `yugabyted` always use a default value of `1`. {{< note title="Note" >}} This value must match on all `yb-master` and `yb-tserver` configurations of a YugabyteDB cluster. If the value is set to Default (`-1`), the system automatically determines an appropriate value based on the number of CPU cores and internally updates the flag with the intended value during startup prior to version 2.18 and the flag remains unchanged starting from version 2.18. The clause can be used on a per-table basis to override the `ysqlnumshardspertserver` value. {{< /note >}} Interval at which the tablet manager tries to cleanup split tablets that are no longer needed. Setting this to 0 disables cleanup of split tablets. Default: `60` Enables YugabyteDB to . Default: `true` {{< note title="Important" >}} This value must match on all `yb-master` and `yb-tserver` configurations of a YugabyteDB cluster. {{< /note >}} The maximum number of threads allowed for post-split compactions (that is, compactions that remove irrelevant data from new tablets after splits). Default: `1` The maximum number of post-split compaction tasks that can be queued simultaneously (compactions that remove irrelevant data from new tablets after splits). Default: `16` Assigns an extra priority to automatic (minor) compactions when automatic tablet splitting is enabled. This de-prioritizes post-split compactions and ensures that smaller compactions are not starved. Suggested values are between 0 and 50. Default: `50` When enabled, all databases created in the cluster are colocated by default. If you enable the flag after creating a cluster, you need to restart the YB-Master and YB-TServer services. For more details, see . Default: `false` Settings related to managing geo-distributed clusters: The name of the availability zone, or rack, where this instance is deployed. Default: `rack1` Specifies the name of the region, or data center, where this instance is deployed. Default: `datacenter1` Specifies the name of the cloud where this instance is deployed. Default: `cloud1` The unique identifier for the cluster. Default: `""` If true, forces all transactions through this instance to always be global transactions that use the `system.transactions` transaction status table. This is equivalent to always setting the YSQL parameter `forceglobaltransaction = TRUE`. {{< note title="Global transaction latency" >}} Avoid setting this flag when possible. All distributed transactions can run without issue as global transactions, but you may have significantly higher latency when committing transactions, because YugabyteDB must achieve consensus across multiple regions to write to `system.transactions`. When necessary, it is preferable to selectively set the YSQL parameter `forceglobaltransaction = TRUE` rather than setting this flag. {{< /note >}} Default: `false` If true, transaction status tables will be created under each YSQL tablespace that has a placement set and contains at least one other table. Default: `true` If true, local transactions using transaction status tables other than `system.transactions` will be automatically promoted to global transactions using the `system.transactions` transaction status table upon accessing data outside of the local region. Default: `true` Settings related to managing xCluster deployments. The RPC queue size of the xCluster service. Should match the size of used for read and write requests. Default: `5000` The following flags support the use of the : Enables the YSQL

Default: `true` Ensure that `enable_ysql` values in `yb-tserver` configurations match the values in `yb-master` configurations. Enables YSQL authentication. When YSQL authentication is enabled, you can sign into `ysqlsh` using the default `yugabyte` user that has a default password of `yugabyte`. Default: `false` Enables YSQL . When YSQL login profiles are enabled, you can set limits on the number of failed login attempts made by users. Default: `false` Specifies the TCP/IP bind addresses for the YSQL API. The default value of `0.0.0.0:5433` allows listening for all IPv4 addresses access to localhost on port `5433`. The `--pgsqlproxybindaddress` value overwrites `listenaddresses` (default value of `127.0.0.1:5433`) that controls which interfaces accept connection attempts. To specify fine-grained access control over who can access the server, use . Default: `0.0.0.0:5433` Specifies the web server port for YSQL metrics monitoring. Default: `13000` Deprecated. Use `--ysqlhbaconf_csv` instead. Specifies a comma-separated list of PostgreSQL client authentication settings that is written to the `ysqlhba.conf` file. To see the current values in the `ysqlhba.conf` file, run the `SHOW hba_file;` statement and then view the file. Because the file is autogenerated, direct edits are overwritten by the autogenerated content. For details on using `--ysqlhbaconf_csv` to specify client authentication, refer to . If a setting includes a comma (`,`) or double quotes (`"`), the setting should be enclosed in double quotes. In addition, double quotes inside the quoted text should be doubled (`""`). Suppose you have two fields: `host all all 127.0.0.1/0 password` and `host all all 0.0.0.0/0 ldap ldapserver= ldapsearchattribute=cn ldapport=3268 ldapbinddn= ldapbindpasswd="*"`. Because the second field includes double quotes (`"`) around one of the settings, you need to double the quotes and enclose the entire field in quotes, as follows: ```sh "host all all 0.0.0.0/0 ldap ldapserver= ldapsearchattribute=cn ldapport=3268 ldapbinddn= ldapbindpasswd=""*""" ``` To set the flag, join the fields using a comma (`,`) and enclose the final flag value in single quotes (`'`): ```sh --ysqlhbaconf_csv='host all all 127.0.0.1/0 password,"host all all 0.0.0.0/0 ldap ldapserver= ldapsearchattribute=cn ldapport=3268 ldapbinddn= ldapbindpasswd=""*"""' ``` Default: `"host all all 0.0.0.0/0 trust,host all all ::0/0 trust"` Deprecated. Use `--ysqlpgconf_csv` instead. Comma-separated list of PostgreSQL server configuration parameters that is appended to the `postgresql.conf` file. For example: ```sh --ysqlpgconfcsv="suppressnonpglogs=true,logconnections=on" ``` For information on available PostgreSQL server configuration parameters, refer to in the PostgreSQL documentation. The server configuration parameters for YugabyteDB are the same as for PostgreSQL, with some minor exceptions. Refer to . Specifies the time zone for displaying and interpreting timestamps. Default: Uses the YSQL time zone. Specifies the display format for data and time values. Default: Uses the YSQL display format. Specifies the maximum number of concurrent YSQL connections per node. This is a maximum per server, so a 3-node cluster will have a default of 900 available connections, globally. Any active, idle in transaction, or idle in session connection counts toward the connection limit. Some connections are reserved for superusers. The total number of superuser connections is determined by the `superuserreservedconnections` . Connections available to non-superusers is equal to `ysqlmaxconnections` - `superuserreservedconnections`. Default: If `ysqlmaxconnections` is not set, the database startup process will determine the highest number of connections the system can support, from a minimum of 50 to a maximum of 300 (per node). Specifies the default transaction isolation level. Valid values: `SERIALIZABLE`, `REPEATABLE READ`, `READ COMMITTED`, and `READ UNCOMMITTED`. Default: `READ COMMITTED`<sup>$</sup> <sup>$</sup> Read Committed Isolation is supported only if the YB-TServer flag `ybenablereadcommittedisolation` is set to

By default this flag is `false` and in this case the Read Committed isolation level of the YugabyteDB transactional layer falls back to the stricter Snapshot Isolation (in which case `READ COMMITTED` and `READ UNCOMMITTED` of YSQL also in turn use Snapshot Isolation). Set this flag to `false` to enable online index backfill. When set to `false`, online index builds run while online, without failing other concurrent writes and traffic. For details on how online index backfill works, see the design document. Default: `false` Specifies where to cache sequence values. Valid values are `connection` and `server`. This flag requires the YB-TServer `ybenablesequence_pushdown` flag to be true (the default). Otherwise, the default behavior will occur regardless of this flag's value. For details on caching values on the server and switching between cache methods, see the semantics on the page. Default: `connection` Specifies the minimum number of sequence values to cache in the client for every sequence object. To turn off the default size of cache flag, set the flag to `0`. For details on the expected behaviour when used with the sequence cache clause, see the semantics under and pages. Default: `100` Specifies the types of YSQL statements that should be logged. Valid values: `none` (off), `ddl` (only data definition queries, such as create/alter/drop), `mod` (all modifying/write statements, includes DDLs plus insert/update/delete/truncate, etc), and `all` (all statements). Default: `none` Logs the duration of each completed SQL statement that runs the specified duration (in milliseconds) or longer. Setting the value to `0` prints all statement durations. You can use this flag to help track down unoptimized (or "slow") queries. Default: `-1` (disables logging statement durations) Specifies the lowest YSQL message level to log. The following flags support the use of the : Specify `true` to enable YCQL authentication (`username` and `password`), enable YCQL security statements (`CREATE ROLE`, `DROP ROLE`, `GRANT ROLE`, `REVOKE ROLE`, `GRANT PERMISSION`, and `REVOKE PERMISSION`), and enforce permissions for YCQL statements. Default: `false` Specifies the bind address for the YCQL API. Default: `0.0.0.0:9042` (`127.0.0.1:9042`) Specifies the port for monitoring YCQL metrics. Default: `12000` Specifies if YCQL tables are created with transactions enabled by default. Default: `false` Set this flag to `false` to enable online index backfill. When set to `false`, online index builds run while online, without failing other concurrent writes and traffic. For details on how online index backfill works, see the design document. Default: `true` Set this flag to `true` to reject statements unless allowed by privileges. Default: `false` Set this flag to `true` to enable audit logging for the universe. For details, see . Set this flag to `true` to enable a superuser to reset a password. Default: `false` Note that to enable the password reset feature, you must first set the flag to false. The following flags support the use of the YEDIS API: Specifies the bind address for the YEDIS API. Default: `0.0.0.0:6379` Specifies the port for monitoring YEDIS metrics. Default: `11000` Use the following two flags to select the SSTable compression type: Enable SSTable compression at the cluster level. Default: `true` Change the SSTable compression type. The valid compression types are `Snappy`, `Zlib`, `LZ4`, and `NoCompression`. Default: `Snappy` If you select an invalid option, the cluster will not come up. If you change this flag, the change takes effect after you restart the cluster nodes. Changing this flag on an existing database is supported; a tablet can validly have SSTs with different compression types. Eventually, compaction will remove the old compression type files. Key-value encoding to use for regular data blocks in RocksDB. Possible options: `sharedprefix`, `threeshared_parts`. Default: `shared_prefix` Only change this flag to `threesharedparts` after you migrate the whole cluster to the YugabyteDB version that supports it. Used to control rate of memstore flush and SSTable file

Default: `1GB` (1 GB/second) Compactions run only if there are at least `rocksdbuniversalcompactionminmergewidth` eligible files and their running total (summation of size of files considered so far) is within `rocksdbuniversalcompactionsize_ratio` of the next file in consideration to be included into the same compaction. Default: `4` Maximum number of threads to do background compactions (used when compactions need to catch up.) Unless `rocksdbdisablecompactions=true`, this cannot be set to zero. Default: `-1` (the value is calculated at runtime). For servers with up to 4 CPU cores, the default value is considered as `1`. For servers with up to 8 CPU cores, the default value is considered as `2`. For servers with up to 32 CPU cores, the default value is considered as `3`. Beyond 32 cores, the default value is considered as `4`. Threshold beyond which a compaction is considered large. Default: `2GB` Number of files to trigger level-0 compaction. Set to `-1` if compaction should not be triggered by number of files at all. Default: `5`. Compactions run only if there are at least `rocksdbuniversalcompactionminmergewidth` eligible files and their running total (summation of size of files considered so far) is within `rocksdbuniversalcompactionsize_ratio` of the next file in consideration to be included into the same compaction. Default: `20` The time interval, in seconds, to retain history/older versions of data. Point-in-time reads at a hybrid time prior to this interval might not be allowed after a compaction and return a `Snapshot too old` error. Set this to be greater than the expected maximum duration of any single transaction in your application. Default: `900` (15 minutes) Rate control across all tablets being remote bootstrapped from or to this process. Default: `256MB` (256 MB/second) Number of bits to use for sharding the block cache. The maximum permissible value is 19. Default: `-1` (indicates a dynamic scheme that evaluates to 4 if number of cores is less than or equal to 16, 5 for 17-32 cores, 6 for 33-64 cores and so on.) {{< note title="Note" >}} Starting from version 2.18, the default is `-1`. Previously it was `4`. {{< /note >}} Use the following two flags to configure RPC compression: Controls whether YugabyteDB uses RPC compression. Default: `true` Specifies which RPC compression algorithm to use. Requires `enablestreamcompression` to be set to true. Valid values are: 0: No compression (default value) 1: Gzip 2: Snappy 3: LZ4 In most cases, LZ4 (`--streamcompressionalgo=3`) offers the best compromise of compression performance versus CPU overhead. To upgrade from an older version that doesn't support RPC compression (such as 2.4), to a newer version that does (such as 2.6), you need to do the following: Rolling restart to upgrade YugabyteDB to a version that supports compression. Rolling restart to enable compression, on both YB-Master and YB-TServer, by setting `enablestreamcompression=true`. Note that you can omit this step if the YugabyteDB version you are upgrading to already has compression enabled by default. For the stable release series, versions from 2.6.3.0 and later (including all 2.8 releases) have `enablestreamcompression` set to true by default. For the preview release series, this is all releases beyond 2.9.0. Rolling restart to set the compression algorithm to use, on both YB-Master and YB-TServer, such as by setting `streamcompressionalgo=3`. For details on enabling client-server encryption, see . Directory that contains certificate authority, private key, and certificates for this server. Default: `""` (Uses `<data drive>/yb-data/tserver/data/certs`.) Allow insecure connections. Set to `false` to prevent any process with unencrypted communication from joining a cluster. Note that this flag requires the to be enabled and to be

Default: `true` The directory that contains certificate authority, private key, and certificates for this server that should be used for client-to-server communications. Default: `""` (Use the same directory as for server-to-server communications.) Adds certificate entries, including IP addresses and hostnames, to log for handshake error messages. Enable this flag to debug certificate issues. Default: `false` Use client-to-server, or client-server, encryption with YCQL. Default: `false` Enable server-server or node-to-node encryption between YugabyteDB YB-Master and YB-TServer servers in a cluster or universe. To work properly, all YB-Master servers must also have their setting enabled. When enabled, then must be disabled. Default: `false` Specify cipher lists for TLS 1.2 and below. (For TLS 1.3, use .) Use a colon (":") separated list of TLSv1.2 cipher names in order of preference. Use an exclamation mark ("!") to exclude ciphers. For example: ```sh --cipher_list DEFAULTS:!DES:!IDEA:!3DES:!RC2 ``` This allows all ciphers for TLS 1.2 to be accepted, except those matching the category of ciphers omitted. This flag requires a restart or rolling restart. Default: `DEFAULTS` For more information, refer to in the OpenSSL documentation. Specify cipher lists for TLS 1.3. (For TLS 1.2 and below, use .) Use a colon (":") separated list of TLSv1.3 ciphersuite names in order of preference. Use an exclamation mark ("!") to exclude ciphers. For example: ```sh --ciphersuite DEFAULTS:!CHACHA20 ``` This allows all ciphersuites for TLS 1.3 to be accepted, except CHACHA20 ciphers. This flag requires a restart or rolling restart. Default: `DEFAULTS` For more information, refer to in the OpenSSL documentation. Specifies an explicit allow-list of TLS protocols for YugabyteDB's internal RPC communication. Default: An empty string, which is equivalent to allowing all protocols except "ssl2" and "ssl3". You can pass a comma-separated list of strings, where the strings can be one of "ssl2", "ssl3", "tls10", "tls11", "tls12", and "tls13". You can set the TLS version for node-to-node and client-node communication. To enforce TLS 1.2, set the flag to tls12 as follows: ```sh --ssl_protocols = tls12 ``` To specify a minimum TLS version of 1.2, for example, the flag needs to be set to tls12, tls13, and all available subsequent versions. ```sh --ssl_protocols = tls12,tls13 ``` In addition, as this setting does not propagate to PostgreSQL, it is recommended that you specify the minimum TLS version (`sslminprotocol_version`) for PostgreSQL by setting the flag as follows: ```sh --ysqlpgconfcsv="sslminprotocolversion=TLSv1.2" ``` Packed row format support is currently in . To learn about the packed row feature, see in the architecture section. Whether packed row is enabled for YSQL. Default: `false` Packed Row for YSQL can be used from version 2.16.4 in production environments if the cluster is not used in xCluster settings. For xCluster scenarios, use version 2.18.1 and later. Starting from version 2.19 and later, the flag default is true for new clusters. Packed row size limit for YSQL. The default value is 0 (use block size as limit). For rows that are over this size limit, a greedy approach will be used to pack as many columns as possible, with the remaining columns stored as individual key-value pairs. Default: `0` --ycqlenablepacked_row support is currently in . Whether packed row is enabled for YCQL. Default: `false` Packed row size limit for YCQL. The default value is 0 (use block size as limit). For rows that are over this size limit, a greedy approach will be used to pack as many columns as possible, with the remaining columns stored as individual key-value pairs. Default: `0` Whether packed row is enabled for colocated tables in YSQL. The colocated table has an additional flag to mitigate . Default: `false` To learn about CDC, see . The rate at which CDC state's checkpoint is

Default: `15000` The number of reactor threads to be used for processing `ybclient` requests for CDC. Increase to improve throughput on large tablet setups. Default: `50` Maximum number of intent records allowed in a single CDC batch. Default: `1000` Number of records fetched in a single batch of snapshot operation of CDC. Default: `250` If `cdcminreplicated_index` hasn't been replicated in this amount of time, we reset its value to max int64 to avoid retaining any logs. Default: `900` (15 minutes) Time interval (in seconds) to retain history or older versions of data. Default: `900` (15 minutes) How often to read the `cdcstate` table to get the minimum applied index for each tablet across all streams. This information is used to correctly keep log files that contain unapplied entries. This is also the rate at which a tablet's minimum replicated index across all streams is sent to the other peers in the configuration. If flag `enablelogretentionbyopidx` (default: `true`) is disabled, this flag has no effect. Default: `60` The number of seconds for which the client can go down and the intents will be retained. This means that if a client has not updated the checkpoint for this interval, the intents would be garbage collected. Default: `60000` {{< warning title="Warning" >}} If you are using multiple streams, it is advised that you set this flag to `1800000` (30 minutes). {{< /warning >}} Number of seconds to retain log files. Log files older than this value will be deleted even if they contain unreplicated CDC entries. If 0, this flag will be ignored. This flag is ignored if a log segment contains entries that haven't been flushed to RocksDB. Default: `86400` Stop retaining logs if the space available for the logs falls below this limit, specified in megabytes. As with `logmaxsecondstoretain`, this flag is ignored if a log segment contains unflushed entries. Default: `102400` By default, TRUNCATE commands on tables on which CDCSDK stream is active will fail. Changing the value of this flag from `false` to `true` will enable truncating the tables part of the CDCSDK stream. Default: `false` The time period, in milliseconds, after which the intents will be cleaned up if there is no client polling for the change records. Default: `14400000` (4 hours) Number of tables to be added to the stream ID per run of the background thread which adds newly created tables to the active streams on its namespace. Default: `2` Turn on the file expiration for TTL feature. Default: `false` For tables with a `defaulttimeto_live` table property, sets a size threshold at which files will no longer be considered for compaction. Files over this threshold will still be considered for expiration. Disabled if value is `0`. Ideally, `rocksdbmaxfilesizefor_compaction` should strike a balance between expiring data at a reasonable frequency and not creating too many SST files (which can impact read performance). For instance, if 90 days worth of data is stored, consider setting this flag to roughly the size of one day's worth of data. Default: `0` Threshold for number of SST files per tablet. When exceeded, writes to a tablet will be throttled until the number of files is reduced. Default: `24` Threshold for number of SST files per tablet. When exceeded, writes to a tablet will no longer be allowed until the number of files is reduced. Default: `48` When set to true, ignores any value-level TTL metadata when determining file expiration. Helpful in situations where some SST files are missing the necessary value-level metadata (in case of upgrade, for

Default: `false` {{< warning title="Warning">}} Use of this flag can potentially result in expiration of live data. Use at your discretion. {{< /warning >}} When set to true, allows files to expire purely based on their value-level TTL expiration time (even if it is lower than the table TTL). This is helpful for situations where a file needs to expire earlier than its table-level TTL would allow. If no value-level TTL metadata is available, then table-level TTL will still be used. Default: `false` {{< warning title="Warning">}} Use of this flag can potentially result in expiration of live data. Use at your discretion. {{< /warning >}} YB-TServer metrics are available in Prometheus format at `http://localhost:9000/prometheus-metrics`. This flag controls whether metrics output by default. To override this flag on a per-scrape basis, set the URL parameter `show_help` to `true` to include or to `false` to not include type and help information. For example, querying `http://localhost:9000/prometheus-metrics?show_help=true` will return type and help information regardless of the setting of this flag. Default: `true` YugabyteDB uses PostgreSQL server configuration parameters to apply server configuration settings to new server instances. You can modify these parameters in the following ways: Use the flag. Set the option per-database: ```sql ALTER DATABASE databasename SET tempfile_limit=-1; ``` Set the option per-role: ```sql ALTER ROLE yugabyte SET tempfilelimit=-1; ``` When setting a parameter at the role or database level, you have to open a new session for the changes to take effect. Set the option for the current session: ```sql SET tempfilelimit=-1; alternative way SET SESSION tempfilelimit=-1; ``` If `SET` is issued in a transaction that is aborted later, the effects of the SET command are reverted when the transaction is rolled back. If the surrounding transaction commits, the effects will persist for the whole session. Set the option for the current transaction: ```sql SET LOCAL tempfilelimit=-1; ``` For information on available PostgreSQL server configuration parameters, refer to in the PostgreSQL documentation. The server configuration parameters for YugabyteDB are the same as for PostgreSQL, with the following exceptions and additions. YugabyteDB supports the following additional options for the `loglineprefix` parameter: %C = cloud name %R = region / data center name %Z = availability zone / rack name %U = cluster UUID %N = node and cluster name %H = current hostname For information on using `loglineprefix`, refer to in the PostgreSQL documentation. When set, suppresses logging of non-PostgreSQL output to the PostgreSQL log file in the `tserver/logs` directory. Default: `off` Specifies the amount of disk space used for temporary files for each YSQL connection, such as sort and hash temporary files, or the storage file for a held cursor. Any query whose disk space usage exceeds `tempfilelimit` will terminate with the error `ERROR: temporary file size exceeds tempfilelimit`. Note that temporary tables do not count against this limit. You can remove the limit (set the size to unlimited) using `tempfilelimit=-1`. Valid values are `-1` (unlimited), `integer` (in kilobytes), `nMB` (in megabytes), and `nGB` (in gigabytes) (where 'n' is an integer). Default: `1GB` Set the size of a tuple batch that's taken from the outer side of a . When set to 1, BNLs are effectively turned off and won't be considered as a query plan candidate. Default: 1024 Enable or disable the query planner's use of Batched Nested Loop Join. Default: true The Admin UI for the YB-TServer is available at `http://localhost:9000`. Home page of the YB-TServer (`yb-tserver`) that gives a high level overview of this specific instance. Here's a list of all dashboards to review the ongoing operations: List of all tablets managed by this specific instance, sorted by the