---
title: "All YB-Master flags"
url: "https://docs.yugabyte.com/stable/reference/configuration/all-flags-yb-master/"
---

# All YB-Master flags

List of all YB-Master process flags for configuring YugabyteDB using yb-master

Use the yb-master binary and its flags to configure the [YB-Master](/stable/architecture/yb-master/ "YB-Master") server. The yb-master executable file is located in the `bin` directory of YugabyteDB home. For more detailed information about flags commonly used for production deployments and instructions on using yb-master, refer to the [yb-master](/stable/reference/configuration/yb-master/ "yb-master") documentation.

For a list of all YB-TServer flags, see [All YB-TServer flags](/stable/reference/configuration/all-flags-yb-tserver/ "All YB-TServer flags").

### 2026.1.2.0

#### abort\_active\_txns\_during\_xrepl\_bootstrap

Abort active transactions during xcluster and cdc bootstrapping. Inconsistent replicated data may be produced if this is disabled. (***Default*: true** - *advanced, runtime*)

#### aborted\_intent\_cleanup\_max\_batch\_size

Restart Needed Changes to this flag require a restart

Number of transactions to collect for possible cleanup. (***Default*: 256**)

#### aborted\_intent\_cleanup\_ms

Duration in ms after which to check if a transaction is aborted. (***Default*: 60000** - *runtime*)

#### add\_new\_index\_to\_bidirectional\_xcluster\_timeout\_secs

Time in seconds within which index must be created on other universe when the indexed table is part of bidirectional xCluster replication. Applies only when --ysql\_auto\_add\_new\_index\_to\_bidirectional\_xcluster is set. (***Default*: 600** - *runtime*)

#### advance\_intents\_flushed\_op\_id\_to\_match\_regular

If true, the flushed op id of intents db may be updated to match that of regular db during flushing regular db memtable. Implicitly disabled for a tablet once it has applied an external (xCluster target) write batch, until the next tserver restart. (***Default*: true** - *runtime*)

#### aggregate\_arena\_reset\_min\_invocations

Minimum number of PrepareAggregateResults invocations that must elapse between aggregate arena recreations. Avoids paying the migration cost on short aggregate scans where the footprint check might otherwise trip on a single oversized row. (***Default*: 5** - *runtime*)

#### aggregate\_arena\_reset\_threshold\_bytes

When the aggregate-private arena grows beyond this footprint (in bytes), it is replaced with a fresh arena and the running aggregate values are migrated. Bounds the peak memory consumed while scanning many rows for SUM/MIN/MAX/AVG/COUNT. (***Default*: 16384** - *runtime*)

#### aggressive\_compaction\_for\_read\_amp

Determines if we should compact aggressively to reduce read amplification based on number of files alone, without regards to relative sizes of the SSTable files. (***Default*: false** - *runtime*)

#### allow\_batching\_non\_deferred\_indexes

If enabled, indexes on the same (YCQL) table may be batched together during backfill, even if they were not deferred. (***Default*: true** - *advanced, runtime*)

#### allow\_consecutive\_restore

Deprecated (***Default*: false** - *deprecated, runtime*)

#### allow\_encryption\_at\_rest

Restart Needed Changes to this flag require a restart

Whether or not to allow encryption at rest to be enabled. Toggling this flag does not turn on or off encryption at rest, but rather allows or disallows a user from enabling it on in the future. (***Default*: true**)

#### allow\_insecure\_connections

Restart Needed Changes to this flag require a restart

Whether we should allow insecure connections. (***Default*: true**)

#### allow\_leader\_balancing\_dead\_node

When a tserver is marked as dead, do we continue leader balancing for tables that have a replica on this tserver (***Default*: true** - *runtime*)

#### allow\_preempting\_compactions

Restart Needed Changes to this flag require a restart

Whether a compaction may be preempted in favor of another compaction with higher priority (***Default*: true**)

#### allow\_sensitive\_data\_in\_logs

Allows potentially-sensitive debug data to be written unencrypted into logs. (***Default*: false** - *runtime*)

#### allow\_three\_shared\_parts\_data\_block\_key\_value\_encoding

Allow to use three\_shared\_parts for writing RocksDB data blocks. (***Default*: true** - *stable, auto, runtime*)

#### allowed\_preview\_flags\_csv

Restart Needed Changes to this flag require a restart

CSV formatted list of Preview flag names. Flags that are tagged Preview cannot be modified unless they have been added to this list. By adding flags to this list, you acknowledge any risks associated with modifying them. (***Default*: None**)

#### apply\_changes\_max\_send\_rate\_mbps

Server-wide max apply rate for xcluster traffic. (***Default*: 100** - *runtime*)

#### apply\_intents\_task\_injected\_delay\_ms

Restart Needed Changes to this flag require a restart

Inject such delay before applying intents for large transactions. Could be used to throttle the apply speed. (***Default*: 0**)

#### are\_nodes\_safe\_to\_take\_down\_timeout\_buffer\_ms

How much earlier than the deadline to return from AreNodesSafeToTakeDown. This allows the caller to receive a more readable error instead of a generic timeout error. (***Default*: 2000** - *runtime*)

#### async\_replication\_idle\_delay\_ms

How long to delay between polling when we expect no data at the destination. (***Default*: 100** - *runtime*)

#### async\_replication\_max\_idle\_wait

Maximum number of consecutive empty GetChanges until the poller backs off to the idle interval, rather than immediately retrying. (***Default*: 3** - *runtime*)

#### async\_replication\_polling\_delay\_ms

How long to delay in ms between applying and polling. (***Default*: 0** - *runtime*)

#### auto\_compact\_check\_interval\_sec

Restart Needed Changes to this flag require a restart

The interval at which the full compaction task checks for tablets eligible for compaction, in seconds. 0 indicates that the background task is fully disabled. (***Default*: 60**)

#### auto\_compact\_memory\_cleanup\_interval\_sec

The frequency with which we should check whether cleanup is needed in the full compaction manager. -1 indicates we should disable clean up. (***Default*: 3600** - *runtime*)

#### auto\_compact\_min\_obsolete\_keys\_found

Minimum number of keys read in the window for an automatic full compaction to be triggered. (***Default*: 10000** - *runtime*)

#### auto\_compact\_min\_wait\_between\_seconds

Minimum wait time between automatic full compactions. Also applies to scheduled full compactions. (***Default*: 0** - *runtime*)

#### auto\_compact\_percent\_obsolete

Percentage of obsolete keys (over total keys) read over a window of time that trigger an automatic full compaction on a tablet. Only keys that are past their history retention (and thus can be garbage collected) are considered. (***Default*: 99** - *runtime*)

#### auto\_compact\_stat\_window\_seconds

Window of time (seconds) over which DocDB read statistics are analyzed for the purposes of triggering full compactions automatically to improve read performance. Will always be rounded up to be a multiple of auto\_compact\_check\_interval\_sec. (***Default*: 300** - *runtime*)

#### auto\_create\_local\_transaction\_tables

Whether or not to create local transaction status tables automatically on table creation with a tablespace with placement specified. (***Default*: true** - *runtime*)

#### auto\_flags\_apply\_delay\_ms

Number of milliseconds after which a new AutoFlag config is applied. yb-tservers that have not heartbeated to yb-master within this duration cannot replicate data to XCluster targets. The value must be at least twice the heartbeat\_interval\_ms. (***Default*: 10000** - *advanced, stable, runtime*)

#### auto\_flags\_load\_from\_master\_backoff\_increment\_ms

Restart Needed Changes to this flag require a restart

Number of milliseconds added to the delay between reties of fetching AutoFlags config from master leader. This delay is applied after the RPC reties have been exhausted. (***Default*: 100** - *advanced, stable*)

#### auto\_flags\_load\_from\_master\_max\_backoff\_sec

Restart Needed Changes to this flag require a restart

Maximum number of seconds to delay between reties of fetching AutoFlags config from master leader. This delay is applied after the RPC reties have been exhausted. (***Default*: 3** - *advanced, stable*)

#### auto\_promote\_nonlocal\_transactions\_to\_global

Automatically promote transactions touching data outside of region to global. (***Default*: true** - *runtime*)

#### automatic\_compaction\_extra\_priority

Assigns automatic compactions extra priority when automatic tablet splits are enabled. This deprioritizes manual compactions including those induced by the tserver (e.g. post-split compactions). Suggested value between 0 and 50. (***Default*: 50** - *runtime*)

#### autoscale\_transaction\_tables

Automatically scale transaction status tables based on the number of live tservers. (***Default*: true** - *runtime*)

#### avoid\_abort\_after\_sealing\_ms

Restart Needed Changes to this flag require a restart

If transaction was only sealed, we will try to abort it not earlier than this period in milliseconds. (***Default*: 20**)

#### backfill\_index\_check\_snapshot\_too\_old

Whether an index backfill's read of the indexed table registers its fixed read time with the retention policy, failing with SnapshotTooOld if the tablet's history cutoff has already advanced past that read time. Without the check, such a read can silently return garbage-collected state and produce an incorrect index. (***Default*: true** - *advanced, runtime*)

#### backfill\_index\_client\_rpc\_timeout\_ms

Timeout for BackfillIndex RPCs from client to master. (***Default*: 86400000** - *advanced, runtime*)

#### backfill\_index\_rate\_rows\_per\_sec

Rate of at which the indexed table's entries are populated into the index table during index backfill. This is a per-tablet flag, i.e. a tserver responsible for multiple tablets could be processing more than this. (***Default*: 0** - *advanced, runtime*)

#### backfill\_index\_timeout\_grace\_margin\_ms

The time we give the backfill process to wrap up the current set of writes and return successfully the RPC with the information about how far we have processed the rows. (***Default*: -1** - *advanced, runtime*)

#### backfill\_index\_write\_batch\_size

The batch size for backfilling the index. (***Default*: 128** - *advanced, runtime*)

#### backpressure\_recovery\_period\_ms

Once we hit a backpressure/service-overflow we will consider dropping stale requests for this duration (in ms) (***Default*: 600000** - *advanced, runtime*)

#### balancer\_load\_max\_standard\_deviation

Restart Needed Changes to this flag require a restart

The standard deviation among the tserver load, above which that distribution is considered not balanced. (***Default*: 2** - *advanced*)

#### batch\_tablet\_metrics\_update

Batch update of rocksdb and tablet metrics to once per request rather than updating immediately. (***Default*: true** - *runtime*)

#### batch\_ysql\_system\_tables\_metadata

Whether change metadata operation and SysCatalogTable upserts for ysql system tables during a create database is performed one by one or batched together (***Default*: true** - *runtime*)

#### bg\_superblock\_flush\_interval\_secs

The interval at which tablet superblocks are flushed to disk (if dirty) by a background thread. Applicable only when lazily\_flush\_superblock is enabled. 0 indicates that the background task is fully disabled. (***Default*: 60** - *runtime*)

#### big\_shared\_memory\_allocated\_limit

Restart Needed Changes to this flag require a restart

The limit for all allocated big shared memory segments in bytes. (***Default*: 134217728**)

#### big\_shared\_memory\_segment\_expiration\_time\_ms

Time to release unused allocated big memory segment. (***Default*: 5000** - *runtime*)

#### big\_shared\_memory\_segment\_session\_expiration\_time\_ms

Time to release unused allocated big memory segment from session to pool. (***Default*: 5000** - *runtime*)

#### binary\_call\_parser\_reject\_on\_mem\_tracker\_hard\_limit

Restart Needed Changes to this flag require a restart

Whether to reject/ignore calls on hitting mem tracker hard limit. (***Default*: true**)

#### blacklist\_progress\_initial\_delay\_secs

When a master leader failsover, the time until which the progress of load movement off the blacklisted tservers is reported as 0. This initial delay gives sufficient time for heartbeats so that we don't report a premature incorrect completion. (***Default*: 120** - *runtime*)

#### block\_restart\_interval

Restart Needed Changes to this flag require a restart

Controls the number of keys to look at for computing the diff encoding. (***Default*: 16**)

#### bytes\_durable\_wal\_write\_mb

Restart Needed Changes to this flag require a restart

Amount of data in MB after which the Log/WAL should explicitly call fsync(). If 0 fsysnc() is not called. (***Default*: 1** - *stable*)

#### bytes\_remote\_bootstrap\_durable\_write\_mb

Restart Needed Changes to this flag require a restart

Explicitly call fsync after downloading the specified amount of data in MB during a remote bootstrap session. If 0 fsync() is not called. (***Default*: 1024**)

#### cache\_overflow\_single\_touch

Restart Needed Changes to this flag require a restart

Whether to enable overflow of single touch cache into the multi touch cache allocation (***Default*: true**)

#### cache\_single\_touch\_ratio

Restart Needed Changes to this flag require a restart

Fraction of the cache dedicated to single-touch items (***Default*: 0.20000000000000001**)

#### callhome\_collection\_level

Restart Needed Changes to this flag require a restart

Level of details sent by callhome (***Default*: medium**)

#### callhome\_enabled

Enables callhome feature that sends analytics data to yugabyte (***Default*: true** - *runtime*)

#### callhome\_interval\_secs

How often to run callhome (***Default*: 3600** - *runtime*)

#### callhome\_tag

Restart Needed Changes to this flag require a restart

Tag to be inserted in the json sent to FLAGS\_callhome\_url. This tag is used by itest to specify that the data generated by callhome should be discarded by the receiver. (***Default*: None**)

#### callhome\_url

Restart Needed Changes to this flag require a restart

URL of callhome server (***Default*: [https://diagnostics.yugabyte.com](https://diagnostics.yugabyte.com "https://diagnostics.yugabyte.com")**)

#### callhome\_ysql\_cluster\_stats\_rpc\_timeout\_ms

Timeout in milliseconds for the CollectYsqlCallHomeStats RPC from the master leader to the closest TServer during YSQL call-home stats collection. (***Default*: 90000** - *runtime*)

#### callhome\_ysql\_connect\_timeout\_ms

Timeout in milliseconds for establishing a PostgreSQL connection during YSQL call-home collection. Set to 0 for no timeout. (***Default*: 30000** - *runtime*)

#### callhome\_ysql\_interval\_secs

Interval in seconds between YSQL call-home stats collections. YSQL collectors skip their run if less than this interval has elapsed since the last successful collection. Set to 0 to collect on every call-home cycle. (***Default*: 86400** - *runtime*)

#### callhome\_ysql\_statement\_timeout\_ms

Timeout in milliseconds for individual query execution during YSQL call-home collection. Passed directly to PostgreSQL's statement\_timeout GUC. Set to 0 for no timeout. (***Default*: 60000** - *runtime*)

#### callsite\_profile\_stack\_trace\_threshold\_usec

Threshold, in microseconds, for printing stack traces for profiled call sites that take longer than this amount of time. Regardless of this setting, stack traces at any given call site will not be printed more than once a second. Set to 0 to disable stack traces. (***Default*: 0** - *runtime*)

#### catalog\_manager\_bg\_task\_wait\_ms

Amount of time the catalog manager background task thread waits between runs (***Default*: 1000** - *runtime*)

#### catalog\_manager\_report\_batch\_size

The max number of tablets evaluated in the heartbeat as a single SysCatalog update. (***Default*: 1** - *advanced, runtime*)

#### cdc\_checkpoint\_opid\_interval\_ms

Restart Needed Changes to this flag require a restart

Interval up to which CDC consumer's checkpoint is considered for retaining log cache.If we haven't received an updated checkpoint from CDC consumer within the interval specified by cdc\_checkpoint\_opid\_interval, then log cache does not consider that consumer while determining which op IDs to evict. (***Default*: 60000**)

#### cdc\_consumer\_handler\_thread\_pool\_size

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### cdc\_consumer\_use\_proxy\_forwarding

When enabled, read requests from the XClusterConsumer that go to the wrong node are forwarded to the correct node by the Producer. (***Default*: false** - *runtime*)

#### cdc\_create\_stream\_alter\_table\_dispatch\_batch\_size

Number of per-table AlterTable calls to dispatch in one batch during CDC stream creation. The value &lt;= 0 signifies no batching. (***Default*: 10** - *runtime*)

#### cdc\_create\_stream\_alter\_table\_dispatch\_delay\_ms

If non-zero, sleeps for the configured number of milliseconds after each batch of cdc\_create\_stream\_alter\_table\_dispatch\_batch\_size per-table AlterTable calls during CDC stream creation. (***Default*: 50** - *runtime*)

#### cdc\_disable\_sending\_composite\_values

When this flag is set to true, cdc service will send null values for columns of composite types (***Default*: true** - *runtime*)

#### cdc\_enable\_caching\_db\_block

When set to true, cache the DB block read for CDC in block cache. (***Default*: true** - *runtime*)

#### cdc\_enable\_consistent\_records

Restart Needed Changes to this flag require a restart

If 'true' we will ensure that the records are order by the commit\_time. (***Default*: true**)

#### cdc\_enable\_dynamic\_schema\_changes

When set, enables streaming of dynamic schema changes via CDC. The dynamic schema changes include any changes made to the publications and all the DDLs including those which cause table rewrites. (***Default*: true** - *stable, auto, runtime*)

#### cdc\_enable\_implicit\_checkpointing

When enabled, users will be able to create a CDC stream having IMPLICIT checkpointing. (***Default*: false** - *runtime*)

#### cdc\_enable\_intra\_transactional\_before\_image

Restart Needed Changes to this flag require a restart

If 'true', before image is populated for the intra-transactional DMLs. (***Default*: false**)

#### cdc\_enable\_local\_rpc\_in\_virtual\_wal

When enabled, RPCs will be called locally via empty HostPort in the VirtualWAL. (***Default*: true** - *runtime*)

#### cdc\_enable\_postgres\_replica\_identity

Enable new record types in CDC streams (***Default*: true** - *stable, auto, runtime*)

#### cdc\_enable\_replicate\_intents

Deprecated (***Default*: false** - *deprecated, runtime*)

#### cdc\_enable\_savepoint\_rollback\_filtering

If 'true', CDC streaming will filter out intents from aborted subtransactions (rolled-back savepoints). This prevents CDC consumers from receiving data that was never actually committed. This flag is only used for YSQL tables. (***Default*: true** - *runtime*)

#### cdc\_enable\_time\_based\_intent\_retention

When true, the cleanup of intent sst files for tablets under CDCSDK replication is done based on the age of these files. These files will be retained for at least cdc\_min\_sec\_to\_retain\_intent seconds and then will be asynchronously deleted. (***Default*: false** - *runtime*)

#### cdc\_get\_changes\_free\_rpc\_ratio

Restart Needed Changes to this flag require a restart

When the TServer only has this percentage of RPCs remaining because the rest are GetChanges, reject additional requests to throttle/backoff and prevent deadlocks. (***Default*: 0.10000000000000001**)

#### cdc\_immediate\_transaction\_cleanup

Clean up transactions from memory after apply, even if its changes have not yet been streamed by CDC. (***Default*: true** - *runtime*)

#### cdc\_intent\_retention\_ms

Interval up to which CDC consumer's checkpoint is considered for retaining intents.If we haven't received an updated checkpoint from CDC consumer within the interval specified by cdc\_checkpoint\_opid\_interval, then CDC does not consider that consumer while determining which op IDs to delete from the intent. NOTE: Must be no larger than cdc\_wal\_retention\_time\_secs * 1000. (***Default*: 28800000** - *advanced, runtime*)

#### cdc\_max\_apply\_batch\_num\_records

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### cdc\_max\_apply\_batch\_size\_bytes

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### cdc\_max\_stream\_intent\_records

Max number of intent records allowed in single cdc batch. (***Default*: 1680** - *runtime*)

#### cdc\_max\_virtual\_wal\_per\_tserver

Maximum VirtualWAL instances that can be present on a tserver at any time. (***Default*: 5** - *runtime*)

#### cdc\_min\_replicated\_index\_considered\_stale\_secs

Restart Needed Changes to this flag require a restart

If cdc\_min\_replicated\_index hasn't been replicated in this amount of time, we reset itsvalue to max int64 to avoid retaining any logs (***Default*: 1800**)

#### cdc\_min\_replicated\_index\_considered\_stale\_secs\_master

Same as cdc\_min\_replicated\_index\_considered\_stale\_secs but applied to the sys catalog tablet on master. A higher default (4 hours) prevents premature reset of retention barriers on master followers that receive less frequent barrier updates. (***Default*: 14400** - *runtime*)

#### cdc\_min\_sec\_to\_retain\_intent

Minimum number of seconds for which intent SST files of tablets under CDCSDK replication are retained when cdc\_enable\_time\_based\_intent\_retention is true. Intent SST files are not deleted until their maximum hybrid time is at least this many seconds old. This flag is not applicable when cdc\_enable\_time\_based\_intent\_retention is false. (***Default*: 28800** - *runtime*)

#### cdc\_parent\_tablet\_deletion\_task\_retry\_secs

Frequency at which the background task will verify parent tablets retained for xCluster or CDCSDK replication and determine if they can be cleaned up. (***Default*: 30** - *runtime*)

#### cdc\_pg\_create\_grpc\_stream

Allow creation of gRPC CDC streams via the YSQL replication slot interface using the yb\_grpc plugin name. Also gates the post-upgrade backfill of legacy gRPC streams. (***Default*: true** - *stable, auto, runtime*)

#### cdc\_populate\_end\_markers\_transactions

If 'true', we will also send 'BEGIN' and 'COMMIT' records for both single shard and multi shard transactions (***Default*: true** - *runtime*)

#### cdc\_populate\_safepoint\_record

If 'true' we will also send a 'SAFEPOINT' record at the end of each GetChanges call. (***Default*: true** - *runtime*)

#### cdc\_read\_rpc\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout used for CDC read rpc calls. Reads normally occur cross-cluster. (***Default*: 30000** - *advanced*)

#### cdc\_read\_safe\_deadline\_ratio

When the heartbeat deadline has this percentage of time remaining, the master should halt tablet report processing so it can respond in time. (***Default*: 0.10000000000000001** - *runtime*)

#### cdc\_read\_wal\_segment\_by\_segment

When this flag is set to true, GetChanges will read the WAL segment by segment. If valid records are found in the first segment, GetChanges will return these records in response. If no valid records are found then next segment will be read. (***Default*: true** - *runtime*)

#### cdc\_resolve\_intent\_lag\_threshold\_ms

Restart Needed Changes to this flag require a restart

The lag threshold in milli seconds between the hybrid time returned by GetMinStartHTRunningTxnsForCDCProducer and LeaderSafeTime, when we decide the ConsistentStreamSafeTime for CDCSDK by resolving all committed intetns (***Default*: 300000**)

#### cdc\_send\_null\_before\_image\_if\_not\_exists

When this flag is set to true, GetChanges will return a null before image if it is not able to find one. (***Default*: false** - *runtime*)

#### cdc\_skip\_unqualified\_tables\_for\_polling

When enabled, VWAL will skip adding expired / not-of-interest tables to the polling list. (***Default*: false** - *runtime*)

#### cdc\_snapshot\_batch\_size

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### cdc\_snapshot\_records\_threshold\_size\_bytes

The threshold for the size of the CDC snapshot GetChanges response. The actual size may be slightly higher than this value. (***Default*: 4194304** - *runtime*)

#### cdc\_state\_checkpoint\_update\_interval\_ms

Rate at which CDC state's checkpoint is updated. (***Default*: 15000** - *runtime*)

#### cdc\_state\_table\_num\_tablets

Number of tablets to use when creating the CDC state table. 0 to use the same default num tablets as for regular tables. (***Default*: 0** - *runtime*)

#### cdc\_stream\_records\_threshold\_size\_bytes

The threshold for the size of the response of a GetChanges call. The actual size may be a little higher than this value. (***Default*: 4194304** - *runtime*)

#### cdc\_transaction\_timeout\_ms

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### cdc\_use\_byte\_threshold\_for\_vwal\_changes

This controls the size of GetConsistentChanges RPC response. If true, records will be limited by cdc\_stream\_records\_threshold\_size\_bytes flag. If false, records will be limited by cdcsdk\_max\_consistent\_records flag. (***Default*: true** - *advanced, runtime*)

#### cdc\_wal\_retention\_time\_secs

WAL retention time in seconds to be used for tables which have a xCluster, or CDCSDK outbound stream. NOTE: Must be at least cdc\_intent\_retention\_ms (in seconds). (***Default*: 28800** - *runtime*)

#### cdc\_write\_post\_apply\_metadata

Write post-apply transaction metadata to intentsdb for transaction that have been applied but have not yet been streamed by CDC. (***Default*: true** - *stable, auto, runtime*)

#### cdc\_write\_rpc\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout used for CDC write rpc calls. Writes normally occur intra-cluster. (***Default*: 30000** - *advanced*)

#### cdc\_ybclient\_reactor\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### cdcsdk\_enable\_cleanup\_of\_expired\_table\_entries

When enabled, Update Peers and Metrics will look for entries in the state table that have either become not of interest or have expired for a stream. The cleanup logic will then update these entries in cdc\_state table and also move the corresponding table's entry to unqualified tables list in stream metadata. (***Default*: true** - *stable, auto, runtime*)

#### cdcsdk\_enable\_cleanup\_of\_non\_eligible\_tables\_from\_stream

Deprecated (***Default*: false** - *deprecated, runtime*)

#### cdcsdk\_enable\_dynamic\_table\_addition\_with\_table\_cleanup

This flag needs to be true in order to support addition of dynamic tables along with removal of not of interest/expired tables from a CDCSDK stream. (***Default*: true** - *advanced, stable, auto, runtime*)

#### cdcsdk\_enable\_dynamic\_table\_support

This flag can be used to switch the dynamic addition of tables ON or OFF. (***Default*: true** - *runtime*)

#### cdcsdk\_enable\_selective\_retention\_barrier\_revision

When enabled, a retention barrier revision request may move only a subset of the WAL, intents and history retention barriers, via the no\_\*\_retention\_barrier fields of UpdateCdcReplicatedIndexRequestPB. Requires every peer to understand these fields, else peer ignores them and moves all three barriers. (***Default*: true** - *stable, auto, runtime*)

#### cdcsdk\_max\_consistent\_records

Controls the maximum number of records sent in GetConsistentChanges response. Only used when cdc\_vwal\_use\_byte\_threshold\_for\_consistent\_changes flag is set to false. (***Default*: 500** - *runtime*)

#### cdcsdk\_max\_expired\_tables\_to\_clean\_per\_run

This flag determines the maximum number of tables to be cleaned up per run of UpdatePeersAndMetrics. Since a lot of tables can become not of interest at the same time, this flag is used to prevent storming of cleanup requests to master. When the flag value is 1, the number of cleanup requests sent will be min(num\_tables\_to\_cleanup, num\_of\_nodes) (***Default*: 1** - *runtime*)

#### cdcsdk\_publication\_list\_refresh\_interval\_secs

Interval in seconds at which the table list in the publication will be refreshed (***Default*: 900** - *runtime*)

#### cdcsdk\_retention\_barrier\_no\_revision\_interval\_secs

Duration for which CDCSDK retention barriers cannot be revised from the cdcsdk\_block\_barrier\_revision\_start\_time (***Default*: 120** - *runtime*)

#### cdcsdk\_table\_processing\_limit\_per\_run

The number of newly added tables we will add to CDCSDK streams, per run of the background task. (***Default*: 2** - *runtime*)

#### cdcsdk\_tablet\_not\_of\_interest\_timeout\_secs

Timeout after which it can be inferred that tablet is not of interest for the stream (***Default*: 14400** - *runtime*)

#### cdcsdk\_update\_restart\_time\_interval\_secs

We will check if the restart lsn is equal to the last shipped lsn periodically and move the restart time forward. This flag determines the periodicity of this operation. (***Default*: 60** - *advanced, runtime*)

#### cdcsdk\_update\_restart\_time\_when\_nothing\_to\_stream

When this flag is enabled, the restart time would be moved forward to the commit time of the most recently popped COMMIT / SAFEPOINT record from the priority queue iff restart lsn is equal to the last shipped lsn (***Default*: true** - *advanced, runtime*)

#### cdcsdk\_use\_dropped\_table\_list\_for\_cleanup

When enabled, dropped tables are tracked via the dropped\_table\_id list in stream metadata instead of using the DELETING\_METADATA stream state. (***Default*: true** - *stable, auto, runtime*)

#### cdcsdk\_vwal\_getchanges\_resp\_max\_size\_bytes

Max size (in bytes) of GetChanges response for all GetChanges requests sent from Virtual WAL. (***Default*: 4194304** - *runtime*)

#### cdcsdk\_vwal\_tablets\_to\_poll\_batch\_size

The maximum number of tablets to poll in a single GetConsistentChanges call. If there are more tablets to be polled, then an empty response is sent in current call. (***Default*: 200** - *runtime*)

#### cdcsdk\_wal\_reads\_deadline\_buffer\_secs

This flag determines the buffer time from the deadline at which we must stop reading the WAL messages and start processing the records we have read till now. (***Default*: 5** - *runtime*)

#### cert\_file\_pattern

Restart Needed Changes to this flag require a restart

Pattern used for certificate file (***Default*: node.$0.crt**)

#### cert\_node\_filename

Restart Needed Changes to this flag require a restart

The file name that will be used in the names of the node certificates and keys. These files will be named : 'node.{cert\_node\_filename}.{key|crt}'. If this flag is not set, then --server\_broadcast\_addresses will be used if it is set, and if not, --rpc\_bind\_addresses will be used. (***Default*: None**)

#### certs\_dir

Restart Needed Changes to this flag require a restart

Directory that contains certificate authority, private key and certificates for this server. By default 'certs' subdir in data folder is used. (***Default*: None**)

#### certs\_for\_cdc\_dir

Restart Needed Changes to this flag require a restart

The parent directory of where all certificates for xCluster source universes will be stored, for when the source and target universes use different certificates. Place the certificates for each source universe in &lt;certs\_for\_cdc\_dir&gt;/&lt;source\_cluster\_uuid&gt;/\*. (***Default*: None**)

#### certs\_for\_client\_dir

Restart Needed Changes to this flag require a restart

Directory that contains certificate authority, private key and certificates for this server that should be used for client to server communications. When empty, the same dir as for server to server communications is used. (***Default*: None**)

#### change\_metadata\_backoff\_init\_exponent

Initial exponent of 2 in the exponential backoff loop that checks if a change metadata operation is finished. Only used for colocated table creation for now. (***Default*: 1** - *runtime*)

#### change\_metadata\_backoff\_max\_jitter\_ms

Max jitter (in ms) in the exponential backoff loop that checks if a change metadata operation is finished. Only used for colocated table creation for now. (***Default*: 0** - *runtime*)

#### check\_bootstrap\_required

Is it necessary to check whether bootstrap is required for Universe Replication. (***Default*: false** - *runtime*)

#### check\_lagging\_catalog\_versions\_interval\_secs

Interval at which pg backends are checked for lagging catalog versions. (***Default*: 900** - *advanced, runtime*)

#### check\_pg\_object\_id\_allocators\_interval\_secs

Interval at which pg object id allocators are checked for dropped databases. (***Default*: 10800** - *advanced, runtime*)

#### cipher\_list

Restart Needed Changes to this flag require a restart

Define the list of available ciphers (TLSv1.2 and below). (***Default*: None**)

#### ciphersuites

Restart Needed Changes to this flag require a restart

Define the available TLSv1.3 ciphersuites. (***Default*: None**)

#### cleanup\_intents\_sst\_files

Cleanup intents files that are no more relevant to any running transaction. (***Default*: true** - *runtime*)

#### cleanup\_metrics\_interval\_sec

Restart Needed Changes to this flag require a restart

The tick interval time for the metrics cleanup background task. If set to 0, it disables the background task. (***Default*: 60**)

#### cleanup\_split\_tablets\_interval\_sec

Restart Needed Changes to this flag require a restart

Interval at which tablet manager tries to cleanup split tablets which are no longer needed. Setting this to 0 disables cleanup of split tablets. (***Default*: 60**)

#### client\_read\_write\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout for client read and write operations. (***Default*: 60000**)

#### clock\_skew\_force\_crash\_bound\_usec

Restart Needed Changes to this flag require a restart

If the clock skew larger than this amount (microseconds) is observed, we will force a crash regardless of the value of fail\_on\_out\_of\_range\_clock\_skew. This is useful for avoiding really large hybrid clock jumps. Set to 0 to disable the check. Note that this check is only preformed for clock skew greater than max\_clock\_skew\_usec. (***Default*: 60000000**)

#### clockbound\_clock\_error\_estimate\_usec

Restart Needed Changes to this flag require a restart

An estimate of the clock error in microseconds. When the estimate is too low and the reported clock error exceeds the estimate, the database timestamps fall behind real time. When the estimate is too high, the database is more prone to false read restarts. (***Default*: 2500**)

#### clockbound\_mixed\_clock\_mode

When true, use max\_clock\_skew\_usec as read time uncertainty interval (same as WallClock). When false, use low clock errors reported by AWS clockbound to compute the read time uncertainty interval. (***Default*: false** - *runtime*)

#### clockbound\_num\_ctxs

Restart Needed Changes to this flag require a restart

Number of clockbound contexts to open. When set to 0, the number of contexts is automatically determined. This is a performance optimization to reduce contention on the clockbound context. (***Default*: 0**)

#### cluster\_balancer\_stepdown\_to\_preferred\_leader\_on\_remove

If true, when removing a replica which happens to be the leader from a tablet, the cluster balancer will step down the leader to a tserver in the most preferred zone. (***Default*: true** - *runtime*)

#### collect\_end\_to\_end\_traces

If true, collected traces includes information for sub-components potentially running on a different server. (***Default*: false** - *advanced, runtime*)

#### collect\_update\_consensus\_traces

If true, collected traces from followers for UpdateConsensus running on a different server. (***Default*: false** - *advanced, runtime*)

#### colorlogtostderr

color messages logged to stderr (if supported by terminal) (***Default*: false** - *runtime, stable*)

#### compaction\_priority\_start\_bound

Compaction task of DB that has number of SST files less than specified will have priority 0. (***Default*: 10** - *runtime*)

#### compaction\_priority\_step\_size

Compaction task of DB that has number of SST files greater that compaction\_priority\_start\_bound will get 1 extra priority per every compaction\_priority\_step\_size files. (***Default*: 5** - *runtime*)

#### compression\_type

Restart Needed Changes to this flag require a restart

On-disk compression type to use in RocksDB.By default, Snappy is used if supported. (***Default*: Snappy**)

#### connectivity\_check\_interval\_ms

Milliseconds interval to check connectivity between cluster nodes (***Default*: 60000** - *runtime*)

#### consensus\_force\_recover\_from\_stuck\_peer\_call

Set this flag to true in addition to consensus\_stuck\_peer\_call\_threshold\_ms to automatically recover from stuck RPC call. (***Default*: false** - *advanced, runtime*)

#### consensus\_lagging\_follower\_threshold

Number of retransmissions at tablet leader to mark a follower as lagging. -1 disables the feature. (***Default*: 10** - *advanced, runtime*)

#### consensus\_log\_scoped\_watch\_delay\_append\_threshold\_ms

If consensus log append takes longer than this, the kernel watchdog will print out a stack trace. (***Default*: 1000** - *advanced, runtime*)

#### consensus\_log\_scoped\_watch\_delay\_callback\_threshold\_ms

If calling consensus log callback(s) take longer than this, the kernel watchdog will print out a stack trace. (***Default*: 1000** - *advanced, runtime*)

#### consensus\_max\_batch\_size\_bytes

The maximum per-tablet RPC batch size when updating peers. The sum of consensus\_max\_batch\_size\_bytes and 1KB should be less than rpc\_max\_message\_size (***Default*: 4194304** - *advanced, runtime*)

#### consensus\_rpc\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout used for all consensus internal RPC communications. (***Default*: 3000** - *advanced*)

#### consensus\_stuck\_peer\_call\_threshold\_ms

Time to wait after timeout before considering an RPC call as stuck. (***Default*: 10000** - *advanced, runtime*)

#### consistent\_restore

Restart Needed Changes to this flag require a restart

Whether to enable consistent restoration of snapshots (***Default*: true**)

#### copy\_tables\_batch\_bytes

Restart Needed Changes to this flag require a restart

Max bytes per batch for copy pg sql tables (***Default*: 512000**)

#### cql\_allow\_static\_column\_index

Restart Needed Changes to this flag require a restart

Raise unsupported error when creating an index on static columns (***Default*: false**)

#### cql\_always\_return\_metadata\_in\_execute\_response

Restart Needed Changes to this flag require a restart

Force returning the table metadata in the EXECUTE request response (***Default*: false**)

#### cql\_batch\_stmts\_entries\_limit

Limit the number of batch statements that are being tracked. (***Default*: 500** - *runtime*)

#### cql\_check\_table\_schema\_in\_paging\_state

Restart Needed Changes to this flag require a restart

Return error for prepared SELECT statement execution if the table was altered during the prepared statement execution. (***Default*: true**)

#### cql\_dump\_statement\_metrics\_limit

Limit the number of statements that are dumped at the /statements endpoint. (***Default*: 5000** - *runtime*)

#### cql\_limit\_nodelist\_refresh\_to\_subscribed\_conns

When enabled, the node list refresh events will only be sent to the connections which have subscribed to receiving the topology change events. (***Default*: true** - *advanced, runtime*)

#### cql\_nodelist\_refresh\_interval\_secs

Interval after which a node list refresh event should be sent to all CQL clients. (***Default*: 300** - *advanced, runtime*)

#### cql\_prepare\_child\_threshold\_ms

Restart Needed Changes to this flag require a restart

Timeout if preparing for child transaction takes longerthan the prescribed threshold. (***Default*: 2000**)

#### cql\_processors\_limit

Restart Needed Changes to this flag require a restart

Limit number of CQL processors. Positive means absolute limit. Negative means number of processors per 1GB of root mem tracker memory limit. 0 - unlimited. (***Default*: -4000**)

#### cql\_proxy\_bind\_address

Restart Needed Changes to this flag require a restart

Address to bind the CQL proxy to (***Default*: None**)

#### cql\_proxy\_broadcast\_rpc\_address

Restart Needed Changes to this flag require a restart

RPC address to broadcast to other nodes. This is the broadcast\_address used in the system.local table (***Default*: None**)

#### cql\_proxy\_webserver\_port

Restart Needed Changes to this flag require a restart

Webserver port for CQL proxy (***Default*: 0**)

#### cql\_raise\_index\_where\_clause\_error

Restart Needed Changes to this flag require a restart

Raise unsupported error if where clause is specified for create index (***Default*: false**)

#### cql\_revert\_to\_partial\_microsecond\_support

Use this to store timestamps with microseconds precision but cql layer will only support milliseconds. Changing this might have unintended consequences. Please refer technical advisory TA-23476 for more information. (***Default*: true** - *runtime*)

#### cql\_rpc\_keepalive\_time\_ms

Restart Needed Changes to this flag require a restart

If an RPC connection from a client is idle for this amount of time, the server will disconnect the client. Setting flag to 0 disables this clean up. (***Default*: 120000** - *advanced*)

#### cql\_rpc\_memory\_limit

Restart Needed Changes to this flag require a restart

CQL RPC memory limit (***Default*: 0**)

#### cql\_server\_always\_send\_events

Restart Needed Changes to this flag require a restart

All CQL connections automatically subscribed for all CQL events. (***Default*: false**)

#### cql\_service\_max\_prepared\_statement\_size\_bytes

Restart Needed Changes to this flag require a restart

The maximum amount of memory the CQL proxy should use to maintain prepared statements. 0 or negative means unlimited. (***Default*: 134217728**)

#### cql\_service\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for CQL service (***Default*: 10000** - *advanced*)

#### cql\_system\_query\_cache\_empty\_responses

Restart Needed Changes to this flag require a restart

Whether to cache empty responses from the master. (***Default*: true**)

#### cql\_system\_query\_cache\_stale\_msecs

Restart Needed Changes to this flag require a restart

Maximum permitted staleness for the system query cache. &lt;= 0 permits infinite staleness. (***Default*: 60000**)

#### cql\_system\_query\_cache\_tables

Restart Needed Changes to this flag require a restart

Tables to cache connection data for. Entries are semicolon-delimited, in the format &lt;keyspace&gt;.&lt;table&gt;. (***Default*: None**)

#### cql\_table\_is\_transactional\_by\_default

Restart Needed Changes to this flag require a restart

When the 'transactions' property is not specified at CREATE TABLE time for a YCQL table, this flag determines the default setting for whether the table is transactional or not. (***Default*: false** - *advanced*)

#### cql\_unprepared\_stmts\_entries\_limit

Limit the number of unprepared statements that are being tracked. (***Default*: 500** - *runtime*)

#### cql\_update\_system\_query\_cache\_msecs

Restart Needed Changes to this flag require a restart

How often the system query cache should be updated. &lt;= 0 disables caching. (***Default*: 0**)

#### cql\_use\_metadata\_cache\_for\_schema\_version\_check

Use the internal Table Metadata Cache in TS to check the Table Schema Version when processing the YCQL PREPARE query.If disabled - the Table Schema Version is requested from the Master. (***Default*: true** - *advanced, runtime*)

#### cql\_ybclient\_reactor\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### data\_size\_metric\_updater\_interval\_sec

Restart Needed Changes to this flag require a restart

The interval time for the data size metric updater background task. If set to 0, it disables the background task. (***Default*: 60**)

#### db\_block\_cache\_num\_shard\_bits

-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. If the value is overridden, that value would be used in favor of the dynamic scheme. The maximum permissible value is 19. (***Default*: -1** - *advanced, runtime*)

#### db\_block\_cache\_size\_bytes

Restart Needed Changes to this flag require a restart

Size of the shared RocksDB block cache (in bytes). A value of -1 specifies to instead use a percentage of this daemon's hard memory limit; see --db\_block\_cache\_size\_percentage for the percentage used. A value of -2 disables the block cache. (***Default*: -1**)

#### db\_block\_cache\_size\_percentage

Restart Needed Changes to this flag require a restart

Percentage of our hard memory limit to use for the shared RocksDB block cache, if --db\_block\_cache\_size\_bytes is -1. The special value -1000 means to instead use a recommended percentage determined in part by the amount of RAM available. The special value -3 means to use a older default that does not take the amount of RAM into account. The percentage used due to the special values may depend on whether this is a TServer or master daemon. (***Default*: -1000**)

#### db\_block\_size\_bytes

Restart Needed Changes to this flag require a restart

Size of RocksDB data block (in bytes). (***Default*: 32768**)

#### db\_filter\_block\_size\_bytes

Restart Needed Changes to this flag require a restart

Size of RocksDB filter block (in bytes). (***Default*: 65536**)

#### db\_index\_block\_size\_bytes

Restart Needed Changes to this flag require a restart

Size of RocksDB index block (in bytes). (***Default*: 32768**)

#### db\_max\_flushing\_bytes

Restart Needed Changes to this flag require a restart

The limit for the number of bytes in immutable mem tables. After reaching this limit new writes are blocked. 0 - unlimited. (***Default*: 262144000**)

#### db\_min\_keys\_per\_index\_block

Restart Needed Changes to this flag require a restart

Minimum number of keys per index block. (***Default*: 100**)

#### db\_write\_buffer\_size

Restart Needed Changes to this flag require a restart

Size of RocksDB write buffer (in bytes). -1 to use default. (***Default*: -1**)

#### ddl\_requester\_liveness\_check\_interval\_secs

Interval in seconds between liveness checks for a background DDL operation's initiating transaction. If the transaction is detected as aborted, the background operation is stopped. (***Default*: 10** - *runtime*)

#### ddl\_verification\_timeout\_multiplier

Multiplier for the timeout used for DDL verification. DDL verification may involve waiting for DDL operations to finish at the yb-master. This is a multiplier for default\_admin\_operation\_timeout which is the timeout used for a single DDL operation (***Default*: 5** - *runtime*)

#### default\_idle\_timeout\_ms

Restart Needed Changes to this flag require a restart

Default RPC YBThreadPool idle timeout value in milliseconds (***Default*: 15000**)

#### default\_memory\_limit\_to\_ram\_ratio

Restart Needed Changes to this flag require a restart

The percentage of available RAM to use if --memory\_limit\_hard\_bytes is 0. The special value -1000 means to instead use a recommended percentage determined in part by the amount of RAM available. (***Default*: -1000**)

#### default\_snapshot\_retention\_hours

Number of hours for which to keep the snapshot around. Only used if no value was provided by the client when creating the snapshot. (***Default*: 24** - *runtime*)

#### defer\_index\_backfill

Defer index backfill so that backfills can be performed as a batch later on. (***Default*: false** - *advanced, runtime*)

#### delay\_leader\_blacklist\_completion\_percent\_until\_tservers\_heartbeat

When set, the master will wait for all live tservers to heartbeat before reporting leader blacklist completion percent. (***Default*: true** - *advanced, runtime*)

#### delete\_intents\_sst\_files

Delete whole intents .SST files when possible. (***Default*: true** - *runtime*)

#### delete\_systable\_rows\_batch\_bytes

Max bytes per batch for delete pg sql table rows (***Default*: 512000** - *runtime*)

#### deleted\_tablet\_cache\_max\_size

Restart Needed Changes to this flag require a restart

Maximum size for the cache of recently deleted tablet ids. Used to reject remote bootstrap requests for recently deleted tablets. (***Default*: 10000**)

#### detect\_duplicates\_for\_retryable\_requests

Restart Needed Changes to this flag require a restart

Enable tracking of write requests that prevents the same write from being applied twice. (***Default*: true**)

#### disable\_alter\_vs\_write\_mutual\_exclusion

A safety switch to disable the changes from D8710 which makes a schema operation take an exclusive lock making all write operations wait for it. (***Default*: false** - *advanced, runtime*)

#### disable\_auto\_flags\_management

Restart Needed Changes to this flag require a restart

Disables AutoFlags management. A safety switch to turn off automatic promotion of AutoFlags. More information about AutoFlags can be found in [https://github.com/yugabyte/yugabyte-db/blob/master/architecture/design/auto\_flags.md](https://github.com/yugabyte/yugabyte-db/blob/master/architecture/design/auto_flags.md "https://github.com/yugabyte/yugabyte-db/blob/master/architecture/design/auto_flags.md"). Use at your own risk! (***Default*: false** - *unsafe, advanced*)

#### disable\_clock\_sync\_error

Restart Needed Changes to this flag require a restart

Whether or not we should keep running if we detect a clock synchronization issue. (***Default*: true** - *advanced*)

#### disable\_core\_dumps\_on\_fatal

Whether to disable core dumps when a FATAL log is encountered. Set to false to allow full core dumps on FATAL for debugging purposes. (***Default*: true** - *runtime*)

#### disable\_heartbeat\_send\_involved\_tablets

If disabled, do not send involved tablets on heartbeats for pending transactions. This behavior is needed to support fetching old transactions and their involved tablets in order to support yb\_lock\_status/pg\_locks. (***Default*: false** - *runtime*)

#### disable\_hybrid\_scan

Deprecated (***Default*: false** - *deprecated, runtime*)

#### disable\_last\_seen\_ht\_rollback

Disable optimization to ignore non-existent keys for read restart. (***Default*: false** - *runtime*)

#### disable\_truncate\_table

When enabled, truncate table will be disallowed (***Default*: false** - *runtime*)

#### disable\_universe\_gc

Whether to run the GC on universes or not. (***Default*: false** - *runtime*)

#### disable\_xcluster\_db\_scoped\_new\_table\_processing

When set disables automatic checkpointing of newly created tables on the source and adding table to inbound replication group on target (***Default*: false** - *advanced, runtime*)

#### display\_bind\_params\_in\_cql\_details

Restart Needed Changes to this flag require a restart

Whether to show bind params for CQL calls details in the RPCZ dump. (***Default*: true**)

#### dns\_cache\_expiration\_ms

Time to store DNS resolution results in cache. (***Default*: 60000** - *runtime*)

#### dns\_cache\_failure\_expiration\_ms

Time before DNS resolution retry in case of failure. (***Default*: 2000** - *runtime*)

#### docdb\_ht\_filter\_conflict\_with\_committed

Use hybrid time SST filter when checking for conflicts with committed transactions. (***Default*: true** - *runtime*)

#### docdb\_ht\_filter\_intents

Use hybrid time SST filter when scanning intents. (***Default*: true** - *runtime*)

#### drop\_log\_memory

Drop in-memory buffers of log contents. Logs can grow very quickly and they are rarely read before they need to be evicted from memory. Instead, drop them from memory as soon as they are flushed to disk. (***Default*: true** - *runtime, advanced*)

#### dump\_certificate\_entries

Restart Needed Changes to this flag require a restart

Whether we should dump certificate entries. (***Default*: false**)

#### dump\_dbimpl\_info

Restart Needed Changes to this flag require a restart

Dump RocksDB info during constructor. (***Default*: false**)

#### dump\_flags\_xml

Restart Needed Changes to this flag require a restart

Dump a XLM document describing all of gFlags used in this binary. Differs from helpxml by displaying the current runtime value as the default instead of the hard coded values from the flag definitions. (***Default*: false** - *advanced, stable*)

#### dump\_heap\_snapshot\_max\_call\_stacks

The maximum number of call stacks to log from TCMalloc's heap snapshot when TryDumpSnapshot is called. (***Default*: 10** - *runtime*)

#### dump\_heap\_snapshot\_min\_interval\_sec

The minimum time to wait between dumping heap snapshots. A value of &lt;= 0 means the logging is disabled. (***Default*: 600** - *runtime*)

#### dump\_lock\_keys

Restart Needed Changes to this flag require a restart

Whether to add keys to error message when lock batch timed out (***Default*: true**)

#### dump\_metrics\_to\_trace

Whether to dump changed metrics in tracing. (***Default*: false** - *runtime*)

#### dump\_transactions

Dump transactions data in debug binary format. (***Default*: false** - *runtime*)

#### dump\_transactions\_chunk\_size

Start new transaction dump when current one reaches specified limit. (***Default*: 10737418240** - *runtime*)

#### dump\_transactions\_gzip

Whether transaction dump should be compressed in GZip format. (***Default*: true** - *runtime*)

#### durable\_wal\_write

Restart Needed Changes to this flag require a restart

Whether the Log/WAL should explicitly call fsync() after each write. (***Default*: true** - *stable*)

#### emergency\_repair\_mode

Restart Needed Changes to this flag require a restart

Starts yb-master in emergency repair mode where CatalogManager is not started. (***Default*: false** - *unsafe, advanced*)

#### emulate\_redis\_responses

Restart Needed Changes to this flag require a restart

If emulate\_redis\_responses is false, we hope to get slightly better performance by just returning OK for commands that might require us to read additional records viz. SADD, HSET, and HDEL. If emulate\_redis\_responses is true, we read the required records to compute the response as specified by the official Redis API documentation. [https://redis.io/commands](https://redis.io/commands "https://redis.io/commands") (***Default*: true**)

#### enable\_automatic\_tablet\_splitting

If false, disables automatic tablet splitting driven from the yb-master side, and in this case the value of tserver's ysql\_num\_tablets is recommended to be set to -1. (***Default*: true** - *stable, auto, runtime*)

#### enable\_backfilling\_cdc\_stream\_with\_replication\_slot

Deprecated (***Default*: false** - *deprecated, runtime*)

#### enable\_block\_based\_table\_cache\_gc

Set to true to enable block based table garbage collector. (***Default*: false** - *runtime*)

#### enable\_callsite\_profile

Enable counting and timing of function calls enclosed in the YB\_PROFILE macro. The results are shown in the /pprof/callsite\_profile web UI page. (***Default*: false** - *runtime*)

#### enable\_callsite\_profile\_timing

In addition to CPU cycle counts, also measure the actual time in microseconds in profiled call sites. (***Default*: false** - *runtime*)

#### enable\_cdc\_client\_tablet\_caching

Enable caching the tablets found by client. (***Default*: false** - *runtime*)

#### enable\_cdc\_state\_table\_caching

Enable caching the cdc\_state table schema. (***Default*: true** - *runtime*)

#### enable\_cdcsdk\_lag\_collection

When enabled, vlog containing the lag for the getchanges call as well as last commit record in response will be printed. (***Default*: false** - *runtime*)

#### enable\_cdcsdk\_setting\_get\_changes\_response\_byte\_limit

When enabled, we'll consider the proto field getchanges\_resp\_max\_size\_bytes in GetChangesRequestPB to limit the size of GetChanges response. (***Default*: true** - *runtime*)

#### enable\_check\_retryable\_request\_timeout

Restart Needed Changes to this flag require a restart

Whether to check if retryable request exceeds the timeout. (***Default*: true**)

#### enable\_collect\_cdc\_metrics

Enable collecting cdc and xcluster metrics. (***Default*: true** - *runtime*)

#### enable\_colocated\_table\_tombstone\_cache

When set, colocated reads will cache table tombstones to avoid repeated tombstone checks. (***Default*: true** - *runtime*)

#### enable\_consensus\_exponential\_backoff

Whether exponential backoff based on number of retransmissions at tablet leader for number of entries to replicate to lagging follower is enabled. (***Default*: true** - *advanced, runtime*)

#### enable\_copy\_retryable\_requests\_from\_parent

Whether to copy retryable requests from parent tablet when openingthe child tablet (***Default*: true** - *runtime*)

#### enable\_data\_block\_fsync

Restart Needed Changes to this flag require a restart

Whether to enable fsync() of data blocks, metadata, and their parent directories. Disabling this flag may cause data loss in the event of a system crash. (***Default*: true** - *unsafe*)

#### enable\_db\_clone

Enable DB cloning. (***Default*: true** - *advanced, stable, auto, runtime*)

#### enable\_deadlock\_detection

Deprecated (***Default*: false** - *deprecated, runtime*)

#### enable\_delete\_truncate\_xcluster\_replicated\_table

When set, enables deleting/truncating YCQL tables currently in xCluster replication. For YSQL tables, deletion is always allowed and TRUNCATE is always disallowed. (***Default*: false** - *runtime*)

#### enable\_direct\_local\_tablet\_server\_call

Restart Needed Changes to this flag require a restart

Enable direct call to local tablet server (***Default*: true** - *advanced*)

#### enable\_export\_snapshot\_using\_relfilenode

Enable exporting snapshots with the new format version = 3 that uses relfilenodes. (***Default*: true** - *stable, auto, runtime*)

#### enable\_fast\_pitr

Whether fast restore of sys catalog on the master is enabled. (***Default*: true** - *runtime*)

#### enable\_flush\_retryable\_requests

If enabled, will flush bootstrap state structure to the disk when roll the log segment, which helps speedup bootstrap process (***Default*: true** - *stable, auto, runtime*)

#### enable\_global\_load\_balancing

Choose whether to allow the cluster balancer to make moves that strictly only balance global load. Note that global balancing only occurs after all tables are balanced. (***Default*: true** - *runtime*)

#### enable\_heartbeat\_pg\_catalog\_versions\_cache

Restart Needed Changes to this flag require a restart

Whether to enable the use of heartbeat catalog versions cache for the pg\_yb\_catalog\_version table which can help to reduce the number of reads from the table. This is more useful when there are many databases and/or many tservers in the cluster. (***Default*: false**)

#### enable\_history\_cutoff\_propagation

Restart Needed Changes to this flag require a restart

Should we use history cutoff propagation (true) or calculate it locally (false). (***Default*: false**)

#### enable\_intentsdb\_page

Restart Needed Changes to this flag require a restart

Enable displaying the contents of intentsdb page. (***Default*: false**)

#### enable\_leader\_failure\_detection

Restart Needed Changes to this flag require a restart

Whether to enable failure detection of tablet leaders. If enabled, attempts will be made to elect a follower as a new leader when the leader is detected to have failed. (***Default*: true** - *unsafe*)

#### enable\_lease\_revocation

Enables Raft lease revocation mechanism (***Default*: true** - *runtime*)

#### enable\_load\_balancing

Choose whether to enable cluster load balancing. (***Default*: true** - *runtime*)

#### enable\_log\_cache\_gc

Restart Needed Changes to this flag require a restart

Set to true to enable log cache garbage collector. (***Default*: true**)

#### enable\_log\_retention\_by\_op\_idx

If true, logs will be retained based on an op id passed by the cdc service (***Default*: true** - *runtime*)

#### enable\_maintenance\_manager

Restart Needed Changes to this flag require a restart

Enable the maintenance manager, runs compaction and tablet cleaning tasks. (***Default*: true** - *unsafe*)

#### enable\_metacache\_partial\_refresh

If set, we will attempt to refresh the tablet metadata cache with a TabletConsensusInfoPB in the tablet invoker. (***Default*: true** - *runtime*)

#### enable\_multi\_raft\_heartbeat\_batcher

Restart Needed Changes to this flag require a restart

If true, enables multi-Raft batching of raft heartbeats. (***Default*: false**)

#### enable\_namespace\_snapshot\_workflow

Enable namespace-based snapshot creation based on namespace\_id. Can be disabled to fallback to the old snapshot creation workflow where client provides the set of tables to collect as part of snapshot (***Default*: true** - *runtime*)

#### enable\_object\_lock\_fastpath

Restart Needed Changes to this flag require a restart

Whether to use shared memory fastpath for shared object locks. (***Default*: true**)

#### enable\_object\_locking\_for\_table\_locks

Restart Needed Changes to this flag require a restart

This flag enables the object lock APIs provided by tservers and masters - AcquireObject(Global)Lock, ReleaseObject(Global)Lock. These APIs are used to implement pg table locks. (***Default*: false**)

#### enable\_object\_retention\_due\_to\_snapshots

When true, tables and tablets are hidden instead of getting deleted on a drop if there are snapshots covering the object. Snapshots also get created with a TTL when this flag value is true. (***Default*: true** - *stable, auto, runtime*)

#### enable\_ondisk\_compression

Restart Needed Changes to this flag require a restart

Determines whether SSTable compression is enabled or not. (***Default*: true**)

#### enable\_pg\_anonymizer

Restart Needed Changes to this flag require a restart

Enables creation of the the PostgreSQL Anonymizer extension. (***Default*: false**)

#### enable\_pg\_cron

Restart Needed Changes to this flag require a restart

Enables the pg\_cron extension. Jobs will be run on a single tserver node. The node should be assumed to be selected randomly. (***Default*: false**)

#### enable\_pg\_dist\_rag\_service

Restart Needed Changes to this flag require a restart

Enable the Distributed RAG service. (***Default*: false**)

#### enable\_pg\_savepoints

Deprecated (***Default*: false** - *deprecated, runtime*)

#### enable\_process\_lifetime\_heap\_profiling

Restart Needed Changes to this flag require a restart

WARNING: This flag will cause tcmalloc to sample every allocation. This can significantly impact performance. For a lighter approach, use sampling (profile\_sample\_period\_bytes). This option is only supported with gperftools tcmalloc. Enables heap profiling for the lifetime of the process. Profile output will be stored in the directory specified by -heap\_profile\_path, and enabling this option will disable the on-demand profiling in /pprof/heap. (***Default*: false** - *advanced, stable*)

#### enable\_process\_lifetime\_heap\_sampling

Deprecated (***Default*: false** - *deprecated, runtime*)

#### enable\_qos

Restart Needed Changes to this flag require a restart

Enable the QoS feature. (***Default*: false**)

#### enable\_redis\_auth

Restart Needed Changes to this flag require a restart

Enable AUTH for the Redis service (***Default*: true**)

#### enable\_register\_ts\_from\_raft

Whether to register a tserver from the consensus information of a reported tablet. (***Default*: true** - *runtime*)

#### enable\_restart\_transaction\_status\_tablets\_first

Restart Needed Changes to this flag require a restart

Set to true to prioritize bootstrapping transaction status tablets first. (***Default*: true**)

#### enable\_rpc\_keepalive

Restart Needed Changes to this flag require a restart

Whether to enable RPC keepalive mechanism (***Default*: true**)

#### enable\_rpc\_pool\_tags

Enable support for tagging RPCs for specific servicer thread pools. (***Default*: true** - *stable, auto, runtime*)

#### enable\_rwc\_lock\_debugging

Enable additional debug logging for RWC lock. This can hurt performance significantly since it causes us to capture stack traces on each write lock acquisition. (***Default*: false** - *advanced, runtime*)

#### enable\_scan\_choices\_variable\_bloom\_filter

Whether to use variable bloom filter when possible in ScanChoices (***Default*: true** - *runtime*)

#### enable\_schema\_packing\_gc

Whether schema packing GC is enabled. (***Default*: true** - *runtime*)

#### enable\_schema\_version\_check

Whether to check existence of given schema version in CheckCotablePacking and CheckColocationPacking. If it's off, always return Status::OK(). (***Default*: false** - *runtime*)

#### enable\_single\_record\_update

Enable packing updates corresponding to a row in single CDC record (***Default*: true** - *runtime*)

#### enable\_stream\_compression

Restart Needed Changes to this flag require a restart

Whether it is allowed to use stream compression. (***Default*: true**)

#### enable\_table\_owned\_vector\_reverse\_mapping

When true, newly created YSQL tables hold vector reverse mapping ownership. Such tables write vector reverse mappings on row insert/update regardless of whether a vector index exists, and vector index backfill skips reverse mapping. (***Default*: true** - *stable, auto, runtime*)

#### enable\_table\_rewrite\_for\_cdcsdk\_table

When set, CDC will not block DDLs causing table rewrites. Also records from the re-written tablets will be streamed by CDC after finishing the streaming of data from older tablets. (***Default*: true** - *runtime*)

#### enable\_tablespace\_based\_transaction\_placement

Enable support for tablespace-based transaction locality. (***Default*: true** - *stable, auto, runtime*)

#### enable\_tablespace\_validation

Whether to enable extended validation for tablespaces. This can be set to false to allow ysql\_dump to succeed when creating tablespaces that were created before the checks. (***Default*: true** - *runtime*)

#### enable\_tablet\_orphaned\_block\_deletion

Deprecated (***Default*: false** - *deprecated, runtime*)

#### enable\_tablet\_split\_of\_cdcsdk\_streamed\_tables

When set, it enables automatic tablet splitting for tables that are part of a CDCSDK stream (***Default*: true** - *runtime*)

#### enable\_tablet\_split\_of\_pitr\_tables

When set, it enables automatic tablet splitting of tables covered by Point In Time Restore schedules. (***Default*: true** - *runtime*)

#### enable\_tablet\_split\_of\_replication\_slot\_streamed\_tables

When set, it enables automatic tablet splitting for tables that are part of replication slot's stream metadata (***Default*: true** - *runtime*)

#### enable\_tablet\_split\_of\_tables\_with\_vector\_index

When set, it enables automatic tablet splitting for tables with vector indexes (***Default*: true** - *stable, auto, runtime*)

#### enable\_tablet\_split\_of\_xcluster\_bootstrapping\_tables

When set, it enables automatic tablet splitting for tables that are part of an xCluster replication setup and are currently being bootstrapped for xCluster. (***Default*: false** - *runtime*)

#### enable\_tablet\_split\_of\_xcluster\_replicated\_tables

When set, it enables automatic tablet splitting for tables that are part of an xCluster replication setup (***Default*: true** - *stable, auto, runtime*)

#### enable\_tracing

Flag to enable/disable tracing across the code. (***Default*: false** - *advanced, runtime*)

#### enable\_transaction\_metadata\_update

Allow transaction metadata update records to be written to intentsdb. (***Default*: true** - *stable, auto, runtime*)

#### enable\_transaction\_sealing

Restart Needed Changes to this flag require a restart

Whether transaction sealing is enabled. (***Default*: false**)

#### enable\_transaction\_snapshots

Deprecated (***Default*: false** - *deprecated, runtime*)

#### enable\_truncate\_cdcsdk\_table

When set, enables truncating tables currently part of a CDCSDK Stream (***Default*: false** - *runtime*)

#### enable\_truncate\_on\_pitr\_table

When enabled, truncate table will be allowed on PITR tables in YCQL. For PITR tables in YSQL, truncate is always allowed by default, and it can be turned off by setting the ysql\_yb\_enable\_alter\_table\_rewrite autoflag to false. (***Default*: false** - *runtime*)

#### enable\_uncovered\_index\_select

Restart Needed Changes to this flag require a restart

Enable executing select statements using uncovered index (***Default*: true** - *advanced*)

#### enable\_update\_local\_peer\_min\_index

Enable each local peer to update its own log checkpoint instead of the leader updating all peers. (***Default*: true** - *runtime*)

#### enable\_update\_local\_peer\_min\_index\_master

When false, the master leader updates retention barriers on all master peers (including followers) for the sys catalog tablet, instead of each peer updating its own. (***Default*: false** - *runtime*)

#### enable\_wait\_queues

Restart Needed Changes to this flag require a restart

If true, enable wait queues that help provide Wait-on-Conflict behavior during conflict resolution whenever required. Enabling this flag enables deadlock detection as well. (***Default*: true** - *advanced*)

#### enable\_write\_pipelining\_infra

Enable the infrastructure required for write pipelining. Pipelined writes are sent with use\_async\_write set and awaited with the WaitForAsyncWrite RPC. (***Default*: true** - *stable, auto, runtime*)

#### enable\_xcluster\_api\_v2

Allow the usage of v2 xCluster APIs that support DB Scoped replication groups (***Default*: true** - *stable, auto, runtime*)

#### enable\_xcluster\_auto\_flag\_validation

Enables validation of AutoFlags between the xcluster universes (***Default*: true** - *stable, auto, runtime*)

#### enable\_xcluster\_stat\_collection

When enabled, stats are collected from xcluster streams for reporting purposes. (***Default*: true** - *runtime*)

#### enable\_xcluster\_timed\_based\_wal\_retention

If true, enable time-based WAL retention for tables with xCluster by using --cdc\_wal\_retention\_time\_secs. (***Default*: true** - *runtime*)

#### enable\_ysql

Restart Needed Changes to this flag require a restart

Enable YSQL on the cluster. This will cause yb-master to initialize sys catalog tablet from an initial snapshot (in case --initial\_sys\_catalog\_snapshot\_path is specified or can be auto-detected). Also each tablet server will start a PostgreSQL server as a child process. (***Default*: true**)

#### enable\_ysql\_conn\_mgr

Restart Needed Changes to this flag require a restart

Enable Ysql Connection Manager for the cluster. Tablet Server will start a Ysql Connection Manager process as a child process. (***Default*: false**)

#### enable\_ysql\_conn\_mgr\_stats

Restart Needed Changes to this flag require a restart

Enable stats collection from Ysql Connection Manager. These stats will be displayed at the endpoint '&lt;ip\_address\_of\_cluster&gt;:13000/connections' (***Default*: true**)

#### enable\_ysql\_operation\_lease

Enables the ysql client operation lease. The client operation lease must be held by a tserver to host pg sessions. It is refreshed by the master leader. (***Default*: true** - *runtime*)

#### enable\_ysql\_tablespaces\_for\_placement

If set, tablespaces will be used for placement of YSQL tables. (***Default*: true** - *runtime*)

#### enforce\_tablet\_replica\_limits

When set, create table and split tablet operations will be blocked if they would cause the total number of tablet replicas running in the universe to be too large. The limit for the maximum number of tablet replicas the universe can support is set by the flags tablet\_replicas\_per\_gib\_limit and tablet\_replicas\_per\_core\_limit. (***Default*: false** - *advanced, runtime*)

#### entries\_per\_index\_block

Restart Needed Changes to this flag require a restart

Number of entries per index block stored in WAL segment file (***Default*: 10000** - *advanced*)

#### estimated\_replicate\_msg\_size\_percentage

Restart Needed Changes to this flag require a restart

The estimated percentage of replicate message size in a log entry batch. (***Default*: 0.94999999999999996**)

#### evict\_failed\_followers

Restart Needed Changes to this flag require a restart

Whether to evict followers from the Raft config that have fallen too far behind the leader's log to catch up normally or have been unreachable by the leader for longer than follower\_unavailable\_considered\_failed\_sec (***Default*: false** - *advanced*)

#### export\_help\_and\_type\_in\_prometheus\_metrics

Include #TYPE and #HELP in Prometheus metrics output by default (***Default*: true** - *runtime*)

#### export\_intentdb\_metrics

Restart Needed Changes to this flag require a restart

Dump intentsdb statistics to prometheus metrics (***Default*: true**)

#### expose\_metric\_histogram\_percentiles

Restart Needed Changes to this flag require a restart

Should we expose the percentiles information for metrics histograms. (***Default*: true**)

#### external\_intent\_cleanup\_secs

Restart Needed Changes to this flag require a restart

Duration in secs after which to cleanup external intents. (***Default*: 86400**)

#### fail\_on\_out\_of\_range\_clock\_skew

Restart Needed Changes to this flag require a restart

In case transactional tables are present, crash the process if clock skew greater than the configured maximum. (***Default*: true**)

#### fatal\_details\_path\_prefix

Restart Needed Changes to this flag require a restart

A prefix to use for the path of a file to save fatal failure stack trace and other details to. (***Default*: None**)

#### fault\_crash\_after\_rocksdb\_flush

Restart Needed Changes to this flag require a restart

Fraction of time to crash right after a successful RocksDB flush in tests. (***Default*: 0**)

#### file\_expiration\_ignore\_value\_ttl

When deciding whether a file has expired, assume that it is safe to ignore value-level TTL and expire based on table TTL only. CAUTION - Shoule only be used for expiration of older SST files without value-level TTL metadata, or for expiring files with incorrect value-level expiration. Misuse can result in the deletion of live data! (***Default*: false** - *unsafe, runtime*)

#### file\_expiration\_value\_ttl\_overrides\_table\_ttl

When deciding whether a file has expired, assume that any file with value-level TTL metadata can be expired solely on that metadata. Useful for the expiration of files earlier than the table-level TTL that is set. CAUTION - Should only be used in workloads where the user is certain all data is written with a value-level TTL. Misuse can result in the deletion of live data! (***Default*: false** - *unsafe, runtime*)

#### flagfile

Restart Needed Changes to this flag require a restart

load flags from file (***Default*: None** - *stable*)

#### flush\_bootstrap\_state\_pool\_max\_threads

Restart Needed Changes to this flag require a restart

The maximum number of threads used to flush retryable requests (***Default*: -1**)

#### flush\_rocksdb\_on\_shutdown

Restart Needed Changes to this flag require a restart

Safely flush RocksDB when instance is destroyed, disabled for crash tests. (***Default*: true**)

#### follower\_unavailable\_considered\_failed\_sec

Seconds that a leader is unable to successfully heartbeat to a follower after which the follower is considered to be failed and evicted from the config. (***Default*: 7200** - *advanced, runtime*)

#### force\_global\_transactions

Force all transactions to be global transactions (***Default*: false** - *runtime*)

#### force\_lookup\_cache\_refresh\_secs

Restart Needed Changes to this flag require a restart

When non-zero, specifies how often we send a GetTabletLocations request to the master leader to update the tablet replicas cache. This request is only sent if we are processing a ConsistentPrefix read. (***Default*: 0**)

#### force\_single\_shard\_waiter\_retry\_ms

Restart Needed Changes to this flag require a restart

The amount of time to wait before sending the client of a single shard transaction a retryable error. Such clients are periodically sent a retryable error to ensure we don't maintain waiters in the wait queue for unresponsive or disconnected clients. This is not required for multi-tablet transactions which have a transaction ID and are rolled back if the transaction coordinator does not receive a heartbeat, since for these we will eventually discover that the transaction has been rolled back and remove the waiter. If set to zero, this will default to 30s. (***Default*: 30000**)

#### forward\_redis\_requests

Restart Needed Changes to this flag require a restart

If false, the redis op will not be served if it's not a local request. The op response will be set to the redis error '-MOVED partition\_key 0.0.0.0:0'. This works with jedis which only looks at the MOVED part of the reply and ignores the rest. For now, if this flag is true, we will only attempt to read from leaders, so redis\_allow\_reads\_from\_followers will be ignored. (***Default*: true**)

#### fromenv

Restart Needed Changes to this flag require a restart

set flags from the environment \[use 'export FLAGS\_flag1=value'] (***Default*: None** - *advanced, stable*)

#### fs\_data\_dirs

Restart Needed Changes to this flag require a restart

Comma-separated list of data directories. These must be absolute paths. This argument must be specified. (***Default*: None** - *stable*)

#### fs\_wal\_dirs

Restart Needed Changes to this flag require a restart

Comma-separated list of directories for write-ahead logs. This is an optional argument. If this is not specified, fs\_data\_dirs is used for write-ahead logs also and that's a reasonable default for most use cases. (***Default*: None** - *stable*)

#### full\_compaction\_pool\_max\_queue\_size

Restart Needed Changes to this flag require a restart

The maximum number of tasks that can be held in the pool for full\_compaction\_pool\_. This pool is used to run full compactions on tablets on a scheduled basis or after they have been split and still contain irrelevant data from the tablet they were sourced from. (***Default*: 500**)

#### full\_compaction\_pool\_max\_threads

Restart Needed Changes to this flag require a restart

The maximum number of threads allowed for full\_compaction\_pool\_. This pool is used to run full compactions on tablets, either on a scheduled basis or after they have been split and still contain irrelevant data from the tablet they were sourced from. If the value is zero or negative (-1 by default), it is derived from the CPU count: 1 for nodes with up to 4 cores, 2 otherwise. (***Default*: -1**)

#### generate\_partitions\_vtable\_on\_changes

Whether we should generate the system.partitions vtable whenever relevant partition changes occur. (***Default*: false** - *runtime*)

#### generic\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### generic\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC Queue length for the generic service (***Default*: 50** - *advanced*)

#### get\_changes\_honor\_deadline

Restart Needed Changes to this flag require a restart

Toggle whether to honor the deadline passed to log reader (***Default*: true**)

#### get\_locks\_status\_max\_retry\_attempts

Maximum number of retries that will be performed for GetLockStatus requests that fail in the validation phase due to unseen responses from some of the involved tablets. (***Default*: 5** - *runtime*)

#### get\_universe\_key\_registry\_backoff\_increment\_ms

Restart Needed Changes to this flag require a restart

Number of milliseconds added to the delay between retries of fetching the full universe key registry from master leader. This delay is applied after the RPC reties have been exhausted. (***Default*: 100** - *advanced, stable*)

#### get\_universe\_key\_registry\_max\_backoff\_sec

Restart Needed Changes to this flag require a restart

Maximum number of seconds to delay between retries of fetching the full universe key registry from master leader. This delay is applied after the RPC reties have been exhausted. (***Default*: 3** - *advanced, stable*)

#### global\_log\_cache\_size\_limit\_mb

Restart Needed Changes to this flag require a restart

Server-wide version of 'log\_cache\_size\_limit\_mb'. The total memory used for caching log entries across all tablets is kept under this threshold. (***Default*: 1024** - *advanced*)

#### global\_log\_cache\_size\_limit\_percentage

Restart Needed Changes to this flag require a restart

The maximum percentage of root process memory that can be used for caching log entries across all tablets. Default is 5. (***Default*: 5** - *advanced*)

#### global\_memstore\_size\_mb\_max

Restart Needed Changes to this flag require a restart

Global memstore size is determined as a percentage of the process' hard memory limit. However, this flag limits it in absolute size. Value of 0 means no limit on the value obtained by the percentage. Default is 2048. (***Default*: 2048**)

#### global\_memstore\_size\_percentage

Restart Needed Changes to this flag require a restart

Percentage of process' hard memory limit to use for the global memstore. Default is 10. See also memstore\_size\_mb and global\_memstore\_size\_mb\_max. (***Default*: 10**)

#### graceful\_shutdown

Restart Needed Changes to this flag require a restart

Whether to shutdown gracefully when receiving SIGTERM. (***Default*: true**)

#### gzip\_stream\_compression\_level

Compression level used by gzip stream compression. 0 - no compression, 1 - best speed, 9 - best compression. (***Default*: 1** - *runtime*)

#### heap\_profile\_path

Restart Needed Changes to this flag require a restart

Output path to store heap profiles. If not set, profiles are stored in the directory specified by the tmp\_dir flag as $FLAGS\_tmp\_dir/&lt;process-name&gt;.&lt;pid&gt;.&lt;n&gt;.heap. (***Default*: None** - *advanced, stable*)

#### heartbeat\_interval\_ms

Interval at which the TS heartbeats to the master. (***Default*: 1000** - *advanced, runtime*)

#### heartbeat\_max\_failures\_before\_backoff

Restart Needed Changes to this flag require a restart

Maximum number of consecutive heartbeat failures until the Tablet Server backs off to the normal heartbeat interval, rather than retrying. (***Default*: 3** - *advanced*)

#### heartbeat\_rpc\_timeout\_ms

Timeout used for the TS-&gt;Master heartbeat RPCs. (***Default*: 15000** - *advanced, runtime*)

#### heartbeat\_safe\_deadline\_ratio

When the heartbeat deadline has this percentage of time remaining, the master should halt tablet report processing so it can respond in time. (***Default*: 0.20000000000000001** - *runtime*)

#### help

Restart Needed Changes to this flag require a restart

show help on all flags \[tip: all flags can have two dashes] (***Default*: false** - *stable*)

#### help\_auto\_flag\_json

Restart Needed Changes to this flag require a restart

Dump a JSON document describing all of the AutoFlags available in this binary. (***Default*: false** - *advanced, stable*)

#### helpmatch

Restart Needed Changes to this flag require a restart

show help on modules whose name contains the specified substr (***Default*: None** - *advanced, stable*)

#### helpon

Restart Needed Changes to this flag require a restart

show help on the modules named by this flag value (***Default*: None** - *advanced, stable*)

#### helppackage

Restart Needed Changes to this flag require a restart

show help on all modules in the main package (***Default*: false** - *advanced, stable*)

#### helpshort

Restart Needed Changes to this flag require a restart

show help on only the main module for this program (***Default*: false** - *advanced, stable*)

#### helpxml

Restart Needed Changes to this flag require a restart

produce an xml version of help (***Default*: false** - *advanced, stable*)

#### hide\_dead\_node\_threshold\_mins

After this many minutes of no heartbeat from a node, hide it from the UI (we presume it has been removed from the cluster). If -1, this flag is ignored and node is never hidden from the UI (***Default*: 1440** - *runtime*)

#### history\_cutoff\_propagation\_interval\_ms

Restart Needed Changes to this flag require a restart

History cutoff propagation interval in milliseconds. (***Default*: 180000**)

#### ht\_lease\_duration\_ms

Restart Needed Changes to this flag require a restart

Hybrid time leader lease duration. A leader keeps establishing a new lease or extending the existing one with every UpdateConsensus. A new server is not allowed to add entries to RAFT log until a lease of the old leader is expired. 0 to disable. (***Default*: 2000**)

#### ignore\_null\_sys\_catalog\_entries

Whether we should ignore system catalog entries with NULL value during iteration. (***Default*: false** - *runtime*)

#### import\_snapshot\_max\_concurrent\_create\_table\_requests

Maximum number of create table requests to the master that can be outstanding during the import snapshot metadata phase of restore. (***Default*: 20** - *runtime*)

#### import\_snapshot\_using\_table\_name

Use the old workflow of import snapshot where table names in backup/restore sides are used to build the mappings between tables in backup and restore side. This flag can be enabled as a safety button in case restore using relfilenode fails. (***Default*: false** - *runtime*)

#### inbound\_rpc\_memory\_limit

Restart Needed Changes to this flag require a restart

Inbound RPC memory limit (***Default*: 0**)

#### index\_backfill\_additional\_delay\_before\_backfilling\_ms

Operations that are received by the tserver, and have decided how the indexes need to be updated (based on the IndexPermission), will not be added to the list of current transactions until they are replicated/applied. This delay allows for the GetSafeTime method to wait for such operations to be replicated/applied. Ideally, this value should be set to be something larger than the raft-heartbeat-interval but can be as high as the client\_rpc\_timeout if we want to be more conservative. (***Default*: 0** - *evolving, runtime*)

#### index\_backfill\_rpc\_max\_delay\_ms

Maximum delay before retrying a backfill tablet chunk request during index creation. (***Default*: 600000** - *advanced, runtime*)

#### index\_backfill\_rpc\_max\_retries

Number of times to retry backfilling a tablet chunk during index creation. (***Default*: 150** - *advanced, runtime*)

#### index\_backfill\_rpc\_timeout\_ms

Timeout used by the master when attempting to backfill a tablet during index creation. (***Default*: 30000** - *advanced, runtime*)

#### index\_backfill\_tablet\_split\_completion\_poll\_freq\_ms

Delay before retrying to see if tablet splitting has completed on the table from which we are running a backfill. (***Default*: 2000** - *advanced, runtime*)

#### index\_backfill\_tablet\_split\_completion\_timeout\_sec

Total time to wait for tablet splitting to complete on a table from which we are running a backfill before aborting the backfill and marking it as failed. (***Default*: 30** - *advanced, runtime*)

#### index\_backfill\_upperbound\_for\_user\_enforced\_txn\_duration\_ms

For Non-Txn tables, it is impossible to know at the tservers whether or not an 'old transaction' is still active. To avoid having such old transactions, we assume a bound on the duration of such transactions (during the backfill process) and wait it out. This flag denotes a conservative upper bound on the duration of such user enforced transactions. (***Default*: 65000** - *evolving, runtime*)

#### index\_backfill\_wait\_for\_alter\_table\_completion\_ms

Delay before retrying to see if an in-progress alter table has completed, during index backfill. (***Default*: 100** - *advanced, runtime*)

#### index\_backfill\_wait\_for\_old\_txns\_ms

Index backfill needs to wait for transactions that started before the WRITE\_AND\_DELETE phase to commit or abort before choosing a time for backfilling the index. This is the max time that the GetSafeTime call will wait for, before it resorts to attempt aborting old transactions. This is necessary to guard against the pathological active transaction that never commits from blocking the index backfill forever. (***Default*: 0** - *evolving, runtime*)

#### index\_block\_restart\_interval

Restart Needed Changes to this flag require a restart

Controls the number of data blocks to be indexed inside an index block. (***Default*: 1**)

#### inflight\_splits\_completion\_timeout\_secs

Total time to wait for all inflight splits to complete during Restore. (***Default*: 600** - *advanced, runtime*)

#### initial\_log\_segment\_size\_bytes

Restart Needed Changes to this flag require a restart

The maximum segment size we want for a new WAL segment, in bytes. This value keeps doubling (for each subsequent WAL segment) till it gets to the maximum configured segment size (log\_segment\_size\_bytes or log\_segment\_size\_mb). (***Default*: 1048576**)

#### initial\_seqno

Restart Needed Changes to this flag require a restart

Initial seqno for new RocksDB instances. (***Default*: 1125899906842624**)

#### initial\_sys\_catalog\_snapshot\_path

Restart Needed Changes to this flag require a restart

If this is specified, system catalog RocksDB is checkpointed at this location after initdb is done. (***Default*: None**)

#### initial\_tserver\_registration\_duration\_secs

Amount of time to wait between becoming master leader and relying on all live TServers having registered. (***Default*: 120** - *advanced, runtime*)

#### instance\_uuid\_override

Restart Needed Changes to this flag require a restart

When creating local instance metadata (for master or tserver) in an empty data directory, use this UUID instead of randomly-generated one. Can be used to replace a node that had its disk wiped in some scenarios. (***Default*: None**)

#### intents\_compaction\_filter\_max\_errors\_to\_log

Restart Needed Changes to this flag require a restart

Maximum number of errors to log for life cycle of the intents compcation filter. (***Default*: 100**)

#### intents\_flush\_max\_delay\_ms

Restart Needed Changes to this flag require a restart

Max time to wait for regular db to flush during flush of intents. After this time flush of regular db will be forced. (***Default*: 2000**)

#### interval\_durable\_wal\_write\_ms

Restart Needed Changes to this flag require a restart

Interval in ms after which the Log/WAL should explicitly call fsync(). If 0 fsysnc() is not called. (***Default*: 1000** - *stable*)

#### invalidate\_yql\_partitions\_cache\_on\_create\_table

Whether the YCQL system.partitions vtable cache should be invalidated on a create table. Note that this requires partitions\_vtable\_cache\_refresh\_secs &gt; 0 and generate\_partitions\_vtable\_on\_changes = false in order to take effect. If set to true, then this will ensure that newly created tables will be seen immediately in system.partitions. (***Default*: true** - *runtime*)

#### io\_thread\_pool\_size

Restart Needed Changes to this flag require a restart

Size of allocated IO Thread Pool. (***Default*: 4**)

#### key\_file\_pattern

Restart Needed Changes to this flag require a restart

Pattern used for key file (***Default*: node.$0.key**)

#### lazily\_flush\_superblock

Restart Needed Changes to this flag require a restart

Flushes the superblock lazily on metadata update. Only used for colocated table creation currently. (***Default*: true**)

#### leader\_balance\_threshold

Number of leaders per each tablet server to balance below. If this is configured to 0 (the default), the leaders will be balanced optimally at extra cost. (***Default*: 0** - *runtime*)

#### leader\_balance\_unresponsive\_timeout\_ms

The period of time that a master can go without receiving a heartbeat from a tablet server before considering it unresponsive. Unresponsive servers are excluded from leader balancing. (***Default*: 3000** - *runtime*)

#### leader\_failure\_exp\_backoff\_max\_delta\_ms

Restart Needed Changes to this flag require a restart

Maximum time to sleep in between leader election retries, in addition to the regular timeout. When leader election fails the interval in between retries increases exponentially, up to this value. (***Default*: 20000** - *experimental*)

#### leader\_failure\_max\_missed\_heartbeat\_periods

Restart Needed Changes to this flag require a restart

Maximum heartbeat periods that the leader can fail to heartbeat in before we consider the leader to be failed. The total failure timeout in milliseconds is raft\_heartbeat\_interval\_ms times leader\_failure\_max\_missed\_heartbeat\_periods. The value passed to this flag may be fractional. (***Default*: 6** - *advanced*)

#### leader\_lease\_duration\_ms

Restart Needed Changes to this flag require a restart

Leader lease duration. A leader keeps establishing a new lease or extending the existing one with every UpdateConsensus. A new server is not allowed to serve as a leader (i.e. 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. (***Default*: 2000**)

#### leaderless\_tablet\_alert\_delay\_secs

From master's view, if the tablet doesn't have a valid leader for this amount of seconds, alert it as a leaderless tablet. (***Default*: 120** - *runtime*)

#### limit\_auto\_flag\_promote\_for\_new\_universe

Restart Needed Changes to this flag require a restart

The maximum class value up to which AutoFlags are promoted during new cluster creation. Value should be in the range \[0-3]. Will not promote any AutoFlags if set to 0. (***Default*: 3** - *stable*)

#### linear\_backoff\_ms

Restart Needed Changes to this flag require a restart

Number of milliseconds added to delay while using linear backoff strategy. (***Default*: 1**)

#### list\_snapshot\_backoff\_increment\_ms

Number of milliseconds added to the delay between retries of fetching state of a snapshot. This delay is applied after the RPC reties have been exhausted. (***Default*: 1000** - *advanced, stable, runtime*)

#### list\_snapshot\_max\_backoff\_sec

Maximum number of seconds to delay between retries of fetching state of a snpashot. This delay is applied after the RPC reties have been exhausted. (***Default*: 10** - *advanced, stable, runtime*)

#### load\_balancer\_count\_move\_as\_add

Deprecated (***Default*: false** - *deprecated, runtime*)

#### load\_balancer\_drive\_aware

When LB decides to move a tablet from server A to B, on the target LB should select the tablet to move from most loaded drive. (***Default*: true** - *runtime*)

#### load\_balancer\_ignore\_cloud\_info\_similarity

If true, ignore the similarity between cloud infos when deciding which tablet to move (***Default*: false** - *runtime*)

#### load\_balancer\_initial\_delay\_secs

Amount of time to wait between becoming master leader and enabling the load balancer. (***Default*: 120** - *runtime*)

#### load\_balancer\_max\_concurrent\_adds

Maximum number of tablet peer replicas to add in any one run of the cluster balancer. (***Default*: 25** - *runtime*)

#### load\_balancer\_max\_concurrent\_moves

Maximum number of tablet leaders on tablet servers (across the cluster) to move in any one run of the cluster balancer. (***Default*: 100** - *runtime*)

#### load\_balancer\_max\_concurrent\_moves\_per\_table

Maximum number of tablet leaders per table to move in any one run of the cluster balancer. The maximum number of tablet leader moves across the cluster is still limited by the flag load\_balancer\_max\_concurrent\_moves. This flag is meant to prevent a single table from using all of the leader moves quota and starving other tables.If set to -1, the number of leader moves per table is set to the global number of leader moves (load\_balancer\_max\_concurrent\_moves). (***Default*: -1** - *runtime*)

#### load\_balancer\_max\_concurrent\_removals

Maximum number of over-replicated tablet peer removals to do in any one run of the cluster balancer. A value less than 0 means no limit. (***Default*: 50** - *runtime*)

#### load\_balancer\_max\_concurrent\_tablet\_remote\_bootstraps

Maximum number of tablets being remote bootstrapped across the cluster. If set to -1, there is no global limit on the number of concurrent remote bootstraps (per-table or per-tserver limits still apply). (***Default*: -1** - *runtime*)

#### load\_balancer\_max\_concurrent\_tablet\_remote\_bootstraps\_per\_table

Maximum number of tablets being remote bootstrapped for any table. The maximum number of remote bootstraps across the cluster is still limited by the flag load\_balancer\_max\_concurrent\_tablet\_remote\_bootstraps. This flag is meant to prevent a single table from using all the available remote bootstrap sessions and starving other tables. (***Default*: -1** - *runtime*)

#### load\_balancer\_max\_inbound\_remote\_bootstraps\_per\_tserver

Maximum number of tablets simultaneously remote bootstrapping on a tserver. Past this value, the cluster balancer will not add tablets to this tserver. (***Default*: 50** - *runtime*)

#### load\_balancer\_max\_over\_replicated\_tablets

Maximum number of running tablet replicas per table that are allowed to be over the configured replication factor. This controls the amount of space amplification in the cluster when tablet removal is slow. A value less than 0 means no limit. (***Default*: 50** - *runtime*)

#### load\_balancer\_min\_inbound\_remote\_bootstraps\_per\_tserver

Minimum number of tablets simultaneously remote bootstrapping on a tserver (if there are this many to remote bootstrap). This forces some parallelism during remote bootstrap, which avoids single-threaded bottlenecks. (***Default*: 4** - *runtime*)

#### load\_balancer\_num\_idle\_runs

Number of idle runs of cluster balancer to deem it idle. (***Default*: 5** - *runtime*)

#### load\_balancer\_skip\_leader\_as\_remove\_victim

Deprecated (***Default*: false** - *deprecated, runtime*)

#### local\_ip\_for\_outbound\_sockets

Restart Needed Changes to this flag require a restart

IP to bind to when making outgoing socket connections. This must be an IP address of the form A.B.C.D, not a hostname. Advanced parameter, subject to change. (***Default*: None** - *experimental*)

#### log\_async\_preallocate\_segments

Restart Needed Changes to this flag require a restart

Whether the WAL segments preallocation should happen asynchronously (***Default*: true** - *advanced*)

#### log\_background\_sync\_data\_fraction

Restart Needed Changes to this flag require a restart

When log\_enable\_background\_sync is enabled and periodic\_sync\_unsynced\_bytes_ reaches bytes\_durable\_wal\_write\_mb\_\*log\_background\_sync\_data\_fraction, the fsync task is pushed to the log-sync queue. (***Default*: 0.5**)

#### log\_background\_sync\_interval\_fraction

Restart Needed Changes to this flag require a restart

When log\_enable\_background\_sync is enabled and time passed since insertion of log entry exceeds interval\_durable\_wal\_write\_ms\*log\_background\_sync\_interval\_fraction the fsync task is pushed to the log-sync queue. (***Default*: 0.59999999999999998**)

#### log\_backtrace\_at

Restart Needed Changes to this flag require a restart

Emit a backtrace when logging at file:linenum. (***Default*: None** - *advanced*)

#### log\_cache\_gc\_evict\_only\_over\_allocated

Restart Needed Changes to this flag require a restart

If set to true, log cache garbage collection would evict only memory that was allocated over limit for log cache. Otherwise it will try to evict requested number of bytes. (***Default*: true**)

#### log\_cache\_size\_limit\_mb

Restart Needed Changes to this flag require a restart

The total per-tablet size of consensus entries which may be kept in memory. The log cache attempts to keep all entries which have not yet been replicated to all followers in memory, but if the total size of those entries exceeds this limit within an individual tablet, the oldest will be evicted. (***Default*: 128** - *advanced*)

#### log\_dir

Restart Needed Changes to this flag require a restart

If specified, logfiles are written into this directory instead of the default logging directory. (***Default*: None** - *stable*)

#### log\_enable\_background\_sync

Restart Needed Changes to this flag require a restart

If true, log fsync operations in the aggresively performed in the background. (***Default*: true**)

#### log\_failed\_txn\_metadata

Log metadata about failed transactions. (***Default*: false** - *advanced, runtime*)

#### log\_filename

Restart Needed Changes to this flag require a restart

Prefix of log filename - full path is &lt;log\_dir&gt;/&lt;log\_filename&gt;.\[INFO|WARN|ERROR|FATAL] (***Default*: None** - *stable*)

#### log\_inject\_append\_latency\_ms\_max

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### log\_inject\_latency

Restart Needed Changes to this flag require a restart

If true, injects artificial latency in log sync operations. Advanced option. Use at your own risk -- has a negative effect on performance for obvious reasons! (***Default*: false** - *unsafe*)

#### log\_inject\_latency\_ms\_mean

Restart Needed Changes to this flag require a restart

The number of milliseconds of latency to inject, on average. Only takes effect if --log\_inject\_latency is true (***Default*: 100** - *unsafe*)

#### log\_inject\_latency\_ms\_stddev

Restart Needed Changes to this flag require a restart

The standard deviation of latency to inject in before log sync operations. Only takes effect if --log\_inject\_latency is true (***Default*: 100** - *unsafe*)

#### log\_link

Restart Needed Changes to this flag require a restart

Put additional links to the log files in this directory (***Default*: None** - *advanced, stable*)

#### log\_max\_seconds\_to\_retain

Restart Needed Changes to this flag require a restart

Log files that are older will be deleted even if they contain cdc unreplicated entries. If 0, this flag will be ignored. This flag is ignored if a log segment contains entries that haven't beenflushed to RocksDB. (***Default*: 86400**)

#### log\_min\_seconds\_to\_retain

The minimum number of seconds for which to keep log segments to keep at all times, regardless of what is required for durability. Logs may be still retained for a longer amount of time if they are necessary for correct restart. This should be set long enough such that a tablet server which has temporarily failed can be restarted within the given time period. If a server is down for longer than this amount of time, it is possible that its tablets will be re-replicated on other machines. (***Default*: 7200** - *advanced, runtime*)

#### log\_min\_segments\_to\_retain

The minimum number of past log segments to keep at all times, regardless of what is required for durability. Must be at least 1. (***Default*: 2** - *advanced, runtime*)

#### log\_preallocate\_segments

Restart Needed Changes to this flag require a restart

Whether the WAL should preallocate the entire segment before writing to it (***Default*: true** - *advanced*)

#### log\_prefix

Prepend the log prefix to the start of each log line (***Default*: true** - *runtime, advanced, stable*)

#### log\_prefix\_include\_pid

Restart Needed Changes to this flag require a restart

Include PID into the log prefix (***Default*: false**)

#### log\_segment\_size\_bytes

Restart Needed Changes to this flag require a restart

The default segment size for log roll-overs, in bytes. If 0 then log\_segment\_size\_mb is used. (***Default*: 0**)

#### log\_segment\_size\_mb

Restart Needed Changes to this flag require a restart

The default segment size for log roll-overs, in MB (***Default*: 64** - *advanced*)

#### log\_stop\_retaining\_min\_disk\_mb

Restart Needed Changes to this flag require a restart

Stop retaining logs if the space available for the logs falls below this limit. This flag is ignored if a log segment contains unflushed entries. (***Default*: 102400**)

#### log\_version\_edits

Log RocksDB version edits as they are being written (***Default*: false** - *runtime*)

#### logbuflevel

Buffer log messages logged at this level or lower (-1 means don't buffer; 0 means buffer INFO only; ...) (***Default*: 1** - *runtime, advanced*)

#### logbufsecs

Buffer log messages for at most this many seconds (***Default*: 30** - *runtime, advanced*)

#### logfile\_mode

Restart Needed Changes to this flag require a restart

Log file mode/permissions. (***Default*: 436**)

#### logtostderr

log messages go to stderr instead of logfiles (***Default*: false** - *runtime, stable*)

#### long\_term\_tasks\_tracker\_keep\_time\_multiplier

Restart Needed Changes to this flag require a restart

How long we should keep long-term tasks before cleaning them up, as a multiple of the cluster balancer interval (catalog\_manager\_bg\_task\_wait\_ms). (***Default*: 86400**)

#### lookup\_cache\_refresh\_secs

Restart Needed Changes to this flag require a restart

When non-zero, specifies how often we send a GetTabletLocations request to the master leader to update the tablet replicas cache. This request is only sent if we are processing a ConsistentPrefix read and the RPC layer has determined that its view of the replicas is inconsistent with what the master has reported (***Default*: 60**)

#### maintenance\_manager\_num\_threads

Restart Needed Changes to this flag require a restart

Size of the maintenance manager thread pool. Beyond a value of '1', one thread is reserved for emergency flushes. For spinning disks, the number of threads should not be above the number of devices. (***Default*: 1** - *stable*)

#### malloc\_with\_check\_large\_alloc\_threshold\_bytes

Log a warning with stack trace for any allocation through malloc\_with\_check (used by RefCntBuffer) that is &gt;= this size in bytes. Set to 0 to disable. (***Default*: 536870912** - *advanced, runtime*)

#### master\_addresses

Restart Needed Changes to this flag require a restart

Comma-separated list of the host/port RPC addresses of the peer masters. This is needed for initial cluster create, and is recreated from persisted metadata on master restart.This flag also defaults to empty, which is overloaded to be able to either: a) start a non-distributed mode master if local instance file is not present. b) allow for a master to be restarted gracefully and get its peer list from the local cmeta file of the last committed config, if local instance file is present. (***Default*: None** - *experimental*)

#### master\_auto\_run\_initdb

Automatically run initdb on master leader initialization (***Default*: false** - *runtime*)

#### master\_backup\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for master backup service (***Default*: 50** - *advanced*)

#### master\_bg\_task\_long\_operation\_warning\_ms

Log warnings if the catalog manager background tasks (combined) take longer than this amount of time. (***Default*: 5000** - *runtime*)

#### master\_consensus\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### master\_consensus\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for master consensus service (***Default*: 1000** - *advanced*)

#### master\_drop\_table\_after\_task\_response

Deprecated (***Default*: false** - *deprecated, runtime*)

#### master\_enable\_deletion\_check\_for\_orphaned\_tablets

When set, this flag adds stricter protection around the deletion of orphaned tablets. When master leader is processing a tablet report and doesn't know about a tablet, explicitly check that the tablet has been deleted in the past. If it has, then issue a DeleteTablet to the tservers. Otherwise, it means that tserver has heartbeated to the wrong cluster, or there has been sys catalog corruption. In this case, log an error but don't actually delete any data. (***Default*: true** - *runtime*)

#### master\_enable\_metrics\_snapshotter

Should metrics snapshotter be enabled (***Default*: false** - *runtime*)

#### master\_enable\_universe\_uuid\_heartbeat\_check

When true, enables a sanity check between masters and tservers to prevent tservers from mistakenly heartbeating to masters in different universes. Master leader will check the universe\_uuid passed by tservers against with its own copy of universe\_uuid and reject the request if there is a mismatch. Master sends its universe\_uuid with the response. (***Default*: true** - *advanced, stable, auto, runtime*)

#### master\_failover\_catchup\_timeout\_ms

Amount of time to give a newly-elected leader master to load the previous master's metadata and become active. If this time is exceeded, the node crashes. (***Default*: 30000** - *experimental, advanced, runtime*)

#### master\_ignore\_deleted\_on\_load

Restart Needed Changes to this flag require a restart

Whether the Master should ignore deleted tables & tablets on restart. This reduces failover time at the expense of garbage data. (***Default*: true**)

#### master\_join\_existing\_universe

This flag helps prevent the accidental creation of a new universe. If the master\_addresses flag is misconfigured or the on disk state of a master is wiped out the master could create a fresh universe, causing inconsistency with other masters in the universe and potential data loss. Setting this flag will prevent a master from creating a fresh universe regardless of other factors. To create a new universe with a new group of masters, unset this flag. Set this flag on all new and existing master processes once the universe creation completes. (***Default*: false** - *runtime*)

#### master\_leader\_lock\_stack\_trace\_ms

Restart Needed Changes to this flag require a restart

Dump a stack trace if the master leader shared lock is held for longer than this of time. Also see master\_log\_lock\_warning\_ms. (***Default*: 3000**)

#### master\_log\_lock\_warning\_ms

Restart Needed Changes to this flag require a restart

Print warnings if the master leader shared lock is held for longer than this amount of time. Note that this is a shared lock, so these warnings simply indicate long-running master operations that could delay system catalog loading by a new master leader. (***Default*: 1000**)

#### master\_maximum\_heartbeats\_without\_lease

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### master\_register\_ts\_check\_desired\_host\_port

Restart Needed Changes to this flag require a restart

When set to true, master will only do duplicate address checks on the used host/port instead of on all. The used host/port combination depends on the value of --use\_private\_ip. (***Default*: true** - *advanced*)

#### master\_remote\_bootstrap\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### master\_remote\_bootstrap\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for master remote bootstrap service (***Default*: 50** - *advanced*)

#### master\_replication\_factor

Restart Needed Changes to this flag require a restart

Number of master replicas. By default it is detected based on master\_addresses option, but could be specified explicitly together with passing one or more master service domain name and port through master\_addresses for masters auto-discovery when running on Kubernetes. (***Default*: 0**)

#### master\_rpc\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout for retrieving master registration over RPC. (***Default*: 1500**)

#### master\_slow\_get\_registration\_probability

Restart Needed Changes to this flag require a restart

Probability of injecting delay in GetMasterRegistration. (***Default*: 0**)

#### master\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### master\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for master service (***Default*: 1000** - *advanced*)

#### master\_ts\_heartbeat\_long\_operation\_warning\_ms

Log a warning (and dump the handler thread's stack) if processing a TSHeartbeat RPC on the master takes longer than this many ms. (***Default*: 1000** - *runtime*)

#### master\_ts\_rpc\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout used for the Master-&gt;TS async rpc calls. (***Default*: 30000** - *advanced*)

#### master\_tserver\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### master\_tserver\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for master tserver service (***Default*: 1000** - *advanced*)

#### master\_webserver\_require\_https

Require HTTPS when redirecting master UI requests to the leader. (***Default*: false** - *runtime*)

#### master\_xrepl\_get\_changes\_concurrency

Restart Needed Changes to this flag require a restart

This determines the max number of concurrent GetChanges RPCs that can be processed on master. (***Default*: 3** - *advanced*)

#### master\_xrepl\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the CDC service (***Default*: 50** - *advanced*)

#### master\_yb\_client\_default\_timeout\_ms

Restart Needed Changes to this flag require a restart

Default timeout for the YBClient embedded into the master. (***Default*: 60000**)

#### master\_ysql\_lease\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for master YSQL lease service (***Default*: 1000** - *advanced*)

#### master\_ysql\_operation\_lease\_ttl\_ms

The lifetime of ysql operation lease extensions. The ysql operation lease allows tservers to host pg sessions and serve reads and writes to user data through the YSQL API. (***Default*: 30000** - *advanced, runtime*)

#### max\_big\_shared\_memory\_segment\_size

Max size of big shared memory segment in bytes. (***Default*: 1048576** - *runtime*)

#### max\_buffer\_size\_to\_rpc\_limit\_ratio

the max buffer size is set to max\_buffer\_size\_to\_rpc\_limit\_ratio\*FLAGS\_rpc\_max\_message\_size. (***Default*: 0.90000000000000002** - *runtime*)

#### max\_clock\_skew\_usec

Restart Needed Changes to this flag require a restart

Transaction read clock skew in usec. This is the maximum allowed time delta between servers of a single cluster. (***Default*: 500000**)

#### max\_clock\_sync\_error\_usec

Maximum allowed clock synchronization error as reported by NTP before the server will abort. (***Default*: 10000000** - *advanced, runtime*)

#### max\_concurrent\_alter\_table\_rpcs

Maximum number of concurrent outstanding AsyncAlterTable RPCs the master will allow in flight. 0 disables the throttle entirely. Positive values are used as the absolute global cap. If its value is &lt; 0 then the max\_concurrent\_alter\_table\_rpcs\_per\_tserver gflag and the number of live tservers are used to determine the limit. When the limit is reached, additional tasks block at the throttler and are rescheduled via the existing RetryingRpcTask backoff. It mirrors the semantics of max\_concurrent\_snapshot\_rpcs. (***Default*: 10** - *runtime*)

#### max\_concurrent\_alter\_table\_rpcs\_per\_tserver

Maximum number of concurrent outstanding AsyncAlterTable RPCs the master will allow in flight per tserver. Only used if the value of the gflag max\_concurrent\_alter\_table\_rpcs &lt; 0. When used, it is multiplied by the live-tserver count to obtain the global cap on outstanding AsyncAlterTable RPCs. If the live-tserver count cannot be determined (e.g. cluster config not available during master startup) the per-tserver value is used as the global cap by itself. It mirrors max\_concurrent\_snapshot\_rpcs\_per\_tserver. (***Default*: 1** - *runtime*)

#### max\_concurrent\_delete\_replica\_rpcs\_per\_ts

The maximum number of outstanding DeleteReplica RPCs sent to an individual tserver. (***Default*: 50** - *runtime*)

#### max\_concurrent\_master\_lookups

Restart Needed Changes to this flag require a restart

Maximum number of concurrent tablet location lookups from YB client to master (***Default*: 500**)

#### max\_concurrent\_restoration\_rpcs

Maximum number of tablet restoration rpcs that can be outstanding. Only used if its value is &gt;= 0. Value of 0 means that INT\_MAX number of restoration rpcs can be concurrent.If its value is &lt; 0 then max\_concurrent\_restoration\_rpcs\_per\_tserver gflag is used. (***Default*: -1** - *runtime*)

#### max\_concurrent\_restoration\_rpcs\_per\_tserver

Maximum number of tablet restoration rpcs per tserver that can be outstanding.Only used if the value of gflag max\_concurrent\_restoration\_rpcs is &lt; 0. When used it is multiplied with the number of TServers in the active cluster (not read-replicas) to obtain the total maximum concurrent restoration rpcs. If the cluster config is not found and we are not able to determine the number of live tservers then the total maximum concurrent restoration RPCs is just the value of this flag. (***Default*: 1** - *runtime*)

#### max\_concurrent\_snapshot\_rpcs

Maximum number of tablet snapshot RPCs that can be outstanding. Only used if its value is &gt;= 0. If its value is 0 then it means that INT\_MAX number of snapshot rpcs can be concurrent. If its value is &lt; 0 then the max\_concurrent\_snapshot\_rpcs\_per\_tserver gflag and the number of TServers in the primary cluster are used to determine the number of maximum number of tablet snapshot RPCs that can be outstanding. (***Default*: -1** - *runtime*)

#### max\_concurrent\_snapshot\_rpcs\_per\_tserver

Maximum number of tablet snapshot RPCs per tserver that can be outstanding. Only used if the value of the gflag max\_concurrent\_snapshot\_rpcs is &lt; 0. When used it is multiplied with the number of TServers in the active cluster (not read-replicas) to obtain the total maximum concurrent snapshot RPCs. If the cluster config is not found and we are not able to determine the number of live tservers then the total maximum concurrent snapshot RPCs is just the value of this flag. (***Default*: 1** - *runtime*)

#### max\_create\_tablets\_per\_ts

The number of tablets per TS that can be requested for a new table. (***Default*: 50** - *advanced, runtime*)

#### max\_disk\_throughput\_mbps

The maximum disk throughput the disk attached to this node can support in MBps. (***Default*: 300** - *runtime*)

#### max\_group\_replicate\_batch\_size

Restart Needed Changes to this flag require a restart

Maximum number of operations to submit to consensus for replication in a batch. (***Default*: 16**)

#### max\_log\_size

approx. maximum log file size (in MB). A value of 0 will be silently overridden to 1. (***Default*: 1800** - *runtime, stable*)

#### max\_message\_length

Restart Needed Changes to this flag require a restart

The maximum message length of the cql message. (***Default*: 266338304**)

#### max\_next\_calls\_while\_skipping\_future\_records

After number of next calls is reached this limit, use seek to find non future record. (***Default*: 3** - *runtime*)

#### max\_nexts\_to\_avoid\_seek

The number of next calls to try before doing resorting to do a rocksdb seek. (***Default*: 2** - *runtime*)

#### max\_num\_tablets\_for\_table

Restart Needed Changes to this flag require a restart

Max number of tablets that can be specified in a CREATE TABLE statement (***Default*: 5000**)

#### max\_prevs\_to\_avoid\_seek

The number of prev calls to try before doing a rocksdb seek. Used by fast backward scan only. (***Default*: 2** - *runtime*)

#### max\_prometheus\_metric\_entries

The maximum number of Prometheus metric entries returned in each scrape. Note that if adding a metric with all its entities would exceed the limit, then we will drop them all.Thus, the actual number of metric entries returned might be smaller than the limit. (***Default*: 4294967295** - *runtime*)

#### max\_queued\_split\_candidates

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### max\_rejection\_delay\_ms

Maximal delay for rejected write to be retried in milliseconds. (***Default*: 5000** - *runtime*)

#### max\_remote\_bootstrap\_attempts\_from\_non\_leader

When FLAGS\_remote\_bootstrap\_from\_leader\_only is enabled, the flag represents the maximum number of times we attempt to remote bootstrap a new peer from a closest non-leader peer that result in a failure. We fallback to bootstrapping from the leader peer post this. (***Default*: 5** - *runtime*)

#### max\_replication\_slots

Restart Needed Changes to this flag require a restart

Controls the maximum number of replication slots that are allowed to exist on a cluster. (***Default*: 10**)

#### max\_stale\_read\_bound\_time\_ms

If we are allowed to read from followers, specify the maximum time a follower can be behind by using the last message received from the leader. If set to zero, a read can be served by a follower regardless of when was the last time it received a message from the leader or how far behind this follower is. (***Default*: 60000** - *evolving, runtime*)

#### max\_tables\_metrics\_breakdowns

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### max\_time\_in\_queue\_ms

Fail calls that get stuck in the queue longer than the specified amount of time (in ms) (***Default*: 6000** - *advanced, runtime*)

#### max\_transactions\_in\_status\_request

Restart Needed Changes to this flag require a restart

Request status for at most specified number of transactions at once. 0 disables load time transaction status resolution. (***Default*: 128**)

#### max\_wait\_for\_aborting\_transactions\_during\_restore\_ms

How much time in milliseconds to wait for tablet transactions to abort while applying the raft restore operation to a tablet. (***Default*: 200** - *advanced, runtime*)

#### max\_wait\_for\_clock\_sync\_at\_startup\_ms

Timeout in milliseconds of waiting for clock synchronization at startup. When set to 0, waiting is disabled. (***Default*: 120000** - *runtime*)

#### max\_wait\_for\_processresponse\_before\_closing\_ms

Restart Needed Changes to this flag require a restart

Maximum amount of time we will wait in Peer::Close() for Peer::ProcessResponse() to finish before returning proceding to close the Peer and return (***Default*: 5000** - *advanced*)

#### max\_wait\_for\_safe\_time\_ms

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### max\_xcluster\_streams\_to\_checkpoint\_in\_parallel

Maximum number of xCluster streams to checkpoint in parallel (***Default*: 200** - *runtime*)

#### maximum\_tablet\_leader\_lease\_expired\_secs

If the leader lease in master's view has expired for this amount of seconds, treat the lease as expired for too long time. (***Default*: 120** - *runtime*)

#### mem\_tracker\_external\_consumption\_accuracy\_percentage

If mem tracker consumption changed by more than specified percentage of the soft memory limit since the last update from external source, update it explicitly from that external source to avoid too much bias. (***Default*: 1** - *advanced, runtime*)

#### mem\_tracker\_include\_pageheap\_free\_in\_root\_consumption

Whether to include tcmalloc.pageheap\_free\_bytes from the consumption of the root memtracker. tcmalloc.pageheap\_free\_bytes tracks memory mapped by tcmalloc but not currently used. If we do include this in consumption, it is possible that we reject requests due to soft memory limits being hit when we actually have available memory in the pageheap. So we exclude it by default. (***Default*: false** - *advanced, runtime*)

#### mem\_tracker\_log\_stack\_trace

Restart Needed Changes to this flag require a restart

Enable logging of stack traces on memory tracker consume/release operations. Only takes effect if mem\_tracker\_logging is also enabled. (***Default*: false**)

#### mem\_tracker\_logging

Restart Needed Changes to this flag require a restart

Enable logging of memory tracker consume/release operations (***Default*: false**)

#### mem\_tracker\_tcmalloc\_gc\_release\_bytes

When the total amount of memory from calls to Release() since the last GC exceeds this flag, a new tcmalloc GC will be triggered. This GC will clear the tcmalloc page heap freelist. A higher value implies less aggressive GC, i.e. higher memory overhead, but more efficient in terms of runtime. (***Default*: -1** - *runtime*)

#### mem\_tracker\_update\_consumption\_interval\_us

Restart Needed Changes to this flag require a restart

Interval that is used to update memory consumption from external source. For instance from tcmalloc statistics. (***Default*: 2000000**)

#### memory\_limit\_hard\_bytes

Restart Needed Changes to this flag require a restart

Maximum amount of memory this daemon should use in bytes. A value of 0 specifies to instead use a percentage of the total system memory; see --default\_memory\_limit\_to\_ram\_ratio for the percentage used. A value of -1 disables all memory limiting. (***Default*: 0** - *stable*)

#### memory\_limit\_soft\_percentage

Restart Needed Changes to this flag require a restart

Percentage of the hard memory limit that this daemon may consume before memory throttling of writes begins. The greater the excess, the higher the chance of throttling. In general, a lower soft limit leads to smoother write latencies but decreased throughput, and vice versa for a higher soft limit. (***Default*: 85** - *advanced*)

#### memory\_limit\_termination\_threshold\_pct

Restart Needed Changes to this flag require a restart

If the RSS (resident set size) of the program reaches this percentage of the root memory tracker limit, the program will exit. RSS is measured using operating system means, not the memory allocator. Set to 0 to disable this behavior. (***Default*: 200**)

#### memory\_limit\_warn\_threshold\_percentage

Percentage of the hard memory limit that this daemon may consume before WARNING level messages are periodically logged. (***Default*: 98** - *advanced, runtime*)

#### memstore\_arena\_size\_kb

Restart Needed Changes to this flag require a restart

Size of each arena allocation for the memstore (***Default*: 64**)

#### memstore\_size\_mb

Restart Needed Changes to this flag require a restart

Max size (in mb) of the memstore, before needing to flush. (***Default*: 128**)

#### meta\_cache\_lookup\_throttling\_max\_delay\_ms

Restart Needed Changes to this flag require a restart

Max delay between calls during lookup throttling. (***Default*: 1000**)

#### meta\_cache\_lookup\_throttling\_step\_ms

Restart Needed Changes to this flag require a restart

Step to increment delay between calls during lookup throttling. (***Default*: 5**)

#### metric\_node\_name

Restart Needed Changes to this flag require a restart

Value to use as node name for metrics reporting (***Default*: ip-10-9-3-40.us-west-2.compute.internal:7000**)

#### metrics\_log\_interval\_ms

Restart Needed Changes to this flag require a restart

Interval (in milliseconds) at which the server will dump its metrics to a local log file. The log files are located in the same directory as specified by the -log\_dir flag. If this is not a positive value, then metrics logging will be disabled. (***Default*: 0** - *advanced*)

#### metrics\_retirement\_age\_ms

The minimum number of milliseconds a metric will be kept for after it is no longer active. (Advanced option) (***Default*: 120000** - *advanced, runtime*)

#### metrics\_snapshots\_table\_num\_tablets

Number of tablets to use when creating the metrics snapshots table.0 to use the same default num tablets as for regular tables. (***Default*: 0** - *runtime*)

#### metrics\_snapshotter\_interval\_ms

Interval at which the metrics are snapshotted. (***Default*: 30000** - *advanced, runtime*)

#### metrics\_snapshotter\_table\_metrics\_whitelist

Restart Needed Changes to this flag require a restart

Table metrics to record in native metrics storage. (***Default*: rocksdb\_sst\_read\_micros\_sum,rocksdb\_sst\_read\_micros\_count** - *advanced*)

#### metrics\_snapshotter\_tserver\_metrics\_whitelist

Restart Needed Changes to this flag require a restart

Tserver metrics to record in native metrics storage. (***Default*: handler\_latency\_yb\_client\_read\_local\_sum,handler\_latency\_yb\_client\_read\_local\_count** - *advanced*)

#### metrics\_snapshotter\_ttl\_ms

Restart Needed Changes to this flag require a restart

Ttl for snapshotted metrics. (***Default*: 604800000** - *advanced*)

#### min\_invalidation\_message\_retention\_time\_secs

Minimal time at which a catalog version with invalidation message is retained. (***Default*: 60** - *advanced, runtime*)

#### min\_leader\_stepdown\_retry\_interval\_ms

Restart Needed Changes to this flag require a restart

Minimum amount of time between successive attempts to perform the leader stepdown for the same combination of tablet and intended (target) leader. This is needed to avoid infinite leader stepdown loops when the current leader never has a chance to update the intended leader with its latest records. (***Default*: 20000**)

#### min\_rejection\_delay\_ms

Minimal delay for rejected write to be retried in milliseconds. (***Default*: 100** - *runtime*)

#### min\_segment\_size\_bytes\_to\_rollover\_at\_flush

Only rotate wals at least of this size (in bytes) at tablet flush.-1 to disable WAL rollover at flush. 0 to always rollover WAL at flush. (***Default*: 0** - *runtime*)

#### min\_sidecar\_buffer\_size

Restart Needed Changes to this flag require a restart

Minimal buffer to allocate for sidecar (***Default*: 16384**)

#### min\_thread\_stack\_size\_bytes

Restart Needed Changes to this flag require a restart

Default minimum stack size for new threads. If set to &lt;=0, the system default will be used. Note that the stack can grow larger than this if needed and allowed by system limits. (***Default*: 524288**)

#### minicluster\_daemon\_id

Restart Needed Changes to this flag require a restart

A human-readable 'daemon id', e.g. 'm-1' or 'ts-2', used in tests. (***Default*: None**)

#### minloglevel

Messages logged at a lower level than this don't actually get logged anywhere (***Default*: 0** - *runtime, advanced, stable*)

#### multi\_raft\_batch\_size

Restart Needed Changes to this flag require a restart

Maximum batch size for a multi-Raft consensus payload. Ignored if set to zero. (***Default*: 0** - *advanced*)

#### multi\_raft\_heartbeat\_interval\_ms

Restart Needed Changes to this flag require a restart

The heartbeat interval for batch Raft replication. (***Default*: 50** - *advanced*)

#### net\_address\_filter

Restart Needed Changes to this flag require a restart

Order in which to select ip addresses returned by the resolverCan be set to something like "ipv4\_all,ipv6\_all" to prefer IPv4 over IPv6 addresses.Can be set to something like "ipv4\_external,ipv4\_all,ipv6\_all" to prefer external IPv4 addresses first. Other options include ipv6\_external,ipv6\_non\_link\_local (***Default*: ipv4\_external,ipv4\_all,ipv6\_external,ipv6\_non\_link\_local,ipv6\_all**)

#### never\_fsync

Restart Needed Changes to this flag require a restart

Never fsync() anything to disk. This is used by tests to speed up runtime and improve stability. This is very unsafe to use in production. (***Default*: false** - *unsafe, advanced*)

#### no\_pretty\_hybrid\_times

If true, hybrid times converted to human readable form will always formatted as plain numbers. (***Default*: false** - *runtime*)

#### node\_to\_node\_encryption\_required\_uid

Restart Needed Changes to this flag require a restart

Allow only certificates with specified uid. Empty to allow any. (***Default*: None**)

#### node\_to\_node\_encryption\_use\_client\_certificates

Restart Needed Changes to this flag require a restart

Should client certificates be sent and verified for encrypted node to node communication. (***Default*: false**)

#### non\_graph\_characters\_percentage\_to\_use\_hexadecimal\_rendering

Restart Needed Changes to this flag require a restart

Non graph charaters percentage to use hexadecimal rendering (***Default*: 10**)

#### num\_advisory\_locks\_tablets

Restart Needed Changes to this flag require a restart

Number of advisory lock tablets. Should be set before universe creation (***Default*: 3**)

#### num\_concurrent\_backfills\_allowed

Maximum number of concurrent backfill jobs that is allowed to run. (***Default*: -1** - *runtime*)

#### num\_connections\_to\_server

Restart Needed Changes to this flag require a restart

Number of underlying connections to each server (***Default*: 8**)

#### num\_cpus

Restart Needed Changes to this flag require a restart

Number of CPU cores used in calculations (***Default*: 0**)

#### num\_open\_tablets\_metadata\_simultaneously

Restart Needed Changes to this flag require a restart

Number of threads available to open tablets' metadata during startup. If this is set to 0 (the default), then the number of open metadata threads will be set based on the number of CPUs (***Default*: 0** - *advanced*)

#### num\_raft\_ops\_to\_force\_idle\_intents\_db\_to\_flush

Restart Needed Changes to this flag require a restart

When writes to intents RocksDB are stopped and the number of Raft operations after the last write to the intents RocksDB is greater than this value, the intents RocksDB would be requested to flush. (***Default*: 1000**)

#### num\_reactor\_threads

Restart Needed Changes to this flag require a restart

Number of libev reactor threads to start. If -1, the value is automatically set. (***Default*: -1** - *advanced*)

#### num\_reserved\_small\_compaction\_threads

Restart Needed Changes to this flag require a restart

Number of reserved small compaction threads. It allows splitting small vs. large compactions. (***Default*: -1**)

#### num\_tablets\_to\_open\_simultaneously

Restart Needed Changes to this flag require a restart

Number of threads available to open tablets during startup. If this is set to 0 (the default), then the number of bootstrap threads will be set based on the number of data directories. If the data directories are on some very fast storage device such as SSD or a RAID array, it may make sense to manually tune this. (***Default*: 0** - *advanced*)

#### o\_direct\_block\_alignment\_bytes

Restart Needed Changes to this flag require a restart

Alignment (in bytes) for blocks used for O\_DIRECT operations. (***Default*: 4096** - *advanced*)

#### o\_direct\_block\_size\_bytes

Restart Needed Changes to this flag require a restart

Size of the block to use when flag durable\_wal\_write is set. (***Default*: 4096** - *advanced*)

#### object\_lock\_cleanup\_interval\_ms

Restart Needed Changes to this flag require a restart

The interval between runs of the background cleanup task for table-level locks held by unresponsive TServers. (***Default*: 5000**)

#### olm\_poll\_interval\_ms

Restart Needed Changes to this flag require a restart

Poll interval for Object lock Manager. Waiting requests that are unblocked by other release requests are independent of this interval since the release schedules unblocking of potential waiters. Yet this might help release timedout requests soon and also avoid probable issues with the signaling mechanism if any. (***Default*: 100**)

#### openssl\_require\_fips

Restart Needed Changes to this flag require a restart

Use OpenSSL FIPS Provider. (***Default*: false**)

#### otel\_batch\_max\_export\_batch\_size

Restart Needed Changes to this flag require a restart

Maximum number of spans exported in a single batch. Must be greater than 0 and no larger than otel\_batch\_max\_queue\_size. (***Default*: 512**)

#### otel\_batch\_max\_queue\_size

Restart Needed Changes to this flag require a restart

Maximum number of spans that can be buffered in the batch span processor queue. Spans arriving after this limit are dropped. Must be greater than 0 and at least as large as otel\_batch\_max\_export\_batch\_size. (***Default*: 2048**)

#### otel\_batch\_schedule\_delay\_ms

Restart Needed Changes to this flag require a restart

Time interval in milliseconds between two consecutive batch exports of spans to the OpenTelemetry collector. Lower values reduce latency but increase export frequency. (***Default*: 5000**)

#### otel\_collector\_traces\_endpoint

Restart Needed Changes to this flag require a restart

OTLP HTTP endpoint for the OpenTelemetry collector. When set, distributed tracing is enabled and spans are exported to this endpoint on each query execution. NOTE: This flag protects a feature that is currently in preview. In order for it to be modified, 'otel\_collector\_traces\_endpoint' must be set in --allowed\_preview\_flags\_csv. (***Default*: None** - *preview*)

#### otel\_ssl\_ca\_cert\_path

Restart Needed Changes to this flag require a restart

CA certificate bundle path for OTLP HTTPS trace export. Takes precedence over otel\_ssl\_ca\_cert\_string when configured. (***Default*: None**)

#### otel\_ssl\_ca\_cert\_string

Restart Needed Changes to this flag require a restart

CA certificate bundle contents for OTLP HTTPS trace export. Used only when no CA certificate bundle path is configured. (***Default*: None**)

#### outbound\_rpc\_memory\_limit

Restart Needed Changes to this flag require a restart

Outbound RPC memory limit (***Default*: 0**)

#### outstanding\_tablet\_split\_limit

Limit of the number of outstanding tablet splits. Limitation is disabled if this value is set to 0. (***Default*: 0** - *runtime*)

#### outstanding\_tablet\_split\_limit\_per\_tserver

Limit of the number of outstanding tablet splits per node. Limitation is disabled if this value is set to 0. If the value is negative (-1 by default), the limit is derived from the CPU count: 1 for nodes with up to 4 cores, 2 otherwise. (***Default*: -1** - *runtime*)

#### parallelize\_bootstrap\_producer

Deprecated (***Default*: false** - *deprecated, runtime*)

#### parallelize\_read\_ops

Controls whether multiple (Redis) read ops that are present in a operation should be executed in parallel. (***Default*: true** - *advanced, runtime*)

#### partitions\_vtable\_cache\_refresh\_secs

Amount of time to wait before refreshing the system.partitions cached vtable. If generate\_partitions\_vtable\_on\_changes is true and this flag is &gt; 0, then this background task will update the cached vtable using the internal map. If generate\_partitions\_vtable\_on\_changes is false and this flag is &gt; 0, then this background task will be responsible for regenerating and updating the entire cached vtable. (***Default*: 30** - *runtime*)

#### password\_hash\_cache\_size

Restart Needed Changes to this flag require a restart

Number of password hashes to cache. 0 or negative disables caching. (***Default*: 64**)

#### perf\_record\_timeout\_sec

Timeout for perf record in seconds to prevent runaway recordings. (***Default*: 120** - *runtime*)

#### persist\_tserver\_registry

Whether to persist the map of registered tservers in the universe to the sys catalog. Also controls whether to reload the map of registered tservers from the sys catalog when reloading the sys catalog. (***Default*: true** - *stable, auto, runtime*)

#### pg\_cache\_response\_renew\_soft\_lifetime\_limit\_ms

Restart Needed Changes to this flag require a restart

Lifetime limit for response cache soft renewing process (***Default*: 180000**)

#### pg\_cache\_response\_trust\_auth\_lifetime\_limit\_ms

Restart Needed Changes to this flag require a restart

Lifetime limit for response cache used for auth process when connection manager is used. (***Default*: 60000**)

#### pg\_catalog\_versions\_cache\_retry\_ms

Retry delay in ms for the catalog version cache refresh background task when a refresh or submit failure occurs. Should be less than heartbeat\_interval\_ms/2. (***Default*: 200** - *advanced, runtime*)

#### pg\_client\_extra\_timeout\_ms

Restart Needed Changes to this flag require a restart

Adding this value to RPC call timeout, so postgres could detect timeout by it's own mechanism and report it. (***Default*: 2000**)

#### pg\_client\_heartbeat\_interval\_ms

Restart Needed Changes to this flag require a restart

Pg client heartbeat interval in ms. Needs to be greater than 1000ms. (***Default*: 10000**)

#### pg\_client\_session\_expiration\_ms

Restart Needed Changes to this flag require a restart

Pg client session expiration time in milliseconds. (***Default*: 60000**)

#### pg\_client\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the Pg Client service. (***Default*: 5000** - *advanced*)

#### pg\_client\_use\_shared\_memory

Use shared memory for executing read and write pg client queries (***Default*: true** - *runtime*)

#### pg\_cron\_leader\_lease\_sec

The time in seconds to hold the pg\_cron leader lease. (***Default*: 60** - *runtime*)

#### pg\_cron\_leadership\_refresh\_sec

Frequency at which the leadership is revalidated. This should be less than pg\_cron\_leader\_lease\_sec (***Default*: 10** - *runtime*)

#### pg\_dist\_rag\_conf\_csv

Restart Needed Changes to this flag require a restart

Comma-separated list of Distributed RAG service configuration parameters. Parameters should be of format: &lt;key&gt;=&lt;value&gt;. Whitespace is insignificant (except within a quoted value) and blank parameters are ignored. If the parameter contains a comma (,) or double-quote (") then the entire parameter must be quoted with double-quote ("): "&lt;key&gt;=&lt;value&gt;". Two double-quotes ("") in a double-quoted parameter represents a single double-quote ("). Supported keys: AWS\_S3\_BUCKET\_NAME, AWS\_REGION, AWS\_ACCESS\_KEY\_ID, AWS\_SECRET\_ACCESS\_KEY, OPENAI\_API\_KEY, SCRIPT\_PATH. Note: Database connection string is automatically constructed from local PostgreSQL instance. Python environment setup (venv creation, pip install) must be done by yugabyted before starting. Example: --pg\_dist\_rag\_conf\_csv=AWS\_S3\_BUCKET\_NAME=bucket,OPENAI\_API\_KEY=sk-proj-example (***Default*: None**)

#### pg\_locks\_max\_tablet\_lookup\_retries

Maximum number of retries when fetching tablet locations during pg\_locks queries. Retries occur when tablets have no elected leader or when handling tablet splits. (***Default*: 5** - *runtime*)

#### pg\_locks\_retry\_delay\_ms

Delay in milliseconds between retries during pg\_locks operations. Applied when retrying tablet location lookups and GetLockStatus requests (***Default*: 200** - *runtime*)

#### pg\_mem\_tracker\_tcmalloc\_gc\_release\_bytes

Restart Needed Changes to this flag require a restart

Overriding the gflag mem\_tracker\_tcmalloc\_gc\_release\_bytes defined in mem\_tracker.cc. The overriding value is specifically set for Postgres backends (***Default*: 5242880**)

#### pg\_mem\_tracker\_update\_consumption\_interval\_us

Restart Needed Changes to this flag require a restart

Interval that is used to update memory consumption from external source. For instance from tcmalloc statistics. This interval is for Postgres backends only (***Default*: 50000**)

#### pg\_proxy\_bind\_address

Restart Needed Changes to this flag require a restart

Deprecated (***Default*: None** - *deprecated*)

#### pg\_response\_cache\_capacity

Restart Needed Changes to this flag require a restart

PgClientService response cache capacity. (***Default*: 1024**)

#### pg\_response\_cache\_num\_key\_group\_bucket

Restart Needed Changes to this flag require a restart

Number of buckets for key group values which are used as part of response cache key. Response cache can be disabled for particular key group, but actually it will be disabled for all key groups in same bucket (***Default*: 512**)

#### pg\_response\_cache\_size\_bytes

Restart Needed Changes to this flag require a restart

Size in bytes of the PgClientService response cache. 0 value (default) means that cache size is not limited by this flag. (***Default*: 0**)

#### pg\_response\_cache\_size\_percentage

Restart Needed Changes to this flag require a restart

Percentage of process' hard memory limit to use by the PgClientService response cache. Default value is 5, max is 100, min is 0 means that cache size is not limited by this flag. (***Default*: 5**)

#### pg\_upgrade\_working\_dir

Restart Needed Changes to this flag require a restart

Working directory for pg\_upgrade. If empty, defaults to the pg\_upgrade data directory. (***Default*: None**)

#### pg\_verbose\_error\_log

Restart Needed Changes to this flag require a restart

True to enable verbose logging of errors in PostgreSQL server (***Default*: false**)

#### pg\_yb\_session\_timeout\_ms

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### pggate\_cert\_base\_name

Restart Needed Changes to this flag require a restart

Certificate base name computed by pg\_wrapper (***Default*: None**)

#### pggate\_master\_addresses

Restart Needed Changes to this flag require a restart

Addresses of the master servers to which the PostgreSQL proxy server connects. (***Default*: None**)

#### pggate\_num\_connections\_to\_server

Restart Needed Changes to this flag require a restart

Number of underlying connections to each server from a PostgreSQL backend process. This overrides the value of --num\_connections\_to\_server. (***Default*: 1**)

#### pggate\_rpc\_timeout\_secs

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### pggate\_ybclient\_reactor\_threads

Restart Needed Changes to this flag require a restart

The number of reactor threads to be used for processing ybclient requests originating in the PostgreSQL proxy server (***Default*: 2**)

#### pgsql\_consistent\_transactional\_paging

Restart Needed Changes to this flag require a restart

Whether to enforce consistency of data returned for second page and beyond for YSQL queries on transactional tables. If true, read restart errors could be returned to prevent inconsistency. If false, no read restart errors are returned but the data may be stale. The latter is preferable for long scans. The data returned for the first page of results is never stale regardless of this flag. (***Default*: true**)

#### pgsql\_proxy\_bind\_address

Restart Needed Changes to this flag require a restart

Address to bind the PostgreSQL proxy to (***Default*: None**)

#### pgsql\_proxy\_webserver\_port

Restart Needed Changes to this flag require a restart

Webserver port for PGSQL (***Default*: 13000**)

#### pgsql\_rpc\_keepalive\_time\_ms

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### pitr\_max\_restore\_duration\_secs

Maximum amount of time to complete a PITR restore. (***Default*: 600** - *advanced, runtime*)

#### pitr\_split\_disable\_check\_freq\_ms

Delay before retrying to see if inflight tablet split operations have completed after which PITR restore can be performed. (***Default*: 500** - *advanced, runtime*)

#### placement\_cloud

Restart Needed Changes to this flag require a restart

The cloud in which this instance is started. (***Default*: cloud1**)

#### placement\_region

Restart Needed Changes to this flag require a restart

The cloud region in which this instance is started. (***Default*: datacenter1**)

#### placement\_uuid

Restart Needed Changes to this flag require a restart

The uuid of the tservers cluster/placement. (***Default*: None**)

#### placement\_zone

Restart Needed Changes to this flag require a restart

The cloud availability zone in which this instance is started. (***Default*: rack1**)

#### post\_split\_compaction\_input\_size\_threshold\_bytes

Max size of a files to be compacted within one iteration. Set to 0 to compact all files at once during post split compaction. (***Default*: 268435456** - *runtime*)

#### post\_split\_trigger\_compaction\_pool\_max\_queue\_size

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### post\_split\_trigger\_compaction\_pool\_max\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### postmaster\_cgroup

Restart Needed Changes to this flag require a restart

cgroup to add postmaster process to (***Default*: None**)

#### prevent\_split\_for\_small\_key\_range\_tablets\_for\_seconds

Seconds between checks for whether to split a tablet whose key range is too small to be split. Checks are disabled if this value is set to 0. (***Default*: 300** - *runtime*)

#### prevent\_split\_for\_ttl\_tables\_for\_seconds

Seconds between checks for whether to split a table with TTL. Checks are disabled if this value is set to 0. (***Default*: 86400** - *runtime*)

#### print\_nesting\_levels

controls the depth of the child traces to be printed. (***Default*: 5** - *advanced, runtime*)

#### print\_trace\_every

Controls the rate at which traces are printed. Setting this to 0 disables printing the collected traces. (***Default*: 0** - *advanced, runtime*)

#### prioritize\_tasks\_by\_disk

Restart Needed Changes to this flag require a restart

Consider disk load when considering compaction and flush priorities. (***Default*: false**)

#### priority\_thread\_pool\_size

Restart Needed Changes to this flag require a restart

Max running workers in compaction thread pool. If -1 and max\_background\_compactions is specified - use max\_background\_compactions. If -1 and max\_background\_compactions is not specified - use sqrt(num\_cpus). (***Default*: -1**)

#### process\_split\_tablet\_candidates\_interval\_msec

The minimum time between automatic splitting attempts. The actual splitting time between runs is also affected by catalog\_manager\_bg\_task\_wait\_ms, which controls how long the bg tasks thread sleeps at the end of each loop. The top-level automatic tablet splitting method, which checks for the time since last run, is run once per loop. (***Default*: 0** - *runtime*)

#### profile\_sample\_period\_bytes

Restart Needed Changes to this flag require a restart

The interval at which TCMalloc should sample allocations. Sampling is disabled if this is set to &lt;= 0. Does not apply to Postgres processes; see ysql\_yb\_tcmalloc\_sample\_period instead. (***Default*: 1048576**)

#### profiler\_sample\_freq\_bytes

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### propagate\_safe\_time

Restart Needed Changes to this flag require a restart

Propagate safe time to read from leader to followers (***Default*: true**)

#### protege\_synchronization\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout to synchronize protege before performing step down. 0 to disable synchronization. (***Default*: 1000**)

#### proxy\_resolve\_cache\_ms

Restart Needed Changes to this flag require a restart

Time in milliseconds to cache resolution result in Proxy (***Default*: 5000**)

#### qos\_capped\_pool\_cpu\_weight

CPU scheduling weight for @capped-pool. @system-high uses the default weight (100). Under contention, CPU splits proportionally: e.g. weight=400 gives @capped-pool 4x the CPU share of @system-high. Default = equal weighting. Range: \[1, 10000]. (***Default*: 100** - *advanced, runtime*)

#### qos\_compaction\_per\_db\_cgroups

When true, compaction/flush tasks run in the tablet's per-database cgroup (db\_$DBOID) instead of the shared @system-med cgroup. (***Default*: false** - *advanced, runtime*)

#### qos\_evaluation\_window\_us

Period (in microseconds) for the CPU scheduler to use to determine whether a cgroup has exceeded its limit. (***Default*: 100000** - *advanced, runtime*)

#### qos\_max\_db\_count

Maximum number of YSQL databases allowed per cluster when QoS is enabled (enable\_qos=true). CREATE DATABASE is rejected when the non-template database count would exceed this limit. Template databases (template0, template1) are excluded from the count. Set to 0 to disable the limit. (***Default*: 0** - *runtime*)

#### qos\_max\_db\_cpu\_percent

Maximum per-database CPU as a percentage of the @capped-pool budget (100% - qos\_system\_high\_cpu\_reserved\_percent). @normal (the tenant pool) is uncapped within @capped-pool, so databases can use whatever @system-med doesn't consume. 100.0 means a single database may burst to the full @capped-pool budget when no other tenant or @system-med work is contending. Values below 100 cap each database at that fraction even when peers are idle. (***Default*: 100** - *runtime*)

#### qos\_metrics\_interval\_sec

How often (seconds) to sample cgroup CPU stats for metrics. 0 disables cgroup metrics collection. (***Default*: 2** - *runtime*)

#### qos\_system\_dbs\_use\_shared\_pool

When true, system-internal database OIDs (system\_postgres/sequences OID 0xFFFF, template1 OID 1) are routed to the shared system worker pool instead of creating per-DB cgroup slots. Prevents these synthetic/system databases from consuming per-DB pool capacity. (***Default*: true** - *runtime*)

#### qos\_system\_high\_cpu\_max\_percent

Hard cap on CPU for the @system-high cgroup (reactors, consensus, WAL). 100.0 = uncapped (all cores). Lower values restrict @system-high's maximum CPU usage. Independent of qos\_system\_high\_cpu\_reserved\_percent, which controls @capped-pool's cap. (***Default*: 100** - *advanced, runtime*)

#### qos\_system\_high\_cpu\_reserved\_percent

CPU reserved for @system-high, not available for other work even if unused. Subtracted from @capped-pool's cap: @capped-pool = 100% - this value. Does NOT cap @system-high itself (see qos\_system\_high\_cpu\_max\_percent). 0 means no reservation. (***Default*: 0** - *advanced, runtime*)

#### qos\_system\_med\_cpu\_max\_percent

Hard cap on CPU for @system-med as a percentage of the @capped-pool budget (100% - qos\_system\_high\_cpu\_reserved\_percent). 0 means uncapped within @capped-pool. 100.0 = the full @capped-pool budget. (***Default*: 0** - *advanced, runtime*)

#### raft\_heartbeat\_interval\_ms

Restart Needed Changes to this flag require a restart

The heartbeat interval 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** - *advanced*)

#### rate\_limiter\_min\_rate

Restart Needed Changes to this flag require a restart

Minimum transmission rate in bytes/sec (***Default*: 1000**)

#### rate\_limiter\_min\_size

Restart Needed Changes to this flag require a restart

Minimum size for each transmission request (***Default*: 32768**)

#### rbs\_init\_max\_number\_of\_retries

Max number of retries during remote bootstrap session initialisation, when metadata before and after checkpoint does not match. 0 - to disable retry logic. (***Default*: 5** - *runtime*)

#### reactor\_based\_outbound\_call\_expiration\_delay\_ms

Expire OutboundCalls using Reactor-level logic with this delay after the timeout, as an additional layer of protection against stuck outbound calls. This safety mechanism is disabled if this flag is set to 0. (***Default*: 1000** - *advanced, runtime*)

#### reactor\_check\_current\_thread

Enforce the requirement that operations that require running on a reactor thread are always running on the correct reactor thread. (***Default*: true** - *runtime*)

#### read\_buffer\_memory\_limit

Restart Needed Changes to this flag require a restart

Overall limit for read buffers. Positive value - limit in bytes. Negative value - percent of root process memory. Zero - unlimited. (***Default*: -5**)

#### read\_pool\_max\_queue\_size

Restart Needed Changes to this flag require a restart

The maximum number of tasks that can be held in the queue for read\_pool\_. This pool is used to run multiple read operations, that are part of the same tablet rpc, in parallel. (***Default*: 128**)

#### read\_pool\_max\_threads

Restart Needed Changes to this flag require a restart

The maximum number of threads allowed for read\_pool\_. This pool is used to run multiple read operations, that are part of the same tablet rpc, in parallel. (***Default*: 128**)

#### read\_wal\_memory\_bytes

Restart Needed Changes to this flag require a restart

Limit on amount of memory used to hold WAL records temporarily read in from disk; -1 means no limit. (***Default*: 536870912**)

#### redis\_allow\_reads\_from\_followers

If true, the read will be served from the closest replica in the same AZ, which can be a follower. (***Default*: false** - *evolving, runtime*)

#### redis\_callbacks\_threadpool\_size

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### redis\_connection\_soft\_limit\_grace\_period\_sec

Restart Needed Changes to this flag require a restart

The duration for which the outbound data needs to exceeed the softlimit before the connection gets closed down. (***Default*: 60**)

#### redis\_keys\_threshold

Restart Needed Changes to this flag require a restart

Maximum number of keys allowed to be in the db before the KEYS operation errors out (***Default*: 10000**)

#### redis\_max\_batch

Restart Needed Changes to this flag require a restart

Max number of redis commands that forms batch (***Default*: 500**)

#### redis\_max\_command\_size

Restart Needed Changes to this flag require a restart

Maximum size of the command in redis (***Default*: 265289728**)

#### redis\_max\_concurrent\_commands

Restart Needed Changes to this flag require a restart

Max number of redis commands received from single connection, that could be processed concurrently (***Default*: 1**)

#### redis\_max\_queued\_bytes

Restart Needed Changes to this flag require a restart

Max number of bytes in queued redis commands. (***Default*: 134217728**)

#### redis\_max\_read\_buffer\_size

Restart Needed Changes to this flag require a restart

Max read buffer size for Redis connections. (***Default*: 134217728**)

#### redis\_max\_value\_size

Restart Needed Changes to this flag require a restart

Maximum size of the value in redis (***Default*: 67108864**)

#### redis\_password\_caching\_duration\_ms

Restart Needed Changes to this flag require a restart

The duration for which we will cache the redis passwords. 0 to disable. (***Default*: 5000**)

#### redis\_passwords\_separator

Restart Needed Changes to this flag require a restart

The character used to separate multiple passwords. (***Default*: ,**)

#### redis\_proxy\_bind\_address

Restart Needed Changes to this flag require a restart

Address to bind the redis proxy to (***Default*: None**)

#### redis\_proxy\_webserver\_port

Restart Needed Changes to this flag require a restart

Webserver port for redis proxy (***Default*: 0**)

#### redis\_rpc\_block\_size

Restart Needed Changes to this flag require a restart

Redis RPC block size (***Default*: 1048576**)

#### redis\_rpc\_keepalive\_time\_ms

Restart Needed Changes to this flag require a restart

If an RPC connection from a client is idle for this amount of time, the server will disconnect the client. Setting flag to 0 disables this clean up. (***Default*: 0** - *advanced*)

#### redis\_rpc\_memory\_limit

Restart Needed Changes to this flag require a restart

Redis RPC memory limit (***Default*: 0**)

#### redis\_safe\_batch

Restart Needed Changes to this flag require a restart

Use safe batching with Redis service (***Default*: true**)

#### redis\_service\_yb\_client\_timeout\_millis

Restart Needed Changes to this flag require a restart

Timeout in milliseconds for RPC calls from Redis service to master/tserver (***Default*: 3000**)

#### redis\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for redis service (***Default*: 5000** - *advanced*)

#### ref\_counted\_debug\_type\_name\_regex

Restart Needed Changes to this flag require a restart

Regex for type names for debugging RefCounted / scoped\_refptr based classes. An empty string disables RefCounted debug logging. (***Default*: None**)

#### regular\_tablets\_data\_block\_key\_value\_encoding

Restart Needed Changes to this flag require a restart

Key-value encoding to use for regular data blocks in RocksDB. Possible options: shared\_prefix, three\_shared\_parts (***Default*: three\_shared\_parts** - *stable, auto*)

#### reject\_rbs\_for\_deleted\_tablet

Whether to reject a request to RBS a tablet that the receiving tserver has recently deleted. (***Default*: true** - *runtime*)

#### reject\_writes\_min\_disk\_space\_check\_interval\_sec

Interval in seconds to check for disk space availability. The check will switch to aggressive mode (every 10s) if the available disk space is less than --max\_disk\_throughput\_mbps * --reject\_writes\_min\_disk\_space\_check\_interval\_sec. NOTE: Use a value higher than 10. If a value less than 10 is used, then we always run in aggressive check mode, potentially causing performance degradations. (***Default*: 60** - *runtime*)

#### reject\_writes\_min\_disk\_space\_mb

Reject writes if less than this much disk space is available on the WAL directory and --reject\_writes\_when\_disk\_full is enabled. If set to 0, defaults to --max\_disk\_throughput\_mbps * min(10, --reject\_writes\_min\_disk\_space\_check\_interval\_sec). (***Default*: 0** - *runtime*)

#### reject\_writes\_min\_disk\_space\_pct

Reject writes if the available disk space on the WAL directory falls below this percentage of the total disk capacity and --reject\_writes\_when\_disk\_full is enabled. For example, a value 5 rejects writes when free space drops below 5% of the disk's total capacity. This lets the rejection threshold scale automatically with disk size. If both this flag and --reject\_writes\_min\_disk\_space\_mb yield a threshold, the larger of the two is used. Ignored if zero. (***Default*: 5** - *runtime*)

#### reject\_writes\_when\_disk\_full

Reject incoming writes to the tablet if we are running out of disk space. (***Default*: true** - *runtime*)

#### remote\_boostrap\_rate\_limit\_bytes\_per\_sec

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### remote\_bootstrap\_from\_leader\_only

Whether to instruct the peer to attempt bootstrap from the closest peer instead of the leader. The leader too could be the closest peer depending on the new peer's geographic placement. Setting the flag to false will enable remote bootstrap from the closest peer. On addition of a new node, it follows that most bootstrap sources would now be from a single node and could result in increased load on the node. If bootstrap of a new node is slow, it might be worth setting the flag to true and enable bootstrapping from leader only. (***Default*: false** - *stable, auto, runtime*)

#### remote\_bootstrap\_max\_chunk\_size

Maximum chunk size to be transferred at a time during remote bootstrap. (***Default*: 1048576** - *runtime*)

#### remote\_bootstrap\_rate\_limit\_bytes\_per\_sec

Maximum transmission rate during a remote bootstrap. This is across all the remote bootstrap sessions for which this process is acting as a sender or receiver. So the total limit will be 2 * remote\_bootstrap\_rate\_limit\_bytes\_per\_sec because a tserver or master can act both as a sender and receiver at the same time. (***Default*: 268435456** - *runtime*)

#### remote\_bootstrap\_skip\_sst\_compression

Whether to skip compressing SST files (which are already compressed by Snappy when they are written) during remote bootstrap. (***Default*: true** - *runtime*)

#### remote\_pg\_query\_execution\_rpc\_timeout\_ms

Timeout for RPCs of remote PG queries from PG to remote tserver in milliseconds. (***Default*: 15000** - *advanced, runtime*)

#### replicate\_transaction\_promotion

Use UpdateTransaction(PROMOTING) rpc that is replicated across participant peers to announce transaction status location move to participant tablets. (***Default*: true** - *stable, auto, runtime*)

#### replication\_factor

Default number of replicas for tables that do not have the num\_replicas set. Note: Changing this at runtime will only affect newly created tables. (***Default*: 3** - *advanced, runtime*)

#### replication\_failure\_delay\_exponent

Max number of failures (N) to use when calculating exponential backoff (2^N-1). (***Default*: 16** - *runtime*)

#### report\_ysql\_ddl\_txn\_status\_to\_master

If set, at the end of DDL operation, the TServer will notify the YB-Master whether the DDL operation was committed or aborted (***Default*: true** - *runtime*)

#### require\_durable\_wal\_write

Restart Needed Changes to this flag require a restart

Whether durable WAL write is required.In case you cannot write using O\_DIRECT in WAL and data directories and this flag is set truethe system will deliberately crash with the appropriate error. If this flag is set false, the system will soft downgrade the durable\_wal\_write flag. (***Default*: false** - *stable*)

#### reset\_master\_leader\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout to reset master leader in milliseconds. (***Default*: 15000**)

#### retry\_failed\_replica\_ms

Restart Needed Changes to this flag require a restart

Time in milliseconds to wait for before retrying a failed replica (***Default*: 3600000**)

#### retry\_if\_ddl\_txn\_verification\_pending

Whether to retry a transaction if it fails verification. (***Default*: true** - *runtime*)

#### retryable\_request\_range\_time\_limit\_secs

Restart Needed Changes to this flag require a restart

Max delta in time for single op id range. (***Default*: 30**)

#### retryable\_request\_timeout\_secs

Maximum amount of time to keep write request in index, to prevent duplicate writes.If the client timeout is less than this value, then use the client timeout instead. (***Default*: 660** - *runtime*)

#### retrying\_rpc\_max\_jitter\_ms

Maximum random delay to add between rpc retry attempts. (***Default*: 50** - *advanced, runtime*)

#### retrying\_ts\_rpc\_max\_delay\_ms

Maximum delay between successive attempts to contact an unresponsive tablet server or master. (***Default*: 60000** - *advanced, runtime*)

#### reuse\_unclosed\_segment\_threshold\_bytes

If the last left in-progress segment size is smaller or equal to this threshold, Log will reuse this last segment as writable active\_segment at tablet bootstrap. Otherwise, Log will create a new segment. (***Default*: 9223372036854775807** - *runtime*)

#### rlimit\_as

Restart Needed Changes to this flag require a restart

Memory size limit: bytes. (***Default*: -1**)

#### rlimit\_cpu

Restart Needed Changes to this flag require a restart

CPU time limit: seconds. (***Default*: -1**)

#### rlimit\_data

Restart Needed Changes to this flag require a restart

Data file size limit: bytes. (***Default*: -1**)

#### rlimit\_fsize

Restart Needed Changes to this flag require a restart

File size limit: blocks. (***Default*: -1**)

#### rlimit\_memlock

Restart Needed Changes to this flag require a restart

Locked memory limit: bytes. (***Default*: 65536**)

#### rlimit\_nofile

Restart Needed Changes to this flag require a restart

Open files limit. (***Default*: 1048576**)

#### rlimit\_nproc

Restart Needed Changes to this flag require a restart

User process limit. (***Default*: 12000**)

#### rlimit\_stack

Restart Needed Changes to this flag require a restart

Stack size limit: bytes. (***Default*: 8388608**)

#### rocksdb\_advise\_random\_on\_open

If set to true, will hint the underlying file system that the file access pattern is random, when a sst file is opened. (***Default*: true** - *runtime*)

#### rocksdb\_base\_background\_compactions

Restart Needed Changes to this flag require a restart

Number threads to do background compactions. (***Default*: -1**)

#### rocksdb\_check\_sst\_file\_tail\_for\_zeros

Size of just written SST data file tail to be checked for being zeros. Check is not performed if flag value is zero. (***Default*: 0** - *advanced, runtime*)

#### rocksdb\_compact\_flush\_rate\_limit\_bytes\_per\_sec

Use to control write rate of flush and compaction. (***Default*: 1073741824** - *runtime*)

#### rocksdb\_compact\_flush\_rate\_limit\_sharing\_mode

Restart Needed Changes to this flag require a restart

Controls rate limit sharing across RocksDB instances: tserver - rate limit is shared across all instances at the tserver level; none - rate limit is calculated independently for every instance. (***Default*: tserver**)

#### rocksdb\_compaction\_measure\_io\_stats

Restart Needed Changes to this flag require a restart

Measure stats for rocksdb compactions. (***Default*: false**)

#### rocksdb\_compaction\_size\_threshold\_bytes

Restart Needed Changes to this flag require a restart

Threshold beyond which compaction is considered large. (***Default*: 2147483648**)

#### rocksdb\_disable\_compactions

Restart Needed Changes to this flag require a restart

Disable rocksdb compactions. (***Default*: false**)

#### rocksdb\_file\_starting\_buffer\_size

Restart Needed Changes to this flag require a restart

Starting buffer size for writable files, grows by 2x every new allocation. (***Default*: 8192**)

#### rocksdb\_iterator\_disable\_restart\_block\_keys\_caching

Disables restart block keys caching. Having restart block keys caching turned on may give a better performance for backward iteration over a block with restart interval greater than 0 (for example for data block), refer to block\_restart\_interval gflag. (***Default*: false** - *advanced, runtime*)

#### rocksdb\_iterator\_init\_readahead\_size

Initial RocksDB iterator readahead size. (***Default*: 32768** - *advanced, runtime*)

#### rocksdb\_iterator\_max\_readahead\_size

Maximum RocksDB iterator readahead size. (***Default*: 2097152** - *advanced, runtime*)

#### rocksdb\_iterator\_sequential\_disk\_reads\_factor

Treat read as sequential for readahead purposes if next read operation is skipping up to readahead window size multiplied by rocksdb\_iterator\_sequential\_disk\_reads\_factor bytes. (***Default*: 1** - *runtime*)

#### rocksdb\_iterator\_sequential\_disk\_reads\_for\_auto\_readahead

Enable readahead when RocksDB iterator attempts to perform a configured number of sequential disk reads. If set to 0, the iterator readahead is disabled. If set to 1, iterator readahead will be enabled with the first disk read. If set to N &gt; 1, iterator readahead will be used with the Nth sequential disk read. (***Default*: 4** - *advanced, runtime*)

#### rocksdb\_level0\_file\_num\_compaction\_trigger

Restart Needed Changes to this flag require a restart

Number of files to trigger level-0 compaction. -1 if compaction should not be triggered by number of files at all. (***Default*: 5**)

#### rocksdb\_level0\_slowdown\_writes\_trigger

Restart Needed Changes to this flag require a restart

The number of files above which writes are slowed down. (***Default*: -1**)

#### rocksdb\_level0\_stop\_writes\_trigger

Restart Needed Changes to this flag require a restart

The number of files above which compactions are stopped. (***Default*: -1**)

#### rocksdb\_max\_background\_compactions

Restart Needed Changes to this flag require a restart

Increased number of threads to do background compactions (used when compactions need to catch up.) Unless rocksdb\_disable\_compactions=true, this cannot be set to zero. (***Default*: -1**)

#### rocksdb\_max\_background\_flushes

Restart Needed Changes to this flag require a restart

Number threads to do background flushes. (***Default*: -1**)

#### rocksdb\_max\_file\_size\_for\_compaction

Maximal allowed file size to participate in RocksDB compaction. 0 - unlimited. (***Default*: 0** - *runtime*)

#### rocksdb\_max\_manifest\_file\_size

Restart Needed Changes to this flag require a restart

Maximum size of manifest file before which it is consolidated (***Default*: 10485760**)

#### rocksdb\_max\_sst\_write\_retries

Maximum allowed number of retries to write SST file in case of detected corruption after write. (***Default*: 0** - *advanced, runtime*)

#### rocksdb\_max\_write\_buffer\_number

Restart Needed Changes to this flag require a restart

Maximum number of write buffers that are built up in memory. (***Default*: 100500**)

#### rocksdb\_nothing\_in\_memtable\_to\_flush\_sleep\_ms

Restart Needed Changes to this flag require a restart

Used for a temporary workaround for [http://bit.ly/ybissue437](http://bit.ly/ybissue437 "http://bit.ly/ybissue437"). How long to wait (ms) in case we could not flush any memtables, usually due to filters preventing us from doing so. (***Default*: 10**)

#### rocksdb\_release\_mutex\_during\_wait\_for\_memtables\_to\_flush

Restart Needed Changes to this flag require a restart

When a flush is scheduled, but there isn't a memtable eligible yet, release the mutex before going to sleep and reacquire it post sleep. (***Default*: true**)

#### rocksdb\_universal\_compaction\_always\_include\_size\_threshold

Restart Needed Changes to this flag require a restart

Always include files of smaller or equal size in a compaction. (***Default*: 67108864**)

#### rocksdb\_universal\_compaction\_min\_merge\_width

Restart Needed Changes to this flag require a restart

The minimum number of files in a single compaction run. (***Default*: 4**)

#### rocksdb\_universal\_compaction\_size\_ratio

Restart Needed Changes to this flag require a restart

The percentage upto which files that are larger are include in a compaction. (***Default*: 20**)

#### rocksdb\_use\_logging\_iterator

Restart Needed Changes to this flag require a restart

Wrap newly created RocksDB iterators in a logging wrapper (***Default*: false**)

#### rpc\_acceptor\_listen\_backlog

Restart Needed Changes to this flag require a restart

Socket backlog parameter used when listening for RPC connections. This defines the maximum length to which the queue of pending TCP connections inbound to the RPC server may grow. If a connection request arrives when the queue is full, the client may receive an error. Higher values may help the server ride over bursts of new inbound connection requests. (***Default*: 128** - *advanced*)

#### rpc\_bind\_addresses

Restart Needed Changes to this flag require a restart

Comma-separated list of addresses to bind to for RPC connections. Currently, ephemeral ports (i.e. port 0) are not allowed. (***Default*: 0.0.0.0:7100** - *stable*)

#### rpc\_callback\_max\_cycles

The maximum number of cycles for which an RPC callback should be allowed to run without emitting a warning. (Advanced debugging option) (***Default*: 100000000** - *advanced, runtime*)

#### rpc\_connection\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout for RPC connection operations (***Default*: 15000**)

#### rpc\_default\_keepalive\_time\_ms

Restart Needed Changes to this flag require a restart

If an RPC connection from a client is idle for this amount of time, the server will disconnect the client. Setting flag to 0 disables this clean up. (***Default*: 65000** - *advanced*)

#### rpc\_dump\_all\_traces

If true, dump all RPC traces at INFO level (***Default*: false** - *advanced, runtime*)

#### rpc\_enable\_crc

Whether to calculate and send CRC checksum in RPC requests (***Default*: true** - *runtime*)

#### rpc\_max\_message\_size

Restart Needed Changes to this flag require a restart

The maximum size of a message of any RPC that the server will accept. The sum of consensus\_max\_batch\_size\_bytes and 1MB should be less than rpc\_max\_message\_size. This value must also be less than protobuf\_message\_total\_bytes\_limit. (***Default*: 267386880**)

#### rpc\_queue\_limit

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### rpc\_reactor\_task\_timeout\_ms

Restart Needed Changes to this flag require a restart

Report if reactor task task takes longer that specified amount of milliseconds. 0 to disable monitoring. (***Default*: 0**)

#### rpc\_read\_buffer\_size

Restart Needed Changes to this flag require a restart

RPC connection read buffer size. 0 to auto detect. (***Default*: 0**)

#### rpc\_server\_allow\_ephemeral\_ports

Restart Needed Changes to this flag require a restart

Allow binding to ephemeral ports. This can cause problems, so currently only allowed in tests. (***Default*: false** - *unsafe*)

#### rpc\_slow\_query\_threshold\_ms

Traces for calls that take longer than this threshold (in ms) are logged (***Default*: 10000** - *advanced, runtime*)

#### rpc\_throttle\_threshold\_bytes

Restart Needed Changes to this flag require a restart

Throttle inbound RPC calls larger than specified size on hitting mem tracker soft limit. Throttling is disabled if negative value is specified. The value must be at least 16 and less than the strictly enforced consensus\_max\_batch\_size\_bytes. (***Default*: 1048576**)

#### rpc\_workers\_limit

Restart Needed Changes to this flag require a restart

Workers limit for rpc server (***Default*: 1024**)

#### rpcs\_shutdown\_extra\_delay\_ms

Restart Needed Changes to this flag require a restart

Extra allowed time for a single RPC command to complete after its deadline. (***Default*: 5000**)

#### rpcs\_shutdown\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout for a batch of multiple RPCs invoked in parallel to shutdown. (***Default*: 30000**)

#### rpcz\_max\_cql\_batch\_dump\_count

Restart Needed Changes to this flag require a restart

The maximum number of CQL batch elements in the RPCZ dump. (***Default*: 4096**)

#### rpcz\_max\_cql\_query\_dump\_size

Restart Needed Changes to this flag require a restart

The maximum size of the CQL query string in the RPCZ dump. (***Default*: 4096**)

#### rpcz\_max\_redis\_query\_dump\_size

Restart Needed Changes to this flag require a restart

The maximum size of the Redis query string in the RPCZ dump. (***Default*: 4096**)

#### sampled\_trace\_1\_in\_n

Flag to enable/disable sampled tracing. 0 disables. (***Default*: 1000** - *advanced, runtime*)

#### scanner\_batch\_size\_rows

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### scanner\_default\_batch\_size\_bytes

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### scanner\_max\_batch\_size\_bytes

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### schedule\_restoration\_rpcs\_out\_of\_band

Should tablet restoration RPCs be scheduled out of band from the periodic background scheduling. (***Default*: true** - *runtime*)

#### schedule\_snapshot\_rpcs\_out\_of\_band

Should tablet snapshot RPCs be scheduled out of band from the periodic background scheduling. (***Default*: true** - *runtime*)

#### scheduled\_full\_compaction\_check\_interval\_min

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### scheduled\_full\_compaction\_frequency\_hours

Frequency with which full compactions should be scheduled on tablets. 0 indicates the feature is disabled. (***Default*: 0** - *runtime*)

#### scheduled\_full\_compaction\_jitter\_factor\_percentage

Percentage of scheduled\_full\_compaction\_frequency\_hours to be used as jitter when determining full compaction schedule per tablet. Jitter will be deterministically computed when scheduling a compaction, between 0 and (frequency * jitter factor) hours. (***Default*: 33** - *runtime*)

#### send\_leader\_blacklisted\_tservers\_on\_heartbeat

When set, the master will send the list of leader-blacklisted tservers with no leaders on the heartbeat response. (***Default*: true** - *advanced, runtime*)

#### send\_wait\_for\_report\_interval\_ms

Restart Needed Changes to this flag require a restart

The tick interval time to trigger updating all transaction coordinators with wait-for relationships. (***Default*: 60000**)

#### server\_broadcast\_addresses

Restart Needed Changes to this flag require a restart

Broadcast addresses for this server. (***Default*: None**)

#### server\_tcmalloc\_max\_total\_thread\_cache\_bytes

Restart Needed Changes to this flag require a restart

Total number of bytes to use for the thread cache for tcmalloc across all threads in the tserver/master. If this is negative, it has no effect. (***Default*: -1**)

#### shmem\_exchange\_idle\_timeout\_ms

Restart Needed Changes to this flag require a restart

Idle timeout interval in milliseconds used by shared memory exchange thread pool. (***Default*: 2000**)

#### skip\_crash\_on\_duplicate\_snapshot

Should we not crash when we get a create snapshot request with the same id as one of the previous snapshots. (***Default*: false** - *runtime*)

#### skip\_flushed\_entries

Restart Needed Changes to this flag require a restart

Only replay WAL entries that are not flushed to RocksDB or necessary to bootstrap retryable requests (unflushed and within retryable request timeout). (***Default*: true**)

#### skip\_flushed\_entries\_in\_first\_replayed\_segment

If applicable, only replay entries that are not flushed to RocksDB or necessary to bootstrap retryable requests in the first replayed wal segment. (***Default*: true** - *runtime*)

#### skip\_prefix\_locks

Enable to skip writing weak intent locks on intermediate prefixes of the actual PK being written. This reduces the number of key-value pairs written to the intents db, resulting in better performance. However, it may lead to high contention when serializable isolation transactions are present in the workload. (***Default*: true** - *runtime*)

#### skip\_prefix\_locks\_for\_upgrade

The gflag is for upgrade and should not be changed. skip prefix lock is enabled only if both skip\_prefix\_locks and skip\_prefix\_locks\_for\_upgrade are true. To disable the feature, just set skip\_prefix\_locks to false. (***Default*: true** - *stable, auto, runtime*)

#### skip\_prefix\_locks\_suppress\_warning\_for\_serializable\_op

If false, logs a warning when a serializable transaction runs with skip prefix locks enabled.Serializable isolation transactions are not meant to be run if skip\_prefix\_locks is enabled. This will result in warnings in the log. Use this flag to suppress the warnings if you are sure that the serializable isolation transactions are never going to block a lot of other transactions. (***Default*: false** - *advanced, runtime*)

#### skip\_prefix\_locks\_wait\_all\_transactions\_loaded

If true, always wait until the loader has finished loading all txns during choosing the skip prefix locks mode for RR/RC transactions (***Default*: true** - *runtime*)

#### skip\_tablet\_data\_verification

Restart Needed Changes to this flag require a restart

Skip checking tablet data for corruption. (***Default*: false**)

#### skip\_tserver\_version\_checks

Skip all tserver version checks (***Default*: false** - *runtime*)

#### skip\_wal\_replay\_from\_beginning\_with\_cdc

Restart Needed Changes to this flag require a restart

If false, read all the WAL segments starting from the beginning instead of starting post the flushed entries. (***Default*: true**)

#### skip\_wal\_rewrite

Skip rewriting WAL files during bootstrap. (***Default*: true** - *experimental, runtime*)

#### slow\_periodic\_scheduling\_threshold\_ms

How far past its scheduled run time the PeriodicTimer callback start can be delayed before scheduling is considered slow, which causes warnings to be logged. (***Default*: 20** - *advanced, runtime*)

#### slow\_rwc\_lock\_log\_ms

How long to wait for a write or commit lock before logging that acquiring it took a long time. (***Default*: 5000** - *advanced, runtime*)

#### small\_compaction\_extra\_priority

Small compaction will get small\_compaction\_extra\_priority extra priority. (***Default*: 1** - *runtime*)

#### snapshot\_coordinator\_cleanup\_delay\_ms

Delay for snapshot cleanup after deletion. (***Default*: 30000** - *runtime*)

#### snapshot\_coordinator\_poll\_interval\_ms

Restart Needed Changes to this flag require a restart

Poll interval for snapshot coordinator in milliseconds. (***Default*: 5000**)

#### socket\_receive\_buffer\_size

Restart Needed Changes to this flag require a restart

Socket receive buffer size, 0 to use default (***Default*: 0**)

#### sort\_automatic\_tablet\_splitting\_candidates

Whether we should sort candidates for new automatic tablet splits, so the largest candidates are picked first. (***Default*: true** - *runtime*)

#### split\_respects\_tablet\_replica\_limits

Whether to check the universe tablet replica limit before splitting a tablet. When this flag and enforce\_tablet\_replica\_limits are both true, the system will no longer split tablets when the limit machinery determines the universe cannot support any more tablet replicas. (***Default*: false** - *advanced, runtime*)

#### ssl\_protocols

Restart Needed Changes to this flag require a restart

List of allowed SSL protocols (ssl2, ssl3, tls10, tls11, tls12). Empty to allow TLS only. (***Default*: None**)

#### sst\_files\_hard\_limit

When majority SST files number is greater that this limit, we will reject all write requests. (***Default*: 48** - *runtime*)

#### sst\_files\_soft\_limit

When majority SST files number is greater that this limit, we will start rejecting part of write requests. The higher the number of SST files, the higher probability of rejection. (***Default*: 24** - *runtime*)

#### start\_cql\_proxy

Restart Needed Changes to this flag require a restart

Starts a CQL proxy along with the tablet server (***Default*: true**)

#### start\_pgsql\_proxy

Restart Needed Changes to this flag require a restart

Whether to run a PostgreSQL server as a child process of the tablet server (***Default*: false**)

#### start\_redis\_proxy

Restart Needed Changes to this flag require a restart

Starts a redis proxy along with the tablet server (***Default*: false**)

#### stateful\_service\_operation\_timeout\_sec

The number of seconds after which stateful service operations should timeout. (***Default*: 120** - *runtime*)

#### stateful\_service\_periodic\_task\_interval\_ms

Frequency of the stateful service periodic task. 0 indicates that the task should not run. (***Default*: 10000** - *runtime*)

#### stateful\_svc\_default\_queue\_length

Restart Needed Changes to this flag require a restart

Default RPC queue length used for stateful services. (***Default*: 50**)

#### stderrthreshold

log messages at or above this level are copied to stderr in addition to logfiles. This flag obsoletes --alsologtostderr. (***Default*: 3** - *runtime, advanced, stable*)

#### stepdown\_disable\_graceful\_transition

Restart Needed Changes to this flag require a restart

During a leader stepdown, disable graceful leadership transfer to an up to date peer (***Default*: false**)

#### stop\_logging\_if\_full\_disk

Stop attempting to log to disk if the disk is full. (***Default*: false** - *runtime, advanced, stable*)

#### stop\_on\_parent\_termination

Restart Needed Changes to this flag require a restart

When specified, this process will terminate when parent process terminates.Linux-only. (***Default*: false**)

#### store\_last\_wal\_op\_log\_ht

If enabled, minimum between the last appended WAL OP's ht and callback value will be persisted in the footer field min\_start\_ht\_running\_txns (***Default*: true** - *stable, auto, runtime*)

#### store\_min\_start\_ht\_running\_txns

If enabled, minimum start hybrid time among running txns will be persisted in the segment footer during closing of the segment. (***Default*: true** - *stable, auto, runtime*)

#### stream\_compression\_algo

Restart Needed Changes to this flag require a restart

Algorithm used for stream compression. 0 - no compression, 1 - gzip, 2 - snappy, 3 - lz4. (***Default*: 0**)

#### stream\_truncate\_record

Enable streaming of TRUNCATE record (***Default*: false** - *runtime*)

#### stuck\_outbound\_call\_check\_interval\_sec

Check and report each stuck outbound call at most once per this number of seconds. (***Default*: 30** - *advanced, runtime*)

#### stuck\_outbound\_call\_default\_timeout\_sec

Default timeout for reporting purposes for the Reactor-based stuck OutboundCall tracking and expiration mechanism. That mechanism itself is controlled by the reactor\_based\_outbound\_call\_expiration\_delay\_ms flag. Note that this flag does not force a call to be timed out, it just specifies the interval after which the call is logged. (***Default*: 120** - *advanced, runtime*)

#### suicide\_on\_eio

Restart Needed Changes to this flag require a restart

Kill the process if an I/O operation results in EIO (***Default*: true** - *advanced*)

#### svc\_queue\_length\_default

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### symbolize\_stacktrace

Symbolize the stack trace in the tombstone (***Default*: true** - *advanced, runtime, stable*)

#### sys\_catalog\_respect\_affinity\_task

Whether the master sys catalog tablet respects cluster config preferred zones and sends step down requests to a preferred leader. (***Default*: true** - *runtime*)

#### sys\_catalog\_write\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout for writes into system catalog (***Default*: 60000**)

#### tablet\_bloom\_block\_size

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### tablet\_bloom\_target\_fp\_rate

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### tablet\_creation\_timeout\_ms

Timeout used by the master when attempting to create tablet replicas during table creation. (***Default*: 600000** - *advanced, runtime*)

#### tablet\_do\_compaction\_cleanup\_for\_intents

Restart Needed Changes to this flag require a restart

Whether to clean up intents for aborted transactions in compaction. (***Default*: true**)

#### tablet\_do\_dup\_key\_checks

Deprecated (***Default*: false** - *deprecated, runtime*)

#### tablet\_enable\_ttl\_file\_filter

Restart Needed Changes to this flag require a restart

Enables compaction to directly delete files that have expired based on TTL, rather than removing them via the normal compaction process. (***Default*: false**)

#### tablet\_exclusive\_full\_compaction

Enables exclusive mode for any non-post-split full compaction for a tablet: all scheduled and unscheduled compactions are run before the full compaction and no other compactions will get scheduled during a full compaction. (***Default*: false** - *runtime*)

#### tablet\_exclusive\_post\_split\_compaction

Enables exclusive mode for post-split compaction for a tablet: all scheduled and unscheduled compactions are run before post-split compaction and no other compaction will get scheduled during post-split compaction. (***Default*: false** - *runtime*)

#### tablet\_force\_split\_threshold\_bytes

The tablet size threshold at which to split tablets regardless of how many tablets exist in the table already. This should be configured to prevent runaway whale tablets from forming in your cluster even if both automatic splitting phases have been finished. (***Default*: 107374182400** - *runtime*)

#### tablet\_operation\_memory\_limit\_mb

Restart Needed Changes to this flag require a restart

Maximum amount of memory that may be consumed by all in-flight operations belonging to a particular tablet. When this limit is reached, new operations will be rejected and clients will be forced to retry them. If -1, operation memory tracking is disabled. (***Default*: 1024** - *advanced*)

#### tablet\_overhead\_size\_percentage

Restart Needed Changes to this flag require a restart

Percentage of process' hard memory limit to use for tablet-related overheads. A value of 0 means no limit. Must be between 0 and 100 inclusive. Exception: -1000 specifies to instead use a recommended value determined in part by the amount of RAM available. (***Default*: -1000**)

#### tablet\_replicas\_per\_core\_limit

The maximum number of tablets the universe can support per vCPU being used by TServers. 0 means no limit. (***Default*: 0** - *advanced, runtime*)

#### tablet\_replicas\_per\_gib\_limit

The maximum number of tablets the universe can support per GiB of RAM reserved by TServers for tablet overheads. 0 means no limit. (***Default*: 1462** - *advanced, runtime*)

#### tablet\_report\_limit

Restart Needed Changes to this flag require a restart

Max Number of tablets to report during a single heartbeat. If this is set to INT32\_MAX, then heartbeat will report all dirty tablets. (***Default*: 1000** - *advanced*)

#### tablet\_rocksdb\_ops\_quiet\_down\_timeout\_ms

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### tablet\_server\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### tablet\_server\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the TS service. (***Default*: 5000** - *advanced*)

#### tablet\_split\_high\_phase\_shard\_count\_per\_node

The per-node tablet leader count until which a table is splitting at the phase 2 threshold, as defined by tablet\_split\_high\_phase\_size\_threshold\_bytes. (***Default*: 24** - *runtime*)

#### tablet\_split\_high\_phase\_size\_threshold\_bytes

The tablet size threshold at which to split tablets in phase 2. See tablet\_split\_high\_phase\_shard\_count\_per\_node. (***Default*: 10737418240** - *runtime*)

#### tablet\_split\_limit\_per\_table

Limit of the number of tablets per table for tablet splitting. Limitation is disabled if this value is set to 0. (***Default*: 0** - *runtime*)

#### tablet\_split\_low\_phase\_shard\_count\_per\_node

The per-node tablet leader count until which a table is splitting at the phase 1 threshold, as defined by tablet\_split\_low\_phase\_size\_threshold\_bytes. (***Default*: 1** - *runtime*)

#### tablet\_split\_low\_phase\_size\_threshold\_bytes

The tablet size threshold at which to split tablets in phase 1. See tablet\_split\_low\_phase\_shard\_count\_per\_node. (***Default*: 134217728** - *runtime*)

#### tablet\_split\_min\_size\_ratio

If sorting by size is enabled, a tablet will only be considered for splitting if the ratio of its size to the largest split candidate is at least this value. Valid flag values are 0 to 1 (inclusive). Setting this to 0 means any tablet that does not exceed tserver / global limits can be split. Setting this to 1 forces the tablet splitting algorithm to always split the largest candidate (even if that means waiting for existing splits to complete). (***Default*: 0.80000000000000004** - *runtime*)

#### tablet\_split\_size\_threshold\_bytes

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### tablet\_split\_use\_middle\_user\_key

Consider only user keys while determining middle key for tablet split (***Default*: true** - *runtime*)

#### tablet\_validator\_retain\_delete\_markers\_validation\_period\_sec

The time period in seconds for validation of retain delete markers property for index tables. The value is not updated immediately, it is posponed till the nearest run of the periodic validation task. The value of 0 is used to disable verification. In this case, the validation task wakes up every minute to get a new flag value. (***Default*: 60** - *advanced, runtime*)

#### tasks\_tracker\_keep\_time\_multiplier

Restart Needed Changes to this flag require a restart

How long we should keep tasks before cleaning them up, as a multiple of the cluster balancer interval (catalog\_manager\_bg\_task\_wait\_ms). (***Default*: 300**)

#### tasks\_tracker\_num\_long\_term\_tasks

Restart Needed Changes to this flag require a restart

Number of most recent tasks to track for displaying in utilities UI. (***Default*: 20**)

#### tasks\_tracker\_num\_tasks

Restart Needed Changes to this flag require a restart

Number of most recent tasks to track for displaying in utilities UI. (***Default*: 100**)

#### taskstream\_queue\_max\_size

Restart Needed Changes to this flag require a restart

Maximum number of operations waiting in the taskstream queue. (***Default*: 100000**)

#### taskstream\_queue\_max\_wait\_ms

Restart Needed Changes to this flag require a restart

Maximum time in ms to wait for items in the taskstream queue to arrive. (***Default*: 1000**)

#### tcmalloc\_max\_free\_bytes\_percentage

Maximum percentage of the RSS that tcmalloc is allowed to use for reserved but unallocated memory. (***Default*: 10** - *advanced, runtime*)

#### tcmalloc\_max\_per\_cpu\_cache\_bytes

Restart Needed Changes to this flag require a restart

Sets the maximum cache size per CPU cache if Google TCMalloc is being used. If this is zero or less, it has no effect. (***Default*: -1**)

#### tcmalloc\_trace\_enabled

Restart Needed Changes to this flag require a restart

Enable tracing of malloc/free calls for tcmalloc. (***Default*: false** - *advanced*)

#### tcmalloc\_trace\_frequency

Frequency at which malloc/free calls should be traced. (***Default*: 0** - *advanced, runtime*)

#### tcmalloc\_trace\_max\_threshold

Restart Needed Changes to this flag require a restart

Maximum (exclusive) threshold for tracing malloc/free calls. If 0, no maximum threshold is used. (***Default*: 0** - *advanced*)

#### tcmalloc\_trace\_min\_threshold

Restart Needed Changes to this flag require a restart

Minimum (inclusive) threshold for tracing malloc/free calls. (***Default*: 0** - *advanced*)

#### temporary\_disable\_preelections\_timeout\_ms

Restart Needed Changes to this flag require a restart

If some of nodes does not support preelections, then we disable them for this amount of time. (***Default*: 600000**)

#### TEST\_check\_broadcast\_address

Restart Needed Changes to this flag require a restart

Break connectivity in test mini cluster to check broadcast address. (***Default*: true**)

#### TEST\_export\_ash\_uuids\_as\_hex\_strings

Deprecated (***Default*: false** - *deprecated, runtime*)

#### TEST\_pggate\_ignore\_tserver\_shm

Deprecated (***Default*: false** - *deprecated, runtime*)

#### TEST\_transaction\_allow\_rerequest\_status

Restart Needed Changes to this flag require a restart

Allow rerequest transaction status when TryAgain is received. (***Default*: true**)

#### TEST\_yb\_client\_num\_callback\_threads

Restart Needed Changes to this flag require a restart

When &gt; 0, overrides the YBClient callback threadpool size. Used in tests that need server\_clientcb threads to actually process callbacks. (***Default*: 0** - *unsafe*)

#### thin\_client\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the Thin Client service. (***Default*: 5000** - *advanced*)

#### threadpool\_use\_current\_trace\_for\_tasks

If true, the thread pool will use the current trace for tasks submitted to it. (***Default*: false** - *runtime*)

#### throttle\_cql\_calls\_on\_soft\_memory\_limit

Restart Needed Changes to this flag require a restart

Whether to reject CQL calls when soft memory limit is reached. (***Default*: true**)

#### throttle\_cql\_calls\_policy

Restart Needed Changes to this flag require a restart

Policy for throttling CQL calls. 1 - drop throttled calls. 0 - respond with OVERLOADED error. (***Default*: 0**)

#### time\_based\_wal\_gc\_clock\_delta\_usec

Restart Needed Changes to this flag require a restart

A delta in microseconds to add to the clock value used to determine if a WAL segment is safe to be garbage collected. This is needed for clusters running with a skewed hybrid clock, because the clock used for time-based WAL GC is the wall clock, not hybrid clock. (***Default*: 0**)

#### time\_source

Restart Needed Changes to this flag require a restart

The clock source that HybridClock should use. Leave empty for WallClock, clockbound for ClockboundClock, and other values depend on added clock providers and specific for appropriate tests, that adds them. (***Default*: None**)

#### timestamp\_history\_retention\_interval\_sec

The time interval in seconds to retain DocDB history for. Point-in-time reads at a hybrid time further than this in the past might not be allowed after a compaction. Set this to be higher than the expected maximum duration of any single transaction in your application. (***Default*: 900** - *runtime*)

#### timestamp\_syscatalog\_history\_retention\_interval\_sec

Restart Needed Changes to this flag require a restart

The time interval in seconds to retain syscatalog history for CDC to read specific schema version. Point-in-time reads at a hybrid time further than this in the past might not be allowed after a compaction. Set this to be higher than the expected maximum duration of any single transaction in your application. (***Default*: 14400**)

#### tmp\_dir

Restart Needed Changes to this flag require a restart

Directory to store temporary files. By default, the value of '/tmp' is used. (***Default*: /tmp**)

#### total\_mem\_watcher\_interval\_millis

Interval in milliseconds between checking the total memory usage of the current process as seen by the operating system, and deciding whether to terminate in case of excessive memory consumption. (***Default*: 1000** - *runtime*)

#### trace\_max\_dump\_size

The max size of a trace dumped to the logs in Trace::DumpToLogInfo. 0 means unbounded. (***Default*: 30000** - *advanced, runtime*)

#### trace\_to\_console

Restart Needed Changes to this flag require a restart

Trace pattern specifying which trace events should be dumped directly to the console (***Default*: None** - *experimental*)

#### tracing\_level

verbosity levels (like --v) up to which tracing is enabled. (***Default*: 0** - *advanced, runtime*)

#### tracing\_max\_children\_per\_trace

max number of child traces. 0 means unbounded. (***Default*: 10** - *advanced, runtime*)

#### tracing\_max\_entries\_per\_trace

max number of entries in a trace. 0 means unbounded. (***Default*: 100** - *advanced, runtime*)

#### track\_stack\_traces

Whether to enable stack trace tracking (***Default*: false** - *runtime*)

#### transaction\_abort\_check\_interval\_ms

Interval to check whether running transaction was aborted. (***Default*: 5000** - *runtime*)

#### transaction\_abort\_check\_timeout\_ms

Timeout used when checking for aborted transactions. (***Default*: 30000** - *runtime*)

#### transaction\_check\_interval\_usec

Restart Needed Changes to this flag require a restart

Transaction check interval in usec. (***Default*: 500000**)

#### transaction\_deadlock\_detection\_interval\_usec

Restart Needed Changes to this flag require a restart

Deadlock detection interval in usec. (***Default*: 60000000** - *advanced*)

#### transaction\_disable\_heartbeat\_in\_tests

Restart Needed Changes to this flag require a restart

Disable heartbeat during test. (***Default*: false**)

#### transaction\_heartbeat\_usec

Restart Needed Changes to this flag require a restart

Interval of transaction heartbeat in usec. (***Default*: 500000**)

#### transaction\_manager\_queue\_limit

Restart Needed Changes to this flag require a restart

Max number of tasks used by transaction manager (***Default*: 500**)

#### transaction\_manager\_workers\_limit

Restart Needed Changes to this flag require a restart

Max number of workers used by transaction manager (***Default*: 50**)

#### transaction\_max\_missed\_heartbeat\_periods

Maximum heartbeat periods that a pending transaction can miss before the transaction coordinator expires the transaction. The total expiration time in microseconds is transaction\_heartbeat\_usec times transaction\_max\_missed\_heartbeat\_periods. The value passed to this flag may be fractional. (***Default*: 30** - *runtime*)

#### transaction\_min\_running\_check\_delay\_ms

Restart Needed Changes to this flag require a restart

When transaction with minimal start hybrid time is updated at transaction participant, we wait at least this number of milliseconds before checking its status at transaction coordinator. Used for the optimization that deletes provisional records RocksDB SSTable files. (***Default*: 50**)

#### transaction\_min\_running\_check\_interval\_ms

Restart Needed Changes to this flag require a restart

While transaction with minimal start hybrid time remains the same, we will try to check its status at transaction coordinator at regular intervals this long (ms). Used for the optimization that deletes provisional records RocksDB SSTable files. (***Default*: 250**)

#### transaction\_pool\_cleanup\_interval\_ms

Restart Needed Changes to this flag require a restart

How frequently we should cleanup transaction pool (***Default*: 5000**)

#### transaction\_pool\_reserve\_factor

Restart Needed Changes to this flag require a restart

During cleanup we will preserve number of transactions in pool that equals to average number or take requests during prepration multiplied by this factor (***Default*: 2**)

#### transaction\_resend\_applying\_interval\_usec

Restart Needed Changes to this flag require a restart

Transaction resend applying interval in usec. (***Default*: 5000000**)

#### transaction\_rpc\_timeout\_ms

Timeout used by transaction related RPCs in milliseconds. (***Default*: 5000** - *runtime*)

#### transaction\_status\_tablet\_log\_segment\_size\_bytes

Restart Needed Changes to this flag require a restart

The segment size for transaction status tablet log roll-overs, in bytes. (***Default*: 4194304**)

#### transaction\_table\_check\_interval\_sec

Interval in seconds for checking if the transaction status tables have expected tablets. Only used when autoscale\_transaction\_tables is true. (***Default*: 900** - *advanced, runtime*)

#### transaction\_table\_num\_tablets

Number of tablets to use when creating the transaction status table.0 to use transaction\_table\_num\_tablets\_per\_tserver. (***Default*: 0** - *runtime*)

#### transaction\_table\_num\_tablets\_per\_tserver

The default number of tablets per tablet server for transaction status table. If the value is -1, the system automatically determines an appropriate value based on number of CPU cores. (***Default*: -1** - *runtime*)

#### transaction\_tables\_use\_preferred\_zones

Choose whether transaction tablet leaders respect preferred zones. (***Default*: false** - *runtime*)

#### transactions\_cleanup\_cache\_size

Restart Needed Changes to this flag require a restart

Transactions cleanup cache size. (***Default*: 256**)

#### transactions\_poll\_check\_aborted

Restart Needed Changes to this flag require a restart

Check aborted transactions during poll. (***Default*: true**)

#### transactions\_status\_poll\_interval\_ms

Restart Needed Changes to this flag require a restart

Transactions poll interval. (***Default*: 500**)

#### tryfromenv

Restart Needed Changes to this flag require a restart

set flags from the environment if present (***Default*: None** - *advanced, stable*)

#### ts\_admin\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ts\_admin\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the TS admin service (***Default*: 50** - *advanced*)

#### ts\_backup\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ts\_backup\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the TS backup service (***Default*: 50** - *advanced*)

#### ts\_consensus\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ts\_consensus\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the TS consensus service. (***Default*: 5000** - *advanced*)

#### ts\_remote\_bootstrap\_svc\_num\_threads

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ts\_remote\_bootstrap\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the TS remote bootstrap service (***Default*: 50** - *advanced*)

#### ts\_shared\_memory\_setup\_max\_wait\_ms

Maximum wait time for tserver to set up shared memory state (***Default*: 10000** - *runtime*)

#### tserver\_enable\_metrics\_snapshotter

Restart Needed Changes to this flag require a restart

Should metrics snapshotter be enabled (***Default*: false**)

#### tserver\_heartbeat\_add\_replication\_status

Add replication status to heartbeats tserver sends to master (***Default*: true** - *runtime*)

#### tserver\_heartbeat\_metrics\_add\_drive\_data

Add drive data to metrics which tserver sends to master (***Default*: true** - *runtime*)

#### tserver\_heartbeat\_metrics\_add\_leader\_info

Add leader info to metrics tserver sends to master (***Default*: true** - *runtime*)

#### tserver\_heartbeat\_metrics\_add\_replication\_status

Add replication status to metrics tserver sends to master (***Default*: true** - *runtime*)

#### tserver\_heartbeat\_metrics\_interval\_ms

Interval (in milliseconds) at which tserver sends its metrics in a heartbeat to master. (***Default*: 5000** - *runtime*)

#### tserver\_master\_addrs

Restart Needed Changes to this flag require a restart

Comma separated addresses of the masters which the tablet server should connect to. The CQL proxy reads this flag as well to determine the new set of masters (***Default*: 127.0.0.1:7100** - *stable*)

#### tserver\_master\_replication\_factor

Restart Needed Changes to this flag require a restart

Number of master replicas. By default it is detected based on tserver\_master\_addrs option, but could be specified explicitly together with passing one or more master service domain name and port through tserver\_master\_addrs for masters auto-discovery when running on Kubernetes. (***Default*: 0**)

#### tserver\_metrics\_snapshotter\_yb\_client\_default\_timeout\_ms

Restart Needed Changes to this flag require a restart

Default timeout for the YBClient embedded into the tablet server that is used by metrics snapshotter. (***Default*: 5000** - *advanced*)

#### tserver\_tcmalloc\_max\_total\_thread\_cache\_bytes

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### tserver\_unresponsive\_timeout\_ms

The period of time that a Master can go without receiving a heartbeat from a tablet server before considering it unresponsive. Unresponsive servers are not selected when assigning replicas during table creation or re-replication. (***Default*: 60000** - *advanced, runtime*)

#### tserver\_yb\_client\_default\_timeout\_ms

Restart Needed Changes to this flag require a restart

Default timeout for the YBClient embedded into the tablet server that is used for distributed transactions. (***Default*: 60000**)

#### txn\_max\_apply\_batch\_records

Restart Needed Changes to this flag require a restart

Max number of apply records allowed in single RocksDB batch. When a transaction's data in one tablet does not fit into specified number of records, it will be applied using multiple RocksDB write batches. (***Default*: 100000**)

#### txn\_print\_trace\_every\_n

Controls the rate at which txn traces are printed. Setting this to 0 disables printing the collected traces. (***Default*: 0** - *advanced, runtime*)

#### txn\_print\_trace\_on\_error

Controls whether to always print txn traces on error. (***Default*: false** - *advanced, runtime*)

#### txn\_slow\_op\_threshold\_ms

Controls the rate at which txn traces are printed. Setting this to 0 disables printing the collected traces. (***Default*: 0** - *advanced, runtime*)

#### txn\_table\_wait\_min\_ts\_count

Minimum Number of TS to wait for before creating the transaction status table. Default value is 1. We wait for atleast --replication\_factor if this value is smaller than that (***Default*: 1** - *advanced, runtime*)

#### undefok

Restart Needed Changes to this flag require a restart

comma-separated list of flag names that it is okay to specify on the command line even if the program does not define a flag with that name. IMPORTANT: flags in this list that have arguments MUST use the flag=value format (***Default*: None** - *advanced, stable*)

#### universe\_key\_client\_max\_delay\_ms

Maximum Time in microseconds that an instance of Backoff\_waiter waits before retrying to get the Universe key registry. (***Default*: 2000** - *runtime*)

#### unresponsive\_ts\_rpc\_retry\_limit

After this number of retries (or unresponsive\_ts\_rpc\_timeout\_ms expires, whichever happens first), the master will stop attempting to contact a tablet server or master in order to perform operations such as deleting a tablet. (***Default*: 20** - *advanced, runtime*)

#### unresponsive\_ts\_rpc\_timeout\_ms

After this amount of time (or after we have retried unresponsive\_ts\_rpc\_retry\_limit times, whichever happens first), the master will stop attempting to contact a tablet server or master in order to perform operations such as deleting a tablet. (***Default*: 900000** - *advanced, runtime*)

#### update\_all\_tablets\_upon\_network\_failure

If this is enabled, then pon receiving a network error, we mark the remote server as being unreachable for all tablets in metacache, instead of the single tablet which issued the rpc. (***Default*: true** - *runtime*)

#### update\_metrics\_interval\_ms

How often to update xDC cluster metrics. (***Default*: 15000** - *runtime*)

#### update\_min\_cdc\_indices\_interval\_secs

How often to read cdc\_state 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 enable\_log\_retention\_by\_op\_idx is disabled, this flag has no effect. (***Default*: 60** - *runtime*)

#### update\_min\_cdc\_indices\_master\_interval\_secs

How often to read cdc\_state table on master and move the retention barriers for the sys catalog tablet. (***Default*: 300** - *runtime*)

#### update\_permissions\_cache\_msecs

Restart Needed Changes to this flag require a restart

How often the roles' permissions cache should be updated. 0 means never update it (***Default*: 2000**)

#### use\_bootstrap\_intent\_ht\_filter

Restart Needed Changes to this flag require a restart

Use min replay txn start time filter for bootstrap. (***Default*: true**)

#### use\_cache\_for\_partitions\_vtable

Whether we should use caching for system.partitions table. (***Default*: true** - *runtime*)

#### use\_cassandra\_authentication

Restart Needed Changes to this flag require a restart

If to require authentication on startup. (***Default*: false**)

#### use\_cgroups\_cpu

Restart Needed Changes to this flag require a restart

Use the cgroup CPU quota to determine the effective number of CPUs instead of the host CPU count. Useful for containerized deployments (e.g. Kubernetes) where the process is limited to a fraction of the host's CPUs via cgroup CPU quotas. (***Default*: false**)

#### use\_cgroups\_memory

Restart Needed Changes to this flag require a restart

use cgroup memory max value instead of total memory of the node. (***Default*: false** - *advanced*)

#### use\_client\_to\_server\_encryption

Restart Needed Changes to this flag require a restart

Use client to server encryption (***Default*: false**)

#### use\_create\_table\_leader\_hint

Whether the Master should hint which replica for each tablet should be leader initially on tablet creation. (***Default*: true** - *runtime*)

#### use\_docdb\_aware\_bloom\_filter

Restart Needed Changes to this flag require a restart

Whether to use the DocDbAwareFilterPolicy for both bloom storage and seeks. (***Default*: false**)

#### use\_fast\_backward\_scan

Restart Needed Changes to this flag require a restart

Use backward scan optimization to build a row in the reverse order for YSQL. (***Default*: true**)

#### use\_fast\_next\_for\_iteration

Whether intent aware iterator should use fast next feature. (***Default*: true** - *runtime*)

#### use\_hashed\_redis\_password

Restart Needed Changes to this flag require a restart

Store the hash of the redis passwords instead. (***Default*: true**)

#### use\_icu\_timezones

Restart Needed Changes to this flag require a restart

Use the new ICU library for timezones instead of boost (***Default*: true**)

#### use\_initial\_sys\_catalog\_snapshot

Deprecated (***Default*: false** - *deprecated, runtime*)

#### use\_libbacktrace

Restart Needed Changes to this flag require a restart

Whether to use the libbacktrace library for symbolizing stack traces (***Default*: false**)

#### use\_memory\_defaults\_optimized\_for\_ysql

Restart Needed Changes to this flag require a restart

If true, the recommended defaults for the memory usage settings take into account the amount of RAM and cores available and are optimized for using YSQL. If false, the recommended defaults will be the old defaults, which are more suitable for YCQL but do not take into account the amount of RAM and cores available. (***Default*: false**)

#### use\_monotime\_for\_traces

Flag to enable use of MonoTime::Now() instead of CoarseMonoClock::Now(). CoarseMonoClock is much cheaper so it is better to use it. However if we need more accurate sub-millisecond level breakdown, we could use MonoTime. (***Default*: false** - *advanced, runtime*)

#### use\_multi\_level\_index

Restart Needed Changes to this flag require a restart

Whether to use multi-level data index. (***Default*: true**)

#### use\_node\_hostname\_for\_local\_tserver

Restart Needed Changes to this flag require a restart

Connect to local t-server by using host name instead of local IP (***Default*: false**)

#### use\_node\_to\_node\_encryption

Restart Needed Changes to this flag require a restart

Use node to node encryption. (***Default*: false**)

#### use\_offset\_based\_key\_decoding

Deprecated (***Default*: false** - *deprecated, runtime*)

#### use\_parent\_table\_id\_field

Whether to use the new schema for colocated tables based on the parent\_table\_id field. (***Default*: true** - *advanced, stable, auto, runtime*)

#### use\_preelection

Restart Needed Changes to this flag require a restart

Whether to use pre election, before doing actual election. (***Default*: true**)

#### use\_priority\_thread\_pool\_for\_compactions

When true priority thread pool will be used for compactions, otherwise Env thread pool with Priority::LOW will be used. (***Default*: true** - *runtime*)

#### use\_priority\_thread\_pool\_for\_flushes

When true priority thread pool will be used for flushes, otherwise Env thread pool with Priority::HIGH will be used. (***Default*: false** - *runtime*)

#### use\_private\_ip

Restart Needed Changes to this flag require a restart

When to use private IP for connection. cloud - would use private IP if destination node is located in the same cloud. region - would use private IP if destination node is located in the same cloud and region. zone - would use private IP if destination node is located in the same cloud, region and zone.never - would never use private IP if broadcast address is specified. (***Default*: never**)

#### use\_tablespace\_based\_transaction\_placement

Use tablespace-local locality will be used instead of region-local locality. (***Default*: false** - *runtime*)

#### use\_tablet\_report\_pending\_config\_op\_id

When true, allows master to rely on pending\_config\_op\_id received within TServer-&gt;Master heartbeats. (***Default*: true** - *stable, auto, runtime*)

#### v

Show all VLOG(m) messages for m &lt;= this. Overridable by --vmodule. (***Default*: 0** - *runtime, advanced, stable*)

#### vector\_index\_allow\_parallel\_compactions

Allow running multiple compactions of the same vector LSM in parallel. (***Default*: false** - *runtime*)

#### vector\_index\_backfill\_single\_chunk\_size\_bytes

If this flag is non zero, the vector index chunk created during backfill is sized so that the underlying HNSW index implementation is expected to consume at most this many bytes of memory for the chunk. When this flag is non zero, the indexed table will be read twice, the first time to calculate the amount of entries in it (up to the computed limit) and then during backfill. (***Default*: 0** - *runtime*)

#### vector\_index\_compaction\_always\_include\_size\_threshold

Always include chunks of smaller or equal size in a compaction by size ratio. (***Default*: 67108864** - *runtime*)

#### vector\_index\_compaction\_chunk\_max\_mem\_store\_size\_mb

Maximum in-memory size in megabytes for a single output chunk built during Vector LSM compaction. 0 means no limit (single output chunk). When non-zero, this flag takes priority over `vector_index_compaction_chunk_max_mem_store_size_percentage`. (***Default*: 0** - *runtime*)

#### vector\_index\_compaction\_chunk\_max\_mem\_store\_size\_percentage

Maximum in-memory size for a single output chunk built during Vector LSM compaction, as a percentage of the vector index block cache capacity. 0 means no limit (single output chunk). Values above 100 are treated as 100. Ignored when `vector_index_compaction_chunk_max_mem_store_size_mb` is non-zero or concurrent compactions are allowed (`vector_index_num_compactions_limit` is not 1). (***Default*: 60** - *runtime*)

#### vector\_index\_compaction\_priority\_start\_bound

Compaction task of Vector LSM that has number of chunk files less than specified will have priority 0. Set to -1 to use the value of 'compaction\_priority\_start\_bound' flag. (***Default*: 0** - *runtime*)

#### vector\_index\_compaction\_priority\_step\_size

Compaction task of Vector LSM that has number of chunk files greater than vector\_index\_compaction\_priority\_start\_bound will get 1 extra priority per every vector\_index\_compaction\_priority\_step\_size files. Set to -1 to use the value of 'compaction\_priority\_step\_size' flag. (***Default*: -1** - *runtime*)

#### vector\_index\_compaction\_size\_amp\_max\_merge\_width

The maximum number of chunks in a single background compaction by size amplification. 0 - no limit. (***Default*: 0** - *runtime*)

#### vector\_index\_compaction\_size\_amp\_max\_percent

The max size amplification for vector index background compaction. Set to -1 to disable compactions by size amplification. (***Default*: 200** - *runtime*)

#### vector\_index\_compaction\_size\_ratio\_max\_merge\_width

The maximum number of chunks in a single background compaction by size ratio. 0 - no limit. (***Default*: 0** - *runtime*)

#### vector\_index\_compaction\_size\_ratio\_min\_merge\_width

The minimum number of chunks in a single background compaction by size ratio. (***Default*: 4** - *runtime*)

#### vector\_index\_compaction\_size\_ratio\_percent

The percentage upto which chunks that are larger are include in vector index background compaction. Set to -100 to disable compactions by size ratio. (***Default*: 20** - *runtime*)

#### vector\_index\_concurrent\_reads

Restart Needed Changes to this flag require a restart

Max number of concurrent reads on vector index chunk. 0 - use number of CPUs for it (***Default*: 0**)

#### vector\_index\_concurrent\_writes

Restart Needed Changes to this flag require a restart

Number of threads used by vector index thread pool. 0 - use number of CPUs for it. (***Default*: 0**)

#### vector\_index\_dump\_stats

Whether to dump stats related to vector index search. (***Default*: false** - *runtime*)

#### vector\_index\_enable\_block\_cache\_reservation

Whether a usearch/hnswlib vector index chunk reserves space in the block cache for its in-memory footprint when it is created. Reserving lowers the cache's effective capacity so it evicts other blocks instead of letting total memory grow. Disable to restore the prior behavior where the index footprint is purely additive on top of the block cache. (***Default*: true** - *runtime*)

#### vector\_index\_enable\_compactions

Enable Vector LSM background compactions. (***Default*: true** - *runtime*)

#### vector\_index\_files\_number\_compaction\_trigger

Number of files to trigger Vector LSM background compaction. (***Default*: 5** - *runtime*)

#### vector\_index\_include\_into\_post\_split\_compaction

Whether to include vector indexes into tablet's post split compaction (***Default*: true** - *runtime*)

#### vector\_index\_initial\_chunk\_size

Number of vector in initial vector index chunk (***Default*: 100000** - *runtime*)

#### vector\_index\_max\_insert\_tasks

Limit for number of insert subtask for vector index. When this limit is reached, new inserts are blocked until necessary amount of tasks is released. (***Default*: 1000** - *runtime*)

#### vector\_index\_max\_merge\_tasks

Limit for number of merge subtasks for vector index compaction. The same thread pool as for inserts is used to run merge tasks. Set to 0 to disable usage of insert thread pool for merge tasks. (***Default*: 100** - *runtime*)

#### vector\_index\_no\_deletions\_skip\_filter\_check

Whether to skip filter check during vector index search if table does not have updates/deletions. (***Default*: true** - *runtime*)

#### vector\_index\_num\_compactions\_limit

Number of vector index compaction per tserver. 0 - no limit per tserver. (***Default*: 1** - *runtime*)

#### vector\_index\_skip\_filter\_check

Whether to skip filter check during vector index search. (***Default*: false** - *runtime*)

#### vector\_index\_task\_pool\_size

Pool size of insert subtasks for vector index. Pool is just used to avoid memory allocations and does not limit the total number of tasks. (***Default*: 1000** - *runtime*)

#### vector\_index\_task\_size

Number of vectors in a single insert subtask for vector index. When the number of elements in the batch is more than this times the task size multiple tasks will be used to insert batch. (***Default*: 16** - *runtime*)

#### vector\_index\_use\_hnswlib

Deprecated (***Default*: false** - *deprecated, runtime*)

#### vector\_index\_use\_yb\_hnsw

Deprecated (***Default*: false** - *deprecated, runtime*)

#### verify\_client\_endpoint

Restart Needed Changes to this flag require a restart

Whether client endpoint should be verified. (***Default*: false**)

#### verify\_encrypted\_meta\_block\_checksums

Restart Needed Changes to this flag require a restart

Whether to verify checksums for meta blocks of encrypted SSTables. (***Default*: true**)

#### verify\_index\_rate\_rows\_per\_sec

Rate of at which the indexed table's entries are read during index consistency checks.This is a per-tablet flag, i.e. a tserver responsible for multiple tablets could be processing more than this. (***Default*: 0** - *advanced, runtime*)

#### verify\_index\_read\_batch\_size

The batch size for reading the index. (***Default*: 128** - *advanced, runtime*)

#### verify\_server\_endpoint

Restart Needed Changes to this flag require a restart

Whether server endpoint should be verified. (***Default*: true**)

#### verify\_tablet\_data\_interval\_sec

Restart Needed Changes to this flag require a restart

The tick interval time for the tablet data integrity verification background task. This defaults to 0, which means disable the background task. (***Default*: 0**)

#### version

Restart Needed Changes to this flag require a restart

show version and build info and exit (***Default*: false** - *stable*)

#### version\_file\_json\_path

Restart Needed Changes to this flag require a restart

Path to directory containing JSON file with version info. (***Default*: None**)

#### vmodule

Restart Needed Changes to this flag require a restart

per-module verbose level. Argument is a comma-separated list of &lt;module name&gt;=&lt;log level&gt;. &lt;module name&gt; is a glob pattern, matched against the filename base (that is, name ignoring .cc/.h./-inl.h). &lt;log level&gt; overrides any value given by --v. (***Default*: None** - *advanced, stable*)

#### wait\_for\_safe\_op\_id\_to\_apply\_default\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout used by WaitForSafeOpIdToApply when it was not specified by caller. (***Default*: 15000**)

#### wait\_for\_ysql\_backends\_catalog\_version\_client\_master\_rpc\_margin\_ms

For a WaitForYsqlBackendsCatalogVersion client-to-master RPC, the amount of time to reserve out of the RPC timeout to respond back to client. If margin is zero, client will determine timeout without receiving response from master. Margin should be set high enough to cover processing and RPC time for the response. It should be lower than wait\_for\_ysql\_backends\_catalog\_version\_client\_master\_rpc\_timeout\_ms. (***Default*: 5000** - *advanced, runtime*)

#### wait\_for\_ysql\_backends\_catalog\_version\_client\_master\_rpc\_timeout\_ms

Restart Needed Changes to this flag require a restart

WaitForYsqlBackendsCatalogVersion client-to-master RPC timeout. Specifically, both the postgres-to-tserver and tserver-to-master RPC timeout. (***Default*: 20000** - *advanced*)

#### wait\_for\_ysql\_backends\_catalog\_version\_master\_tserver\_rpc\_timeout\_ms

WaitForYsqlBackendsCatalogVersion master-to-tserver RPC timeout. (***Default*: 60000** - *advanced, runtime*)

#### wait\_for\_ysql\_ddl\_verification\_timeout\_ms

Timeout in milliseconds to wait for YSQL DDL transaction verification to finish (***Default*: 200** - *runtime*)

#### wait\_hybrid\_time\_sleep\_interval\_us

Restart Needed Changes to this flag require a restart

Sleep interval in microseconds that will be used while waiting for specific hybrid time. (***Default*: 10000**)

#### wait\_queue\_poll\_interval\_ms

Restart Needed Changes to this flag require a restart

The interval duration between wait queue polls to fetch transaction statuses of active blockers. (***Default*: 100**)

#### wait\_replication\_drain\_retry\_timeout\_ms

Timeout in milliseconds in between CheckReplicationDrain calls to tservers in case of retries. (***Default*: 2000** - *runtime*)

#### wait\_replication\_drain\_tserver\_max\_retry

Maximum number of retry that a tserver will poll its tablets until the tabletsare all caught-up in the replication, before responding to the caller. (***Default*: 3** - *runtime*)

#### wait\_replication\_drain\_tserver\_retry\_interval\_ms

Time in microseconds that a tserver will sleep between each iteration of polling its tablets until the tablets are all caught-up in the replication. (***Default*: 100** - *runtime*)

#### web\_log\_bytes

The maximum number of bytes to display on the debug webserver's log page (***Default*: 1048576** - *advanced, runtime*)

#### webserver\_authentication\_domain

Restart Needed Changes to this flag require a restart

Domain used for debug webserver authentication (***Default*: None**)

#### webserver\_ca\_certificate\_file

Restart Needed Changes to this flag require a restart

The location of the certificate of the certificate authority of the debug webserver's SSL certificate file, in .pem format. If empty, system-wide CA certificates are used. (***Default*: None**)

#### webserver\_certificate\_file

Restart Needed Changes to this flag require a restart

The location of the debug webserver's SSL certificate file, in .pem format. If empty, webserver SSL support is not enabled (***Default*: None**)

#### webserver\_compression\_threshold\_kb

The threshold of response size above which compression is performed.Default value is 4KB (***Default*: 4** - *advanced, runtime*)

#### webserver\_doc\_root

Restart Needed Changes to this flag require a restart

Files under &lt;webserver\_doc\_root&gt; are accessible via the debug webserver. Defaults to $YB\_HOME/www, or if $YB\_HOME is not set, disables the document root (***Default*: None** - *advanced*)

#### webserver\_enable\_doc\_root

Restart Needed Changes to this flag require a restart

If true, webserver may serve static files from the webserver\_doc\_root (***Default*: true** - *advanced*)

#### webserver\_interface

Restart Needed Changes to this flag require a restart

Interface to start debug webserver on. If blank, webserver binds to first host IPpresent in the list of comma separated rpc\_bind\_addresses (***Default*: None** - *advanced*)

#### webserver\_max\_post\_length\_bytes

The maximum length of a POST request that will be accepted by the embedded web server. (***Default*: 1048576** - *advanced, runtime*)

#### webserver\_num\_worker\_threads

Restart Needed Changes to this flag require a restart

Maximum number of threads to start for handling web server requests (***Default*: 50** - *advanced*)

#### webserver\_password\_file

Restart Needed Changes to this flag require a restart

(Optional) Location of .htpasswd file containing user names and hashed passwords for debug webserver authentication (***Default*: None**)

#### webserver\_port

Restart Needed Changes to this flag require a restart

Port to bind to for the web server (***Default*: 7000** - *stable*)

#### webserver\_private\_key\_file

Restart Needed Changes to this flag require a restart

The location of the debug webserver's SSL private key file, in .pem format. If empty, the private key is assumed to be located in the same file as the certificate. (***Default*: None**)

#### webserver\_private\_key\_password

Restart Needed Changes to this flag require a restart

The password for the debug webserver's SSL private key. If empty, no password is used. (***Default*: None**)

#### webserver\_redirect\_http\_to\_https

Restart Needed Changes to this flag require a restart

Redirect HTTP requests to the embedded webserver to HTTPS if HTTPS is enabled. (***Default*: false**)

#### webserver\_ssl\_ciphers

Restart Needed Changes to this flag require a restart

The set of allowed cipher suites that clients may connect with when using a secure connection.Must be listed in the OpenSSL format.When not provided, falls back to the value of FLAGS\_cipher\_list. (***Default*: None**)

#### webserver\_ssl\_min\_version

Restart Needed Changes to this flag require a restart

The minimum protocol version that the webserver will allow clients to use when using a secure connection i.e. when SSL support is enabled. The only accepted value is 'tlsv1.2'. (***Default*: tlsv1.2**)

#### webserver\_strict\_transport\_security

Header is cached by the browser for the specified 'max-age' and forces it to redirect any http request to https to avoid man-in-the-middle attacks. The original http request is never sent. (***Default*: false** - *runtime*)

#### webserver\_zlib\_compression\_level

The zlib compression level.Lower compression levels result in faster execution, but less compression (***Default*: 1** - *advanced, runtime*)

#### writable\_file\_use\_fsync

Restart Needed Changes to this flag require a restart

Use fsync(2) instead of fdatasync(2) for synchronizing dirty data to disk. (***Default*: false** - *advanced*)

#### xcluster\_alter\_universe\_replication\_setup\_timeout\_ms

Maximum time in milliseconds to wait for setup replication to complete when altering universe replication. (***Default*: 600000** - *runtime*)

#### xcluster\_automatic\_mode\_schema\_handling\_v2

When enabled, xCluster pollers will notify master about all new schema versions instead of checking their local tablet for compatible schema versions. Master will ensure that all tablets have a compatible schema before updating the schema mappings. (***Default*: true** - *stable, auto, runtime*)

#### xcluster\_automatic\_target\_create\_table\_ddl\_rpc\_timeout\_sec

Timeout for YSQL Create Table DDL operations on xCluster automatic target databases. (***Default*: 3600** - *runtime*)

#### xcluster\_checkpoint\_max\_staleness\_secs

The maximum interval in seconds that the xcluster checkpoint map can go without being refreshed. If the map is not refreshed within this interval, it is considered stale, and all WAL segments will be retained until the next refresh. Setting to 0 will disable Opid-based and time-based WAL segment retention for XCluster. (***Default*: 300** - *runtime*)

#### xcluster\_cleanup\_tables\_frequency\_secs

Frequency at which we will clean up old xCluster automatic modeDDL replication table entries. 0 means do not perform cleanup. (***Default*: 1800** - *runtime*)

#### xcluster\_consistent\_wal\_safe\_time\_frequency\_ms

Frequency in milliseconds at which apply safe time is computed. (***Default*: 250** - *runtime*)

#### xcluster\_consumer\_thread\_pool\_size

Restart Needed Changes to this flag require a restart

Override the max thread pool size for XClusterConsumerHandler, which is used by XClusterPoller. If set to 0, then the thread pool will use the default size (number of cpus on the system). (***Default*: 0** - *advanced*)

#### xcluster\_ddl\_queue\_advisory\_lock\_key

Advisory lock key to use for DDL queue handler sessions. This ensures only one handler processes the DDL queue at a time. A value of 0 means no advisory lock will be used. (***Default*: 8674896558949688690** - *runtime*)

#### xcluster\_ddl\_queue\_enable\_transactional\_ddl

When enabled, multiple DDLs from the same source transaction are applied atomically within a transaction block on the target. (***Default*: true** - *runtime*)

#### xcluster\_ddl\_queue\_max\_retries\_per\_ddl

Maximum number of retries per DDL before we pause processing of the ddl\_queue table. (***Default*: 5** - *runtime*)

#### xcluster\_ddl\_queue\_statement\_timeout\_ms

Statement timeout to use for executing DDLs from the ddl\_queue table. 0 means no timeout. (***Default*: 0** - *runtime*)

#### xcluster\_ddl\_tables\_retention\_secs

Age of DDL replication table entries beyond which they are cleaned up. This needs to be at least one day. (***Default*: 604800** - *runtime*)

#### xcluster\_enable\_ddl\_replication

Enables xCluster automatic DDL replication. (***Default*: true** - *stable, auto, runtime*)

#### xcluster\_enable\_packed\_rows\_support

Enables rewriting of packed rows with xcluster consumer schema version (***Default*: true** - *advanced, runtime*)

#### xcluster\_enable\_subtxn\_abort\_propagation

Enable including information about which subtransactions aborted in CDC changes (***Default*: true** - *stable, auto, runtime*)

#### xcluster\_ensure\_sequence\_updates\_in\_wal\_timeout\_sec

Timeout for XClusterEnsureSequenceUpdatesAreInWal RPCs. (***Default*: 180** - *runtime*)

#### xcluster\_failover\_restoration\_poll\_interval\_ms

Delay, in milliseconds, between polls for the xCluster failover restoration state. (***Default*: 1000** - *runtime*)

#### xcluster\_failover\_restoration\_wait\_secs

Maximum number of seconds to wait for an xCluster failover restoration to finish before abandoning the wait and cleaning up the snapshot. (***Default*: 120** - *runtime*)

#### xcluster\_failover\_snapshot\_delete\_retry\_secs

Number of seconds to keep retrying to delete an xCluster failover snapshot before giving up. (***Default*: 30** - *runtime*)

#### xcluster\_failover\_snapshot\_retention\_hours

Retention time, in hours, for snapshots created during xCluster failover restore. (***Default*: 1** - *runtime*)

#### xcluster\_failover\_task\_timeout\_secs

Maximum number of seconds for the xCluster failover task to complete pre-restoration steps (pausing replication, creating and waiting for snapshots). (***Default*: 600** - *runtime*)

#### xcluster\_get\_changes\_max\_send\_rate\_mbps

Server-wide max send rate in megabytes per second for GetChanges response traffic. Throttles xcluster but not cdc traffic. (***Default*: 100** - *runtime*)

#### xcluster\_max\_old\_schema\_versions

Maximum number of old schema versions to keep in xCluster replication stream metadata (***Default*: 50** - *runtime*)

#### xcluster\_poller\_task\_delay\_considered\_stuck\_secs

Maximum amount of time between tasks of a xcluster poller above which it is considered as stuck. (***Default*: 3600** - *runtime*)

#### xcluster\_safe\_time\_log\_outliers\_interval\_secs

Frequency in seconds at which to log outlier tablets for xcluster safe time. (***Default*: 600** - *runtime*)

#### xcluster\_safe\_time\_slow\_tablet\_delta\_secs

Lag in seconds at which a tablet is considered an outlier for xcluster safe time. (***Default*: 600** - *runtime*)

#### xcluster\_safe\_time\_table\_num\_tablets

Restart Needed Changes to this flag require a restart

Number of tablets to use when creating the xcluster safe time table. 0 to use the same default num tablets as for regular tables. (***Default*: 1** - *advanced*)

#### xcluster\_safe\_time\_update\_interval\_secs

The interval at which xcluster safe time is computed. This controls the staleness of the data seen when performing database level xcluster consistent reads. If there is any additional lag in the replication, then it will add to the overall staleness of the data. (***Default*: 1** - *runtime*)

#### xcluster\_skip\_health\_check\_on\_replication\_setup

Skip health check on xCluster replication setup (***Default*: false** - *runtime*)

#### xcluster\_skip\_schema\_compatibility\_checks\_on\_alter

When xCluster replication sends a DDL change, skip checks for any schema compatibility (***Default*: false** - *runtime*)

#### xcluster\_store\_older\_schema\_versions

When set, enables storing multiple older schema versions in xCluster replication stream metadata instead of just storing the current and previous schema versions. (***Default*: true** - *stable, auto, runtime*)

#### xcluster\_svc\_queue\_length

Restart Needed Changes to this flag require a restart

RPC queue length for the xCluster service (***Default*: 5000** - *advanced*)

#### xcluster\_use\_encoded\_key\_filter

use the encoded key range for filtering xCluster intents at the time of APPLY (***Default*: true** - *stable, auto, runtime*)

#### xcluster\_wait\_on\_ddl\_alter

Deprecated (***Default*: false** - *deprecated, runtime*)

#### xcluster\_ysql\_statement\_timeout\_sec

Timeout for YSQL statements executed during xCluster operations. (***Default*: 120** - *runtime*)

#### yb\_backend\_oom\_score\_adj

Restart Needed Changes to this flag require a restart

oom\_score\_adj of postgres backends in linux environments (***Default*: 900**)

#### yb\_client\_admin\_operation\_timeout\_sec

Restart Needed Changes to this flag require a restart

The number of seconds after which an admin operation should timeout. (***Default*: 120**)

#### yb\_client\_admin\_rpc\_timeout\_sec

Restart Needed Changes to this flag require a restart

The number of seconds after which an admin RPC should timeout. (***Default*: 60**)

#### yb\_client\_num\_reactors

Restart Needed Changes to this flag require a restart

Number of reactor threads for the yb client to communicate with different tservers. (***Default*: 16**)

#### yb\_enable\_cdc\_consistent\_snapshot\_streams

Enable support for CDC Consistent Snapshot Streams (***Default*: true** - *stable, auto, runtime*)

#### yb\_enable\_read\_committed\_isolation

Restart Needed Changes to this flag require a restart

Defines how READ COMMITTED (which is our default SQL-layer isolation) and READ UNCOMMITTED are mapped internally. If false (default), both map to the stricter REPEATABLE READ implementation. If true, both use the new READ COMMITTED implementation instead. (***Default*: false**)

#### yb\_enable\_valgrind

Restart Needed Changes to this flag require a restart

True to run postgres under Valgrind. Must compile with --no-tcmalloc (***Default*: false**)

#### yb\_hnsw\_keep\_new\_blocks\_in\_cache

Whether to keep new generated blocks in cache after YbHnsw index is built. (***Default*: false** - *runtime*)

#### yb\_hnsw\_max\_block\_size

Individual block max size in YbHnsw vector index (***Default*: 65536** - *runtime*)

#### yb\_max\_recursion\_depth

Restart Needed Changes to this flag require a restart

Maximum recursion depth for YSQL functions. Currently, this affects only expression pushdown for regex functions. (***Default*: 2000**)

#### yb\_num\_shards\_per\_tserver

The default number of shards per table per tablet server when a table is created. If the value is -1, the system automatically determines an appropriate value based on the number of CPU cores; it is determined to 1 if enable\_automatic\_tablet\_splitting is set to true. (***Default*: -1** - *runtime*)

#### yb\_pg\_terminate\_child\_backend

Restart Needed Changes to this flag require a restart

Terminate other active server processes when a backend is killed (***Default*: false**)

#### yb\_system\_namespace\_readonly

Set system keyspace read-only. (***Default*: true** - *runtime*)

#### yb\_test\_name

Restart Needed Changes to this flag require a restart

Specifies test name this daemon is running as part of. (***Default*: None**)

#### yb\_webserver\_oom\_score\_adj

Restart Needed Changes to this flag require a restart

oom\_score\_adj of YSQL webserver in linux environments (***Default*: 900**)

#### ybclient\_print\_trace\_every\_n

Controls the rate at which traces from ybclient are printed. Setting this to 0 disables printing the collected traces. (***Default*: 0** - *advanced, runtime*)

#### ycql\_allow\_cassandra\_drop

When true, stops the regeneration of the cassandra user on restart of the cluster. (***Default*: true** - *stable, auto, runtime*)

#### ycql\_allow\_in\_op\_with\_order\_by

Restart Needed Changes to this flag require a restart

Allow IN to be used with ORDER BY clause (***Default*: false** - *advanced*)

#### ycql\_allow\_local\_calls\_in\_curr\_thread

Whether or not to allow local calls on the RPC thread. (***Default*: true** - *runtime*)

#### ycql\_allow\_non\_authenticated\_password\_reset

If to allow non-authenticated user to reset the password. (***Default*: false** - *runtime*)

#### ycql\_audit\_excluded\_categories

Restart Needed Changes to this flag require a restart

Comma separated list of categories to be excluded from the audit log (***Default*: None**)

#### ycql\_audit\_excluded\_keyspaces

Restart Needed Changes to this flag require a restart

Comma separated list of keyspaces to be excluded from the audit log (***Default*: system,system\_schema,system\_virtual\_schema,system\_auth**)

#### ycql\_audit\_excluded\_users

Restart Needed Changes to this flag require a restart

Comma separated list of users to be excluded from the audit log (***Default*: None**)

#### ycql\_audit\_included\_categories

Restart Needed Changes to this flag require a restart

Comma separated list of categories to be included in the audit log, if none - includes all (non-excluded) categories (***Default*: None**)

#### ycql\_audit\_included\_keyspaces

Restart Needed Changes to this flag require a restart

Comma separated list of keyspaces to be included in the audit log, if none - includes all (non-excluded) keyspaces (***Default*: None**)

#### ycql\_audit\_included\_users

Restart Needed Changes to this flag require a restart

Comma separated list of users to be included in the audit log, if none - includes all (non-excluded) users (***Default*: None**)

#### ycql\_audit\_log\_level

Restart Needed Changes to this flag require a restart

Severity level at which an audit will be logged. Could be INFO, WARNING, or ERROR (***Default*: ERROR**)

#### ycql\_bind\_collection\_assignment\_using\_column\_name

Enable using column name for binding the value of subscripted collection column (***Default*: false** - *runtime*)

#### ycql\_cache\_login\_info

Restart Needed Changes to this flag require a restart

Use authentication information cached locally. (***Default*: false**)

#### ycql\_consistent\_transactional\_paging

Restart Needed Changes to this flag require a restart

Whether to enforce consistency of data returned for second page and beyond for YCQL queries on transactional tables. If true, read restart errors could be returned to prevent inconsistency. If false, no read restart errors are returned but the data may be stale. The latter is preferable for long scans. The data returned for the first page of results is never stale regardless of this flag. (***Default*: false**)

#### ycql\_disable\_index\_updating\_optimization

Restart Needed Changes to this flag require a restart

If true all secondary indexes must be updated even if the update does not change the index data. (***Default*: false** - *advanced*)

#### ycql\_enable\_alter\_rename\_column\_with\_index

Whether renaming a column which is used in an index is enabled. (***Default*: false** - *advanced, runtime*)

#### ycql\_enable\_audit\_log

Enable YCQL audit. Use ycql\_audit\_* flags for fine-grained configuration (***Default*: false** - *runtime*)

#### ycql\_enable\_packed\_row

Whether packed row is enabled for YCQL. (***Default*: false** - *runtime*)

#### ycql\_enable\_stat\_statements

If enabled, it will track queries and dump the metrics on http://localhost:12000/statements. (***Default*: true** - *runtime*)

#### ycql\_enable\_tracing\_flag

If enabled, setting TRACING ON in cqlsh will cause the server to enable tracing for the requested RPCs and print them. Use this as a safety flag to disable tracing if an errant application has TRACING enabled by mistake. (***Default*: true** - *runtime*)

#### ycql\_ident\_conf\_csv

Restart Needed Changes to this flag require a restart

CSV formatted line representing a list of identity mapping rules (in order). Each line contains two fields separated by space - IDP username and YCQL username. Only applicable in JWT authentication i.e. when ycql\_use\_jwt\_auth=true. (***Default*: None**)

#### ycql\_ignore\_group\_by\_error

YCQL currently does not support the GROUP BY clause. Enabling this flag suppresses the error and allows the clause to be ignored. If the flag is disabled, an error will be raised whenever a GROUP BY clause is encountered. (***Default*: true** - *runtime*)

#### ycql\_jsonb\_use\_member\_cache

Whether we use member cache during jsonb processing in YCQL. (***Default*: true** - *runtime*)

#### ycql\_jwt\_conf

Restart Needed Changes to this flag require a restart

The space-separated list of options to configure JWT authentication. The format is a list of 'key=value' pairs separated by space. Valid keys are: * jwt\_jwks\_url: The URL from where to fetch the Json Web Key Set of the Identity Provider (IDP). * jwt\_audiences: The list of accepted audiences. One of the items within the list must match the 'aud' claim present in the token. Multiple values can be provided as a comma-separated list. * jwt\_issuers: The comma-separated list of issuers (IDP) that are valid. One of the items within the list must match the 'iss' claim present in the token. * jwt\_matching\_claim\_key: Key of the claim which represents the identity of the user on the Identity Provider (IDP). Some common values are 'sub', 'email', 'groups', 'roles' etc. The default value is 'sub'. (***Default*: None**)

#### ycql\_jwt\_users\_to\_skip\_csv

Restart Needed Changes to this flag require a restart

Users that are authenticated via the local password check instead of JWT (if ycql\_use\_jwt\_auth=true). This is a comma separated list. (***Default*: None** - *sensitive\_info*)

#### ycql\_ldap\_base\_dn

Restart Needed Changes to this flag require a restart

Specifies the base directory to begin the user name search (***Default*: None**)

#### ycql\_ldap\_bind\_dn

Restart Needed Changes to this flag require a restart

Specifies the username to perform the initial search when doing search + bind authentication (***Default*: None** - *sensitive\_info*)

#### ycql\_ldap\_bind\_passwd

Restart Needed Changes to this flag require a restart

Password for username being used to perform the initial search when doing search + bind authentication (***Default*: None** - *sensitive\_info*)

#### ycql\_ldap\_search\_attribute

Restart Needed Changes to this flag require a restart

Attribute to match against the username in the search when doing search + bind authentication. If no attribute is specified, the uid attribute is used. (***Default*: None**)

#### ycql\_ldap\_search\_filter

Restart Needed Changes to this flag require a restart

The search filter to use when doing search + bind authentication. (***Default*: None**)

#### ycql\_ldap\_server

Restart Needed Changes to this flag require a restart

LDAP server of the form &lt;scheme&gt;://&lt;ip&gt;:&lt;port&gt; (***Default*: None**)

#### ycql\_ldap\_tls

Restart Needed Changes to this flag require a restart

Connect to LDAP server using TLS encryption. (***Default*: false**)

#### ycql\_ldap\_user\_prefix

Restart Needed Changes to this flag require a restart

String used for prepending the user name when forming the DN for binding to the LDAP server (***Default*: None**)

#### ycql\_ldap\_user\_suffix

Restart Needed Changes to this flag require a restart

String used for appending the user name when forming the DN for binding to the LDAP Server. (***Default*: None**)

#### ycql\_ldap\_users\_to\_skip\_csv

Restart Needed Changes to this flag require a restart

Users that are authenticated via the local password check instead of LDAP (if ycql\_use\_ldap=true). This is a comma separated list (***Default*: None** - *sensitive\_info*)

#### ycql\_num\_tablets

The number of tablets per YCQL table. Default value is -1. Colocated tables are not affected. If its value is not set (equals to -1) then (1) the value of yb\_num\_shards\_per\_tserver is used in conjunction with the number of tservers to determine the tablet count, (2) in case of low number of CPU cores (&lt;4) and enable\_automatic\_tablet\_splitting is set to true, neither the number of tservers nor yb\_num\_shards\_per\_tserver are taken into account to determine the tablet count, the value is determined based on the number of CPU cores only.If the user explicitly specifies a value of the tablet count in the Create Table DDL statement (with tablets = x syntax) then it takes precedence over the value of this flag. Needs to be set at tserver. (***Default*: -1** - *runtime*)

#### ycql\_packed\_row\_size\_limit

Restart Needed Changes to this flag require a restart

Packed row size limit for YCQL in bytes. 0 to make this equal to SSTable block size. (***Default*: 0**)

#### ycql\_require\_drop\_privs\_for\_truncate

Restart Needed Changes to this flag require a restart

Require DROP TABLE permission in order to truncate table (***Default*: false**)

#### ycql\_serial\_operation\_in\_transaction\_block

Restart Needed Changes to this flag require a restart

If true, operations within a transaction block must be executed in order, at least semantically speaking. (***Default*: true**)

#### ycql\_suppress\_group\_by\_error

This flag is deprecated, please use ycql\_ignore\_group\_by\_error (***Default*: false** - *stable, auto, runtime*)

#### ycql\_use\_jwt\_auth

Restart Needed Changes to this flag require a restart

Use JWT for authentication. (***Default*: false**)

#### ycql\_use\_ldap

Restart Needed Changes to this flag require a restart

Use LDAP for user logins (***Default*: false**)

#### ycql\_use\_local\_transaction\_tables

Whether or not to use local transaction tables when possible for YCQL transactions. (***Default*: false** - *runtime*)

#### yedis\_enable\_flush

Restart Needed Changes to this flag require a restart

Enables FLUSHDB and FLUSHALL commands in yedis. (***Default*: true**)

#### yql\_allow\_compatible\_schema\_versions

Allow YCQL requests to be accepted even if they originate from a client who is ahead of the server's schema, but is determined to be compatible with the current version. (***Default*: true** - *advanced, runtime*)

#### yql\_max\_value\_size

Restart Needed Changes to this flag require a restart

Maximum size of a value in the Yugabyte Query Layer (***Default*: 67108864**)

#### ysql\_allow\_duplicating\_repeatable\_read\_queries

Response with success when duplicate write request is detected, if case this request contains read time. (***Default*: true** - *runtime*)

#### ysql\_analyze\_dump\_intentsdb\_metrics

Whether to return changed intentsdb metrics for YSQL queries in RPC response. (***Default*: false** - *runtime*)

#### ysql\_analyze\_dump\_metrics

Whether to return changed metrics for YSQL queries in RPC response. (***Default*: true** - *runtime*)

#### ysql\_auth\_method

Restart Needed Changes to this flag require a restart

Authentication method for YSQL connections. Valid values: 'md5', 'scram-sha-256'. scram-sha-256 is preferred for better security. If openssl\_require\_fips is true then by default authentication method will be set to scram-sha-256 and the value of ysql\_auth\_method will be ignored. Note: Explicit auth methods in ysql\_hba\_conf\_csv take precedence over this flag. (***Default*: md5** - *hasnewinstallvalue*)

#### ysql\_auto\_add\_new\_index\_to\_bidirectional\_xcluster

If the indexed table is part of a bi-directional xCluster setup, then automatically add new indexes for this table to replication. This flag must be set on both universes, and the index must be created concurrently on both universes. (***Default*: true** - *runtime*)

#### ysql\_auto\_add\_new\_index\_to\_bidirectional\_xcluster\_infra

Determines if the system supports the capability of automatically adding ysql index to bi-directional xCluster. NOTE: Do not change this flag directly. If you want to disable the feature, use ysql\_auto\_add\_new\_index\_to\_bidirectional\_xcluster instead. (***Default*: true** - *stable, auto, runtime*)

#### ysql\_auto\_analyze\_batch\_size

The max number of tables the auto analyze service tries to analyze in a single ANALYZE statement. (***Default*: 10** - *runtime*)

#### ysql\_auto\_analyze\_cooldown\_per\_table\_scale\_factor

The per-table cooldown factor for the auto analyze service. The auto analyze service will not trigger an ANALYZE on a table if the last ANALYZE was less than ysql\_auto\_analyze\_cooldown\_per\_table\_scale\_factor * (t1 - t2) seconds ago, where t1 and t2 are the timestamps of the last two ANALYZEs. (***Default*: 2** - *runtime*)

#### ysql\_auto\_analyze\_db\_connect\_timeout\_ms

The timeout when trying to connect to the local PG instance for the PG auto analyze service. (***Default*: 5000** - *runtime*)

#### ysql\_auto\_analyze\_max\_cooldown\_per\_table

The maximum cooldown time for the auto analyze service in milliseconds.The cooldown between analyzes will grow by ysql\_auto\_analyze\_cooldown\_per\_table\_scale\_factor for each consecutive analyze until it passes this threshold, at which point the cooldown will be clamped to ysql\_auto\_analyze\_max\_cooldown\_per\_table and stay at that value forever. For example, if ysql\_auto\_analyze\_min\_cooldown\_per\_table is 1000ms, ysql\_auto\_analyze\_max\_cooldown\_per\_table is 10000ms, and ysql\_auto\_analyze\_cooldown\_per\_table\_scale\_factor is 2, then the cooldowns will be 1s, 2s, 4s, 8s, 10s, 10s, 10s, ... (***Default*: 86400000** - *runtime*)

#### ysql\_auto\_analyze\_max\_retry\_backoff

The maximum backoff of a failed ANALYZE. (***Default*: 600** - *runtime*)

#### ysql\_auto\_analyze\_min\_cooldown\_per\_table

The minimum cooldown time in milliseconds for the auto analyze service to trigger an ANALYZE on a table again after it has been analyzed. (***Default*: 10000** - *runtime*)

#### ysql\_auto\_analyze\_scale\_factor

A fraction of the table size to add to ysql\_auto\_analyze\_threshold when deciding whether to trigger an ANALYZE. (***Default*: 0.10000000000000001** - *runtime*)

#### ysql\_auto\_analyze\_threshold

The minimum number of mutations needed to trigger an ANALYZE on a table. (***Default*: 50** - *runtime*)

#### ysql\_backends\_catalog\_version\_job\_expiration\_sec

Expiration time in seconds for a YSQL BackendsCatalogVersionJob. Recommended to set several times higher than tserver wait\_for\_ysql\_backends\_catalog\_version\_client\_master\_rpc\_timeout\_ms flag. (***Default*: 120** - *advanced, runtime*)

#### ysql\_backward\_prefetch\_scale\_factor

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_beta\_features

Restart Needed Changes to this flag require a restart

Whether to enable all ysql beta features (***Default*: false**)

#### ysql\_block\_dangerous\_roles

Restart Needed Changes to this flag require a restart

Block roles that can potentially be used to escalate to superuser privileges. Intended to be used with superuser login disabled, such as in YBM. When true, this assumes those blocked roles are not already in use. (***Default*: false**)

#### ysql\_bypass\_anonymous\_savepoint\_ddl\_check

If true, bypass the check for interleaving SAVEPOINT & DDL in anonymous subtransactions (such as those created by PL/pgSQL EXCEPTION blocks) when DDL savepoint support is disabled. Setting to false enables strict detection and prevents potential orphaned tables. This flag should be deprecated when ysql\_yb\_enable\_ddl\_savepoint\_support is moved out of preview and turned on by default. (***Default*: true** - *hasnewinstallvalue, advanced, runtime*)

#### ysql\_catalog\_preload\_additional\_table\_list

Restart Needed Changes to this flag require a restart

A list of catalog tables that YSQL preloads additionally upon connection start-up and cache refreshes. Catalog table names must start with pg\_.Invalid catalog names are ignored. Comma separated. Example: pg\_range,pg\_proc.If both ysql\_catalog\_preload\_additional\_tables and ysql\_catalog\_preload\_additional\_table\_list are set, we take a union of both the default list and the user-specified list. (***Default*: None**)

#### ysql\_catalog\_preload\_additional\_tables

Restart Needed Changes to this flag require a restart

If true, YB catalog preloads a default set of tables upon connection creation and cache refresh: pg\_am,pg\_amproc,pg\_cast,pg\_cast,pg\_inherits,pg\_policy,pg\_proc,pg\_tablespace,pg\_trigger. (***Default*: false**)

#### ysql\_cdc\_active\_replication\_slot\_window\_ms

Determines the window in milliseconds in which if a client has consumed the changes of a ReplicationSlot across any tablet, then it is considered to be actively used. ReplicationSlots which haven't been used in this interval areconsidered to be inactive. (***Default*: 60000** - *advanced, runtime*)

#### ysql\_client\_read\_write\_timeout\_ms

Restart Needed Changes to this flag require a restart

Timeout for YSQL's yb-client read/write operations. Falls back on max(client\_read\_write\_timeout\_ms, 600s) if set to -1. (***Default*: -1**)

#### ysql\_clone\_copy\_pg\_statistics

When true, clone operations include pg\_statistic data by passing --with-statistics to ysql\_dump. (***Default*: true** - *runtime*)

#### ysql\_clone\_disable\_connections

Disable connections to the cloned database during the clone process. (***Default*: true** - *runtime*)

#### ysql\_clone\_pg\_schema\_rpc\_timeout\_ms

Timeout used by the master when attempting to clone PG Schema objects using an async task to tserver (***Default*: 600000** - *advanced, runtime*)

#### ysql\_cluster\_level\_mutation\_persist\_interval\_ms

Interval at which the reported node level table mutation counts are persisted to the underlying YCQL table by the central auto analyze service (***Default*: 10000** - *runtime*)

#### ysql\_cluster\_level\_mutation\_persist\_rpc\_timeout\_ms

Timeout for rpcs involved in persisting mutations in the auto-analyze table. (***Default*: 10000** - *runtime*)

#### ysql\_colocate\_database\_by\_default

Restart Needed Changes to this flag require a restart

Enable colocation by default on each database. (***Default*: false**)

#### ysql\_conn\_mgr\_alter\_guc\_adoption\_strategy

Restart Needed Changes to this flag require a restart

Defines strategy used by connection manager to adopt settings of ALTER statements modifying GUCs. The possible values are 'fluctuating', 'gradual' and 'connection\_static'. 'fluctuating'means no handling is done, 'gradual' means existing sessions are gradually shifted to newer backends i.e. they'll see new GUC settings done by ALTERS and 'connection\_static' means existing sessions will never see new GUC settings. In 'gradual' and 'connection\_static' modes, new sessions will always see effects of ALTERs executed before they were created (***Default*: gradual** - *connmgr*)

#### ysql\_conn\_mgr\_alter\_guc\_stale\_backend\_ttl\_ms

Restart Needed Changes to this flag require a restart

TTL of backends which don't have latest settings of ALTER GUC commands. When set to a positive value, stale backends will be terminated uniformly till the TTL period after execution of ALTER. -1 means that no action is taken on stale backends. 0 means that stale idle backends are destroyed immediately after execution of ALTER and stale active backends are destroyed when they get idle (***Default*: 60000** - *connmgr*)

#### ysql\_conn\_mgr\_auth\_msg\_timeout

Restart Needed Changes to this flag require a restart

Maximum time (in milliseconds) to wait for each startup & auth message from client. If the client does not send a startup or auth packet/response within this timeout, the connection is closed. Note that this is a per-message timeout, not a total timeout for the entire auth process. This timeout applies individually to the TLS handshake, startup packet, and each auth packet received from the client. (***Default*: 15000**)

#### ysql\_conn\_mgr\_backend\_drain\_timeout\_ms

Upper bound in milliseconds for which Connection Manager will synchronously wait for a backend's socket to be closed when closing the backend connection. Setting this to 0 skips the wait entirely, which may cause subsequent connection attempts to fail with 'sorry, too many clients already'. Setting it too high can cause Connection Manager worker threads to block on closing sockets, reducing throughput. (***Default*: 100** - *connmgr, runtime*)

#### ysql\_conn\_mgr\_control\_connection\_pool\_size

Restart Needed Changes to this flag require a restart

Maximum number of concurrent control connections in Ysql Connection Manager. If the value is zero, the default value is 0.1 * ysql\_max\_connections (***Default*: 0**)

#### ysql\_conn\_mgr\_deallocate\_if\_invalid\_prep\_stmt

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_conn\_mgr\_dowarmup

Restart Needed Changes to this flag require a restart

Enable precreation of server connections in Ysql Connection Manager. If set false, the server connections are created lazily (on-demand) in Ysql Connection Manager. (***Default*: false**)

#### ysql\_conn\_mgr\_dump\_heap\_snapshot\_interval

Restart Needed Changes to this flag require a restart

Dump tcmalloc current heap snapshot of Ysql Connection Manager process. If set to greater than 0, tcmalloc current heap snapshot will be dumped to the conn mgr logs after every ysql\_conn\_mgr\_dump\_heap\_snapshot\_interval number of seconds. (***Default*: 0**)

#### ysql\_conn\_mgr\_enable\_dealloc\_reconciliation

Restart Needed Changes to this flag require a restart

When enabled, the YSQL Connection Manager tracks prepared statements that have been deallocated on the backend in a per-server hashmap and defers evicting them from server hashmap till Sync boundary. If set to false, there can be correctness issues on sending deallocate and parse for same name of prep stmt within Sync boundary. (***Default*: true** - *connmgr*)

#### ysql\_conn\_mgr\_enable\_multi\_route\_pool

Restart Needed Changes to this flag require a restart

Enable the use of the dynamic multi-route pooling. When false, the older static pool sizes are used. (***Default*: true**)

#### ysql\_conn\_mgr\_enable\_parse\_queue\_tracking

Enables tracking of in-flight Parse operations in the YSQL Connection Manager. This is used so that prepared-statement state tracked on the Connection Manager can be reconciled with the backend when errors disrupt the expected packet sequence. When disabled, the Connection Manager's view of prepared statements can drift out of sync with the backend, which may surface as errors such as 'prepared statement does not exist'. (***Default*: true** - *connmgr, runtime*)

#### ysql\_conn\_mgr\_enable\_prep\_stmt\_close

Restart Needed Changes to this flag require a restart

When enabled, the YSQL Connection Manager forwards Close messages to the backend, which drops the prepared statement only if its cached plan is invalid or the connection is sticky; valid plans on non-sticky connections are retained for reuse across logical connections. When disabled, Close messages are handled as a no-op by the connection manager itself and never reach the backend, which can cause errors. Requires ysql\_conn\_mgr\_optimized\_extended\_query\_protocol to be enabled. (***Default*: true**)

#### ysql\_conn\_mgr\_idle\_time

Restart Needed Changes to this flag require a restart

Specifies the maximum idle (secs) time allowed for database connections created by the Ysql Connection Manager. If a database connection remains idle without serving a client connection for a duration equal to or exceeding the value provided, it will be automatically closed by the Ysql Connection Manager. (***Default*: 180**)

#### ysql\_conn\_mgr\_internal\_conn\_db

Restart Needed Changes to this flag require a restart

Database to which Ysql Connection Manager will make connections to inorder to execute internal queries. (***Default*: yugabyte**)

#### ysql\_conn\_mgr\_internal\_conn\_user

Restart Needed Changes to this flag require a restart

Username to be used by Ysql Connection Manager while creating database connections. (***Default*: yugabyte**)

#### ysql\_conn\_mgr\_jitter\_time

Restart Needed Changes to this flag require a restart

Specifies the jitter duration in seconds upto which an idle physical connection may be kept open beyond its idle timeout duration. This is to avoid sudden bursts of connections closing when dealing with connection burst sceanrios. (***Default*: 120**)

#### ysql\_conn\_mgr\_log\_max\_size

Restart Needed Changes to this flag require a restart

Max ysql connection manager log size(in bytes) after which the log file gets rolled over (***Default*: 0**)

#### ysql\_conn\_mgr\_log\_rotate\_interval

Restart Needed Changes to this flag require a restart

Duration(in secs) after which ysql connection manager log will get rolled over (***Default*: 0**)

#### ysql\_conn\_mgr\_log\_settings

Restart Needed Changes to this flag require a restart

Comma-separated list of log settings for Ysql Connection Manger, which may include 'log\_debug', 'log\_session', 'log\_query', and 'log\_stats'. Only the log settings present in this string will be enabled. Omitted settings will remain disabled. 'log\_config' is accepted for backward compatibility but has no effect, as config logging is always on. (***Default*: None** - *connmgr*)

#### ysql\_conn\_mgr\_max\_client\_connections

Restart Needed Changes to this flag require a restart

Total number of concurrent client connections that the Ysql Connection Manager allows. (***Default*: 10000**)

#### ysql\_conn\_mgr\_max\_conns\_per\_db

Restart Needed Changes to this flag require a restart

Maximum number of concurrent database connections Ysql Connection Manager can create per pool. (***Default*: 0**)

#### ysql\_conn\_mgr\_max\_phy\_conn\_percent

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_conn\_mgr\_max\_pools

Restart Needed Changes to this flag require a restart

Max total pools supported in YSQL Connection Manager. (***Default*: 10000**)

#### ysql\_conn\_mgr\_max\_prepared\_statements

Soft limit on prepared statements per server connection. When the limit is exceeded, theleast recently used statements are closed on the backend. This is enforced periodically at connection detach points, so the actual count may temporarily exceed this value. Set to 0 to disable LRU eviction. (***Default*: 100** - *connmgr, runtime*)

#### ysql\_conn\_mgr\_max\_query\_size

Restart Needed Changes to this flag require a restart

Maximum size of the query which connection manager can process in the deploy phase or whileforwarding the client query (***Default*: 4096**)

#### ysql\_conn\_mgr\_min\_conns\_per\_db

Restart Needed Changes to this flag require a restart

Minimum number of physical connections, that will be present in pool. This limit is not considered while closing a broken physical connection. (***Default*: 1**)

#### ysql\_conn\_mgr\_num\_workers

Restart Needed Changes to this flag require a restart

Number of worker threads used by Ysql Connection Manager. If set as 0 (default value), the number of worker threads will be half of the number of CPU cores. (***Default*: 0**)

#### ysql\_conn\_mgr\_optimized\_extended\_query\_protocol

Restart Needed Changes to this flag require a restart

Enable optimized extended query protocol in Ysql Connection Manager. If set to false, extended query protocol handling is fully correct but unoptimized. (***Default*: true**)

#### ysql\_conn\_mgr\_optimized\_session\_parameters

Restart Needed Changes to this flag require a restart

Optimize usage of session parameters in Ysql Connection Manager. If set to false, session parameters are replayed at transaction boundaries for each logical connection. (***Default*: true**)

#### ysql\_conn\_mgr\_password

Restart Needed Changes to this flag require a restart

Deprecated (***Default*: None** - *deprecated*)

#### ysql\_conn\_mgr\_pg\_conf\_wait\_timeout\_ms

Timeout in milliseconds for the YSQL Connection Manager to wait for the PostgreSQL process to be started (and hence for ysql\_pg.conf to be freshly written) before reading ysql\_pg.conf to build its own config. If the timeout expires the connection manager start fails and is retried by its supervisor. (***Default*: 15000** - *runtime*)

#### ysql\_conn\_mgr\_pool\_timeout

Restart Needed Changes to this flag require a restart

Server pool wait timeout(in ms) in Ysql Connection Manager. Time to wait in milliseconds for an available server. Disconnect client on timeout reach. If the value is set to zero, the client waits for the server connection indefinitely (***Default*: 0**)

#### ysql\_conn\_mgr\_port

Restart Needed Changes to this flag require a restart

Ysql Connection Manager port to which clients will connect. This must be different from the postgres port set via pgsql\_proxy\_bind\_address. Default is 5433. (***Default*: 5433**)

#### ysql\_conn\_mgr\_readahead\_buffer\_size

Restart Needed Changes to this flag require a restart

Set size of per-connection buffer used for io readahead operations in Ysql Connection Manager (***Default*: 8192**)

#### ysql\_conn\_mgr\_reserve\_internal\_conns

Restart Needed Changes to this flag require a restart

This flag specifies the number of physical connections to reserve from ysql\_max\_connectionsfor internal operations that bypass the YSQL Connection Manager. The remaining connectionsare then available for the connection manager's pool. For example, if ysql\_max\_connectionsis 300 and this flag is set to its default of 15, the YSQL Connection Manager will have aphysical connection limit of 285 (300 - 15). (***Default*: 15**)

#### ysql\_conn\_mgr\_sequence\_support\_mode

Restart Needed Changes to this flag require a restart

Sequence support mode when connection manager is enabled. When set to 'pooled\_without\_curval\_lastval', currval() and lastval() functions are not supported. When set to 'pooled\_with\_curval\_lastval', currval() and lastval() functions are supported. In these both settings, the monotonic order of sequence is not guaranteed if the 'ysql\_sequence\_cache\_method' is set to 'connection'. To support monotonic order also set this flag to 'session' (***Default*: pooled\_without\_curval\_lastval**)

#### ysql\_conn\_mgr\_server\_lifetime

Restart Needed Changes to this flag require a restart

Specifies the maximum duration (in seconds) that a backend PostgreSQL connection managed by Ysql Connection Manager can remain open after its creation. Once this time is reached, the connection is automatically closed, regardless of activity, ensuring that fresh backend connections are regularly maintained. (***Default*: 3600**)

#### ysql\_conn\_mgr\_socket\_listen\_backlog

Restart Needed Changes to this flag require a restart

Maximum number of pending TCP connections queued by the kernel on Connection Manager's listening socket (the backlog argument to listen(2)). Incoming connections beyond this limit may be refused or dropped during connection bursts. (***Default*: 128** - *connmgr*)

#### ysql\_conn\_mgr\_stats\_interval

Restart Needed Changes to this flag require a restart

Interval (in secs) at which the stats for Ysql Connection Manager will be updated. (***Default*: 1**)

#### ysql\_conn\_mgr\_superuser\_sticky

Restart Needed Changes to this flag require a restart

If enabled, make superuser connections sticky in Ysql Connection Manager. (***Default*: true**)

#### ysql\_conn\_mgr\_tcmalloc\_gc\_interval

Interval in seconds between tcmalloc page-heap GC checks in Ysql Connection Manager. Each tick invokes yb::MemTracker::GcTcmallocIfNeeded(); if the pageheap free-list overhead exceeds tcmalloc\_max\_free\_bytes\_percentage of currently-allocated bytes, the excess is returned to the OS. Set to 0 to disable periodic GC. (***Default*: 300** - *connmgr, runtime*)

#### ysql\_conn\_mgr\_tcmalloc\_sample\_period

Restart Needed Changes to this flag require a restart

Sets the interval at which TCMalloc should sample allocations for connection manager. Sampling is disabled if this is set to 0. This flag will only be in effect if ysql\_conn\_mgr\_dump\_heap\_snapshot\_interval is set to greater than 0 i.e if dumping heap snapshots is enabled. Otherwise we keep the sample period same as what google tcmalloc has set for connection manager process (***Default*: 1048576**)

#### ysql\_conn\_mgr\_tcp\_keepalive

Restart Needed Changes to this flag require a restart

TCP keepalive time in Ysql Connection Manager. Set to zero, to disable keepalive (***Default*: 15**)

#### ysql\_conn\_mgr\_tcp\_keepalive\_keep\_interval

Restart Needed Changes to this flag require a restart

TCP keepalive interval in Ysql Connection Manager. This is applicable if 'ysql\_conn\_mgr\_tcp\_keepalive' is enabled. (***Default*: 20**)

#### ysql\_conn\_mgr\_tcp\_keepalive\_probes

Restart Needed Changes to this flag require a restart

TCP keepalive probes in Ysql Connection Manager. This is applicable if 'ysql\_conn\_mgr\_tcp\_keepalive' is enabled. (***Default*: 4**)

#### ysql\_conn\_mgr\_tcp\_keepalive\_usr\_timeout

Restart Needed Changes to this flag require a restart

TCP user timeout in Ysql Connection Manager. This is applicable if 'ysql\_conn\_mgr\_tcp\_keepalive' is enabled. (***Default*: 0**)

#### ysql\_conn\_mgr\_use\_auth\_backend

Restart Needed Changes to this flag require a restart

Enable the use of the auth-backend for authentication of logical connections. When false, the auth-passthrough implementation is used. Auth Backend mode involves spawning a fresh PG backend to perform authentication for each incoming auth request.Auth Passthrough mode allows reusing spawned 'control backends' to authenticate clients and thus is faster as it skips needing to spawn a new backend process each time. (***Default*: false**)

#### ysql\_conn\_mgr\_use\_unix\_conn

Restart Needed Changes to this flag require a restart

Enable unix socket connections between Ysql Connection Manager and pg\_backend. For pg\_backend to accept unix socket connection by Ysql Connection Manager add 'local all yugabyte trust' in hba.conf (set ysql\_hba\_conf\_csv as 'local all yugabyte trust'). (***Default*: true**)

#### ysql\_conn\_mgr\_username

Restart Needed Changes to this flag require a restart

Deprecated (***Default*: None** - *deprecated*)

#### ysql\_conn\_mgr\_version\_matching

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_conn\_mgr\_version\_matching\_connect\_higher\_version

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_conn\_mgr\_wait\_for\_rfq\_on\_sync

Restart Needed Changes to this flag require a restart

When enabled, the YSQL Connection Manager stops reading further client packets after forwarding a Sync message and resumes only once the matching ReadyForQuery from the backend is received, preventing cross-Sync-boundary pipelining. if set to false, there can be correctness issues with pipelining. (***Default*: true** - *connmgr*)

#### ysql\_conn\_mgr\_wait\_timeout\_ms

Restart Needed Changes to this flag require a restart

ysql\_conn\_mgr\_wait\_timeout\_ms denotes the waiting time in ms, before getting timeout while sending/receiving the packets at the socket in ysql connection manager. It is seen asan builds requires large wait timeout than other builds (***Default*: 10000**)

#### ysql\_conn\_mgr\_warmup\_db

Restart Needed Changes to this flag require a restart

Database for which warmup needs to be done. (***Default*: yugabyte**)

#### ysql\_cron\_database\_name

Restart Needed Changes to this flag require a restart

Database in which pg\_cron metadata is kept. (***Default*: yugabyte**)

#### ysql\_datestyle

Restart Needed Changes to this flag require a restart

The ysql display format for date and time values (***Default*: ISO, MDY** - *pg*)

#### ysql\_ddl\_post\_processing\_failed\_verification\_retry\_secs

Frequency in seconds at which the master leader will re-trigger DDL verification for YSQL DDL transactions in kDdlPostProcessingFailed state. A value of -1 disables this background task. (***Default*: 300** - *runtime*)

#### ysql\_ddl\_rpc\_timeout\_sec

Timeout for YSQL DDL operations. (***Default*: 180** - *runtime*)

#### ysql\_ddl\_transaction\_wait\_for\_ddl\_verification

If set, DDL transactions will wait for DDL verification to complete before returning to the client. (***Default*: true** - *runtime*)

#### ysql\_debug\_log\_write\_requests

Print all YSQL write requests received by this process to the log.Note: Enabling this flag might log sensitive information. (***Default*: false** - *unsafe, advanced, runtime*)

#### ysql\_default\_transaction\_isolation

Restart Needed Changes to this flag require a restart

The ysql transaction isolation level (***Default*: read committed** - *pg*)

#### ysql\_disable\_global\_impact\_ddl\_statements

Restart Needed Changes to this flag require a restart

If true, disable global impact ddl statements in per database catalog version mode. (***Default*: false**)

#### ysql\_disable\_per\_tuple\_memory\_context\_in\_update\_relattrs

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_disable\_portal\_run\_context

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_disable\_server\_file\_access

Restart Needed Changes to this flag require a restart

If true, disables read, write, and execute of local server files. File access can be re-enabled if set to false. (***Default*: false**)

#### ysql\_enable\_auth

Restart Needed Changes to this flag require a restart

True to enforce password authentication for all connections (***Default*: false**)

#### ysql\_enable\_auto\_analyze

Enable Auto Analyze to automatically trigger ANALYZE for updating table statistics of tables which have changed more than a configurable threshold. (***Default*: false** - *runtime*)

#### ysql\_enable\_auto\_analyze\_infra

Enable the infra required for Auto Analyze (***Default*: true** - *stable, auto, runtime*)

#### ysql\_enable\_auto\_analyze\_service

Enable the Auto Analyze service which automatically triggers ANALYZE to update table statistics for tables which have changed more than a configurable threshold. (***Default*: false** - *experimental, runtime*)

#### ysql\_enable\_colocated\_tables\_with\_tablespaces

Restart Needed Changes to this flag require a restart

Enable creation of colocated tables with a specified placement policy via a tablespace.If true, creating a colocated table will colocate the table on an implicit tablegroup that is determined by the tablespace it uses. We turn the feature off by default. (***Default*: false**)

#### ysql\_enable\_concurrent\_ddl

Restart Needed Changes to this flag require a restart

\[This is an advanced flag, avoid using it unless recommended by Yugabyte support.] Use this flag to toggle support for concurrent DDLs. NOTE: This flag protects a feature that is currently in preview. In order for it to be modified, 'ysql\_enable\_concurrent\_ddl' must be set in --allowed\_preview\_flags\_csv. (***Default*: false** - *preview*)

#### ysql\_enable\_create\_database\_oid\_collision\_retry

Restart Needed Changes to this flag require a restart

Whether to retry YSQL CREATE DATABASE statement if oid collision happens. (***Default*: true** - *advanced*)

#### ysql\_enable\_db\_catalog\_version\_mode

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_enable\_documentdb

Restart Needed Changes to this flag require a restart

Enable DocumentDB YSQL extension NOTE: This flag protects a feature that is currently in preview. In order for it to be modified, 'ysql\_enable\_documentdb' must be set in --allowed\_preview\_flags\_csv. (***Default*: false** - *preview*)

#### ysql\_enable\_neghit\_full\_inheritscache

Restart Needed Changes to this flag require a restart

When set to true, a (fully) preloaded inherits cache returns negative cache hits right away without incurring a master lookup (***Default*: true**)

#### ysql\_enable\_object\_locking\_infra

Auto flag that controls whether table-level object locking can be safely enabled during upgrade. Both this flag and enable\_object\_locking\_for\_table\_locks must be true to enable the feature. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_enable\_pack\_full\_row\_update

Whether to enable packed row for full row update. (***Default*: false** - *runtime*)

#### ysql\_enable\_packed\_row

Whether packed row is enabled for YSQL. (***Default*: true** - *stable, auto, runtime*)

#### ysql\_enable\_packed\_row\_for\_colocated\_table

Whether to enable packed row for colocated tables. (***Default*: true** - *runtime*)

#### ysql\_enable\_pg\_export\_snapshot

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_enable\_profile

Restart Needed Changes to this flag require a restart

Enable PROFILE feature. (***Default*: false**)

#### ysql\_enable\_read\_request\_cache\_for\_connection\_auth

Restart Needed Changes to this flag require a restart

If true, the connection-auth catalog prefetch (pg\_authid, pg\_database, ...) is served from the tserver response cache, turning per-connection master reads for the auth catalogs into shared-cache hits under connection churn. Applies to both connection manager auth backends and regular (non connection manager) backends. Cached responses are keyed by catalog version. Not used when login profiles are active, because pg\_yb\_role\_profile is written outside a DDL context and would go stale. The connection-auth cache only affects the per-connection authentication lookup; the backend still rebuilds its full catalog cache and the shared relcache init file from fresh master data after authentication. Connections opened immediately after a role DDL (e.g. CREATE ROLE r then connect as r) may briefly observe the pre-DDL state until the new catalog version propagates via heartbeat. (***Default*: false**)

#### ysql\_enable\_read\_request\_caching

Restart Needed Changes to this flag require a restart

Enable read request caching (***Default*: true**)

#### ysql\_enable\_relcache\_init\_optimization

Restart Needed Changes to this flag require a restart

If applicable, new connections that need to rebuild relcache init file will not do it directly which can cause memory spike on such a new connection until it is disconnected. Instead an internal super user connection is made to perform the relcache init file rebuild. (***Default*: true**)

#### ysql\_enable\_scram\_channel\_binding

Restart Needed Changes to this flag require a restart

Offer the option of SCRAM-SHA-256-PLUS (i.e. SCRAM with channel binding) as an SASL method if the server supports it in the SASL-Authentication message. This flag is disabled by default as connection manager does not support SCRAM with channel binding and enabling it would cause different behaviour vis-a-vis direct connections to postgres. (***Default*: false**)

#### ysql\_enable\_table\_mutation\_counter

Restart Needed Changes to this flag require a restart

Enable counting of mutations on a per-table basis. These mutations are used to automatically trigger ANALYZE as soon as the mutations of a table cross a certain threshold (decided based on ysql\_auto\_analyze\_tuples\_threshold and ysql\_auto\_analyze\_scale\_factor). (***Default*: false** - *experimental*)

#### ysql\_enable\_update\_batching

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_enable\_write\_pipelining

Enable pipelining of write statements within a transaction. When enabled, multiple read and write statements in a transaction are executed concurrently, reducing overall latency. (***Default*: false** - *runtime*)

#### ysql\_follower\_reads\_avoid\_waiting\_for\_safe\_time

Controls whether ysql follower reads that specify a not-yet-safe read time should be rejected. This will force them to go to the leader, which will likely be faster than waiting for safe time to catch up. (***Default*: true** - *advanced, runtime*)

#### ysql\_forward\_rpcs\_to\_local\_tserver

Restart Needed Changes to this flag require a restart

DEPRECATED. Feature has been removed (***Default*: false**)

#### ysql\_hba\_conf

Restart Needed Changes to this flag require a restart

Deprecated, use `ysql_hba_conf_csv` flag instead. Comma separated list of postgres hba rules (in order) (***Default*: None** - *sensitive\_info*)

#### ysql\_hba\_conf\_csv

Restart Needed Changes to this flag require a restart

CSV formatted line represented list of postgres hba rules (in order) (***Default*: None** - *sensitive\_info*)

#### ysql\_ident\_conf\_csv

Restart Needed Changes to this flag require a restart

CSV formatted line represented list of postgres ident map rules (in order) (***Default*: None**)

#### ysql\_index\_backfill\_rpc\_timeout\_ms

Timeout used by the master when attempting to backfill a YSQL tablet during index creation. (***Default*: 300000** - *advanced, runtime*)

#### ysql\_lease\_refresher\_interval\_ms

The interval between requests from a tablet server to the master to refresh its ysql lease. (***Default*: 1000** - *runtime*)

#### ysql\_lease\_refresher\_rpc\_timeout\_ms

Timeout used for the TS-&gt;Master ysql lease refresh RPCs. (***Default*: 15000** - *runtime*)

#### ysql\_legacy\_colocated\_database\_creation

Restart Needed Changes to this flag require a restart

Whether to create a legacy colocated database using pre-Colocation GA implementation (***Default*: false** - *advanced*)

#### ysql\_log\_failed\_docdb\_requests

Restart Needed Changes to this flag require a restart

Log failed docdb requests. (***Default*: false**)

#### ysql\_log\_min\_duration\_statement

Sets the duration of each completed ysql statement to be logged if the statement ran for at least the specified number of milliseconds. Zero prints all queries. -1 turns this feature off. (***Default*: -1** - *pg, runtime*)

#### ysql\_log\_min\_messages

Restart Needed Changes to this flag require a restart

Sets the lowest ysql message level to log (***Default*: warning** - *pg*)

#### ysql\_log\_statement

Restart Needed Changes to this flag require a restart

Sets which types of ysql statements should be logged (***Default*: none** - *pg*)

#### ysql\_major\_upgrade\_user

Restart Needed Changes to this flag require a restart

The ysql user to use for ysql major upgrade operations when both: authentication is enabled, no yb-tserver process running on the yb-master nodes. This user should have superuser privileges and the password must be placed in the `.pgpass` file on all yb-master nodes. (***Default*: yugabyte\_upgrade**)

#### ysql\_mark\_update\_packed\_row

Whether to mark packed rows created from UPDATE operations with a flag. This allows CDC to differentiate between INSERT and UPDATE packed rows.Default is false. (***Default*: false** - *runtime*)

#### ysql\_max\_connections

Restart Needed Changes to this flag require a restart

Overrides the maximum number of concurrent ysql connections. If set to 0, Postgres will dynamically determine a platform-specific value (***Default*: 0** - *pg*)

#### ysql\_max\_invalidation\_message\_queue\_size

Maximum number of invalidation messages we keep for a given database. (***Default*: 1024** - *runtime*)

#### ysql\_max\_read\_restart\_attempts

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_max\_retries\_for\_release\_object\_lock\_requests

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_max\_write\_restart\_attempts

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_min\_new\_version\_ignored\_count

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_minimal\_catalog\_caches\_preload

Restart Needed Changes to this flag require a restart

Fill postgres' caches with system items only (***Default*: false**)

#### ysql\_node\_level\_mutation\_reporting\_interval\_ms

Interval at which the node level table mutation counts are sent to the auto analyze service which tracks table mutation counters at the cluster level. (***Default*: 5000** - *runtime*)

#### ysql\_node\_level\_mutation\_reporting\_timeout\_ms

Timeout for mutation reporting rpc to auto-analyze service. (***Default*: 5000** - *runtime*)

#### ysql\_non\_txn\_copy

Restart Needed Changes to this flag require a restart

Execute COPY inserts non-transactionally. (***Default*: false**)

#### ysql\_num\_shards\_per\_tserver

The default number of shards per YSQL table per tablet server when a table is created. If the value is -1, the system automatically determines an appropriate value based on the number of CPU cores; it is determined to 1 if enable\_automatic\_tablet\_splitting is set to true. (***Default*: -1** - *runtime*)

#### ysql\_num\_tablets

The number of tablets per YSQL table. Default value is 1 and is recommended only if enable\_automatic\_tablet\_splitting is true, otherwise the value might need to be set to -1. If its value is not set (equals to -1) then (1) the value of ysql\_num\_shards\_per\_tserver is used in conjunction with the number of tservers to determine the tablet count, (2) in case of low number of CPU cores (&lt;4) and enable\_automatic\_tablet\_splitting is set to true, neither the number of tservers nor ysql\_num\_shards\_per\_tserver are taken into account to determine the tablet count, the value is determined based on the number of CPU cores only.If the user explicitly specifies a value of the tablet count in the Create Table DDL statement (split into x tablets syntax) then it takes precedence over the value of this flag. Needs to be set at tserver. (***Default*: 1** - *runtime*)

#### ysql\_oid\_cache\_prefetch\_size

How many new OIDs the YSQL OID allocator should prefetch at a time from YB-Master. (***Default*: 256** - *runtime*)

#### ysql\_operation\_lease\_ttl\_client\_buffer\_ms

The difference between the duration masters and tservers use for ysql operation lease TTLs. This is non-zero to account for clock skew and give tservers time to clean up their existing pg sessions before the master leader ignores them for exclusive table lock requests. (***Default*: 2000** - *advanced, runtime*)

#### ysql\_optimize\_index\_row\_rewrites

When enabled, operations that rewrite index rows will be optimized to reduce the number of network round trips. (***Default*: true** - *advanced, runtime*)

#### ysql\_output\_buffer\_size

Restart Needed Changes to this flag require a restart

Size of postgres-level output buffer, in bytes. While fetched data resides within this buffer and hasn't been flushed to client yet, we're free to transparently restart operation in case of restart read error. (***Default*: 1048576**)

#### ysql\_output\_flush\_size

Restart Needed Changes to this flag require a restart

Size of a single flush in YSQL output buffer, in bytes. This is different from ysql\_output\_buffer\_size to decouple the amount of data sent in a single flush. This is done to match postgres behavior of flushing 8192 bytes. (***Default*: 8192** - *advanced*)

#### ysql\_pack\_inserted\_value

Enabled packing inserted columns into a single packed value in postgres layer. NOTE: This flag protects a feature that is currently in preview. In order for it to be modified, 'ysql\_pack\_inserted\_value' must be set in --allowed\_preview\_flags\_csv. (***Default*: false** - *preview, runtime*)

#### ysql\_packed\_row\_size\_limit

Restart Needed Changes to this flag require a restart

Packed row size limit for YSQL in bytes. 0 to make this equal to SSTable block size. (***Default*: 0**)

#### ysql\_pg\_conf

Restart Needed Changes to this flag require a restart

Deprecated, use the `ysql_pg_conf_csv` flag instead. Comma separated list of postgres setting assignments (***Default*: None**)

#### ysql\_pg\_conf\_csv

Restart Needed Changes to this flag require a restart

List of postgres configuration parameters separated with comma (,). Parameters should be of format: &lt;name&gt; \[=] &lt;value&gt;. The equal sign between name and value is optional. Whitespace is insignificant (except within a single-quoted (') parameter value) and blank parameters are ignored. Hash marks (#) designate the remainder of the parameter as a comment. Parameter values that are not simple identifiers or numbers must be single-quoted ('). To embed a single quote (') in a parameter value, write either two quotes('') (preferred) or backslash-quote (&#39;). If the parameter contains a comma (,) or double-quote (") then the entire parameter must be quoted with double-quote ("): "&lt;name&gt; \[=] &lt;value&gt;". Two double-quotes ("") in a double-quoted (") parameter represents a single double-quote ("). If the list contains multiple entries for the same parameter, all but the last one are ignored. NOTE: Not all parameters take effect at runtime. When changed at runtime, the postgresql.conf file is updated and a SIGHUP signal is used to notify the postmaster. Check [https://www.postgresql.org/docs/current/view-pg-settings.html](https://www.postgresql.org/docs/current/view-pg-settings.html "https://www.postgresql.org/docs/current/view-pg-settings.html") for information about which parameters take effect at runtime. (***Default*: None**)

#### ysql\_prefetch\_limit

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_preload\_pg\_authid\_for\_auth

If true, YSQL preloads the pg\_authid catalog caches (by-name and by-OID) before client authentication. Authentication reads pg\_authid by role name to fetch the stored password, and backend startup then reads it again by role OID for session-user setup and the superuser check; both happen before the regular catalog cache preload, so without this they incur a catalog cache miss on every new connection. pg\_authid is a shared catalog that is already prefetched at backend startup, so this only builds the cache entries from already-fetched data and adds no master read. (***Default*: true** - *runtime*)

#### ysql\_rc\_force\_pick\_read\_time\_on\_pg\_client

Restart Needed Changes to this flag require a restart

When resetting read time for a statement in Read Commited isolation level, pick read time on the PgClientService instead of allowing the tserver to pick one. (***Default*: false** - *advanced*)

#### ysql\_request\_limit

Restart Needed Changes to this flag require a restart

Maximum number of requests to be sent at once (***Default*: 1024**)

#### ysql\_scan\_deadline\_margin\_ms

Restart Needed Changes to this flag require a restart

Scan deadline is calculated by adding client timeout to the time when the request was received. It defines the moment in time when client has definitely timed out and if the request is yet in processing after the deadline, it can be canceled. Therefore to prevent client timeout, the request handler should return partial result and paging information some time before the deadline. That's what the ysql\_scan\_deadline\_margin\_ms is for. It should account for network and processing delays. (***Default*: 1000**)

#### ysql\_scan\_timeout\_multiplier

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_select\_parallelism

Number of read requests to issue in parallel to tablets of a table for SELECT.Positive values will be used as is. -1 will use max(16, tserver\_count * 2). (***Default*: -1** - *runtime*)

#### ysql\_sequence\_cache\_method

Restart Needed Changes to this flag require a restart

Where sequence values are cached for both existing and new sequences. Valid values are "connection" and "server" (***Default*: connection**)

#### ysql\_sequence\_cache\_minval

Restart Needed Changes to this flag require a restart

Set how many sequence numbers to be preallocated in cache. (***Default*: 100**)

#### ysql\_serializable\_isolation\_for\_ddl\_txn

Restart Needed Changes to this flag require a restart

Whether to use serializable isolation for separate DDL-only transactions. By default, repeatable read isolation is used. This flag should go away once full transactional DDL is implemented. (***Default*: false**)

#### ysql\_session\_max\_batch\_size

Restart Needed Changes to this flag require a restart

Use session variable ysql\_session\_max\_batch\_size instead. Maximum batch size for buffered writes between PostgreSQL server and YugaByte DocDB services (***Default*: 3072**)

#### ysql\_skip\_row\_lock\_for\_update

By default DocDB operations for YSQL take row-level locks. If set to true, DocDB will instead take finer column-level locks instead of locking the whole row. This may cause issues with data integrity for operations with implicit dependencies between columns. (***Default*: false** - *stable, auto, runtime*)

#### ysql\_sleep\_before\_retry\_on\_txn\_conflict

Restart Needed Changes to this flag require a restart

Whether to sleep before retrying the write on transaction conflicts. (***Default*: true**)

#### ysql\_stale\_catalog\_version\_min\_seconds

Minimum duration in seconds that a tserver may receive only older per-db catalog versions (without ever seeing an advance) from the master before crashing itself to resync. A random per-episode threshold is picked from \[min, min+150]. Replaces the count-based check controlled by ysql\_min\_new\_version\_ignored\_count, which was sensitive to heartbeat frequency (a burst of zero-delay heartbeats could trip the count even though the master had only been stale for tens of milliseconds). (***Default*: 30** - *runtime*)

#### ysql\_suppress\_unsafe\_alter\_notice

Restart Needed Changes to this flag require a restart

Suppress NOTICE on use of unsafe ALTER statements (***Default*: false**)

#### ysql\_suppress\_unsupported\_error

Restart Needed Changes to this flag require a restart

Suppress ERROR on use of unsupported SQL statement and use WARNING instead (***Default*: false**)

#### ysql\_tablespace\_info\_refresh\_secs

Restart Needed Changes to this flag require a restart

Frequency at which the table to tablespace information will be updated in master from pg catalog tables. A value of -1 disables the refresh task. (***Default*: 30**)

#### ysql\_timezone

Restart Needed Changes to this flag require a restart

Overrides the default ysql timezone for displaying and interpreting timestamps. If no value is provided, Postgres will determine one based on the environment (***Default*: None** - *pg*)

#### ysql\_transaction\_abort\_timeout\_ms

Restart Needed Changes to this flag require a restart

Max amount of time we can wait for active transactions to abort on a tablet after DDL (eg. DROP TABLE) is executed. This deadline is same as unresponsive\_ts\_rpc\_timeout\_ms (***Default*: 900000**)

#### ysql\_transaction\_bg\_task\_wait\_ms

Restart Needed Changes to this flag require a restart

Amount of time the catalog manager background task thread waits between runs (***Default*: 200**)

#### ysql\_trust\_local\_yugabyte\_connections

Restart Needed Changes to this flag require a restart

Trust YSQL connections via the local socket from the yugabyte user. (***Default*: true**)

#### ysql\_upgrade\_import\_stats

Import relation and attribute stats as part of the YSQL Major upgrade (***Default*: true** - *runtime*)

#### ysql\_upgrade\_postgres\_port

Port used to start the postgres process for ysql upgrade (***Default*: 5434** - *runtime*)

#### ysql\_use\_flat\_doc\_reader

Use DocDBTableReader optimization that relies on having at most 1 subkey for YSQL. (***Default*: true** - *runtime*)

#### ysql\_use\_optimized\_relcache\_update

Restart Needed Changes to this flag require a restart

Use optimized relcache update during connection startup and cache refresh. (***Default*: true**)

#### ysql\_use\_packed\_row\_v2

Whether to use packed row V2 when row packing is enabled. NOTE: This flag protects a feature that is currently in preview. In order for it to be modified, 'ysql\_use\_packed\_row\_v2' must be set in --allowed\_preview\_flags\_csv. (***Default*: false** - *preview, runtime*)

#### ysql\_use\_relcache\_file

Restart Needed Changes to this flag require a restart

Use relcache init file (***Default*: true**)

#### ysql\_wait\_until\_index\_permissions\_timeout\_ms

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_yb\_allow\_block\_based\_sampling\_algorithm

Allow YsqlSamplingAlgorithm::BLOCK\_BASED\_SAMPLING (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_allow\_dockey\_bounds

If true, allow lower\_bound/upper\_bound fields of PgsqlReadRequestPB to be DocKeys. Only applicable for hash-sharded tables. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_allow\_replication\_slot\_lsn\_types

Enable LSN types to be specified while creating replication slots. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_allow\_replication\_slot\_ordering\_modes

Enable ordering modes to be specified while creating replication slots. (***Default*: false** - *preview, pg, runtime*)

#### ysql\_yb\_allow\_separate\_requests\_for\_sampling\_stages

Allow using separate requests for block-based sampling stages (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_ash\_circular\_buffer\_size

Restart Needed Changes to this flag require a restart

Size (in KiBs) of ASH circular buffer that stores the samples (***Default*: 0** - *pg*)

#### ysql\_yb\_ash\_enable\_infra

Deprecated (***Default*: false** - *deprecated, runtime*)

#### ysql\_yb\_ash\_sample\_size

Number of samples captured from each component per sampling event (***Default*: 500** - *pg, runtime*)

#### ysql\_yb\_ash\_sampling\_interval

Deprecated (***Default*: 0** - *deprecated, runtime*)

#### ysql\_yb\_ash\_sampling\_interval\_ms

Time (in milliseconds) between two consecutive sampling events (***Default*: 1000** - *pg, runtime*)

#### ysql\_yb\_bnl\_batch\_size

Batch size of nested loop joins. (***Default*: 1024** - *pg, runtime*)

#### ysql\_yb\_bypass\_cond\_recheck

DEPRECATED: no-op. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_cdcsdk\_stream\_tables\_without\_primary\_key

When set to true, allows streaming of tables without primary keys for CDCSDK logical replication streams. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_conn\_mgr\_selective\_deallocate

When enabled, DEALLOCATE commands sent via YSQL Connection Manager only drop prepared statements whose cached plans are invalid (e.g. stale due to schema changes or search\_path drift), while preserving valid statements that may be shared across logical connections on the same backend. SQL-level statements (from PREPARE) are always dropped since they make the connection sticky. When disabled, standard PostgreSQL DEALLOCATE behavior is used: DEALLOCATE ALL unconditionally drops all statements, and DEALLOCATE &lt;name&gt; will fail for protocol-level prepared statements (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_ddl\_rollback\_enabled

If true, upon failure of a YSQL DDL transaction that affects the DocDB syscatalog, the YB-Master will rollback the changes made to the DocDB syscatalog. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_ddl\_transaction\_block\_enabled

Restart Needed Changes to this flag require a restart

If true, DDL operations in YSQL will execute within the active transactionblock instead of their separate transactions. Ensure DDL atomicity is enabled via ysql\_yb\_enable\_ddl\_atomicity\_infra and ysql\_yb\_ddl\_rollback\_enabled flags. (***Default*: false** - *pg*)

#### ysql\_yb\_default\_replica\_identity

Restart Needed Changes to this flag require a restart

The default replica identity to be assigned to user defined tables at the time of creation. The flag is case sensitive and can take four possible values, 'FULL', 'DEFAULT', 'NOTHING' and 'CHANGE'. If any value other than these is assigned to the flag, the replica identity CHANGE will be used as default at the time of table creation. (***Default*: CHANGE** - *pg*)

#### ysql\_yb\_disable\_ddl\_transaction\_block\_for\_read\_committed

Restart Needed Changes to this flag require a restart

If true, DDL operations in READ COMMITTED mode will be executed in a separate DDL transaction instead of the as part of the enclosing transaction block even if ysql\_yb\_ddl\_transaction\_block\_enabled is true. In other words, for Read Committed, fall back to the mode when ysql\_yb\_ddl\_transaction\_block\_enabled is false. (***Default*: false** - *pg*)

#### ysql\_yb\_disable\_wait\_for\_backends\_catalog\_version

Disable waiting for backends to have up-to-date pg\_catalog. This could cause correctness issues, which could be mitigated by setting high ysql\_yb\_index\_state\_flags\_update\_delay. Although it is runtime-settable, the effects won't take place for any in-progress queries. (***Default*: false** - *pg, runtime*)

#### ysql\_yb\_enable\_add\_column\_missing\_default

Enable using the default value for existing rows after an ADD COLUMN ... DEFAULT operation (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_advisory\_locks

Whether to enable advisory locks. (***Default*: true** - *stable, auto, runtime*)

#### ysql\_yb\_enable\_alter\_table\_rewrite

Enable ALTER TABLE rewrite operations (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_ash

Restart Needed Changes to this flag require a restart

Enable Active Session History for sampling and instrumenting YSQL and YCQL queries, and various background activities. (***Default*: true** - *pg*)

#### ysql\_yb\_enable\_base\_scans\_cost\_model

Enable cost model enhancements (***Default*: false** - *preview, pg, runtime*)

#### ysql\_yb\_enable\_cbo

Restart Needed Changes to this flag require a restart

YSQL cost-based optimizer mode. Allowed values are 'legacy\_mode', 'legacy\_stats\_mode', 'legacy\_bnl\_mode', 'legacy\_stats\_bnl\_mode', 'legacy\_ignore\_stats\_bnl\_mode', 'off', and 'on' (***Default*: legacy\_mode** - *pg*)

#### ysql\_yb\_enable\_consistent\_replication\_from\_hash\_range

Enable consumption of consistent changes via replication slots from a hash range of a table. (***Default*: false** - *preview, pg, runtime*)

#### ysql\_yb\_enable\_ddl\_atomicity\_infra

Enables YSQL DDL atomicity (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_ddl\_savepoint\_infra

Auto flag that controls whether DDL savepoint support can be safely enabled during upgrade. Both this flag and ysql\_yb\_enable\_ddl\_savepoint\_support must be true to enable the feature. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_ddl\_savepoint\_support

Restart Needed Changes to this flag require a restart

If true, support for savepoints for DDL statements within a transaction block will be enabled. This flag only takes effect if ysql\_yb\_ddl\_transaction\_block\_enabled is set to true. NOTE: This flag protects a feature that is currently in preview. In order for it to be modified, 'ysql\_yb\_enable\_ddl\_savepoint\_support' must be set in --allowed\_preview\_flags\_csv. (***Default*: false** - *preview*)

#### ysql\_yb\_enable\_docdb\_vector\_type

Enable using the DocDB Vector type from YSQL. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_expression\_pushdown

Push supported expressions from ysql down to DocDB for evaluation. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_fkey\_catcache

Enable preloading of foreign key information into the relation cache. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_enable\_hash\_batch\_in

Enable batching of hash in queries. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_implicit\_dynamic\_tables\_logical\_replication

Restart Needed Changes to this flag require a restart

When set to true, modifications to publication will be reflected implicitly. This replaces the previous mechanism of periodic publication refresh with PG like semantics for dynamic tables (***Default*: true**)

#### ysql\_yb\_enable\_index\_aggregate\_pushdown

Push supported aggregates from ysql down to DocDB for evaluation. Affects IndexScan only. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_invalidate\_table\_cache\_entry

Enables invalidation of individual table cache entry on catalog cache refresh, only applicable when invalidation messages are enabled. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_enable\_invalidation\_messages

True to enable invalidation messages (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_enable\_listen\_notify

Enable YSQL LISTEN/NOTIFY. (***Default*: false** - *pg, runtime*)

#### ysql\_yb\_enable\_memory\_tracking

Enables tracking of memory consumption of the PostgreSQL process. This enhances garbage collection behaviour and memory usage observability. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_enable\_new\_relation\_fastpath\_write

Enables fastpath writes for relations created in the current transaction (skip intents DB when safe). (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_enable\_new\_relation\_fastpath\_write\_in\_txn\_blocks

Allows yb\_enable\_new\_relation\_fastpath\_write to be applicable inside explicit transaction blocks too. DDL inside a transaction block can only use the fastpath if the DDL runs in the enclosing transaction, so this flag only takes effect if ysql\_yb\_ddl\_transaction\_block\_enabled is true. (***Default*: false** - *preview, pg, runtime*)

#### ysql\_yb\_enable\_nop\_alter\_role\_optimization

Enable nop alter role statement optimization. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_enable\_optimizer\_statistics

Enables use of the PostgreSQL selectivity estimation which utilizes table statistics collected with ANALYZE. When disabled, a simpler heuristics based selectivity estimation is used. (***Default*: false** - *preview, pg, runtime*)

#### ysql\_yb\_enable\_pg\_export\_snapshot

Enables the support for synchronizing snapshots across transactions, using pg\_export\_snapshot and SET TRANSACTION SNAPSHOT (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_pg\_locks

Enable the pg\_locks view. This view provides information about the locks held by active postgres sessions. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_query\_diagnostics

Restart Needed Changes to this flag require a restart

Enables the collection of query diagnostics data for YSQL queries, facilitating the creation of diagnostic bundles. (***Default*: false** - *pg*)

#### ysql\_yb\_enable\_replica\_identity

Enable replica identity command for Alter Table query (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_replication\_commands

Enable logical replication commands for Publication and Replication Slots (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_replication\_slot\_consumption

Enable consumption of changes via replication slots.Requires yb\_enable\_replication\_commands to be true. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_saop\_pushdown

Push supported scalar array operations from ysql down to DocDB for evaluation. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_sequence\_pushdown

Allow nextval() to fetch the value range and advance the sequence value in a single operation (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_enable\_update\_reltuples\_after\_create\_index

Enables update of reltuples in pg\_class for the base table and index after creating the index. When disabled, reltuples of the base table will remain unchanged and index reltuples will be set to 0 after the index is created. (***Default*: false** - *pg, runtime*)

#### ysql\_yb\_explicit\_row\_locking\_batch\_size

Batch size of explicit row locking. (***Default*: 1024** - *pg, runtime*)

#### ysql\_yb\_fetch\_row\_limit

Maximum number of rows to fetch per scan. (***Default*: 1024** - *pg, runtime*)

#### ysql\_yb\_fetch\_size\_limit

Maximum size of a fetch response. (***Default*: 0** - *pg, runtime*)

#### ysql\_yb\_follower\_reads\_behavior\_before\_fixing\_20482

Controls whether ysql follower reads that is enabled inside a transaction block should take effect in the same transaction or not. Prior to fixing #20482 the behavior was that the change does not affect the current transaction but only affects subsequent transactions. The flag is intended to be used if there is a customer who relies on the old behavior. (***Default*: false** - *advanced, pg, runtime*)

#### ysql\_yb\_ignore\_bool\_cond\_for\_legacy\_estimate

Ignore boolean condition for row count estimate in legacy cost model. (***Default*: false** - *pg, runtime*)

#### ysql\_yb\_index\_state\_flags\_update\_delay

Delay in milliseconds between stages of online index build. For testing purposes. (***Default*: 0** - *pg, runtime*)

#### ysql\_yb\_invalidation\_message\_expiration\_secs

The function yb\_increment\_db\_catalog\_version\_with\_inval\_messages or yb\_increment\_all\_db\_catalog\_versions\_with\_inval\_messages will delete invalidation messages older than this time. The effective expiration is automatically raised to at least 10 * --heartbeat\_interval\_ms so that messages survive long enough for every TServer to receive them via heartbeats. (***Default*: 10** - *pg, runtime*)

#### ysql\_yb\_locks\_max\_transactions

Sets the maximum number of transactions for which to return rows in pg\_locks. (***Default*: 16** - *pg, runtime*)

#### ysql\_yb\_locks\_min\_txn\_age

Sets the minimum transaction age for results from pg\_locks. (***Default*: 1000** - *pg, runtime*)

#### ysql\_yb\_locks\_txn\_locks\_per\_tablet

Sets the maximum number of rows to return per transaction per tablet in pg\_locks. (***Default*: 200** - *pg, runtime*)

#### ysql\_yb\_log\_heap\_snapshot\_on\_exit\_threshold

When a process exits, log a peak heap snapshot showing the approximate memory usage of each malloc call stack if its peak RSS is greater than or equal to this threshold in KB. Set to -1 to disable. (***Default*: -1** - *pg, runtime*)

#### ysql\_yb\_major\_version\_upgrade\_compatibility

The compatibility level to use during a YSQL Major version upgrade. Allowed values are 0 and 11. (***Default*: 0** - *pg, runtime*)

#### ysql\_yb\_max\_num\_invalidation\_messages

If a DDL statement generates more than this number of invalidation messages we do not associate the messages with the new catalog version caused by this DDL statement. This effetively turns off incremental catalog cache refresh for this new catalog version. (***Default*: 8192** - *pg, runtime*)

#### ysql\_yb\_mixed\_mode\_expression\_pushdown

Enables expression pushdown for queries in mixed mode of a YSQL Major version upgrade. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_mixed\_mode\_saop\_pushdown

Enable pushdown of scalar array operation expressions in mixed mode of a YSQL Major version upgrade. For example, IN, ANY, ALL. (***Default*: false** - *pg, runtime*)

#### ysql\_yb\_notifications\_poll\_sleep\_duration\_empty\_ms

Time in milliseconds for which the notifications poller process waits before polling again in case the last poll returned no notifications. (***Default*: 100** - *pg, runtime*)

#### ysql\_yb\_notifications\_poll\_sleep\_duration\_nonempty\_ms

Time in milliseconds for which the notifications poller process waits before polling again in case the last poll returned notifications. (***Default*: 1** - *pg, runtime*)

#### ysql\_yb\_parallel\_range\_rows

The number of rows to plan per parallel worker, zero disables the feature (***Default*: 0** - *preview, pg, runtime*)

#### ysql\_yb\_pg\_locks\_integrate\_advisory\_locks

Enables pg\_locks to integrate and display advisory locks details correctly. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_pushdown\_is\_not\_null

DEPRECATED: no-op. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_pushdown\_strict\_inequality

DEPRECATED: no-op. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_read\_after\_commit\_visibility

Restart Needed Changes to this flag require a restart

Determines the behavior of read-after-commit-visibility guarantee. (***Default*: strict** - *pg*)

#### ysql\_yb\_reorderbuffer\_max\_changes\_in\_memory

Maximum number of changes kept in memory per transaction in reorder buffer, which is used in streaming changes via logical replication . After that, changes are spooled to disk. (***Default*: 4096** - *pg, runtime*)

#### ysql\_yb\_sampling\_algorithm

Restart Needed Changes to this flag require a restart

Which sampling algorithm to use for YSQL. full\_table\_scan - scan the whole table and pick random rows, block\_based\_sampling - sample the table for a set of blocks, then scan selected blocks to form a final rows sample. (***Default*: block\_based\_sampling** - *pg*)

#### ysql\_yb\_skip\_redundant\_update\_ops

Enables the comparison of old and new values of columns specified in the SET clause of YSQL UPDATE queries to skip redundant secondary index updates and redundant constraint checks. (***Default*: true** - *advanced, pg, runtime*)

#### ysql\_yb\_tcmalloc\_sample\_period

Sets the interval at which TCMalloc should sample allocations. Sampling is disabled if this is set to 0. (***Default*: 1048576** - *pg, runtime*)

#### ysql\_yb\_test\_block\_index\_phase

Restart Needed Changes to this flag require a restart

Block the given index phase from proceeding. Valid names are indisready, build, indisvalid and finish. For testing purposes. (***Default*: None** - *pg*)

#### ysql\_yb\_test\_fatal\_after\_notifs\_queue\_write

When true, the notifications poller exits with FATAL after writing NOTIFY entries to the async queue but before persisting the CDC virtual-WAL ack. For testing purposes. (***Default*: false** - *pg, runtime*)

#### ysql\_yb\_test\_make\_all\_ddl\_statements\_incrementing

When set, all DDL statements will cause the catalog version to increment. This mainly affects CREATE commands such as CREATE TABLE, CREATE VIEW, and CREATE SEQUENCE. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_test\_notify\_queue\_max\_pages

When positive, artificially limits the NOTIFY queue to this many pages for testing. (***Default*: 0** - *pg, runtime*)

#### ysql\_yb\_test\_reset\_retry\_counts

Restricts the number of retries for transaction conflicts. For testing purposes. (***Default*: -1** - *pg, runtime*)

#### ysql\_yb\_toast\_catcache\_threshold

Size threshold in bytes for a catcache tuple to be compressed. (***Default*: 2048** - *pg, runtime*)

#### ysql\_yb\_update\_optimization\_infra

Enables optimizations of YSQL UPDATE queries. This includes (but not limited to) skipping redundant secondary index updates and redundant constraint checks. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_upgrade\_to\_pg15\_completed

Indicates the state of YSQL major upgrade to PostgreSQL version 15. Do not modify this manually. (***Default*: true** - *pg, stable, auto, runtime*)

#### ysql\_yb\_user\_ddls\_preempt\_auto\_analyze

If object locking is off (i.e., enable\_object\_locking\_for\_table\_locks=false), concurrent DDLs might face a conflict error on the catalog version increment at the end after doing all the work. Setting this flag enables a fail-fast strategy by locking the catalog version at the start of DDLs, causing conflict errors to occur before useful work is done. This flag is only applicable without object locking. If object locking is enabled, it ensures that concurrent DDLs block on each other for serialization. Also, this flag is valid only if yb\_enable\_invalidation\_messages is enabled. (***Default*: true** - *pg, runtime*)

#### ysql\_yb\_wait\_for\_backends\_catalog\_version\_timeout

Timeout in milliseconds to wait for backends to reach desired catalog versions. The actual time spent may be longer than that by as much as master flag wait\_for\_ysql\_backends\_catalog\_version\_client\_master\_rpc\_timeout\_ms. Setting to zero or less results in no timeout. Currently used by concurrent CREATE INDEX. (***Default*: 900000** - *pg, runtime*)

#### ysql\_yb\_walsender\_poll\_sleep\_duration\_empty\_ms

Time in milliseconds for which Walsender waits before fetching the next batch of changes from the CDC service in case the last received response was empty. The response can be empty in case there are no DMLs happening in the system. (***Default*: 10** - *pg, runtime*)

#### ysql\_yb\_walsender\_poll\_sleep\_duration\_nonempty\_ms

Time in milliseconds for which Walsender waits before fetching the next batch of changes from the CDC service in case the last received response was non-empty. (***Default*: 1** - *pg, runtime*)

#### ysql\_yb\_xcluster\_consistency\_level

Restart Needed Changes to this flag require a restart

Controls the consistency level of xCluster replicated databases. Valid values are "database" and "tablet". (***Default*: database** - *pg*)
