docs/content/stable/releases/ybdb-releases/end-of-life/v2.21.md
{{<warning title="Changes to supported operating systems">}} YugabyteDB 2.21.0.0 and newer releases do not support v7 Linux versions (CentOS7, Red Hat Enterprise Linux 7, Oracle Enterprise Linux 7.x), Amazon Linux 2, and Ubuntu 18. If you're currently using one of these Linux versions, upgrade to a supported OS version before installing YugabyteDB v2.21. Refer to Operating system support for the complete list of supported operating systems. {{</warning>}}
Build: 2.21.1.0-b271
Docker:
docker pull yugabytedb/yugabyte:2.21.1.0-b271
log_ysql_catalog_versions gflag. {{<issue 20084>}}pg_temp_<tserver-uuid>_<backend_id> from pg_temp_<backend_id>, making them unique across nodes and preventing temp tables overwriting or deletion. {{<issue 19255>}}ADD/DROP PK using a new table rewrite approach, preserving PG level metadata during rewrite operations and enabling concurrent DML abortions to manage schema version mismatches. {{<issue 17130>}}yb_backup.py: backup_tablespaces, restore_tablespaces, and a redefined use_tablespaces, enhancing backup and restore procedures. {{<issue 20389>}}int2 and int4, promoting flexibility in join-orderings. {{<issue 20715>}}REFRESH MATERIALIZED VIEW as a non-disruptive change, preventing unnecessary transaction terminations. The default option, REFRESH MATERIALIZED VIEW NONCONCURRENTLY, modifies metadata but without making a disruptive alteration. {{<issue 20420>}}ToString function issue which caused non-const references of std/boost::optional objects to display as pointers. {{<issue 20719>}}EXPLAIN field names: Remote Filter to Storage Filter, Remote SQL to Storage SQL, and Remote Index Filter to Storage Index Filter. {{<issue 14503>}}ToString function order to prevent compilation failures when used for collections with std::optional. {{<issue 20887>}}yb_backup.py flags including backup_roles, restore_roles, ignore_existing_roles, and use_roles with distinct semantics for enhanced role management during backup and restore operations. {{<issue 20972>}}yb_prefer_bnl flag takes precedence over a NestLoop hint, ensuring smoother upgrades. {{<issue 21129>}}ysql_enable_db_catalog_version_mode gflag default value through a new framework. {{<issue 21127>}}master_ts_ysql_catalog_lease_ms to decrease the lease period to 10 seconds, reducing the waiting time for unresponsive tservers. {{<issue 21249>}}ALTER TYPE functionality to apply the table rewrite approach enhancing database upgrade processes. {{<issue 17130>}}ysql_yb_enable_ddl_atomicity_infra to control DDL atomicity feature during the upgrade phase. {{<issue 21535>}}yb_active_universe_history table. {{<issue 20616>}}yb_enable_parallel_append to disable the unannounced feature parallel append. {{<issue 21934>}}ysql_yb_ddl_rollback_enabled, report_ysql_ddl_txn_status_to_master, and ysql_ddl_transaction_wait_for_ddl_verification flags' defaults. {{<issue 22097>}}get_tablespace_distance function, enhancing the speed of the yb_is_local_table YSQL function. Reduces query time by caching GeolocationDistance value. {{<issue 20860>}}ysql_catalog_preload_additional_tables flag to accurately reflect preloading behavior. {{<issue 20791>}}yb_explain_hide_non_deterministic_fields, primarily for pg15. {{<issue 20958>}}ycql_suppress_group_by_error available for compatibility issues. {{<issue 13956>}}rpc_queue_limit flag as deprecated in the latest releases. {{<issue 20830>}}generate_test_certificates.sh only output on failure. {{<issue 20979>}}MultiStepTableTask to MultiStepCatalogEntityTask to ensure broader support for CatalogEntityWithTasks. {{<issue 20982>}}IsOperationDoneResult by relocating to is_operation_done_result.h for broader usage. {{<issue 21085>}}pg_single_tserver-test using a test gflag. {{<issue 20666>}}IsOperationDoneResult to be accessed for non-xcluster usage, enhancing functionality. {{<issue 21085>}}arcanist_util/pre_commit_hook.sh for consistent styling. {{<issue 21329>}}async_client_initializer to the server and minimizes client libraries dependency on server_process, enhancing its proper operation within a server. {{<issue 21337>}}rpc library and common_flags.cc from server_process, and removes FsManager usage in client library. {{<issue 21338>}}1s *kTimeMultiplier in AreNodesSafeToTakeDown tests, minimizing test flakiness. {{<issue 21247>}}safe_time set during GetChanges call, reducing data loss during network failures. Ensures consistent safe_hybrid_time in multiple GetChanges calls. {{<issue 21240>}}cdcsdk_publication_list_refresh_interval_secs flag. {{<issue 21796>}}REPLICA IDENTITY syntax for altering table commands in YSQL, allowing control over CDC image information. {{<issue 20143>}}DROP DATABASE query to accurately check for active connections before succeeding or failing. {{<issue 20581>}}:13000/connections endpoint, catering for removal of pool_name and addition of database_name and user_name. {{<issue 20494>}}join flag without throwing any errors. {{<issue 20684>}}configure point_in_time_recovery sub-command in yugabyted. {{<issue 20493>}}config flag with start command, and directs updates to a yugabyted generated file within base_dir/conf directory. {{<issue 20881>}}enable_pg_parity flag in the yugabyted start command. {{<issue 21221>}}allowed_preview_flags_csv master flag when given using master_flags. {{<issue 21364>}}enable_pg_parity to enable_pg_parity_tech_preview for activating a predefined set of gflags related to the pg-parity project with the yugabyted start command. {{<issue 21221>}}stickiness. {{<issue 19601>}}PDEATH_SIG mechanism signals child processes of their parent process's exit, by correctly configuring all PG backends immediately after their fork from the postmaster process. {{<issue 20396>}}SELECT DISTINCT queries. Enables successful execution of queries without errors and prevents server connection closures by disabling distinct pushdown. This fix improves the stability and effectiveness of SELECT DISTINCT queries. {{<issue 20893>}}EXPLAIN ANALYZE operation, enhancing performance by incorporating storage_metrics_version in YBCPgExecStats and YbInstrumentation. {{<issue 20917>}}yb_enable_base_scans_cost_model is activated and yb_fetch_size_limit is enforced by setting a fixed size for result width when it equals zero. {{<issue 20892>}}yb_debug_log_docdb_requests is enabled. {{<issue 19604>}}wait_for_ysql_backends_catalog_version_master_tserver_rpc_timeout_ms GFlag, increasing the default timeout value to 60s from 30s. This alteration only impacts one specific RPC - WaitForYsqlBackendsCatalogVersion, not all RPCs, which should diminish time-out incidents. {{<issue 18228>}}pg_yb_catalog_version table checks, ensuring accurate catalog version table mode. {{<issue 21230>}}yb_enable_base_scans_cost_model flag triggers PG selectivity estimation and ignores yb_enable_optimizer_statistics flag. {{<issue 21368>}}LC_ALL environment variable to C.UTF-8 when running pgrep in yb-ctl, preventing failure due to UTF-8 characters in other processes' names. {{<issue 21381>}}NoMovement direction only in that case. {{<issue 21435>}}No wait state when using yb_enable_ash without altering the default flag value. {{<issue 21136>}}pending_deletes_ on failed delete tasks thus preventing tablets from being incorrectly retained after task failure or completion. This rectifies a race condition and allows the Load Balancer to perform operations on specific tablets and Tablet Servers. {{<issue 13156>}}Create Table operation fails if Alter Replication encounters an error, enhancing the reliability of replication setup. {{<issue 21732>}}ysql_skip_row_lock_for_update to an auto-flag to resolve compatibility issues during upgrade, preventing incorrect DB record creations that can affect row visibility and integrity. {{<issue 22057>}}enable_automatic_tablet_splitting gflag from kLocalPersisted (class 2) to kExternal (class 4) to eliminate setup issues with XCluster configurations. {{<issue 22088>}}generate_test_certificates.sh to employ third-party openssl instead of system's openssl. {{<issue 20764>}}ysql_pack_inserted_value gflag. {{<issue 20713>}}tablet_id option to db_options. {{<issue 20975>}}enable_callsite_profile and enable_callsite_profile_timing flags. {{<issue 21008>}}indexed_table_id with the index in table listings, eliminating the need for a second lookup to associate a main table with an index. {{<issue 21159>}}2.23.0.0-b37-arm. {{<issue 21648>}}boost::regex_match. {{<issue 21585>}}ClientTest.TestCreateTableWithRangePartition by letting the system select the suitable namespace ID. {{<issue 21827>}}tablet_peer objects using the = operator, preventing unintentional destruction of underlying objects. {{<issue 22007>}}skip_table_tombstone_check for colocated tables to prevent errors. {{<issue 22115>}}prev_op to UNKNOWN to prevent AlmaLinux 8 fastdebug gcc11 compilation failures. {{<issue 21811>}}min_running_ht initialization until after the successful completion of tablet bootstrap to prevent unexpected behaviors. {{<issue 22099>}}pg_locks query failure due to missing host node UUID in distributed transactions. {{<issue 22181>}}disable_tablet_splitting, addressing a previous condition where only one was required, thereby enhancing backup process reliability. {{<issue 8744>}}cdc_sdk_safe_time during explicit checkpointing, along with tests to ensure validity. {{<issue 15718>}}null in the partitionKey before calling getTablets. {{<issue 20636>}}ysql_ddl_rollback_enabled flag is set to true. {{<issue 20989>}}TestModifyPrimaryKeyBeforeImage by ensuring historical_max_op_id is updated before calling GetChanges RPC. {{<issue 20779>}}TestCDCSDKConsistentStreamWithTabletSplit and mends a data race issue. {{<issue 21315>}}ysql_TEST_enable_replication_slot_consumption. {{<issue 20725>}}cached_schema_details when executing a new GetChanges request if the client indicates a necessity for the schema. {{<issue 20698>}}Build: 2.21.0.1-b1
Docker:
docker pull yugabytedb/yugabyte:2.21.0.1-b1
Converted the ysql_skip_row_lock_for_update to an auto-flag to resolve compatibility issues during upgrade, preventing incorrect DB record creations that can affect row visibility and integrity.
{{< warning title="Use 2.21.0.1">}} {{< /warning >}}
Enhanced Postgres Compatibility Mode {{<tags/feature/tp>}}
We're pleased to announce the tech preview of the new Enhanced Postgres Compatibility Mode in the 2.21.0.0 release. This mode enables you to take advantage of many new improvements in both PostgreSQL compatibility and performance parity, making it even easier to lift and shift your applications from PostgreSQL to YugabyteDB. When this mode is turned on, YugabyteDB uses the Read-Committed isolation mode, the Wait-on-Conflict concurrency mode for predictable P99 latencies, and the new Cost Based Optimizer that takes advantage of the distributed storage layer architecture and includes query pushdowns, LSM indexes, and batched nested loop joins to offer PostgreSQL-like performance.
You can enable the compatibility mode by passing the enable_pg_parity_tech_preview flag to yugabyted, when bringing up your cluster.
For example, from your YugabyteDB home directory, run the following command:
./bin/yugabyted start --enable_pg_parity_tech_preview
Note: When enabling the cost models, ensure that packed row for colocated tables is enabled by setting the --ysql_enable_packed_row_for_colocated_table flag to true.
New YugabyteDB Kubernetes Operator
A preliminary version of the completely rewritten YugabyteDB Kubernetes Operator is available in Tech Preview. The new operator automates the deployment, scaling, and management of YugabyteDB clusters in Kubernetes environments. It streamlines database operations, reducing manual effort for developers and operators.
For more information, refer to the YugabyteDB Kubernetes Operator GitHub project.
New Kubernetes Operator. Automated deployment and management of clusters via the Kubernetes operator pattern. Includes support for YugabyteDB universes as a Kubernetes custom resource. Backup, upgrade, scale-out, scale-in, and more are possible on this Kubernetes custom resource. {{<tags/feature/tp idea="831">}}
YSQL: DDL concurrency. Support for isolating DDLs per database. Specifically, a DDL in one database does not cause catalog cache refreshes or aborts transactions due to breaking change in another database. {{<tags/feature/tp>}}
YSQL: DDL atomicity. Ensures that YSQL DDLs are fully atomic between YSQL and DocDB layers, that is in case of any errors, they are fully rolled back, and in case of success they are applied fully. Currently, such inconsistencies are rare but can happen. {{<tags/feature/tp>}}
YSQL: Lower latency for large scans with size-based fetching. A static size based fetch limit value to control how many rows can be returned in one request from DocDB. {{<tags/feature/tp>}}
YSQL: ALTER TABLE support. {{<tags/feature/tp>}} Adds support for the following variants of ALTER TABLE ADD COLUMN:
yugabyted
Docker-based deployments. Improves the yugabyted Docker user experience for RF-3 deployments and docker container/host restarts. {{<tags/feature/ea>}}
Set preferred regions. The preferred region handles all read and write requests from clients. Use the yugabyted configure data_placement command to specify preferred regions for clusters. {{<tags/feature/ea>}}
Backup and restore support in yugabyted. yugabyted now supports backup and restore of databases and keyspaces. You can also upload backups to public clouds, including AWS and GCP. {{<tags/feature/tp>}}
index_scan_prefer_sequential_scan_for_boundary_condition that potentially enhances speed in range-sharded databases by utilizing sequential scan over Local Skip scan under specified conditions. {{<issue 16178>}}final_cost_nestloop where outer_matched_rows were inaccurately set as 0, thus improving query estimation and execution. {{<issue 19021>}}CREATE INDEX NONCONCURRENTLY instead of CREATE INDEX, preventing automated index back-filling in the backup-restore, thereby accelerating the process. {{<issue 19457>}}cbo_stat_dump and cbo_stat_load tools, enhancing developer productivity and performance feedback by rapidly validating CBO changes through the TAQO framework. {{<issue 19657>}}relrowsecurity and relforcerowsecurity fields. {{<issue 19815>}}yb_enable_optimizer_statistics is true, improving Cost-Based Optimizer's query plan selection. {{<issue 16825>}}DEPENDS ON EXTENSION for objects like FUNCTION, PROCEDURE, etc, mitigating potential risks like CVE-2020-1720 and CVE-2023-39417. {{<issue 14419>}}yb_bnl_optimize_first_batch controlling it, enhancing performance especially in presence of small LIMIT clauses. {{<issue 19589>}}IsTransactionalDdlStatement function with the YbGetDdlMode function, offering more cohesiveness through enums instead of booleans for significant DDL modes while enabling easier addition of new modes. {{<issue 19178>}}Disable OpenSSL EVP digest padding in pgcrypto. {{<issue 19733>}}pgcrypto: Check for error return of px_cipher_decrypt upstream PG commit essential for upgrading OpenSSL to 3.0+. {{<issue 19732>}}yb_webserver_oom_score_adj flag (default 900) to prevent unnecessary shutdowns while allowing quick termination if it starts consuming excessive memory. {{<issue 20028>}}yb_bnl_batch_size to 1024 and yb_prefer_bnl to true by default, ensuring BNL's replace nested loop joins without altering non-NL join plans. {{<issue 19273>}}READ COMMITTED isolation by default in debug builds, eliminates setting a transaction to READ ONLY via pg_hint_plan, and updates certain tests to instead run explicitly in REPEATABLE READ. {{<issue 18462>}}ysql_use_relcache_file, to control the use of relcache init file, helping regulate Postgres backend memory usage, and modify unpredicted system table preloading, reducing overall memory usage. {{<issue 19226>}}ALTER INDEX SET TABLESPACE, ALTER INDEX ALTER COLUMN SET STATISTICS, CREATE MATERIALIZED VIEW with TABLESPACE, and ALTER MATERIALIZED VIEW SET TABLESPACE enhancing database flexibility, with a traceable warning for beta features that can be muted by adjusting the ysql_beta_feature_tablespace_alteration flag to true. {{<issue 6639>}}ERROR: cannot set tablespace for temporary index instead. {{<issue 19368>}}Perform RPCs, providing insights for PGPROC and ASH collectors. Updates yb_enable_ash GFlag and assures upgrade/downgrade safety. {{<issue 19135>}}record type not registered error that appeared when retrieving fieldnames for batched index condition expressions in YB Batched Nested Loop through bypassing fieldname resolution for indecipherable batched expressions. {{<issue 19094>}}YB_YQL_PREFETCHER_NO_CACHE enum value and introducing YBCStartSysTablePrefetchingNoCache function. {{<issue 19304>}}YbBindScanKeys by accounting for unique PgGate request conditions. {{<issue 19384>}}FLAGS_create_initial_sys_catalog_snapshot before initiating the tablespace refresh task. {{<issue 19386>}}pg_yb_tablegroup catalog only in non-bootstrap mode. {{<issue 19387>}}TransactionCache class shifting session's transactions' information closer to the session in the SessionInfo structure, averting a potential deadlock scenario by ensuring smoother test execution when per-database catalog version mode is activated. {{<issue 18711>}}yb_auh extension, building the foundation for the Active Universe History project with a circular buffer for wait events storage and a background worker for local tserver and PG backends polling. New Gflags are introduced: enable_yb_auh, yb_auh.circular_buffer_size, yb_auh.sampling_interval, and yb_auh.sample_size. Default settings are disabled, 16 MB, 1000 ms, and 500, respectively. {{<issue 19127>}}YbBatchedNL(t1 t2) and NoYbBatchedNL, and modifies yb_prefer_bnl handling. Also, it removes BNL's dependency on enable_nestloop and adjusts cost model. {{<issue 19494>}}is_single_row_txn for finer control over non-transactional writes required by COPY, index backfill, or when yb_disable_transactional_writes is set, preventing issues during non-bufferable operations for single row transactions. {{<issue 4906>}}yb_active_session_history_internal and a corresponding view yb_active_session_history for easier querying, which require the Gflag TEST_yb_enable_ash to be enabled; errors will occur otherwise. {{<issue 19128>}}NOTICE for potentially unsafe ALTER TABLE operations (such as altering primary key, altering type), ensuring users are aware of the risks. To suppress this notice, adjust the ysql_suppress_unsafe_alter_notice gflag to true. {{<issue 19360>}}NOT NULL constraint and a non-volatile DEFAULT value without needing a table scan, leading to faster YSQL Alter Table operations. No table scan is needed as all existing rows will use the non-volatile DEFAULT value in their new column, reducing constraint violation checks time. {{<issue 19355>}}DocKeyBuilder helper class with a function and switches from using an arena array to boost::small_vector. {{<issue 19685>}}IN conditions on a lower column, ensuring accurate result order for YB LSM indexes, and generalizes the fix to all such indexes. {{<issue 19576>}}PgClientServiceImpl to periodically clear its own reserved_oids_map_, enhancing database cleaning and eliminating reliance on TabletServer for scheduling. {{<issue 19916>}}FetchValue with FetchRow, simplifying changes and fixing indentation issues in ‘pg_mini-’ without modifying formatting in other areas. {{<issue 19918>}}Active Universe History to Active Session History for enhanced comprehension. {{<issue 19948>}}yb_silence_advisory_locks_not_supported_error as a temporary solution for users to avoid disruption when using advisory locks without actual lock acquisition. {{<issue 19974>}}ysql_enable_read_request_caching GFlag as non-runtime since Postgres flags, except PG_FLAGs, cannot be dynamically updated, enhancing cache configuration consistency. {{<issue 19983>}}ALTER TABLE ADD COLUMN operations and modernizing REINDEX implementation for end-user indexes. {{<issue 19563>}}ignore_existing_tablespaces in the yb_backup.py script. {{<issue 20334>}}ysql_catalog_preload_additional_table_list without forcing preloading of default tables. {{<issue 20290>}}EXPLAIN (ANALYZE,DIST) output, enabling users to distinguish between work done by the storage layer and the query layer and understand the selectivity of remote filters and index conditions. {{<issue 12676>}}ysql_max_read_restart_attempts and ysql_max_write_restart_attempts with a unified GUC variable yb_max_query_layer_retries to control retries in all isolation levels including Read Committed, with default reset to 60 retries. Defaults for retry_backoff_multiplier and retry_min_backoff adjusted to 1.2 and 10ms respectively. {{<issue 20359>}}ToString function to create unique responses for optional types (std/boost::optional), enhancing log readability and data relevance. {{<issue 20719>}}yb_explain_hide_non_deterministic_fields to remove non-deterministic fields from EXPLAIN ANALYZE's output, reduces flakiness between runs in pg_regress tests. {{<issue 19492>}}pg_stat_get_activity function, aligns variable names, adds yb_prefix to txn_rpc_timestamp, and applies column indexing based on PG_STAT_GET_ACTIVITY_COLS macro. {{<issue 20281>}}Unknown Session Unit Test to pg_libpq, renaming it from PgBackendsTestSessionExpire to PgBackendsSessionExpireTest for convention conformity, enhancing testing protocol. {{<issue 20545>}}UpdateMapRemoveKey API, enabling the removal of specific keys from a Map, leaving all other keys unaffected. {{<issue 19829>}}yb_read_time GUC variable, usable by superusers to query the database at a specific point in time in the past, specifically aiding backup and restore scenarios. This variable helps generate a database schema of a specific past point using ysql_dump. Make sure it's not set before a DDL operation or during it. Default value is 0, meaning the data is read in real-time, while setting a Unix timestamp (in microseconds) allows reading data as of that time. {{<issue 19114>}}WriteQuery objects and outstanding transaction status RPC requests at the tablet level for easier debugging. {{<issue 18940>}}/xcluster UI page for yb-tserver to track real-time statuses of xCluster source streams and target pollers with a capability to reset data following a restart. Also features sorting and a search box for easier navigation. {{<issue 19203>}}read-time flag in ysql_dump, offering a way to dump the database schema as of a specific point in time, improving backup restoration capabilities. {{<issue 19258>}}xactStartTimestamp. {{<issue 18055>}}ResumedWaiterRunner queue during WaitQueue shutdown. {{<issue 19272>}}num_open_tablets_metadata_simultaneously to set the number of threads for opening tablets' metadata during startup, enhancing the startup time. The modification also takes steps towards deleting the superblock in DeletedTablet. {{<issue 15088>}}DoGetLockStatus process in pg_client_service.cc to expedite fetching locks, enhancing database performance. {{<issue 18034>}}get_auto_flags_config yb-admin command to retrieve the current AutoFlags configuration, aiding in debugging xCluster replication failures. {{<issue 20046>}}pg_locks by including results from Single Shard transactions that previously went untracked, enabling users to query these transactions. During upgrades or downgrades to version 2024.1 and above, pg_locks queries may fail due to nodes lacking the newly implemented GetOldSingleShardWaiters service method. {{<issue 18195>}}tablets_in_wrong_placement, blacklisted_leaders, and tablet_load_variance, enhancing the tracking of load balancer progress. {{<issue 20118>}}version=v2 to the URL for enabling this feature, granting control over metric output filters and determining the scope of metric aggregation effectively. {{<issue 19943>}}pg_locks to avoid potential memory issues during batch inserts, and includes additional fields to indicate partial lock info. {{<issue 20765>}}yb_locks_txn_locks_per_tablet to limit the number of rows returned by pg_locks, preventing the system from running out of memory during large transactions. {{<issue 19934>}}rocksdb_check_sst_file_tail_for_zeros is set to a positive value. {{<issue 19691>}}lazy_flush_superblock is enabled. {{<issue 18312>}}universe_uuid field and an autoflag master_enable_universe_uuid_heartbeat_check to manage the tserver heartbeat checks. {{<issue 17904>}}collect_update_consensus_traces flag, offering visibility into remote follower traces and adding trace messages to local logs. The feature ensures upgrade/rollback safety and impacts the leader and follower only if both incorporate the change. {{<issue 19417>}}rocksdb_max_sst_write_retries flag to set the number of retry attempts if corruption is detected when writing SST file, affecting both flushes and compactions. {{<issue 19730>}}master_join_existing_universe flag to prevent unnecessary initial sys catalog snapshot restoration. {{<issue 19357>}}show_help, to the scrape endpoint, enabling control over display of help and metadata information, overriding the export_help_and_type_in_prometheus_metrics GFlag. {{<issue 19176>}}AsyncClientInitialiser to AsyncClientInitializer for consistency in naming conventions. {{<issue 19920>}}tablet_replicas_per_gib_limit, tablet_replicas_per_core_limit, and tablet_overhead_size_percentage to customize tablet replication based on cluster resources, enhancing user control over system load balance. {{<issue 16177>}}AreNodesSafeToTakeDown API that ensures safe node removals during cluster upgrades or maintenance operations by checking tablet health and follower lag, facilitating seamless and risk-free updates. {{<issue 17562>}}show-changes command to the sys-catalog-tool to search and provide details of all updated entries marked as ADD, CHANGE, or REMOVE. This needs to be run before update to validate the expected changes in the SysCatalog JSON file. Notably, this command exclusively interacts with the file, without reading or writing to the SysCatalog. {{<issue 18800>}}EXPLAIN (ANALYZE, DIST, DEBUG) and tracing. {{<issue 16785>}}TEST_* and replacing them with non-blocking asynchronous versions (FlushAsync). {{<issue 12165>}}AreNodesSafeToTakeDown to check if it's safe to remove or upgrade certain nodes without disrupting overall cluster health. {{<issue 17562>}}EnableVerboseLoggingForModule with google::SetVLOGLevel for a less complex procedure in setting the module log level, eliminating the updating of the vmodule gflag. {{<issue 19344>}}cdc to xcluster, moves ValidateTableSchema to xrepl_catalog_manager and renames it to ValidateTableSchemaForXCluster. Revises allow_ycql_transactional_xcluster to be a TEST flag, enhances XClusterManager's ability to handle XCluster related control logic, and launches dedicated XClusterConfig class. {{<issue 19353>}}YB_FAIL_ON_DUPLICATE_RPATH, and cleans build system. {{<issue 19378>}}Wthread-safety-reference, fixing all resulting build errors for increased stability. {{<issue 19365>}}TEST_SYNC_POINT macro in release builds reducing its impact in production by adding the check for FLAGS_TEST_enable_sync_points before making expensive SyncPoint calls. {{<issue 19379>}}allow_ycql_transactional_xcluster a TEST flag. {{<issue 19353>}}skip_indexes command line option to create_snapshot and create_keyspace_snapshot, allowing users to exclude indexes when creating backups in YCQL. {{<issue 14142>}}master_addresses or a set master_join_existing_universe flag. {{<issue 19528>}}tablet_replicas_per_gib_limit, tablet_replicas_per_core_limit, and tablet_overhead_size_percentage flags. {{<issue 16177>}}trace_max_dump_size to limit size of printed traces. {{<issue 19532>}}CDCTabletMetrics to XClusterTabletMetrics and several related files, refines metrics retrieval and setting, and enhances handling of race conditions for smoother data management. {{<issue 20079>}}tablet_replicas_per_core_limit and tablet_replicas_per_gib_limit to runtime flags, for setting and adjusting resource-based tablet limits on-the-go. {{<issue 16177>}}trace_max_dump_size Gflag (default 25000) for limiting trace print sizes, works around GLog's character limit for printing long traces. {{<issue 19532>}},{{<issue 19769>}}XClusterConfigInfo and XClusterSafeTimeInfo from catalog_entity_info.h to xcluster_catalog_entity.h, and from catalog_loaders.h to xcluster_catalog_entity.h, respectively. Also, establishes a SingletonMetadataCowWrapper for singleton catalog entities, creates an XClusterManager interface, and transfers xcluster_safe_time_info_ and its functions from Catalocustomeranager to XClusterManager. {{<issue 19713>}}trace_max_dump_size to limit the size of traces printed. {{<issue 19532>}},{{<issue 19808>}}producer_id to replication_group_id in older proto messages, standardizing the replication group identity for enhanced consistency and rollback safety. {{<issue 19825>}}SELECT statement errors that could arise from processing non-provisional records or writing provisional records without a hybrid timestamp. {{<issue 19876>}}demote_single_auto_flag yb-admin command by returning specific error messages for invalid process_name, AutoFlag name, or non-promoted AutoFlag, making identifications easier. {{<issue 20004>}}cdc xCluster metric entity to xcluster, ensuring an accurate representation without affecting dependencies as services like YugabyteDB Anywhere rely on the unchanged metric name. {{<issue 20131>}}Successfully read [n]ops from disk. logs to verbose logging, lowering the frequency of identical log outputs and boosting performance. {{<issue 20287>}}UNKNOWN flags to either RUNTIME or NON_RUNTIME in DocDB for optimal flag management. {{<issue 16979>}}num_concurrent_backfills_allowed as RUNTIME instead of UNKNOWN for better manageability. {{<issue 20348>}}force_global_transactions, ycql_use_local_transaction_tables, and auto_promote_nonlocal_transactions_to_global gflags as runtime, enabling them to be changed directly as required for each new transaction. {{<issue 20479>}}cdc::ProducerTabletInfo to cdc::TabletStreamInfo and removes ReplicationGroupId from it, relocates ReplicationGroupId from cdc to xcluster namespace, and introduces xcluster::ProducerTabletInfo to optimize naming consistency. {{<issue 20452>}}openssl_require_fips = true gflag, ensuring FIPS standard compliance for database cluster creation. {{<issue 20524>}}cdcsdk_ysql_replication_slot_name. Invalidates deprecated logic in cdc_service, focusing on YSQL strategies instead. Promotes explicit parameter requirements for request validation when namespace_id is populated. Addresses a race condition and initial checkpoint discrepancy in CreateCDCStream. This alteration modifies sys-catalog entry and necessitates client checking of the autoflag yb_enable_replication_commands. {{<issue 19211>}}yb_enable_replication_commands autoflag. {{<issue 18930>}},{{<issue 18933>}},{{<issue 18931>}}Too many attempts exceptions occurring in a short period. {{<issue 12751>}}yb_enable_replication_commands. {{<issue 19212>}}pg_create_logical_replication_slot and pg_drop_replication_slot, and Walsender commands CREATE_REPLICATION_SLOT and DROP_REPLICATION_SLOT. Inserts view pg_replication_slots for viewing replication slots. Fixes two issues concerning cleanup of held locks and skipping cache refresh. {{<issue 19211>}},{{<issue 19212>}},{{<issue 19509>}}Object already exists error during consecutive CreateCDCStream and DeleteCDCStream calls by effectively handling the stream delete state, and supports creating a CDCSDK stream for a namespace via SQL syntax. {{<issue 19211>}},{{<issue 19212>}}ysql_yb_enable_replication_commands flag and temporarily bypasses the requirement for a replication slot name. {{<issue 18890>}}ysql_cdc_active_replication_slot_window_ms Tserver GFlag. This change allows better visibility into slot activities and prevents dropping of active slots. It also addresses a bug in the WaitForGetChangesToFetchRecords function used in testing. {{<issue 19211>}},{{<issue 19212>}}cdcsdk_ysql_replication_slot_name. Simultaneously, addresses a race condition problem during the CreateCDCStream operation and ensures proper initial checkpoint setting in cdc_state_table. Introduces limits on replication slots (CDC stream) utilizing a GFlag and reports the status when the slots limit is reached. This change also accommodates the detection of replication commands in yb_is_dml_command. {{<issue 19211>}},{{<issue 19212>}}cdcsdk_ysql_replication_slot_name. Addresses a race condition issue between CreateCDCStream and the Catalocustomeranager's background cleanup task and fixes a problem related to the initial checkpoint of tables in the cdc_state_table for CDCSDK. Also reintroduces the ability to determine whether a replication slot (CDC stream) is active or inactive. {{<issue 19211>}},{{<issue 19212>}}max_replication_slots GFlag, introducing an error code for when the limit is reached, and enhances CDC stream creation. {{<issue 19211>}}pg_stat_activity section. The new implementation supports the creation of a CDCSDK stream for a namespace via cdcsdk_ysql_replication_slot_name, enables the detection of replication commands without errors, and introduces the limitation of the number of CDCSDK streams by the max_replication_slots GUC. {{<issue 19211>}},{{<issue 19212>}}CreateCDCStream and Catalocustomeranager background cleanup task. {{<issue 19211>}},{{<issue 19212>}}yb_is_dml_command, supports creating logical replication slots through SQL using CREATE_REPLICATION_SLOT and pg_create_logical_replication_slot. The change includes support for CDCSDK stream creation, imposes limit on replication slots/streams, and resolves a race condition related to CreateCDCStream. {{<issue 19211>}},{{<issue 19212>}}yb_enable_replication_commands from an autoflag to a TEST flag, making it safer and more flexible for enabling replication slots feature by default. Supports YSQL commands for replication slots when the flag is true, while disallows them when the flag is set to false. It also rectifies a race condition between CreateCDCStream and the CataloCustomeranager background cleanup task. The revision further supports the creation of CDCSDK stream for a namespace, aiding in the long-term goal of supporting SQL syntax for CDC. {{<issue 19211>}},{{<issue 18890>}}cdcsdk_replication_slots_to_stream_map_ when corresponding entries are deleted from cdc_stream_map_, avoiding potential inconsistencies. {{<issue 19211>}}FOR ALL TABLES case in CDC, improving user visibility on skipped tables. {{<issue 19291>}}CreateCDCStream by eliminating unnecessary sleep statements, preventing a race condition, and ensuring correct initial checkpoint settings for the CDCSDK. Also, this code change introduces support for SQL syntax for CDC using the Postgres logical replication model, allows detecting replication commands without errors and defines whether a replication slot (CDC stream) is active or not. {{<issue 19211>}}yb_enable_replication_commands into a runtime PG preview flag, correcting a bug that caused publication commands to always be enabled regardless of flag value. {{<issue 18930>}}PG_DEFAULT and PG_NOTHING based on Postgres replica identity types while maintaining backwards compatibility by renaming ALLand MODIFIED_COLUMNS_OLD_AND_NEW_IMAGES modes to PG_FULL and PG_CHANGE_OLD_NEW respectively. A failsafe cdc_enable_postgres_replica_identity autoflag is added. {{<issue 19260>}}TestCreateCDCStreamForNamespaceLimitReached by specifically adding the record type CHANGE to the stream request. Enables support for two new record types PG_DEFAULT and PG_NOTHING, while retaining the ALL and MODIFIED_COLUMNS_OLD_AND_NEW_IMAGES modes. Adjusts settings using the newly added autoflag cdc_enable_postgres_replica_identity. {{<issue 19260>}}DEFAULT and NOTHING, based on Postgres replica identity types, and renames ALL and MODIFIED_COLUMNS_OLD_AND_NEW_IMAGES modes to PG_FULL and PG_CHANGE_OLD_NEW respectively for backward compatibility. It introduces an autoflag cdc_enable_postgres_replica_identity during CDC stream creation and adjusts the failing test TestCreateCDCStreamForNamespaceLimitReached by specifying the record type CHANGE. {{<issue 19260>}}tablet_peer. {{<issue 18479>}}GetCheckpointResponse to indicate snapshot_key presence only when present, enhancing accuracy of bootstrapping and streaming processes. {{<issue 19292>}}UpdateMapUpsertKeyValue API that lets you update specific keys without needing to re-add all keys, allowing for more efficient updates. {{<issue 19577>}}ScopeExit mechanism. Manual clean-up may be required in certain failure scenarios until DDL atomicity for alter table statements is implemented. {{<issue 18934>}}EXPLICIT during stream creation, ensuring no upgrade or rollback issues due to alterations in the default proto field value. {{<issue 18748>}}ASSERT_EQ assertions, not ASSERT_GE, for checking consumed record count, utilizing GetChangeRecordCount method for more accurate record handling and tablet splitting. {{<issue 20261>}}yb_enable_cdc_consistent_snapshot_streams. {{<issue 20367>}}use_client_to_server_encryption and certs_for_client_dir flags to enable and configure this feature, while not supporting certification files set via ysql_pg_conf_csv and cert-based authentication. Ensures upgrade and rollback safely without the need for an auto flag or node communication. {{<issue 19108>}}<tserver_ip_address>:13000/prometheus-metrics, enhancing data monitoring and diagnostics. {{<issue 19109>}}ysql_conn_mgr_use_unix_conn to configure this feature. {{<issue 19483>}}yb-pgsql java test framework by setting the YB_ENABLE_YSQL_CONN_MGR_IN_TESTS environment variable to true. {{<issue 19703>}}use_client_to_server_encryption. Physical connections, between the YSQL connection manager and Postgres process on the same machine, are not encrypted, enhancing internal performance without sacrificing secure external communications. {{<issue 19108>}}ysql_conn_mgr_sticky_object_count for easier and faster tracking of connection stickiness in YSQL Connection Manager tests, eliminating the need to modify pool sizes. {{<issue 20067>}}yb_use_tserver_key_auth for authenticating clients using yb-tserver-key. Removes the "postgres only" requirement for yb-tserver-key authentication and sets ysql_conn_mgr_use_unix_conn as true by default. Requires no HBA changes. {{<issue 19996>}}performance page. {{<issue 19991>}}constraint_value flag, offering a way to assign preference orders to Availability Zones (AZ). {{<issue 19415>}}join flag bugs, ensuring a smooth start command even if a node's join IP is not an active master and enables error handling when the placement_uuid from the join IP can't be obtained. Now supports Hostnames and handles edge cases for addresses provided through CLI. {{<issue 19316>}},{{<issue 19314>}}yugabyted start command to interpret 0.0.0.0 as 127.0.0.1 in the advertise_address, aligning with the IP use in master, tserver, and yugabyted-UI. {{<issue 18580>}}metrics_snapshotter_tserver_metrics_whitelist gflag, offering visibility into total logical and physical connections. {{<issue 18805>}}ysql_conn_mgr flag only if the connection manager is enabled, enhancing the accord between connection manager metrics and yugabyted UI. {{<issue 18805>}}Alert messages from all nodes by directing API calls through the yugabyted API server. {{<issue 19972>}}advertise_address=0.0.0.0 by ensuring 127.0.0.1 is used instead, and adds a connection check for address uniqueness and timeout for tserver API calls. {{<issue 18580>}}join flag during the second node's initiation. {{<issue 20018>}}use_initial_sys_catalog_snapshot, replaced by enable_ysql that is now true by default, eliminating repetitive warning messages on starting yugabyted nodes. {{<issue 20056>}}bind_address flag added for customizing the API server's bind address. {{<issue 20301>}}ysql_port and ycql_port values by introducing a new flag for YCQL port number. {{<issue 20406>}}:13000/connections endpoint, catering for removal of pool_name and addition of database_name and user_name. {{<issue 20494>}}config flag with start command, and directs updates to a yugabyted generated file within base_dir/conf directory. {{<issue 20881>}}join flag without throwing any errors. {{<issue 20684>}}enable_pg_parity flag in the yugabyted start command. {{<issue 21221>}}enable_pg_parity to enable_pg_parity_tech_preview for activating a predefined set of gflags related to the pg-parity project with the yugabyted start command. {{<issue 21221>}}master_enable_deletion_check_for_orphaned_tablets=true, ensuring upgrade and downgrade safety. {{<issue 18332>}}yb_enable_cdc_consistent_snapshot_streams, set to false by default. Also includes alteration to create stream workflow on the Master side and introduces retention barriers on Regular db, WAL, and IntentsDB. {{<issue 19678>}}MiniYBCluster to include YB Controller servers and allows for their graceful shutdown. {{<issue 19849>}}retention_barrier_no_revision_interval_secs gflag to avoid race conditions in setting retention barriers during stream creation, increasing the consistency of snapshot streams. {{<issue 20145>}}RUNNING state or schedule tasks before updating the data on disk. {{<issue 20577>}}ysql_enable_pg_per_database_oid_allocator is provided to return to old OID allocator behavior if necessary. {{<issue 16130>}}yb_local_throughput_cost, yb_local_latency_cost, and yb_docdb_remote_filter_overhead_cycles, enhancing performance across most TAQO workloads. {{<issue 20032>}}pg_locks by tracking the RPC request start time for the waiter instead of the time-out in the wait-queue, providing a more accurate reflection of real progress. {{<issue 18603>}},{{<issue 20120>}}yb_catalog_version is introduced, especially in 2.4.x or 2.6.x clusters where it was previously missed due to a YSQL upgrade code bug. {{<issue 18507>}}PDEATH_SIG mechanism signals child processes of their parent process's exit, by correctly configuring all PG backends immediately after their fork from the postmaster process. {{<issue 20396>}}MyLatch usage in all instances in order to manage process life cycle. {{<issue 20309>}}index_column OP NULL to additional btree operators >/>=/</<=, ensuring such conditions no longer send unnecessary data to DocDB. {{<issue 20642>}}SELECT DISTINCT queries. Enables successful execution of queries without errors and prevents server connection closures by disabling distinct pushdown. This fix improves the stability and effectiveness of SELECT DISTINCT queries. {{<issue 20893>}}IN operator by avoiding O(n^2) complexity in list traversal when generating ybctids. {{<issue 19329>}}nexts in the EXPLAIN plan from VERBOSE to DEBUG flag, enhancing Sequential Scan nodes to include these estimates. {{<issue 19938>}}CREATE TABLE operations, allowing for multiple sub-commands in ALTER TABLE ALTER COLUMN TYPE, adequately looking up Materialized views in PG schema, and addressing order field-dependency in DocDB columns. {{<issue 19605>}}ALTER TABLE SET TABLESPACE command from executing successfully when the cluster has a placement_uuid set, by properly filling in the placement_uuid during validation. {{<issue 14984>}}pg_regress, effectively fixing mismatches previously noticed due to its absence. {{<issue 19737>}}SideBySideDiff.sanityCheckLinesMatch. {{<issue 19690>}}yb_transaction_priority_lower_bound and yb_transaction_priority_upper_bound are disregarded in read committed isolation, irrespective of the enable_wait_queue status. {{<issue 19921>}}pg_yb_catalog_version that bypass CheckCmdReplicaIdentity function, eliminating DDL errors. {{<issue 19965>}}ysql_catalog_version in user-initiated system table requests, ensuring system table scans use an up-to-date catalog and reducing chances of TestPgRegressIndex failure. {{<issue 20017>}}element_typeid to prevent crashes when running aggregations with join by ensuring it's derived from the RHS of the index condition, not the LHS. {{<issue 20003>}}ddl_transaction_state gets properly reset even if YbIncrementMasterCatalogVersionTableEntry throws an exception, preventing non-global DDL statements from being incorrectly handled as global ones. {{<issue 20038>}}ysql_skip_row_lock_for_update to toggle the new row-level locking behavior. {{<issue 15196>}}KilledProcToCleanup instead of MyProc. {{<issue 20166>}}tcmalloc stats after path handler and garbage collection. Now yb_pg_metrics handles the SIGHUP signal to update flags values. Also adds :13000/memz and :13000/webserver-heap-prof to expose memory usage with a new runtime variable to control tcmalloc sampling. {{<issue 20157>}}pg_stat_statements.yb_qtext_size_limit flag, controlling the maximum file size read into memory, limiting potentially large or corrupt qtext files impacting system memory usage. {{<issue 20211>}}:13000/memz and :13000/webserver-heap-prof for printing tcmalloc stats and displaying current or peak allocations, respectively. {{<issue 20157>}}beentry from localhost:13000/rpcz to 1000 iterations, preventing indefinite waits and ensuring safety even in cases of inconsistent states. {{<issue 20274>}}TEST_yb_enable_ash gflag, enhancing the user's control over the ASH functionality. {{<issue 20180>}}debug field in ExplainState to yb_debug and repositions it to the bottom of the struct for clarity purposes. {{<issue 20366>}}MyProcPort is not established. {{<issue 20338>}}PcustomeriniAsh test failure. {{<issue 20362>}}Restart read required error during Cross-DB Concurrent DDLs with per-database catalog version enabled by initiating the function YbInitPinnedCacheIfNeeded before starting the DDL transaction. Also, improper usage of yb_non_ddl_txn_for_sys_tables_allowed with a DDL statement has been rectified. {{<issue 20303>}}TEST_yb_enable_ash. Safe to upgrade/downgrade. {{<issue 20242>}}TestYbAsh testEmptyCircularBuffer by ensuring buffer remains empty during idle cluster and excluding certain query samples. {{<issue 20629>}}yb_enable_base_scans_cost_model is activated and yb_fetch_size_limit is enforced by setting a fixed size for result width when it equals zero. {{<issue 20892>}}wait_for_ysql_backends_catalog_version_master_tserver_rpc_timeout_ms GFlag, increasing the default timeout value to 60s from 30s. This alteration only impacts one specific RPC - WaitForYsqlBackendsCatalogVersion, not all RPCs, which should diminish time-out incidents. {{<issue 18228>}}yql_endpoint_tserver_uuid changes to top_level_node_id for intuition, and session_id changes to ysql_session_id for clarity. {{<issue 20920>}}WriteQuery leak issue in CQL workloads, ensuring proper execution and destruction of queries, while preventing possible tablet shutdown blockages during conflict resolution failure. {{<issue 19919>}}wait-on-conflict by default in release builds across all isolation levels. {{<issue 19837>}}kMinAutoFlagsConfigVersion to 1, providing accurate configuration version comparison and reducing potential confusion. {{<issue 19985>}}Transaction Metadata Missing errors by accurately reporting deadlocked transactions that may result from multiple aborts in a deadlocked cycle. {{<issue 20016>}}Scheduler::Impl::strand_, which is used for executing incoming rpc calls, instead of reactor threads, thus preventing a fatal issue. {{<issue 20651>}}pg_locks, providing more accurate output for waiting transactions. {{<issue 18399>}}pg_locks queries when wait-queues are disabled by explicitly checking the existence of server_->tablet_manager ->waiting_txn_registry before its usage. {{<issue 20772>}}DocDB system by shifting the acquirement of submit_token_ of the WriteQuery to the post-conflict resolution phase to prevent DDL requests from being blocked, thus optimizing both reads and writes for continued performance and enhanced data consistency. {{<issue 20730>}}wait-on-conflict feature in the 2.21.0 branch that was previously disabled due to a bug, now resolved. {{<issue 20978>}}cdc_state during tablet splits, curbing log amplification. {{<issue 18540>}}ExternalMaster* instead of the mutating current_masters vector. {{<issue 19927>}}is_running rather than checking index state directly, ensuring accurate retain_delete_markers and reducing potential performance issues. {{<issue 19933>}}RaftGroupMetadata::CreateSubtabletMetadata to update the log prefix, preventing the use of parent tablet ID in child tablet's metadata logging. {{<issue 19375>}}WaitForReplicationDrain test helper for easier usage. {{<issue 18427>}},{{<issue 16758>}}Last status field on the tserver's tablets page to display the source a peer is or has been bootstrapping from. {{<issue 19568>}}maybe-uninitialized compilation error in almalinux8 release gcc11, enhancing the reliability of the code by addressing both identified issues. {{<issue 19987>}}TestYSQLDumpAsOfTime compilation issue by replacing <int64_t> with <PGUint64>. {{<issue 19992>}}hk!!. {{<issue 20007>}}cds::Initialize is called before executing any function on cds::threading::Manager, minimizing race conditions. {{<issue 20119>}}version_metadata.json or auto_flags.json files, providing clarity on the nature of the IO error. {{<issue 20250>}}enable_process_lifetime_heap_sampling flag, simplifying tcmalloc sampling control to only setting profiler_sample_freq_bytes, which if <=0 disables sampling. {{<issue 20236>}}kConflict errors to enhance system throughput. {{<issue 20329>}}rpcs_.Shutdown only occurs after all status resolvers of the participant have ended, avoiding any in-progress status resolver rpc(s). {{<issue 19823>}}request is too old errors during YSQL DDLs by setting the SysCatalog tablet's retryable request retain duration to the maximum of YSQL and YQL client timeout. {{<issue 20330>}}./yb_build.sh help to correctly display the help command instead of an error message due to a mismatched function name. {{<issue 20390>}}exec_program command with execute_process in CMake, resolving issue 20481 and eliminating potential warning CMP0153 for developers. {{<issue 20481>}}Universe is being deleted. {{<issue 20689>}}yb_build.sh to locate generate_test_truststore.sh in $YB_BUILD_SUPPORT_DIR, solving build failures on GitHub Actions. {{<issue 20747>}}SendAbortToOldStatusTabletIfNeeded try to send the abort RPC, thus preventing avoidable FATALs for failed geo promotions. {{<issue 17113>}}ysqlsh drop database command even when the database has multiple tables. {{<issue 19879>}}DELETING_METADATA state as well as ACTIVE state during dynamic table addition. {{<issue 20428>}}CDC error 9 when the ALL mode is utilized. {{<issue 19929>}}Merger tried to set tablet safetime to a lower value. Now, for non-consistent snapshot streams, the commit_time_threshold adjusts correctly to the safe_hybrid_time value as per the request, instead of always setting to zero. {{<issue 20356>}}pg_replication_slots view failure prior to any cdc/xCluster stream creation by refining the logic to read the cdc_state_table only when a cdc stream exists. {{<issue 20073>}}explicit_cdc_sdk_opid instead of a null value, ensuring proper snapshot checkpointing and enhancing snapshot resume functionality in EXPLICIT mode. {{<issue 19394>}}GetChangesRequest, ensuring the key is populated only when it is not null. {{<issue 19394>}}pg_replication_slots view is checked with RETURN_NOT_OK before usage. {{<issue 19894>}}FLAGS_update_min_cdc_indices_interval_secs from 2 to 5, ensuring the CDC state table tablet has enough time to wait for a new leader and correctly update the log. {{<issue 18156>}}cdcsdk_sent_lag metric to prevent disproportionate growth, by updating the last_sent_record_time with each SafePoint record, reducing inconsistency between transactions. {{<issue 15415>}}SET LOCAL query to set temporary session parameters for specific transactions, with values reverting after transaction completion. {{<issue 19556>}}/api/v1/mem-trackers, enhancing data reliability by avoiding parsing of the HTML page at the /mem-trackers server endpoint for memory usage data. {{<issue 18057>}}/api/v1/mem-trackers instead of parsing HTML from /mem-trackers, ensuring more reliability. {{<issue 18057>}}tserver start and tserver stop scripts successfully terminate all running PG processes, regardless of PID length, enhancing process management. {{<issue 19817>}}max_stack_depth from 900kB to 950kB for proper execution and lessens the excessive logging triggered by inherits cache in yb_pg_errors.sql. {{<issue 19443>}}protoc-gen-yrpc to produce forward headers for protobuf, and upgrading precompiled headers. Also restructures MasterService, divides it into smaller services improving build times, and moves encryption-related classes. Updates now allow less system entropy drain via revised UUID generation. {{<issue 10584>}}disable_tablet_splitting, addressing a previous condition where only one was required, thereby enhancing backup process reliability. {{<issue 8744>}}bootstrap from closest peer feature in the tserver flags page. {{<issue 18061>}}bootstrap from closest peer feature. {{<issue 18061>}}ui=false and alerts the user with a warning. {{<issue 16098>}}master_rpc_port, tserver_webserver_port, and master_webserver_port to dynamically accommodate custom configurations, solving connectivity issues in multi-region/zone cluster setups. {{<issue 15334>}}DumpRunningRpcs API to fetch them; if rolled back, this functionality will turn unavailable. {{<issue 19697>}}