What's new in the YugabyteDB v2025.2 LTS release series

What follows are the release notes for the YugabyteDB 2025.2 release series. Content will be added as new notable features and changes are available in the patch releases of the YugabyteDB 2025.2 release series.

For an RSS feed of all release series, point your feed reader to the RSS feed for releases.

v2025.2.0.0 - December 11, 2025

Build: 2025.2.0.0-b131

Third-party licenses: YugabyteDB, YugabyteDB Anywhere

Downloads

Docker:

docker pull yugabytedb/yugabyte:2025.2.0.0-b131

Highlights

Table-level locking for concurrent DDL and DML EA

Added Table-level locks to support concurrent DDL and DML operations across sessions, improving workload concurrency and reducing conflicts during schema changes.

Improved time synchronization across nodes EA

Time synchronization across nodes has been enhanced through the use of the ClockBound library, which is an open source daemon that allows you to compare timestamps to determine order for events and transactions, independent of an instance's geographic location; it improves clock accuracy by several orders of magnitude.

For more information, refer to ClockBound.

Support DDL operations within a transaction GA

Added support to align YSQL DDL semantics with PostgreSQL by allowing DDL statements to execute within the main transaction block instead of an autonomous transaction.

For more information, refer to Transactional DDL.

New features

  • Improves cluster balancer observability and throughput by prioritizing recovery of leaderless tablets and production databases. GA

  • YSQL index consistency checker. yb_index_check() is a built-in utility that helps detect and diagnose index inconsistencies in your database to ensure reliable query results. GA

  • CDC

    • Enables parallel streaming in PG replication protocol, offering options to consume data in key-specific order. GA

    • Added CDC Logical Replication support for xCluster feature where both CDC and xCluster can work simultaneously on the same source tables. GA

    • Allows immediate reflection of newly added tables in publication, eliminating the need for manual setting. GA

  • ASH

    • Adds ASH instrumentation to CDC, xCluster, Remote bootstrap, Restore Master, and Connection pooling for better bottleneck identification. EA

    • Adds rss_mem_bytes field to yb_active_session_history for tracing high memory sessions. EA

  • Colocated tables with tablespaces. With this enhancement, you can now take advantage of colocated tables for geo-distributed use cases, eliminating the need for trade-offs between distributing data across specific regions. GA

  • Enables TRUNCATE operations to be safely replicated in xCluster environments, ensuring consistency across distributed clusters. GA

  • Enhances bulk load performance on distributed tables by implementing Skip Prefix Locks. EA

  • Auto Analyze service Added automatic background statistics gathering to improve usability by eliminating the need for users to manually run ANALYZE. GA

  • Enhance tablet server write RPC visibility with EXPLAIN plan to identify bottlenecks and potential optimizations. EA

  • Cluster tablet metadata Offers a global view, yb-tablet-metadata to reveal tablet placement, leadership, and row-specific information for all tables and databases. EA

  • Backups with DDL. Backups succeed even when DDL changes are occurring during the backup process. EA

  • Expands ALTER TABLE functionality to include new and ongoing requests. GA

  • Simplifies ongoing and new tasks in the Catalog Caching area excluding main projects like Hybrid Tables/per-node-catalog cache. GA

  • Enhances query execution with foreign key performance, further IN batching, distinct and domain type pushdown improvements. GA

  • Introduces transaction-related enhancements for v2025.2, fixing consistency issues and read-restart errors. GA

  • Removes table tombstone check for colocated tables, increasing read and write performance. GA

Change log

View the detailed changelog

Improvements

YSQL

  • Ensures YSQL index backfill operations resume seamlessly after a master leader failover. #6218
  • Disallows interleaving SAVEPOINT and DDLs in a transaction block if transactional DDL is enabled, ensuring the safe execution of DDLs in Read Committed (RC) isolation. #3109
  • Fixes a use-after-free bug in postponed DDL operations to prevent potential issues in transaction commits. #3109, #26707
  • Allows setting and modifying options for foreign tables using ALTER FOREIGN TABLE ...OPTIONS (...). #1124
  • Allows execution of multiple TRUNCATE statements within the same sub-transaction without causing errors. #3109, #27203
  • Simplifies handling of temporary tables with on-commit actions by committing the DocDB transaction after executing these actions, preventing errors related to unnecessary transaction states. #3109, #27307
  • Fixes the ANALYZE command error occurring when run outside of a transaction block, ensuring smoother operations. #3109, #27125
  • Resolves a bug in DDL atomicity workflow that incorrectly committed transactions involving table creation and deletion in the same block, preventing PG and DocDB schema divergence. #3109, #27359
  • Enables configuration of transactional DDL blocks via the yb_ddl_transaction_block_enabled flag. #3109, #27715
  • Resets the DDL state for read-only transactions to avoid state persistence issues. #3109, #27650
  • Introduces the yb_fk_references_cache_limit parameter to cap FK references cache entries at 65535. #27739
  • Allows specifying colocation option for parent partition tables and splits parent partition tables into a single tablet. #16209, #27314
  • Enables transactional Data Definition Language (DDL) as a regular flag for interleaving DDL and Data Manipulation Language (DML) statements within a transaction block, enhancing system catalog read/write operations. #3109
  • Enables transactional DDL in YSQL, allowing DDLs to run within a transaction block and interleave with DML operations, while ensuring DDL atomicity. #3109, #27616
  • Enables speculative execution for certain PL statements to avoid unnecessary flushes, enhancing performance. #27464
  • Simplifies control flags for the auto analyze service, merging two existing flags into one, easing the use of the auto analyze feature. #24548
  • Reduces the frequency of auto-analyze on small, frequently-updated tables. #27627
  • Supports executing DDL statements in READ COMMITTED isolation with options to disable retries. #27716
  • Adds extra locality info from PostgreSQL to TServer for better transaction categorization and performance. #28270
  • Add a new YSQL configuration parameter that allows all DDL commands to increase the catalog version. #28253
  • Reduces catalog cache memory spikes during new connections by introducing a TriggerRelcacheInitConnection RPC that allows only superuser postgres to rebuild the relcache init file. #28758
  • Limits relcache init file rebuilding to internal connections only, reducing the memory spike associated with new connections. #28758
  • Adds debug logs to help diagnose errors when rebuilding the relcache init file. #28758
  • Reduces potential catalog cache memory spikes by enabling internal connections to perform minimal catalog preload. #28758
  • Adds a lint rule to ensure the pairing of Form_* and FormData_* lines in yb_typedefs.list, increases code readability, and updates yb_typedefs.list and yb_thirdparty_typedefs.list. #27319
  • Adds support for deferred mode in yb_read_after_commit_visibility for writes. #24940
  • Adds estimated roundtrip counts to EXPLAIN output for scans. #25063
  • Adds support for LSM index creation on multirange columns. #27297
  • Displays write RPC metrics in EXPLAIN (ANALYZE, DIST, DEBUG) output. #26086
  • Logs now detail the cause and context of read restart errors for better troubleshooting. #24431
  • Adds a new YSQL parameter yb_enable_cbo for safer query optimization without statistics. #26868
  • Enables integration of YSQL with PG's snapshot management for Repeatable Read isolation level. #28333
  • Introduces a per-backend in-memory cache for the hints table in the pg_hint_plan extension, reducing query planning time by avoiding inter-node lookups for each query execution. #26828
  • Adds YB-specific counters to pg_stat_statements for detailed stats tracking. #26791
  • Re-imports latest commit files from yb-pg15 branch, cherry-picks YB commits, removes unneeded commits, updates ysql_bench metrics, and fixes other minor issues. #24822
  • Simplifies code management by separating cancelable and non-cancelable scopes. #26751
  • Refactors the PgGate fetch control, introduces new classes for combining results from multiple PgsqlOp objects, optimizes index scan read requests for copartitioned vector indexes, and removes unnecessary index requests. #22826
  • Limits output buffer to 8kB to ensure compatibility with certain clients. #26744
  • Enhances tserver by adding support for garbage collection of invalidation messages, reducing memory usage. #26940
  • Enhances accuracy of cost modeling for backward index scans based on the use_fast_backward_scan flag. #26991
  • Updates the pg_stat_statements header to reset stats on upgrade from 2.25 to 2.27. #27180
  • Enhances Postgres logging integration by utilizing the ErrorData.backtrace field, adjusting the control of backtrace addition through the backtrace_functions parameter, and introducing a yb_debug_original_stacktrace_format flag to switch stacktrace formats. #26447
  • Increases the timeout for detecting pg_yb_catalog_version mode from 10 seconds to 20 seconds. #26990
  • Streamlines UPDATE/DELETE operations and standardizes function signatures in YSQL. #27179
  • Allows DDL statements to update the shared catalog version, reducing unnecessary master RPC calls and improving performance. #27028
  • Prevents auto-analyze DDLs from blocking or preempting user DDLs. #27036
  • Removes unnecessary YB_TODO comment in pl_exec.c related to memory context lifespan. #27060
  • Optimizes catalog version updates on DDL statements to avoid unnecessary refreshes. #27080
  • Adds support for cube and earthdistance extensions in YSQL upgrades. #27141
  • Adds a new YSQL configuration parameter to disable the hint table cache. #27151
  • Allows cleaner and when-needed building of dummy_seclabel in build_postgres.py instead of adding it as a default subdir. #25892
  • Reduces unnecessary full catalog cache refreshes by calling update functions atomically. #27239
  • Streamlines the database by removing obsolete functions related to drop/remove object by OID. #27352
  • Removes the YB_BITMAP_DISCOURAGE_MODIFIER to better reflect actual bitmap scan costs. #23565
  • Enhances the function to find the first catalog version more quickly using std::lower_bound instead of a linear scan. #27316
  • Updates the yb_pgindent run and fixes some related issues for better code style and format. #27341
  • Removes unused macro CHECK_REL_PROCEDURE2 and cleans up obsolete YB_TODO in heapam/indexam. #27328
  • Automates directory switch and indent option computation in yb_pgindent to simplify usage. #27384
  • Removes a redundant YB_TODO comment in finalize_partialaggregate that was introduced during the PG 15.2 initial merge. #27419
  • Adjusts the bad_variable_declaration_spacing lint rule to ignore macros and exclude certain paths, enhancing code consistency. #27418
  • Removes obsolete tasks in pg_dump.c, enhancing initial privileges retrieval for extension objects during backup/restore. #27423
  • Skip lint rules for certain files, reducing warnings/errors and simplifying exclusion logic. #27446
  • Removes a duplicate and outdated recordDependencyOnTablespace, enhancing the initial merge process. #27467
  • Adds pss_mem_bytes field to yb_active_session_history for tracking process memory usage. #27474
  • Enables sending buffered write operations and multiple read operations in a single RPC for optimized performance. #27432
  • Allows setting the flag ysql_yb_enable_invalidation_messages to disable incremental catalog cache refresh. #27286
  • Enables setting ysql_yb_enable_cbo flag on tserver for query optimization. #27495
  • Switches to __thread in regex code for thread-local variables, ensuring correctness and safety in multi-threaded environments. #26847
  • Allows YbctidReaderProvider to work with Slice instead of std::string for optimized PgFKReferenceCache memory usage. #28175
  • Enables parallel scanning in all safe cases, thereby enhancing speed and performance. #23149
  • Reduces unexpected full catalog cache refreshes in new PG backends. #27533
  • Allows turning a stored generated column into a normal one with ALTER TABLE ALTER COLUMN DROP EXPRESSION. #27456
  • Adds verbose logging for Perform RPCs between Pg and Tserver via shared memory. #27571
  • Modifies the bad_comment_style rule to bypass lint errors for nested comments in d2s_intrinsics.h and d2s.c files. #27623
  • Adjusts lint rule to ignore false positives for pg_hint_plan comments inside string. #27655
  • Rectifies PostgreSQL lint rule bad_spacing_after_comment violations and upgrades it from warning to error. #27693
  • Enhances brace lint rules to ignore false positives from code comments and macros, and upgrades them from warnings to errors. #27740
  • Enhances logging for troubleshooting unexpected full catalog refreshes by adding CatalogInvalMessagesDataDebugString. #27387
  • Displays storage flush reasons under debug logs for better query performance analysis. #27588
  • Simplifies conditional cleanup actions with MakeOptionalScopeExit function. #27786
  • Replaces the rss_mem_bytes column in pg_stat_activity with pss_mem_bytes for more accurate memory measurements. #27768
  • Removes the beta label for various Foreign Data Wrapper commands in YSQL. #9979
  • Streamlines request pagination in scans for consistent behavior across all directions. #27738
  • Allows upgrade_ysql to exit early if YSQL is not enabled. #27167
  • Adds GUC_EXPLAIN flag to YB-specific GUC parameters for enhanced EXPLAIN output. #26864
  • Simplifies code for Perfrom requests, enhancing readability and usability. #27965
  • Optimizes table cache by using invalidation messages to clear only relevant entries, reducing OpenTable RPC count. #28049
  • Displays TCMalloc and PGGate memory stats in pg_log_backend_memory_contexts for enhanced debugging. #27879
  • Introduces hnsw.ef_search as a new YSQL configuration parameter, mirroring ybhnsw.ef_search. #26629
  • Displays read operations in EXPLAIN for better insight into the number of operations, unaffected by request parallelism. #28028
  • Reduces memory allocations by using a generator instead of non-reused vectors in PgDmlRead::SetHoldingRequestedYbctids method. #27991
  • Enhances row boundary settings for hash-partitioned tables using encoded DocKeys. #28219
  • Adds the ability to display commit stats with the EXPLAIN command, helping users understand latency in multi-region workloads. #26964
  • Introduces a new yb_tablet_metadata view that allows users to fetch tablet distribution and leadership information across the entire cluster. #28107
  • Simplifies the PgTableCache interface reducing boilerplate code by accepting a single shared pointer of type PgTablesQueryTableReceiver instead of two independent pointers. #28069
  • Simplifies adding types to yb_typedefs.list and running yb_pgindent. #28063
  • Enables the now function to be evaluated once, replaced with a constant, and pushed down to DocDB, enhancing query execution. #26497
  • Ensures all COPY FROM commands in a transaction block use one transaction unit. #27061
  • Adds a new column to the yb_wait_event_desc view for more context about wait events. #26571
  • Reduces master load by allowing auth backends to utilize the tserver cache during authorization checks. #28144
  • Includes transaction isolation level in serialization error messages. #28114
  • Simplifies query handling via shared exchange by substituting callback in PgClientData with std::promise, saving memory allocation. #28205
  • Set YSQL configuration parameter yb_read_after_commit_visibility to relaxed to avoid restart read required errors during yb_index_check. #27288
  • Enables bounded staleness for PostgreSQL authentication backend cache using pg_cache_response_trust_auth_lifetime_limit_ms. #28261
  • Reduces master RPCs for PG auth backends by using tserver cache. #28144
  • Allows dynamic updates to ysql_hba_conf_csv without server restarts. #28361
  • Reduces chances of multiple notifications to listeners when opening multiple tables concurrently by refining the Waiter helper class. #28069
  • Adds functionality to the three extra columns in pg_stat_statements for tracking query retry counts. #28446
  • Changes default password encryption from md5 to scram-sha-256 for new clusters without requiring extra steps. #5399
  • Allows altering table constraints using the new ALTER TABLE syntax. #3945
  • Reduces memory usage by limiting the collection of intents in PgFKReferenceCache to the max batch size. #28175
  • Adds new RPC stats to pg_stat_statements and introduces a new flag yb_enable_pg_stat_statements_rpc_stats for capturing RPC wait times. #28474
  • Allows VERBOSE output in YSQL configuration parameter yb_explain_hide_non_deterministic_fields mode. #28515
  • Shifts documentdb build logic to a dedicated Makefile for more reliable checks during building process. #28559
  • Add a new counter to track new connections performing catalog preloads, aiding in debugging. #28538
  • Introduces DEBUG_ONLY macros to keep debug injection code compact and improve readability. #28554
  • Refactors YbcFlushDebugContext to reduce copying and fix pgindent errors by passing it as a pointer. #28605
  • Updates copyright format to match the most current version, "...YugabyteDB, Inc.", across all files. #28591
  • Refactor YbRunWithPrefetcher code to avoid errors when running yb_pgindent and improve code formatting. #28706
  • Avoids unnecessary memory spikes and ensures freshest catalog data for relationship cache initialization. #28144
  • Adds new YSQL configuration parameter yb_enable_cbo=legacy_ignore_stats_bnl_mode. #28703
  • Adds support for docdb_rows_returned column in pg_stat_statements to count rows returned by the storage layer. #28505
  • Expands EXPLAIN (ANALYZE, DIST) output to include transaction type, enabling a more formal way to deduce transaction type. #14804
  • Allows pushdown of stable and parameterless SQL Value Functions as storage filters. #28997
  • Increases timeout for tserver catalog version wait to 30 seconds, reducing connection time outs. #28978
  • Enables Early Access to Query Diagnostics from 2025.2. #28959
  • Allows preloading of RANGEMULTIRANGE to reduce cache misses when pg_range is preloaded. #28991
  • Fixes pg_total_relation_size to include index sizes, ensuring accurate and consistent size reporting across YugabyteDB's distributed storage. #23181
  • Adds a new ysql_userid column to Active Session History to track user activity and query performance. #28565
  • Reduces peak memory usage in yb_active_session_history by filtering out rows more quickly. #29089
  • Adds variable bloom filter support for queries with multiple keys, enhancing efficiency during scan operations. #28439
  • Cleans up YbBindSearchArray, enhancing code efficiency and preparing for future bucketized index work. #28834
  • Auto analyze flag now defaults based on user-set cost-based optimizer (CBO) flags, reducing bad combinations. #28944
  • Adds a check to prevent autonomous DDL transactions during an active regular transaction block. #29239
  • Simplifies type conversions in index backfill code to enhance consistency and prevent potential overflow. #29038
  • Adds four transaction-specific wait events to Active Session History for better operation tracking. #28792
  • Disables Memoize under BNL to reduce CPU overhead without sacrificing performance. #25251
  • Reduces race conditions in DROP DATABASE operations by waiting for stats update in Connection Manager. #27644
  • Adds a flag ysql_enable_scram_channel_binding to enable SCRAM with channel binding. #28108
  • Reduces query execution latency by optimizing GUC handling in Connection Manager. #20939
  • Introduces a flag to enable or disable the import of stats during pg_upgrade, reducing memory usage and enhancing performance. #26240
  • Adds a flag to simulate DDL operations during YSQL major upgrade. #27185

YCQL

  • Removes unused code that allows changing the table namespace, simplifying the source code. #27315

DocDB

  • Tracks ByteBuffer memory usage with MemTracker. #26875
  • Adds data block consistency check to sst_dump tool. #27233
  • Adds flag to allow tablet writes after a compaction failure. #27269
  • Adds remove_corrupt_data_blocks_unsafe flag for yb-ts-cli compact_tablet command. #27381
  • Ensures only voter peers are considered for leadership during a leader stepdown. #27568
  • Removes outdated fields from RaftGroupReplicaSuperBlockPB to avoid confusion, ensuring safe upgrade and rollback. #25582
  • Fixes overflow in FormatBytesAsStr to prevent large memory allocations. #27924
  • Adjusts the wal_size metric to include the size of the current active, writable segment, ensuring accurate reflection of on-disk size. #15274
  • Changes default value of ysql_num_tablets to 1 for initial number of tablets in hash partitioned tables. #28060
  • Adds logging to detect and inform if scheduled tasks in the reactor run slower than expected. #24801
  • Optimizes index scans by adaptively deciding to use next or re-seek, reducing query latency. #28616
  • Reduces load balancer's hold on Catalocustomeranager::mutex_ to prevent potential master leader unavailability. #29183
  • Prevents data loss during early compaction of replicated colocated tables. #25926
  • Introduces asynchronous lock functionality in ObjectLockManager to avoid holding up rpc threads during conflicts, and includes deadlock detection. #24669
  • Allows DDL release operations to withstand master restarts or failovers and ensures successful execution of release requests even when network issues occur. #25680, #26498
  • Enhances table locking by propagating lock calls to the tserver and expanding lock acquisition to all objects. #26803
  • Displays RBS progress details on the master's Cluster Balancer UI page. #26853
  • Introduces a debug tool to release global/exclusive table locks via yb-admin command, assisting in managing unexpected lock leaks. #26526
  • Support now correctly captures table IDs and colocation IDs during DDL replication, ensuring accurate replication for unique constraints, partitioned indexes, and table rewrites. #27081, #26453
  • Allows outstanding transactions to continue during DDL operations when table locks are enabled. #26869
  • Allows tracking of table-level lock states across all nodes, with accurate reporting in the pg_locks view. #24670
  • Triggers automatic background compaction for vector index based on size amplification, using the vector_index_max_size_amplification_percent flag. #27089
  • Sets xcluster_backfill_hybrid_time for all indexes to ensure no missed rows during backfill after data insert. #27445
  • Upgrades OpenSSL to version 3.0.16 and enhances aarch64 support. #27491
  • Disables statement retries when object locking feature is on, due to lack of re-acquisition of object locks during retries in extended query mode. #27520
  • Ensures consistent xCluster safe time during failover, including executed DDLs, by pausing all pollers and updating the safe time accordingly. Avoids issues during normal scans and inconsistencies during failover. #23957
  • Disables transparent statement retries in all paths when the object locking feature is activated. #27520
  • Switches YSQL object lock calls to use shared memory, reducing overhead to 5-15%. #27510
  • Allows seamless failover to the consumer cluster by using a variant of PITR that only restores data tablets, not pg catalog tables or yb master tablet. #27595
  • Allows transaction status tablets to be grouped by tablespace for future categorization of transactions. #28269
  • Ensures reliable xCluster history cutoff by backfilling namespace_id when necessary. #28124
  • Adds support for tablespace-local localities, allowing transactions to use status tablets corresponding to a specific tablespace, improving data replication handling for geographically close regions. #28273
  • Limits TServer crashes by capping log reader memory usage in xCluster replication. #28124, #22992
  • Enables safe activation and deactivation of the skip prefix locks feature and allows for safe upgrades. #28823
  • Allows control over the number of tasks running in parallel via the introduction of PriorityThreadPoolToken. #29151
  • Control the number of vector index compactions per tserver with new flags, offering control over chunks taken for compaction and limiting running compactions per tserver. #27601
  • Promotes object locking preview flag to a regular flag, allowing users to control the feature through the enable_object_locking_for_table_locks flag. #29317
  • Adjust leader lease to be larger than the heartbeat interval to avoid unnecessary retries and latency. #1348
  • Optimizes colocated table read performance by caching tombstone check results, making bulk updates 6x faster. #17843
  • Adds a metric to monitor the wait time of write and remove threads in joining the write batch group. #26548
  • Adds new wait events for ASH instrumentation to identify bottlenecks during bootstrap. #23198
  • Integrates RWQueue for enhanced concurrent queue performance and introduces TrivialSpinlock for improved spinlock functionality. #26818
  • Enables ysql_yb_enable_advisory_locks by default and makes it a runtime flag. #25293
  • Enables cloning of vector indexes in databases. #26872
  • Allow tablet server to wait for YSQL lease before starting postmaster, improving connection handling. #25880
  • Adds paginated querying for vector index operations. #26884
  • Allows setting ybhnsw.ef_search to customize search expansion factor. #26883
  • Allows partial processing of DDLs during failover by incrementing xCluster safe time after each DDL replication. #25999
  • Removes libcds dependency, simplifying threading model and reducing runtime costs. #26926
  • Enforces shared memory access restrictions at compile time. #26924
  • Cancels vector index compaction during VectorLSM shutdown. #26489
  • Enables saving of in-memory HNSW graph data to file system, enhancing usability and efficiency. #26937
  • Enables consistent backup and restore for vector indexes. #26965
  • Replaces most instances of LOG(ERROR) with either LOG(WARNING) or LOG(DFATAL) to align with coding style. #27042
  • Enables priority thread pool usage for vector index compactions. #26971
  • Adds detailed logging for failed DDL executions in xCluster replication. #23702
  • Enables faster table lock acquisition through shared memory in YugabyteDB. #25518
  • Stores object lock requests in shared memory to enhance crash safety. #25987
  • Enhances lock management by disabling fastpath during lock conflicts. #27813
  • Adds ASH instrumentation to snapshots for better tracking of backup and snapshot bottlenecks. #23200
  • Adds base structure for background compaction in vector index. #27227
  • Allows async functionality in TSLocalLockManager lock calls for enhanced database operations. #27238
  • Defers processing of records with commit times exceeding the apply safe time to the next batch. #27318
  • Corrects spelling error in DEPRICATED_pgschema_name to Deprecated_pgschema_name safely. #27332
  • Reduces wait time for deadlocked transactions to abort by timing out waiters after FLAGS_refresh_waiter_timeout_ms. #26903
  • Adds a flag to control the use of YbHnsw for vector indexing, requiring a drop and recreate for changes. #27417
  • Allows detection of deadlocks involving fast path transactions when object locking is enabled. #24630
  • Refactors shared memory management for better session control between tserver and pggate. #27484
  • Enables chunks picking for background compaction based on size ratio. #27377
  • Enables conditional tracing of ASH events to conserve memory. #27455
  • Allows exporting snapshots with tables undergoing DDL operations. #27425
  • Reverts commit disabling outstanding transactions during DDL until table locks feature is fully enabled. #27472
  • Changes the default value for the ysql_allow_duplicating_repeatable_read_queries flag to true. #27652
  • Increases limits for concurrent replica removals and over-replicated tablets to speed up cluster operations. #27488
  • Updates the Tablet Server UI page for better organization and readability. #27821
  • Removes -ftime-trace from Clang builds to enhance compatibility with ccache. #27499
  • Adds memory tracking to vector indexes for better resource management. #27548
  • Enhances check_data_blocks command output and logging to include data block number, index key, and distinguish corruption. #27594
  • Automatically adds ASH metadata to selected RPCs, maintaining a list of exceptions where metadata shouldn't be added. #26305
  • Speeds up cluster load balancing by considering tablet sizes for parallelism. #17561
  • Handles out-of-order messages to prevent lock leakage by cleaning up after specified ignore_after_hybrid_time. #27705, #26393
  • Reduces risks by not updating master_ysql_operation_lease_ttl_ms flag unnecessarily. #27681
  • Replaces yb::ThreadPool with YBThreadPool to enhance concurrent access and reduce latency by 5-8%. #4624
  • Converts xcluster_enable_ddl_replication from a preview flag to an kExternal flag. #27831
  • Enables TRUNCATE TABLE support in xCluster automatic mode with new flags and triggers. #23958
  • Streamlines operations by removing unnecessary flag checks on the master for table locks. #27521
  • Ensures xCluster DDL replication tables are included in backups. #27959
  • Reduces latency of YSQL write statements and lock-grabbing reads in distributed transactions by enabling async writes. #28382
  • Reduces unnecessary transaction conflict errors by auto-retrying status requests. #27973
  • Removes unnecessary log line that occurs whenever a tablet is deleted. #27980
  • Enhances on-disk size metrics to include snapshots, improving cluster balancer accuracy. #28010
  • Adds metrics for tracking fastpath object lock acquires. #27344
  • Turn on enable_object_lock_fastpath by default in Linux release builds, not affecting debug builds. #28065
  • Allows table servers to attempt to release their YSQL lease during shutdown, enabling other servers to process DDLs and DMLs without delay. #27832
  • Enables core dumps on FATAL errors with new flag disable_core_dumps_on_fatal. #28007
  • Disables object locking for PgTabletShutdownTest to allow DDLs like DROP/TRUNCATE to abort in progress DMLs. #28161
  • Enables enable_object_lock_fastpath and pg_client_use_shared_memory in all Linux builds. #28165
  • Adds hnswlib as an additional backend for hnsw vector index, enhancing search performance options. #28278
  • Boosts search performance by skipping deletion checks on tables that only perform inserts. #28229
  • Adds metadata and wait events to xCluster poller, enhancing visibility into bottlenecks. #23202
  • Enables dependency on the transactional DDL flag for the object locking feature to prevent self-deadlocks. #28212
  • Enables automatic selection of optimal distance function based on user's CPU capabilities, enhancing USearch's efficiency. #28329
  • Enhances reliability by retrying exclusive lock requests during YSQL lease membership changes. #27192, #28198
  • Allows execution of ANALYZE command on both primary and standby clusters independently. #28328
  • Allows checking multiple replication infos and tablet numbers for creating multiple tables simultaneously. #28331
  • Refactors boost::optional to std::optional for consistency and removes unused files, enhancing error handling in arclint. #28353
  • Enables AVX implementation in HNSWlib for better vector index performance using advanced CPU capabilities. #28364
  • Optimizes asan/tsan builds to use -O3 level and allows optional debug checks with new asan_release/tsan_release builds. #28553
  • Allows parallel merging of vector index chunks using the insert priority thread pool to reduce compaction time. #28397
  • Raises the minimum GCC version to GCC 12, compatible with all supported build platforms. #28540
  • Adjust assert logic in PgCatalogVersionTest to handle changes when object locking and transactional DDL are enabled. #28413
  • Implements custom DDL-based timeouts for DropTable and DropDatabase operations. #28394
  • Splits client's FlushTables into two methods, CompactTables and FlushTables, for enhanced extensibility. #28467
  • Allow vector indexes compaction with compact_table by using the ADD_VECTOR_INDEXES parameter. #27090
  • Simplifies DocDB iteration by removing unnecessary split between IntentAwareIteratorIf and DocRowwiseIteratorBase for new feature implementation. #28475
  • Allows toggling the colocated table tombstone cache optimization using the flag FLAGS_enable_colocated_table_tombstone_cache. #28470
  • Adds CRC checksum to RPC responses to prevent data corruption. #28665
  • Optimizes row scanning in HybridScanChoices by introducing ScanTarget class to eliminate the need for repeated key decoding. #28608
  • Allows updating remote_bootstrap_rate_limit_bytes_per_sec flag in real-time for each file or session. #28600
  • Adds vector index reverse mapping decoding support to the sst-dump tool. #28653
  • Switch to clang built with PGO in llvm-installer version for faster C/C++ compile and link times, reducing overall build times by 9-11%. #28692
  • Updates compaction logic to correctly handle and clean tombstoned reverse-mapping vector index keys. #27095
  • Adds server-level metrics to track the number of transactions started as global, region-local, and tablespace-local. #28921
  • Allows tablespace-local transactions to write to tables in any contained tablespace without global promotion. #28272
  • Displays xCluster safe time on yb-master UI page for enhanced debugging. #28910
  • Introduces two YSQL configuration parameters to control use of tablespace-local locality, offering workaround for suboptimal performance in certain cases. #28604
  • Calculates region locality on the tserver side for improved region local transactions handling. #28828
  • Allows reads and writes to proceed without waiting for a full quorum acknowledgment, reducing YSQL write and read latencies. #28320
  • Introduces disk write statistics for vector compaction, which offers insights into IO across vector index libraries. #28842
  • Configure RocksDB keys delta-encoding separately for YCQL and YSQL for faster read path and space efficiency. #28862
  • Enables skip prefix locks by default for new installation clusters. #28894
  • Enables vector index background compactions by default to control parallel execution and limit compactions per tserver. #29212
  • Refactors code to address contention issues on Catalocustomeranager::mutex_ in larger clusters, enhancing stability and performance. #29186
  • Enables dynamic sorting by columns in heap snapshot UI and reduces risk of database overload. #26693
  • Adds BSON and BID libraries to cmake, making the DocumentDB extension part of the build process, except for aarch64 due to upstream restrictions. #26695
  • Adds DocumentDB extension to non-aarch64/arm64 builds, with new flag ysql_enable_documentdb for protection. #26947
  • Supports major YSQL upgrades with xCluster by relaxing checks, allowing soft delete and recreate of databases. #27532
  • Adds a yb-admin command to check if nodes can be taken down without losing quorum. #28020
  • Standardizes long-form flag names in documents to use double dashes for clarity. #28240
  • Adds periodic cleanup for DDL replication tables to prevent unbounded growth. #19193
  • Simplifies ObjectLockManagerImpl code for easier maintenance and future updates. #26931
  • Ensures AuthOK messages are sent immediately to clients, simplifying future changes. #27825
  • Allows users to specify SSL ciphers and minimum TLS version on webserver ports. #27375
  • Renames "Network" wait_event_type to "RPCWait" for clarity. #26986

CDC

  • Eliminates usage of pgschema_name in CreateTable pipeline and introduces a new field internal_table_type to replace direct reading of PG Schema Name during table creation. #12770
  • Adds a yb_restart_time column to pg_replication_slots. #27764
  • Prevents data loss during restarts by not sending checkpoints if tablet safe time exceeds slot restart time. #28014
  • Adds instrumentation for RPCs sent to CDC Service, and new wait events enabling detection of bottlenecks in CDC by ASH. #23199
  • Displays replica identity map in list_change_data_streams output. #28646
  • Enhances error propagation from GetChanges to clients for more transparency. #28033
  • Updates descriptions for CDC retention flags and their dependencies, and clarifies validator error messages. #28019

yugabyted

  • Activates read committed isolation and cost-based optimization by default for newly started clusters. #29169
  • Adds an environment variable to show accurate CPU details and corrects VCPU display in yugabyted-ui in Kubernetes deployments. #26624
  • Upgrades yugabyted-ui TypeScript version to 5.0.4 for better package compatibility. #26958
  • Enables yb_extension role to create access methods during extension setup. #26857
  • Aligns the styling of assessment voyager page with the provided ficustomera design without disrupting schema migration page operation. #28214
  • Updates the voyager analysis page in yugabyted according to the Ficustomera provided. #28220

Bug fixes

YSQL

  • Reduces sporadic "duplicate key value violates unique constraint" errors in the Long-running System Test framework. #12449
  • Allows preservation of read time history to prevent "Bad read time serial" error during COPY operations in middle-commit scenarios. #26365
  • Allows prompt response to Postgres interrupts, enhancing handling of statement timeouts and cancel requests. #26284
  • Exempts walsender processes managed by the connection manager from YSQL backend checks. #27072
  • Allows setting YSQL configuration parameters to a whitespace empty value without causing error. #27106
  • Reverts a previous change that caused performance issues, ensuring timely execution of statements by honoring the YSQL configuration parameter statement_timeout during index scans with specific predicates. #26284
  • Fixes errors and crashes when creating temporary tables with ON COMMIT DROP. #27339
  • Resolves GCC 13 release build failures on Linux. #27916
  • Allows sharing of perform operation serial number counter among multiple Postgres processes to ensure unique serial numbers and better operation execution. #23648
  • Allows users to preload pg_enum in ysql_catalog_preload_additional_table_list. #28757
  • Prevents YSQL major upgrade failure caused by inconsistent namespace mapping during a failed upgrade attempt. #28815
  • Allows yb-admin ysql_catalog_version command to return per-DB Catalog Version value for a provided database. #28690
  • Adds missing primary keys and unique constraints to system catalogs, enabling them during initdb and YSQL upgrade. #27261
  • Disables neg hit optimization for inherited cache when minimal preload is on. #27543
  • Enhances upgrades for indexes with hash column groups to correctly handle aliases and metadata. #27629
  • Allows group and others read permission on initdb log files by hardcoding the permission. #28435
  • Ensures joins are only pruned when a Leading hint exists, avoiding errors. #26670
  • Allows on-demand reading from non-prefetched tables by downgrading log level from DFATAL to WARNING, eliminating Snapshot too old and cache inconsistency issues. #26515
  • Allows the use of PostgreSQL's snapshot management for foreign key triggers in YSQL, eliminating potential foreign key violations and enhancing data integrity. #26163
  • Ensures TimeZone is not lowercased in connection manager for correct pgJDBC interpretation. #28537
  • Keeps historical query diagnostics data persistent, even after a server restart or crash. #25471
  • Allows placement of table replicas in any specified region or zone using * wildcard. #26671
  • Reduces sequence-related errors when using ysql_conn_mgr_sequence_support_mode=pooled_with_currval_lastval. #27024
  • Corrects issues with foreign keys referencing partitioned tables, preventing TupleDesc reference leak warnings and crashes during insert queries. #26772
  • Corrects a queue ordering logic by using std::lower_bound to prevent tserver crashes. #27170
  • Preserves column order during backup restore of inherited tables, matching DocDB and PG orders. #27324
  • Fixes ANALYZE failures on wide tables by adjusting fetch size limits. #27202
  • Ensures auto analyze runs after table rewrites like TRUNCATE. #26109
  • Allows dumping of profiles and role mappings in ysql_dumpall. #25731
  • Enhances session stickiness when acquiring session-scoped advisory locks. #27249
  • Fixes DROP CASCADE to remove generated columns from DocDB. #27604
  • Ensures consistency in secondary index scans during concurrent DELETE_INSERT operations. #17159
  • Allows flushing or dropping of buffered operations before executing commands that affect the session state. #27673
  • Resets user ID and security context between ANALYZE retries for stability. #27188
  • Ensures DDL statements initiate DocDB transactions correctly to prevent errors. #27859
  • Disables automatic retries for COPY FROM/TO commands. #28093
  • Disables writes to role profile tables during YSQL upgrades to prevent errors. #28016
  • Enables accurate tablespace dependency tracking for tables moved via ALTER TABLE SET TABLESPACE. #26995
  • Avoids segmentation faults in ASH queries by initializing wait states to kIdle instead of kUnused. #28303
  • Fixes a bug that caused yb-master to crash when executing the CREATE INDEX command outside of a transaction block with savepoint for DDL support enabled via TEST_ysql_yb_enable_ddl_savepoint_support. #28955
  • Supports multiple analyze commits and concurrent DDL, ensuring low priority lock on pg_yb_catalog_version is retaken during subsequent transactions. #28731
  • Prevents Postgres crash by avoiding invalidation messages during catalog refresh when prefetcher starts. #28490
  • Forces loading of index expressions during index creation to prevent missed updates and potential inconsistencies. #28267
  • Fixes the issue of transaction self-abort with rollback to savepoint, allowing users to rollback DDL operations without facing transaction expired/conflict error. #28956
  • Disables query layer retry of ANALYZE command to prevent potential crashes caused by dirty states. #29025
  • Eliminates an issue causing stuck rollback operations to sub-transactions with alter table. #28957
  • Automatically sets default values for dependent flags when the YSQL Cost-Based Optimizer (CBO) is enabled or disabled. #29081
  • Ensures successful backup restore of colocated databases with unique constraints by correctly preserving implicit tablegroup. #28781
  • Disallows disabling DDL atomicity with YSQL configuration parameters if transactional DDL is enabled, preventing potential issues. #29358, #28284
  • Adds multi-snapshot execution mode to yb_index_check operation, reducing risk of Snapshot too old error on larger indexes. #26283
  • Allows large values to be inserted into temporary tables by enabling toast tables for temporary relations. #26007
  • Prevents errors by detoasting values before insertion into DocDB tables. #26561
  • Enhances fast-path transaction accuracy by adjusting read time settings. #26204
  • Re-enables password redaction for specific SQL statements in YugabyteDB. #22421
  • Restores the call to ScheduleCheckObjectIdAllocators inadvertently removed. #26902
  • Fixes a use-after-free bug in ysql_dump by copying tablegroup_name. #26547
  • Allows yb_binary_restore to be set by ybdbadmin for vector extension creation. #26941
  • Enables postgres_fdw to use ybctid for identifying tuples, ensuring compatibility and functionality. #11419
  • Ensures ybctid is correctly populated in RETURNING clauses for DML queries. #26951
  • Ensures auto analyze service no longer persistently analyzes deleted tables that met analyze threshold before deletion. #27033
  • Allows backfill reads to succeed by ignoring the isolation level when the default_transaction_isolation option is set to SERIALIZABLE on the cluster level. #26974
  • Ensures YSQL statistics tables are saved and persist after a database restart. #26758
  • Enables inheritance support by default, fixing issues with dropping constraints on inheritance parents. #26216, #5956
  • Adds missing migration script for pg_hint_plan extension update. #27025
  • Ensures accurate reset of stats before every EXPLAIN (ANALYZE) query. #27093
  • Ensures metadata consistency in upgraded indexes with renamed columns during YSQL major upgrades. #26928
  • Allows index column names to be emitted as aliases during a YSQL major version upgrade when the flag yb_format_funcs_include_yb_metadata is set to true. #26928
  • Increases the default ysql_output_buffer_size to 1MiB to enhance query retries and reduce errors. #22245
  • Fixes a bug to prevent NULL insertion in pg_yb_catalog_version. #27103
  • Adds COMMIT as a DDL in YSQL upgrade scripts to handle cache invalidation correctly. #27148
  • Fixed the issue causing rewrites on empty temporary tables to fail, allowing successful alteration of temp table columns. #26367
  • Adjusts the unique_key_recheck to fetch ybctid from the correct slot, even though deferrable unique constraints aren't supported yet. #27163
  • Ensures CREATE FUNCTION also updates the catalog version. #27166
  • Fixes secondary index scan cost estimation on colocated tables. #27214
  • Supports accurate cost estimates for hypothetical indexes in both old and new models. #22472, #22473
  • Restores single-RPC optimization for certain index scans. #27294
  • Fixes the assertion failure for ALTER DATABASE OWNER when using SELECT FOR UPDATE. #27280
  • Enables successful execution of comma-separated ALTER commands, even when one requires DocDB schema changes and the other doesn't. #27263
  • Fixes double output issue during a schema version mismatch retry by resetting the buffer position. #23825
  • Fixes crashes when locking rows in temporary tables by setting the correct transaction state. #27149
  • Ensures consistent query IDs for plan hints across settings and uses. #26621
  • Removes duplicate YSQL configuration parameter entry. #27427
  • Prevents ASAN failures during certain SQL operations. #27447
  • Converts process-local variables to thread-local ones in lc_collate_is_c, eliminating potential data races. #27500
  • Removes deprecated masters argument from ysql_dump/ysql_dumpall tools to reduce future merge conflicts. #26915
  • Fixes TServer crashes during concurrent metadata changes and tablet destruction and a segfault when rewriting tables with vector indexes. #26879
  • Fixes a memory leak in yb_cancel_transaction by freeing YbcStatus. #27554
  • Prevents assertion failure by checking and skipping the sending of zero requests in PgGate's parallel requests. #27535
  • Assigns accurate query IDs to RPCs executed outside of executor hooks. #24693
  • Fixes a compilation issue by converting an assert to an error. #27338
  • Prevent server crashes caused by large regular expressions with a new flag yb_max_recursion_depth. #27009
  • Corrects EXPLAIN output estimates for Bitmap Index Scans, enhancing accuracy in performance analysis. #27602
  • Ensures unique event codes in yb_wait_event_desc to improve data analysis accuracy. #27260
  • Ensures accurate EXPLAIN output for forward scans with aggregate pushdown. #27642
  • Fixes DROP COLUMN handling for tables with child partitions requiring rewrite. #27636
  • Calculates scan bounds during PgDocReadOp initialization, stores them with the request, and eliminates unnecessary recalculations and requests to partitions without matches, thus saving resources. #27695
  • Enables TOAST table creation for temporary tables in REFRESH MATERIALIZED VIEW CONCURRENTLY. #26007
  • Disables yb_force_early_ddl_serialization by default to avoid conflict errors. #27761
  • Fixes stale reads in pg_yb_invalidation_messages to prevent full catalog refreshes. #27776
  • Ensures PostgreSQL shuts down before deleting upgrade data to prevent crashes. #27726
  • Reduces unnecessary full catalog cache refreshes in certain scenarios. #27822
  • Corrects the NoYbBatchedNL hint behavior by properly configuring yb_prefer_bnl flag and defining clear semantics for NL and BNL hints. #27728
  • Prevents server crashes when multiple backend processes terminate while one holds a spinlock. #27874
  • Fixes crash by initializing CacheMemoryContext during backend startup. #27864
  • Fixes crash when using planner hints with hypothetical indexes. #27927
  • Ensures accurate catalog read counts for the first query in a session. #28011
  • Prevents crashes on transaction rollback with ALTER TABLE when transactional DDL is enabled. #28044, #28040, #28000
  • Separates commands in database upgrades to prevent read restart errors. #26282
  • Adds pgaudit 1.7.1 to enhance audit accuracy and resolve specific bugs. #28087
  • Displays the path of the initdb log file in stdout, aiding in debugging when global initdb fails. #26316
  • Enables dump_role_checks flag for new role-related statements in ysql_dump and ysql_dumpall. #27795
  • Enables yb_db_admin roles to set PL speculative execution parameters. #28101
  • Allows metadata to pass with AcquireObjectLocks and ReleaseObjectLocks RPCs for better thread communication. #28129
  • Ensures yb_enable_cbo correctly activates when legacy YSQL configuration parameters are ON. #28156
  • Update prevents auto-analyze from interrupting DDL statements by adjusting lock priorities. #28201
  • Reverts recent changes to handle postmaster PANIC, improving stability during error scenarios. #27874
  • Ensures the correct renew strategy for IsRenewRequired works as expected. #28226
  • Adds options to enable pre-2024.1 BNL cost behavior in non-CBO mode. #28222
  • Enables dump_role_checks in ysql_dumpall for role-related statements after creating profiles. #28235
  • Ensures consistent row filtering and paging in PgsqlVectorFilter. #28411
  • Fixes the issue where database fetch attempts could enter an endless loop, improving scan operations. #28462, #28476
  • Reduces unnecessary catalog version increments for renames on temporary relations. #28477
  • Fixes deletion of leftover invalidation messages when databases are dropped. #28348
  • Adjusts CFLAGS to ignore pg_parquet build warning, resolving clean build failure on some MacOS builds. #28494
  • Resets catalog read time after updating catalog version to prevent catalog inconsistency for concurrent DDL + DML under table locks. #28493
  • Sets the ybIsHinted flag correctly for Projection paths to prevent cheaper paths from losing based on cost. #28072
  • Enables transactional Data Definition Language (DDL) in the database, allowing DDL to run as part of the transaction block like Data Manipulation Language (DML), enhancing transaction consistency. #28000
  • Prevents failure of ALTER TABLE operations on UNIQUE columns in colocated databases by excluding colocation ID emission. #28177
  • Prevents a rare tserver crash by fixing a bug in YbNeedTupleRangeCheck and removing an unused variable from YbIsTupleInRange. #28708
  • Deprecates the YSQL configuration parameter yb_make_next_ddl_statement_nonincrementing to enable incremental catalog cache refresh by default. #28765
  • Resolves issues in TestPgRegressPlpgsql by enabling transactional DDL, reducing the chance of crashes due to many retries when transaction rollback is performed, especially with ALTER TABLE statements. #28000
  • Fixes a bug with transactional DDL not considering the yb_force_catalog_update_on_next_ddl flag, preventing crashes during transaction rollback containing an ALTER TABLE statement. #28000
  • Reduces RPCs by using Index Only Scan for INSERT ...ON CONFLICT ...DO NOTHING statements. #28324
  • Adds logic to accurately merge catalog modification aspects in nested ddls when transactional ddl is enabled. #28000, #28791
  • Introduces a new flag ysql_auth_method to select the password authentication method for YSQL, ensuring backward compatibility and avoiding user lockouts during upgrades. #28809
  • Fixes a regression bug that caused an OBJECT_NOT_FOUND error during an index alteration, ensuring smoother table modifications. #28849
  • Restores distinct error messages for kAbort and kConflict errors for clearer troubleshooting. #28157
  • Global DDL operations won't be aborted by concurrent (auto)ANALYZE processes in separate databases. #28877
  • Enables execution of DELETE and (re-)INSERT operations in a single flush for indexed JSONB columns, making updates less expensive. #27948
  • Resets transaction read point for DML statements following a DDL execution in transactional DDL mode. #28871
  • Fixes an error where a join condition was incorrectly pushed down in a batched nested loop, preventing crashes during planning. #28112
  • Displays accurate Storage Flush Requests and Execution Time for non-buffered write operations in the EXPLAIN ANALYZE output. #26963
  • Prevents dangling pointer issue in YbcFlushDebugContext by properly storing temporary strings. #28913
  • Adds a preflight check to fail upgrades if user-defined roles with the yb_ prefix exist, except yb_superuser. #28977
  • Prevents regular DDL within a transaction block from being aborted by auto analyze. #28926
  • Enhances error message clarity when altering the primary key index owner. #29001
  • Fixes error in REINDEX INDEX statement execution on partitioned tables with transactional DDL enabled. #29058
  • Corrects index-only scans in unbatched INSERT...ON CONFLICT...DO NOTHING queries for multi-column indexes. #29109
  • Resolves a bug that reset the query id of the walsender process to 7 from 11. #29147
  • Increases default values for parallel_setup/tuple_cost to better balance YB scan node and PG node costs. #28939
  • Refactors YbBindSearchArray's handling to eliminate potential bugs related to mutating is_column_bound and setting ybScan->all_ordinary_keys_bound, improving result accuracy. #29042
  • Prevents crashes during scalar array operations with arrays of dimension greater than two. #29188
  • Adds a backend type and libpq option to prevent analyze executions from hanging and ensure smooth CREATE INDEX operations. #29115
  • Renames various terms for rows read during backfill to num_rows_read_from_table_for_backfill for clarity, and directly increments the backfill job field, eliminating unnecessary atomic field accumulation. #29052
  • Updates reltuples for the new index and base table when creating an index, reducing the need to run ANALYZE and providing more accurate index scan cost estimates. #25394
  • Enables yb_enable_update_reltuples_after_create_index when the Cost-Based Optimizer (CBO) is turned on using the ysql_yb_enable_cbo flag or yb_enable_cbo YSQL configuration parameter. #25394
  • Enhances log message clarity for AlterTable CHECK failures in PgSchemaChecker to aid debugging in PITR restore scenarios. #28535
  • Reduces transient memory spikes during long running write queries by fixing intra-query memory leaks. #29056, #29057
  • Adjusts reltuples from 0 to -1 for dumps of older versions and enables ysql_upgrade_import_stats by default for improved database upgrade support. #27057
  • Fixes crashes during ysqlsh connections with empty passwords under load. #28174
  • Fixes connection manager crash during authentication due to double freeing of msg object. #29195
  • Enables defining the maximum percentage of total YSQL connections for the connection manager. #27701
  • Enhances visibility of ALTER ROLE ... SET configurations across multiple databases. #27945
  • Fixes authentication errors during consecutive cluster connections. #28149
  • Renames conflicting random number functions to prevent data race issues. #28248
  • Avoids crashes and data races during shutdown by safely managing thread resources and memory clean-up. #28415
  • Ensures accurate logging in PgAudit by using strdup to prevent garbage values. #27108
  • Allows the Connection Manager to use the highest possible integer as a bit-mask value for custom YSQL configuration parameters' stickiness. #27374
  • Prevents cascading timeouts during authentication lags in the connection manager. #28080
  • Prevents crashes by ensuring thread-safe rule de-referencing during route cleanup. #28102
  • Prevents crashes by holding route locks until the server closes in multi-route pooling. #27894
  • Prevents indefinite stalls in multi-route pooling by ensuring signals are broadcast across all routes. #28283
  • Enhances stability for YSQL connection manager during COPY operations from Go drivers. #28148

DocDB

  • Ensures consistent data reads by setting propagated safe time only after successful operation replication. #23696
  • Extends cloning timeout for multi-region deployments to prevent premature timeouts. #26626
  • Ensures yb-admin commands respect user-specified timeouts for table flushes and compactions. #19957
  • Prevents deadlocks and unresponsiveness during high-load schema changes by fetching table info asynchronously. #26909
  • Reduces follower lag by ensuring consistent Raft config during tablet splits. #26644
  • Allows successful response to duplicate write requests to prevent unnecessary query failures. #7251
  • Ensures accurate replication for transactional writes on xCluster range partitioned tables. #27380
  • Ensures post-split compactions complete even if background compactions are in progress. #27426
  • Eliminates duplicate MasterService metrics for improved monitoring clarity. #25277
  • Prevents incorrect query results due to invalid seek keys in internal iterator operations. #27641
  • Enhances the stability of document reads by validating key prefixes before processing. #27923
  • Prevents thread metric data from disappearing over time. #27955
  • Fixes unnecessary error logs during transaction loading with CDC enabled. #27986
  • Enhances Kubernetes compatibility by using RPC bind address as hostname in masters. #28084
  • Ensures tablet server limits in the UI exclude dead or blacklisted nodes, providing accurate data metrics. #27512
  • Prevents potential deadlocks in Raft operations by managing flusher state effectively. #27531
  • Allows SST files with specific row or column TTLs to remain candidates for compaction. #26014
  • Increases reliability of database cloning after a DROP TABLE operation. #28285
  • Solves the reversed condition in the rpc_inbound_calls_failed metric, offering more metric information. #28788
  • Ensures tablet split handling on the consumer side does not cause incorrect mappings due to race conditions. #28750
  • Allows removal of associated intentsdb keys during tablet startup to prevent potential pileup and slower queries. #21831
  • Changes prevent unnecessary node crashes due to network issues during remote bootstrapping process cleanup. #28830
  • Prevents silent data loss by failing the clone when a table is altering instead of cloning without data. #27621
  • Disables TryConsume usage by LogReader to prevent user operations from being incorrectly blocked due to a bug. #29095
  • Handles thread creation failure properly and falls back to RPC mechanism when thread cannot start. #28968
  • Allows transaction table deletion by updating transaction versions only on live tablet servers. #29067
  • Adds extra logging to track data inconsistency when durable_wal_write is set to false. #23453
  • Avoids TServer restarts and disruption to existing connections by enabling YSQL operation lease mechanism at TServer start. #27343
  • Ensures better handling of schema versions during rapid DDL changes in xCluster replication. #24990, #27275
  • Allows namespace_id to be correctly copied in TableInfo constructors to prevent empty return values. #28478
  • Prevents unbounded growth of the recently_applied_map by not adding read-only transactions, conserving memory. #26666
  • Simplifies replication role management in xCluster by storing the role in the system catalog, enhancing the accuracy of DDL replication by updating the role with each DDL call. #25853
  • Fixes handling of db_max_flushing_bytes to properly limit memory usage under high write loads. #26916
  • Clears relevant object locks when a PostgreSQL session abruptly ends. #26673
  • Fixes crashes when executing SELECT * FROM pg_locks during advisory lock waits. #26972
  • Prevents data loss by ensuring databases are flushed before updating flush markers. #26910
  • Stops sequences_data table bootstrapping during xCluster switchover to prevent sequence bumps loss. #26957
  • Rolls back the DocDB column ID counter when a DDL fails in YSQL databases using automatic mode replication, preventing DocDB column ID divergence. #25787
  • Fixes a bug that caused vector indexes to share a folder, preventing crashes. #27049
  • Fixes HTTP 503 response formatting on Master API requests. #26914
  • Ensures long-running reads access the correct schema version after updates and compactions. #23427
  • Lets tservers include their lease epoch in YSQL lease refresh requests to ensure proper bootstrap and restart of PG sessions. #27152
  • Changes the class of autoflag enable_export_snapshot_using_relfilenode from kLocalVolatile to kExternal to prevent restore failures during backups. #27155
  • Ensures successful remote bootstrap by removing pre-existing directories. #27123
  • Adds a new flag xcluster_ddl_queue_statement_timeout_ms to control DDL execution timeout from ddl_queue, with default set to no timeout. #27066
  • Fixes crashes in handling session advisory lock statuses. #27030
  • Adjusts DocRowwiseIterator to correctly include nulls for NULLS FIRST sorting. #27031
  • Stops retrying failed batches when the session is closed. #27171
  • Limits the number of entries per trace to prevent memory bloat during long running operations. #27334
  • Fixes issue where TServers fail to establish lease with a new master-leader after network partition. #27460, #27479
  • Fixes compaction errors from schema version mismatches by storing missing-value info. #27463
  • Prevents tasks from being scheduled on the threadpool after setting shutdown flags, avoiding unexpected termination. #27557
  • Prevents segmentation faults by ensuring return after executing RPC callbacks with validation failure in TabletService's object lock/release functions. #27561
  • Prevents reuse of docdb transactions post-abort to avoid state conflicts in locks. #27559
  • Prevents TServer crashes during concurrent vector index and read requests. #27699
  • Reduces memory usage by optimizing pg_locks with specific iterator settings and intent limits. #27810
  • Ensures safety by updating TabletPeer::GetNamespaceId to use shared_tablet_safe. #27632
  • Resolves deadlock during TSHeartbeat by adjusting lock scope. #27773
  • Eliminates potential deadlocks in thread pool by fixing a race condition. #27898
  • Ensures OID counters in cloned or restored databases avoid conflicts after table drops. #27943
  • Stops re-creating the xCluster DDL replication extension on the target. #27928
  • Ensures OID counters advance adequately to avoid future table creation collisions. #27944
  • Resolves PITR restore deadlocks by fixing lock inversion issues. #27792
  • Eliminates redundant rocksdb_block_cache_bytes_read metrics to reduce noise and overhead. #27017
  • Enables re-acquisition of object locks during statement retries in extended query mode execution. #24877
  • Ensures all fastpath object locks appear in pg_locks output. #28163
  • Disables catalog version check for ReleaseObjectLocks API to prevent TServer crashes. #28138
  • Increases YSQL DDL RPC timeout to 180s and introduces configurable ysql_ddl_rpc_timeout_sec flag. #28168
  • Prevents potential crashes during tablet shutdown when vector index compaction is running. #28511
  • Prevents fatal errors in xCluster by ensuring all schema versions are present during replication. #28326
  • Reduces master Write-Ahead Log (WAL) data by excluding db_catalog invalidation messages from initial ReleaseObjectLockRequestPB persistence. #28573
  • Fixes exclusive lock intents acquisition before shared memory setup. #28595
  • Adds a session-level advisory lock for ddl_queue_handler to prevent multiple handlers running concurrently. #27186
  • Allows Parallel Query feature to work correctly with object locking by limiting object lock and finish transaction calls to the leader worker. #28878
  • Adds a new enable_object_locking_infra flag and YSQL configuration parameter to activate table-level locks only after upgrading all nodes. Both this flag and enable_object_locking_for_table_locks must be true to activate the feature. This flag is tagged as PGC_INTERNAL preventing users from toggling it. #28875
  • Fixes PgConnTest.SessionExpiration failure when table locking is enabled. #29010
  • Reduces pg_locks transient errors by verifying tablet leaders during lookup and increasing retry attempts. #28180
  • Fixes a TServer crash issue during hybrid scans caused by incorrect read requests from Postgres. #29347
  • Fixes the issue of recording "query id 0" in Active Session History samples. #26808
  • Improves error handling for shared memory operations in DocDB. #26740
  • Removes 60-second timeout upper bound on admin RPCs and adds new yb_client_admin_rpc_timeout_sec flag. #26722
  • Prevents deadlocks during background compaction and transaction loading. #26880
  • Prevents yb-admin crashes by correctly handling argument count for create_database_snapshot. #26899
  • Enables yb-pbc-dump to decrypt and process encrypted protobuf files using specified keys. #26917
  • Prevents crashes in GCC fastdebug builds when vlogs are enabled by adjusting lambda storage in ObjectLockManager. #26960
  • Prevents master process crashes by fixing an iteration modification issue in TriggerDdlVerificationIfNeeded. #26967
  • Blocks nonconcurrent index creation on xCluster replicated tables. #27006
  • Ensures pg_locks query reliability when a node is down by continuing to serve requests. #27035
  • Eliminates the risk of deadlocks during table alterations and snapshot operations. #26565
  • Adds a lock-free SemiFairQueue class to the rpc::ThreadPool to manage tasks execution order. #27121
  • Enables efficient memory usage and fast data access through dynamic loading and unloading of data blocks in YbHnsw. #27075
  • Adjusts primary key creation on collection tables for better distribution of records, fixes bug in make_expanded_record_from_datum, and switches ysql_enable_documentdb to a preview flag. #27082, #27058
  • Adjusts DDL replication tables to be non-colocated directly in the extension using SQL for better compatibility with Postgres. #27100
  • Ensures column ID continuity in backups by preserving next_column_id. #27064
  • Enables YSQL transaction tracing with pg_client_use_shared_memory enabled. #27392
  • Ensures no deadlock when threads wait on PgResponseCache for query results. #27412
  • Prevents duplicate vector insertion after TServer restart during backfill. #27457
  • Allows unlimited threads in the catalog manager async_task_pool to prevent xCluster failures. #26617
  • Allows retrieval of table schema with vector column via java/yb-client by adding VECTOR type. #26384
  • Ensures consistent backup by exporting only committed DocDB tables at snapshot hybrid time. #27449, #27590
  • Eliminates undefined behavior by correcting the use of moved variables in pg_client_session.cc. #27707
  • Allows skipping object locking during initdb to prevent failures. #27444
  • Adds a wait event for transactions with SERIALIZABLE READ ONLY DEFERRABLE. #27836
  • Enhances metrics to better estimate cluster balancing times and validate the accuracy of the balancing algorithm. #23908
  • Ensures TServer handles lock releases correctly after bootstrapping. #27735
  • Prevents master crashes during index backfill by handling empty indexes correctly. #27697
  • Fixes placement logic to support wildcards in cloud info for tablet selection. #27285
  • Ensures xCluster metrics display correct table IDs and namespaces for better monitoring accuracy. #27667
  • Restores deletion of table info objects to prevent memory overload. #23721
  • Disables object locking when ysql_enable_db_catalog_version_mode is false. #27872
  • Prevents deadlocks by setting status tablet ID for shared memory lock requests. #27921
  • Eliminates DFATAL error for unregistered lock owners handling exclusive locks. #27968
  • Fail restore for unmatched DocDB tables during import_snapshot phase. #27820
  • Fixes a bug to ensure correct data storage in PostgreSQL table cache requests. #28001
  • Disables unnecessary logging when FLAGS_txn_slow_op_threshold_ms is set to 0. #27996
  • Object locks now respect yb_locks_min_txn_age and yb_locks_max_transactions settings. #27851
  • Resolves transaction status resolution hang during shutdown by using a CoordinatorLock and initiating shutdown for Rpcs before resolver. #28030
  • Ensures replication of transaction application status even when the last pending tablet is deleted. #28059
  • Defers transaction priority assignment to the first read/write operation. #28125
  • Ensures TSLocalLockManager is only created when both enable_ysql and enable_object_locking_for_table_locks are enabled. #28126
  • Enables ALTER DEFAULT PRIVILEGES commands in xCluster's automatic mode. #27051
  • Reduces noise in compiler output for x86 OS X builds by fixing regular expression errors. #28292
  • Ensures master metadata snapshots are consistent with snapshot_hybrid_time for accurate backups. #27575
  • Fixes issues with aborted transactions during promotions preventing stuck operations. #27853
  • Ensures cloning databases functions correctly with table locks enabled. #27800
  • Enables system tables to always fetch fresh tombstone time, preventing stale cache issues. #28327
  • Prevents an infinite loop and memory overhead in RocksDBOptionsParser when reading OPTION files. #28343
  • Stops XCluster polling when excessive DDL errors occur, preventing retries beyond limits. #28363
  • Adds CRC checksum to RPC calls to detect data corruption. #18675
  • Restores previous deadlock detection by retrying lock requests from the host tserver. #28386
  • Enforces TLS v1.2 for secure webserver connections. #28417
  • Reduces table tombstone check time significantly by adding an iterator upperbound, improving performance. #28451
  • Preserves cluster balancer metrics correctly across all placements including read replicas. #28366
  • Prevents table deletion during snapshot creation by implementing namespace anchoring. #28290
  • Increases data metric's capacity to handle over 4 GB for balancing. #28500
  • Resolves two compile errors in GCC 12 build by adjusting parameters to be compatible with GCC and suppressing warnings. #28519
  • Displays "(unenforced)" in master UI under "Tablet peer limit" when tablet limit enforcement is off. #28479
  • Fixes an issue where aborted transactions could get stuck with object locks. #28520
  • Removes dangling references in certain code areas identified by the -Wdangling-references warning. #28560
  • Eliminates an extra space before the period in the output of yb-admin flush_tablet/compact_table command. #28572
  • Fixed a deadlock issue in the pg client service shutdown path, improving system stability. #28597
  • Reduces chances of hitting kDeadlock for first statement in RC transactions and addresses rollback issue for session advisory lock requests. #28593
  • Adds a memory tracker to monitor temporary memory used when reading WALs, preventing TServer crashes. #28623
  • Removes a function call that caused tablet server shutdowns during RPC reception. #28615
  • Adds time units to relevant Prometheus metric help descriptions for better understanding. #28634
  • Resolves the issue of queue_time_us_stats being incremented twice, enhancing TestThreadPool.TestMetrics stability. #28668
  • Adds a long operation tracker to CatalocustomeranagerBgTasks::RunOnceAsLeader for easier debugging. #28712
  • Adjusts active log segment size tracking for accurate wal_size metric when reusing existing segments. #28720
  • Prevents yb-master crash by making MessageDifferencer thread-safe and limiting its use to debug builds. #28729
  • Allows deletion of hidden tablets during point-in-time restores that are no longer in use. #28704
  • Allows AutoAnalyze to work consistently, regardless of table level locks feature, by always acquiring the acquire_for_update_lock lock. #28783
  • Adjusts advisory lock release timing to prevent handler blockages during shutdown in time-sensitive builds. #28889
  • Redundant finish transaction calls no longer request a new transaction when releasing object locks if a DocDB transaction doesn't exist. #28761
  • Allows table-level locks to respect the lock_timeout setting, returning an error if lock is not obtained in time. #27677
  • Reduces master_rpc_timeout_ms to 1.5s to lessen outages by quickly detecting dead/unavailable master nodes. #28924
  • Enables "SELECT FOR KEY SHARE" to avoid crashes during cluster restart by starting each run with a clean state. #28881
  • Reduces Unable to find schema name for YSQL table errors and optimizes the retrieval of YSQL Table Oid. #28793, #27590
  • Eliminates shutdown deadlock in CQL service, enabling consistent and graceful server shutdown. #28438
  • Modifies fast path transaction criteria to exclude object locking writes. #28922
  • Enables transactions to start with the correct locality in AcquireObjectLocks RPC handler, reducing latency and eliminating extra global roundtrips for global transactions. Also passes force_global_transaction and tablespace OID for AcquireObjectLocks RPCs, allowing transactions to start under the appropriate locality. #28317, #28979
  • Adds object lock auto-flag checks to YbMaybeLockMasterCatalogVersion and AcceptInvalidationMessages for upgrade safety. #29054
  • Ensures that failed ALTER TABLE statements roll back even in the event of a master crash. #27021
  • Prevents vector index compaction failure when all vectors are filtered out during compaction. #29016
  • Eliminates unexpected system exits when DDL transactions enter the tablet wait-queue in a colocated database with index. #29215
  • Adds debug logs to assist in debugging issues related to concurrent DDL execution without object locking. #29080
  • Enables use of PostgreSQL memory allocation for BSON by updating to the latest version of the BSON library. #27104
  • Corrects xCluster status display for sequence data streams. #26388
  • Disables pg_cron jobs on xCluster target by default, adjustable with cron.yb_enable_on_xcluster_target. #26799
  • Enables extension build in Ubuntu 22.04-Clang19-debug by using pcre from the latest third-party update. #26948
  • Fixes a memory leak by using condition variables for signal handling in the connection manager. #28191
  • Reduces segmentation faults by isolating cascading timeout handling to auth processes. #28206, #28218, #28231, #28242
  • Eliminates stale hashmap entries on parse errors, enhancing protocol-level prepared statement handling. #28576

CDC

  • Ensures CDC correctly processes transactions involving vector columns by skipping orphan tombstone intents. #27942
  • Prevent loss of records due to bugs in the PeerMessageQueue::ReadReplicatedMessagesForConsistentCDC implementation. #29060
  • Ensures only relevant COMMIT records are streamed, fixing gRPC connector crashes. #26861
  • Prevents CDC crashes by logging a warning for dropped indexes on colocated tables. #26834
  • Prevents data loss by not streaming records during transaction load. #26835
  • Ensures reliable CDC stream functionality during index creation, preventing schema packing errors. #26891
  • Fixes issue where data streaming with colocation could skip intents, causing record or column loss. #27052
  • Prevents deletion of child tablet entries during metadata cleanup. #27069
  • Sets the default value of dcheck_for_missing_schema_packing to true to enhance CDC testing accuracy. #26891
  • Ensures hidden tablets are accessible during CDC stream fetches to prevent errors. #26911
  • Optimizes CDC streams by sending a single BEGIN and COMMIT record for colocated tables. #27248, #2605
  • Ensures CDC streams data for non-transactional YCQL tables correctly. #28034
  • Ensures unique sorting of batched shard records using write_id to prevent data loss. #28166
  • Eliminates race conditions in CDC session management, preventing crashes. #28336
  • Introduces the yb_ignore_read_time_in_walsender parameter for logical replication continuity during upgrades. #27177
  • Ensures only tables in a publication are checked for CHANGE replica identity. #28629
  • Handles error propagation from CDC to client for missing footer in segments. #28592
  • Allows large transactions for unqualified tables to stream correctly, preventing the virtual WAL from getting stuck. #28744
  • Fixes CDC issue with virtual WAL restart after a DDL, preventing record decoding failure. #29136
  • Prevents core dumps by returning early from WalSndWakeup due to irrelevant callers in the YugabyteDB context. #28379
  • Filters out data from rolled-back savepoints in CDC streaming, ensuring only valid data is received by CDC consumers. #22817
  • Prevents the "Trying to fetch already GCed intents" error by correctly updating and managing checkpoints for child tablets after a tablet split. #28840
  • Changes the enable_cdcsdk_setting_get_changes_response_byte_limit flag to default as true, ensuring the correct maximum response size. #27892
  • Stops applying the LogReader memory limit to CDC, a setting intended only for xCluster. #29066
  • Adds "Log index cache entry for op index not found" error to retryable errors in cdcsdk_virtual_wal. #29061
  • Reverses changes to support savepoints due to an exposed bug, specifically for version 2025.2.0. #29404
  • Reduces the frequency of log spam due to missing tablet warnings by changing logging parameters. #28086

Other

  • Updates the Knowledge base -LlamaIndex with the latest YugabyteDB Vector Index dependency details. #27913