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

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

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

v2024.2.0.0 - November 27, 2024

Build: 2024.2.0.0-b135

Third-party licenses: YugabyteDB, YugabyteDB Anywhere

Downloads

Docker:

docker pull yugabytedb/yugabyte:2024.2.0.0-b135

Highlights

New features

  • Instant database cloning allows you to quickly create independent copies of your database for data recovery, development, and testing. Clones can be created in seconds, and initially consume no additional disk space because they share the same data files as the original database. Clones can be created as of now, or as of any time in the recent past (within a configurable history retention period), so developers can experiment without impacting production performance. Clones also provide a safety net for rapid recovery from accidental data loss or corruption. EA

  • PostgreSQL extensions

    • pg_cron extension support. pg_cron brings a cron-based job scheduler directly into the database. With pg_cron, you can schedule YSQL commands using familiar cron syntax, including jobs on intervals as fine as seconds. While pg_cron operates on a single node known as the pg_cron leader, the queries it schedules leverage the full resources of the distributed cluster. In case of node failure, leadership is automatically transferred, ensuring continuous availability and smooth scheduling operations. EA

    • pg_partman extension support. Added native support for pg_partman extension to create and manage both time-based and serial-based table partition sets. pg_partman simplifies managing table partitions based on time or serial IDs, automating their creation and maintenance. EA

  • Active Session History. Get real-time and historical information about active sessions to analyze and troubleshoot performance issues. EA

  • yugabyted

  • Semi-automatic xCluster replication. Semi-automatic xCluster replication simplifies the management of YSQL transactional xCluster replication by operating at the database level instead of the table level. This reduces the need for IT admin involvement when tables are created or dropped, as xCluster management is only required for adding or removing entire databases from replication. DDL operations can be performed by authorized users or DBAs without needing elevated privileges. Semi-automatic xCluster supports YSQL transactional replication and is ideal for Disaster Recovery (DR) purposes.

  • Colocated tables with tablespaces. With the introduction of tablespaces support for colocated tables, you can assign tablespaces to their colocated tables, bridging the gap between regional data distribution and performance demands. This development eliminates the need for trade-offs, allowing organizations to adhere to compliance requirements while benefiting from the efficiency of colocated tables and relations. By ensuring all colocated tables in a tablespace reside in the same tablet, this feature optimizes both data management and operational efficiency. EA

  • xCluster observability. Added ability for users to monitor xCluster metrics like Replication Lag, Safetime Lag, and replication errors, with support runbooks for troubleshooting via YB-Master/YB-TServer UIs, YugabyteDB Anywhere dashboards, and logs. EA

  • Follower reads. Added ability to read from the follower after starting the transaction, but before the first statement is executed.

  • Query performance enhancement. Implement shared memory for PostgreSQL to TServer communication to minimize latency and enhance query performance by reducing communication overhead.

  • Skip column updates. Avoids updating columns which are included in any Index and Foreign key constraints when the columns values are not changed.

  • Improvement to backward scans. Speed up YSQL backward scans by 10x-15x. For example, descending scans on tables that are stored in ascending order are now much faster. Previously, backward scans were significantly slower than forward scans in YugabyteDB, causing the query optimizer to implement various workarounds, including adding a sort operator on top of the forward scan operator to keep the backward scan pattern comparable. Such optimizer tricks might have been ineffective in complex query plans. The improvements to backward scan performance now allows such queries to be faster out of the box. You enable the feature using the use_fast_backward_scan preview flag. EA

  • SELECT query performance. Enables the batching for locking the rows and thus helps improve the performance of the queries which lock more than 1 row using SELECT FOR UPDATE.
  • Sequential scan speed. Improved ANALYZE and sequential scan performance by leveraging OS-level read-ahead, resulting in up to 8x faster ANALYZE operations.
  • ALTER support. Added support for miscellaneous ALTER TABLE DDLs.
  • Catalog caching. Provides ability to find catalog tables which can be preloaded to improve latency for first query in connection or after DDL in the cluster.EA
  • CDC connector on Confluent Hub. YugabyteDB CDC Connector is now available in Confluent Hub. EA

Change log

View the detailed changelog

Improvements

YSQL

  • Enhances logging for YSQL version mismatch errors and DDL operations. #20084
  • Enables control over in-place index updates with yb_enable_inplace_index_update. #20908
  • Allows use of UNLOGGED tables syntax, handling it as LOGGED with a warning. #23895, #23889
  • Reduces memory usage by compressing large catalog objects in catcache. #21040
  • Enables DDL atomicity by default, enhancing schema version consistency. #22097
  • Adds a new YSQL view for YCQL statement metrics to aid in query analysis and troubleshooting. #20616
  • Displays distinct index columns directly in EXPLAIN output. #20831
  • Enables controlled activation of the DDL atomicity feature during upgrades. #21535
  • Enhances session management by updating read times more consistently. #21623
  • Allows loading only pg_shdepend in YbInitPinnedCacheIfNeeded for cross-database DDLs. #21635
  • Enables monitoring of YCQL statements through a new YSQL view, enhancing query analysis. #20616
  • Enhances schema version consistency by re-invalidating table cache post-ALTER TABLE with DDL atomicity. #21787
  • Adds new monitoring columns to localhost:13000/statements for enhanced tracking. #21735
  • Enables logging for global-impact DDL statements that adjust all database catalog versions. #21826
  • Sorts YSQL extensions into three specific directories for better organization. #21897
  • Fixes schema version mismatch after ALTER TABLE in production builds, ensuring reliable schema updates. #21787
  • Introduces the yb_parallel_range_size parameter to customize parallel range sizes. #21928
  • Removes the unused keep_order field from YbctidGenerator for streamlined processing. #21944
  • Introduces the yb_enable_parallel_append flag to disable parallel append and avoid exposing unannounced features. #21934
  • Enhances code clarity and performance with style and logic refinements. #22004
  • Enables creation of dummy vector indexes in YSQL with placeholder functionality. #22195
  • Disallows move and copy operations for LWFunction to prevent misuse. #22069
  • Streamlines and deduplicates logic for ybgin and lsm access methods, enhancing support for new index types. #22195
  • Enables CREATE/DROP ACCESS METHOD grammar, supporting custom access methods and extensions. #22364
  • Clarifies log messages for DDL atomicity in TableSchemaVerificationTask. #22459
  • Eliminates duplicated logic for YSQL hidden column ybrowid handling. #22536
  • Adds save and restore functionality for ConsistentReadPoint state. #22597
  • Ensures consistent table names in backup/restore scenarios by not renaming DocDB tables during legacy rewrites. #22802
  • Disables Python checks on all third-party PG extensions. #23166
  • Simplifies coding in PgDml and related classes by streamlining parameters and functions. #23192
  • Enables the optimizer to prefer backward scans when FLAGS_use_fast_backward_scan is enabled. #22370
  • Adds new flags for role management in YSQL backups and restores. #20972
  • Enhances code clarity and documentation for Batch Nested Loop Join logic. #23407
  • Introduces a dedicated auth-backend for YSQL to handle connection authentication, enhancing security and streamlining the process. #24147
  • Ensures correct error handling by adding a missing InvalidOid check in YSQL. #24147
  • Enables authentication via a specialized backend, enhancing security and reliability. #24147, #24427
  • Enables toggling authentication method in YSQL using the ysql_conn_mgr_use_auth_backend flag. #24147

YCQL

  • Adds error message for unsupported GROUP BY in YCQL; introduces flag to suppress it. #13956
  • Resolves timestamp precision mismatches in YCQL, aligning inserts and index scans to millisecond precision. #11052, #23476

DocDB

  • Tracks and analyzes disk I/O by stack trace, enhancing debugging and system understanding. #17993
  • Resolves a build failure that arose from a naming conflict in debug flags. #17993
  • Blocks writes based on total bytes being flushed, not just memtable count. #22571
  • Enables background DNS resolution to prevent RPC delays. #22930, #22311
  • Enhances load balancer to prioritize under-replicated tablets first. #20263
  • Introduces a flag to toggle between new and legacy memory default settings. #22161
  • Logs memory stack traces to help diagnose OOM errors, with configurable throttling. #21396
  • Upgrades non-FIPS OpenSSL to 3.0.15 and removes CentOS 7 builds. #24436
  • Prevents overloading by correctly categorizing bootstrapping tablets in load balancing. #23487
  • Deprecates unused flags to reduce confusion and streamline configurations. #20906
  • Ensures debug builds can restart from release builds for easier debugging. #21093
  • Streamlines xCluster management by relocating specific table and stream mappings to XClusterSourceManager. #21325
  • Enables faster backward scans in DocDB with new flags for optimization. #19352
  • Enhances error messages for unset preview flags in allowed_preview_flags_csv. #21484
  • Ensures GetChangesForXCluster does not return invalid safe times. #21528
  • Adjusts TServer memory recommendations and adds new defaults based on node RAM size. #20664
  • Adds usearch and fp16 libraries for enhanced vector indexing. #21830
  • Ensures correct error messages are shown when creating tables or tablegroups. #21760
  • Enables replication of DDL schemas and user settings across clusters. #21848
  • Ensures early, clear error messages on timeouts by introducing a flag are_nodes_safe_to_take_down_timeout_buffer_ms. #21855
  • Removes the "No active snapshot" warning log to streamline debugging. #21911
  • Ensures DDLs are rerun exactly once by checking replicated_ddls before execution. #21943
  • Streamlines xCluster stream creation by centralizing functionality in XClusterClient::CreateXClusterStream<Async>. #22343
  • Adds skip_producer_stream_deletion flag to speed up xCluster DR failovers. #22050
  • Reduces thread usage by reusing the server messenger for AutoFlags. #22076
  • Reduces thread usage by reusing server processes in stateful service clients. #22102
  • Enhances validation with SCHECK_PB_FIELDS_NOT_EMPTY to ensure PB fields are non-empty. #22182
  • Ensures DROP TABLE operation with atomic DDL waits until the table is fully deleted. #22184
  • Enhances extensibility by splitting yb_xcluster_ddl_replication.c into multiple files. #22190
  • Removes deprecated xCluster JSON format to streamline functionality. #22219
  • Blocks multi-statement DDL queries to prevent replication issues. #22060
  • Reduces complexity in catalog_manager by relocating RPC endpoints to MasterClusterHandler. #19715
  • Adds read-time option to ysql_dump help for point-in-time database dumps. #21886
  • Renames flag to xcluster_consumer_thread_pool_size for clearer usage and efficiency. #20305
  • Removes unnecessary locks in DeleteOrHideTabletsAndSendRequests to prevent deadlocks. #22618
  • Adds column sorting to stack trace tracking UI for easier data analysis. #22841
  • Introduces session-based in-memory table locking for improved concurrency control. #23045
  • Uses table IDs instead of names for matching in xCluster DDL replication setup. #23013
  • Speeds up backward scans for flat doc reader with packed row V2. #22556
  • Reuses Tservers yb::client in CDCService to reduce resource usage and fix optimization issues. #22893
  • Standardizes xCluster client usage and streamlines client creation in XClusterConsumer. #22908
  • Ensures replication setup is successful only if all components are healthy. #22948
  • Displays external_hybrid_time in log-dump to detect xCluster target writes. #22918
  • Adds SOURCE_UNREACHABLE and SYSTEM_ERROR enums to xCluster for better error reporting. #22996
  • Allows requesting xCluster streams by producer table IDs for accurate replication setup. #23013
  • Adds easier access and tracking controls to stack trace endpoints. #22842
  • Renamed and relocated xCluster components to streamline management and functionality. #23044
  • Removes deprecated namespace replication code, enhancing system performance. #23046
  • Enhances pggate to recognize fast backward scan capabilities for better query cost estimation. #22937
  • Refactors xCluster replication setup, bootstrap, alter, and delete functions for better organization. #23183
  • Ensures debug builds can restart from release builds by making column ID representations consistent. #21093
  • Refactors code for clearer maintenance and separation of XCluster and CDCSDK functionalities. #23301
  • Enhances flags UI by hiding invalid flags and empty categories. #23308
  • Enables storing and loading vector index updates in DocDB. #23377
  • Streamlines statistics management in IntentAwareIterator. #23420
  • Speeds up backward scans by caching keys, enabling quicker and more efficient data retrieval. #22372
  • Allows configuring tablet splits based on size ratios with FLAGS_tablet_split_min_size_ratio. #21458
  • Simplifies tracking heartbeat processes by relocating code to master_heartbeat_service.cc. #21899, #19715
  • Simplifies clone state management by moving retry data to in-memory structure. #22138
  • Streamlines heartbeat code management by relocating it to master_heartbeat_service.cc. #21899, #19715
  • Enhances code readability by moving heartbeat code to master_heartbeat_service.cc. #21899, #19715
  • Moves tcmalloc profiling code to the util directory for better organization. #22258
  • Refactors tablet splitting logic to enhance system organization and management. #22603, #19715
  • Introduces enable_rwc_lock_debugging flag to control RWCLock debug logging. #22807
  • Switches CloneStateInfo object handling to std::shared_ptr for future flexibility. #23036
  • Ensures schema names are not empty in YBTableName settings. #23371
  • Simplifies management by shifting certain managers from Catalog Manager to Master. #22603, #19715
  • Enhances visibility of the hidden state in Master/Tserver UI tables. #22521
  • Reduces unnecessary reads during CQL INSERT operations with range keys. #23330
  • Adds pg_yb_logical_client_version table to manage session configurations. #23871
  • Adds an ABORTED state for failed clones in YugabyteDB. #21054

CDC

  • Ensures CDC streams are not deleted when all associated tables are dropped. #21419
  • Adds new yb-admin commands to manage CDC streams, including removing tables. #22876, #22773
  • Prevents tables with enum array columns from being added to CDC streams. #22897
  • yb_enable_cdc_consistent_snapshot_streams flag is now default true and automatic. #22984
  • Sets retention barriers on tablets during table creation for PG replication. #21643
  • Allows changing and persisting the cdcsdk_publication_list_refresh_interval_secs flag value for safer LSN handling. #21796
  • Allows configuring default replica identity for tables using the ysql_yb_default_replica_identity flag. #22326
  • Enables toggling dynamic table addition in virtual WAL with cdcsdk_enable_dynamic_table_addition flag. #22406
  • Uses replication slot names to differentiate between consumption models. #22810
  • Supports creation of old model streams via yb-admin in upgraded environments. #22894
  • Allows setting per-table replica identity for CDC streams using the ysql_yb_enable_replica_identity flag. #21314
  • Suppresses NOTICE messages when setting yb_read_time from walsender. #22379
  • Speeds up tablet bootstrap under CDC by skipping initial WAL segments, controlled by skip_wal_replay_from_beginning_with_cdc flag. #24516

yugabyted

  • Ensures RENAME DATABASE accurately follows connection rules. #21284
  • Tracks role changes accurately by using role_oid instead of role. #21505
  • Enables tracking of single-use YSQL configuration parameters in Connection Manager. #21757
  • Enhances session consistency by using role_oid for session_authorization in Connection Manager. #21637
  • Enables sticky connections when setting specific YSQL configuration parameters. #22957
  • Enhances stability by destroying control connections during configuration reloads. #21516
  • Enables better handling of complex YSQL configuration parameters using sticky connections. #21637
  • Adds a new /pitr endpoint and UI screen for listing scheduled PITRs. #21355
  • Adds upgrade_finalize command to yugabyted CLI for post-upgrade tasks. #21888
  • Enables flags directly on yb-master and yb-tserver for better setting accuracy. #22061
  • Alerts users about version mismatches between nodes via the UI. #21888
  • Deprecates Python 2 in yugabyted and shifts to Python 3. #22072, #21409
  • Enables scalable parsing of multi-valued flags in yugabyted without code duplication. #22091
  • Corrects CPU usage calculation in the Sankey diagram. #22125
  • Ensures startup parameters with spaces parse correctly with YSQL Connection Manager. #22248
  • Allows specifying multiple data directories using additional_data_dir flag. #22126
  • Enables management of xCluster replication using yugabyted commands. #22349
  • Adds permanent_uuid to :7000/api/v1/tablet-servers for more reliable UUID retrieval. #22532
  • Ensures accurate CPU usage metrics in the YCQL table by updating prev_ticks_ each iteration. #22910
  • Prevents errors during node restart when data_dir is missing from the configuration. #23052
  • collect_logs now works even if yugabyted is not running. #23210

Bug fixes

YSQL

  • Fixes error for index with bool NULLS LAST in YSQL. #22121
  • Fixes YSQL upgrade exception in single connection mode. #22283
  • Allows YB Admins without superuser status to run pg_locks. #23266
  • Ensures safe upgrades by verifying pggate compatibility before sending Scanned Rows. #21229
  • Disables in-place index updates by default to address index inconsistency issues. #24672
  • Fixes out-of-bounds memory error in HashAggregate with duplicate hash keys. #21122
  • Eliminates memory leaks in YSQL's cache system for improved database stability. #22262
  • Fixes memory leak affecting catalog cache refresh during upgrades. #22262
  • Fixes memory leaks in CacheMemoryContext to stabilize cache memory size after refresh. #22262
  • Documents the limitation in retry logic for multi-statement queries in ysqlsh. #21804
  • Prevents YSQL DDL operations from returning control until related rollbacks complete. #20033
  • Enhances index scan efficiency by modeling remote index filters in cost calculations. #20635
  • Fixes issues with colocation in table rewrites and partitions. #20302, #20914
  • Renames ddl_rollback_enabled to yb_ddl_rollback_enabled for clarity. #21480
  • Adds network latency to startup costs and fixes bug for small table costs. #20898
  • Disables bitmap scans by default to prevent regressions with CBO. #21479
  • Reduces unnecessary logging when catalog_version_table_in_perdb_mode is set to true. #21481
  • Correctly identifies unbatchable filters in indexpath creation. #21292
  • Enables control of optimizer statistics via the ysql_yb_enable_optimizer_statistics flag. #21650
  • Fixes buffer overflow during ALTER TABLE SET TABLESPACE operation. #21655
  • Refactors yb_cost_index to enhance readability, performance, and ease PG15 merging. #21672
  • Resolves deadlock issues when deleting a table and its index concurrently in YB-Master. #21663
  • Ensures consistent query results with JSONB columns by fixing recheck criteria in index scans. #21451
  • Fixes query accuracy by ensuring RHS values fit the LHS data type in index conditions. #21758
  • Blocks query layer retries for multi-statement queries to prevent unintended effects. #21361
  • Fixes tserver startup to correctly maintain per-database catalog version mode. #21850
  • Fixes a bug in index tuple width calculation for cost estimation. #21892
  • Ensures RowCompareExpressions correctly enforce non-null column conditions. #21847
  • Reduces schema version mismatch errors during consecutive DDL statements with atomicity enabled. #21706
  • Enables consistent DDL execution across databases by fixing flag behavior. #21706
  • Introduces ysql_min_new_version_ignored_count flag to prevent delays in tserver crashes when versions mismatch. #21776
  • Resolves PostgreSQL process crashes on the "show all" command by correcting text description locations for the yb_enable_ddl_atomicity_infra parameter. #21947
  • Fixes restarts of UPDATE ...RETURNING queries in debug builds. #22010
  • Reverts naming from "Storage SQL" to "Remote SQL" in postgres_fdw.c. #22070
  • Ensures ALTER TABLE operates correctly after rules are dropped with old rewrite off. #22064
  • Ensures pg_locks displays correct table OID instead of relfilenode after table rewrites. #22081
  • Resolves flag clashes by setting YB_AT_REWRITE_ALTER_PRIMARY_KEY to 0x8000. #22086
  • Fixes PostgreSQL crashes triggered by enabling yb_debug_log_catcache_events. #22139
  • Enables backward parallel scans in YSQL for more flexible data querying. #21633
  • Stops unnecessary CPU use and log warnings when YSQL is disabled. #22213
  • Corrects log messages for successfully dropped columns to indicate "roll forward" instead of "rollback". #22243
  • Enhances stability by modifying batch operation constraints for indexed queries. #21954
  • Reduces crashes and allocation errors in specific join operations. #21878
  • Reduces errors by giving BNL hashtable its own expression context. #21266
  • Reenables rechecking for RowCompareExpressions to enhance accuracy with NULL inputs. #22075
  • Corrects style declaration of YbDdlRollbackEnabled to eliminate GCC errors. #22334
  • Fixes an issue with invalid pointer usage in relation data loading. #22342
  • Enhances yb_get_range_split_clause to handle decoding errors gracefully, preventing backup issues. #22356
  • Fixes memory leaks in ybcFetchNextHeapTuple by properly freeing YBCStatus. #22396
  • Stops the YSQL webserver properly on SIGTERM to prevent coredumps. #18948
  • Adds warnings and errors for system catalog table misuse. #22520
  • Fixes primary key inheritance when attaching partitions with ALTER TABLE. #22562
  • Prevents OID collision by excluding OID 65535 for database allocation. #22598
  • Skips relfilenode checks for parent partition tables in schema verification. #22625
  • Enhances accuracy in backward prefix-based scans by removing kGroupEnd markers. #22615
  • Removes an unused function to reduce confusion. #22649
  • Ensures bitmap scans correctly recheck results using all necessary columns, preventing incorrect query results. #22622
  • Corrects handling of IN expressions on single columns to prevent incorrect tuple path execution. #22704
  • Corrects data type error in tuple range checks during scans. #22800
  • Ensures creating shared relations during YSQL upgrade increments catalog version globally. #22830
  • Adds a function to reset statistics collected by the ANALYZE command. #22028
  • Fixes a bug to prevent crashes and errors by ensuring correct column numbers are used for recheck. #22832
  • Fixes a deadlock issue during DDL operations by adjusting lock handling. #22882
  • Eliminates false log errors in DDL operations by ensuring callback invocation correctness. #22882
  • Adjusts handling of INCLUDE columns in index scans to ensure proper sorting. #22822
  • Enhances the EXPLAIN command to accurately report subquery distinct index scans. #22923
  • Enhances sequence cache uniqueness by using database and sequence OIDs together. #22935
  • Fixes crash in Values Scan by repairing SubPlans in multi-row VALUES lists. #22967
  • Enables faster inserts into tables with identity columns by optimizing single-shard transactions. #22837
  • Fixes log formatting and memory deallocation in yb_pclose_check. #23057
  • Resumes drop column operations if alterations miss the initial completion step. #23100
  • Eliminates unnecessary wait for concurrent transaction completion in DEFERRABLE READ ONLY transactions. #23120
  • Prevents TServer crashes by altering type lookup for certain SAOPs. #23287
  • Blocks REINDEX and TRUNCATE on system tables using table rewrite. #24356
  • Ensures parent partitioned tables correctly rewrite during operations, preventing backup/restore errors. #24458
  • Assumes indexes contain 1000 rows when statistics are unavailable, ensuring better query planning. #24496
  • Fixes foreign key checks to avoid errors with unique indexes. #24663
  • Adds error prevention for pushed-down expressions that access the catalog cache. #23401
  • Increases YSQL connection manager's thread stack size to 512 KB to prevent crashes on Alma 9 machines. #24979
  • Fixes memory leaks in YSQL Connection Manager for improved stability. #10065
  • Ensures xCluster YBClients connect using specified addresses by setting skip_master_flagfile. #23145

YCQL

  • Stops automatic regeneration of deleted cassandra role on cluster restart. #21057

DocDB

  • Enhances read latency measurement during remote bootstrap with compression adjustments. #20848
  • Prevents data corruption by handling blind writes in heartbeat processing. #21836
  • Avoids crashes from parsing invalid timestamps in LTO builds by updating exception handling. #22191
  • Eliminates unnecessary flush during snapshot deletion, preventing write blocks. #22369
  • Resolves deadlocks in xCluster setup by standardizing lock order. #22376
  • Ensures scans honor set timeouts to avoid indefinite read operations. #21829
  • Enables restores to times just before the oldest snapshot in a schedule. #21269
  • Ensures full xCluster error info is sent to masters post-failover. #22624
  • Adds validation to prevent deletion of snapshots used in restores and vice versa. #23055
  • Prevents server crashes during table truncation by safely shutting down iterators before releasing locks. #23243
  • TServers now reject remote bootstrap requests for previously deleted tablets. #24574
  • Sets a default 10MB max size for RocksDB MANIFEST files, now configurable via flags. #11117
  • Ensures creating an index fails if it can't be added to transactional replication. #21732
  • Enables ysql_skip_row_lock_for_update as an auto-flag to ensure safe upgrades. #22057
  • Eliminates inconsistencies by not including inactive tablets in OpenTable operations. #24860
  • Ensures consistent memory usage estimation for write operations at bootstrap and runtime. #21254
  • Now truncates error messages over 1KB in AsyncRpc::Failed to prevent crashes. #21402
  • Ensures hidden tables and tablets are excluded from snapshot generation to prevent cloning issues. #21631
  • Prevents crashes during leader changes by clearing old leader data properly. #21808
  • Renames flag min_secustomerent_size_to_rollover_at_flush to specify units. #21691
  • Adjusts the class of the enable_automatic_tablet_splitting flag to ensure XCluster compatibility. #22088
  • Switches from scoped_refptr to std::shared_ptr to safely manage memory in TabletInfo, preventing use-after-free errors. #18257, #21139
  • Ensures cotable IDs match in snapshots and restores for colocated tablets. #23047
  • Ensures replication consistency for new tables in colocated databases after T-server restarts. #23188
  • Switches pg_cron back to using standard SIGTERM handling for cleaner shutdowns. #24658
  • Ensures consistent tablegroup assignments for colocated table backups without using explicit tablespaces. #24809
  • Eliminates fatal errors during tabletPB creation by ensuring atomic operations. #21340
  • Prevents race conditions during WAL closure and consensus destruction. #21564
  • Adds TSAN suppression for boost::regex_match to eliminate false positives. #21585
  • Restores compilation on almalinux8 fastdebug gcc11. #21536
  • Fixes metric attribute collisions and ensures correct metric types for tablets. #21608
  • Avoids segmentation faults in yb-master by checking for null pointers before use. #21648
  • Reduces logging redundancy during checkpoint operations to VLOG(1). #21658
  • Blocks DML on databases exclusively under STANDBY xCluster mode. #21245
  • Extends the lifecycle of the session in CDC State Table callback to prevent crashes. #21103
  • Prevents duplicate connection destruction attempts during concurrent failures. #21738
  • Enables viewing RPC bind addresses in the master leader UI. #21959
  • Prevents node crash during WAL rotation if the log is closed. #21769
  • Prevents crashes by ensuring background tasks aren't deleted prematurely during callbacks. #21773
  • Ensures graceful shutdown by waiting for all callback completions in PollTransactionStatusBase. #21773
  • Fixes compilation error on Almalinux 8 with gcc11 by initializing prev_op. #21811
  • Fixes an incorrect TSAN suppression path for boost::regex_match. #21585
  • Speeds up load balancer actions by allowing tablet additions on TS with pending deletes. #21806
  • Enhances stability by handling RPC shutdowns and task aborts more effectively. #21917
  • Prevents crashes during remote bootstrap with non-leader peers by enhancing session handling. #22007
  • Delays min_running_ht initialization until after tablet bootstrap completes. #22099
  • Ensures skip_table_tombstone_check is set for colocated tables. #22115
  • Prevents crashes during catalog reloads by safely handling null cluster_config_. #21775
  • Reduces the interval for tablet server metrics heartbeat to prevent misreporting leaderless tablets. #22189
  • Reduces resource usage by reusing server yb_client in xCluster Consumer. #22845
  • Fixes pg_locks to handle lock queries without specified transactions correctly. #22181
  • Clarifies flag descriptions for memory division as a percentage of the hard memory limit. #22423
  • Restores functionality of CI builds on GCC 12, debug AlmaLinux 9. #22501
  • Ensures xCluster DDL replication captures the actual user's role, not the superuser. #22514
  • Enhances logging for MemTable flushes to track memory limits more effectively. #22737
  • Prevents corrupted characters in Prometheus metric descriptions during scrapes. #22767
  • Fixes column drop cascading when dependent objects are dropped. #22874
  • Enhances YSQL version upgrade process by refining master branch coding. #23079
  • Adds flag to disable intent filtering during bootstrap to prevent data corruption. #23184
  • Allows large byte requests on RateLimiter by breaking them into smaller chunks. #23173
  • Restores the missing home icon in the master UI navigation bar. #23275
  • Disables the read-time option in ysql_dump help to ensure correct DDL handling. #23299
  • Enables yb-admin to correctly accept snapshot retention settings. #23332
  • Resolves a build failure by removing unreachable code. #23375
  • Renaming YSQL migration script from V60 to V59.1 ensures proper versioning and script ordering. #24618
  • Fixes load balancer logic to correctly handle leader stepdown tasks. #21834
  • Enhances system thread management for faster performance. #21929
  • Deprecates the enable_pg_savepoints flag to prevent incorrect behaviors and enhance transaction reliability. #29018
  • Prevents "schema version mismatch" errors after using DROP INDEX. #22637
  • Ensures hidden split parent tablets are correctly represented as leaderless. #21371
  • Ensures xCluster setup fails if the stream state update to ACTIVE fails. #22601
  • Returns an empty response from pg_replication_slots when ysql_yb_enable_replication_commands is false. #23096
  • Eliminates unnecessary warning logs about cluster configuration versions. #23119

CDC

  • Prevents memory leaks in the GetChanges RPC by deleting its MemoryContext. #22328
  • Adds more debug logs to ListReplicationSlots for better debugging of CDC state issues. #21652
  • Prevents new indexes and materialized views from being added to existing CDC streams. #22808
  • Prevents non-eligible tables from being added to CDC streams, reducing resource usage. #22876, #22835, #22773
  • Introduces new flag cdcsdk_enable_identification_of_non_eligible_tables for automatic identification of non-eligible tables in CDC streams, eliminating the need for manual master restarts for cleanup control. #22876, #22835, #22773
  • Ensures accurate server clock timestamps in logical replication XLogData. #22929
  • Enhances accuracy of transaction start time logging for better consistency in CDC. #24521
  • Fixes memory leaks in the walsender's handling of transactions and file nodes. #24788
  • Enhances memory management in walsender by implementing deep freeing of record batches. #21530
  • Adds debug logs in walsender for better issue investigation. #21465
  • Reduces memory leaks in CDC streaming by managing record batches in a separate memory context. #21530
  • Logs errors as warnings when cleaning up virtual WAL after logical replication ends. #21651
  • Fixes directory creation for serialized transactions during replication. #21765
  • Disables loading replication slots from disk on startup to prevent crashes. #21841
  • Adds enhanced debug logs for easier CDC stress run troubleshooting. #21780
  • Reduces unnecessary RPC calls for non-distributed transaction rollbacks. #21519
  • Enhances restart LSN calculation accuracy by updating transaction tracking logic. #21950
  • Removes table_name and table_id attributes from CDCSDK metrics to prevent tserver crashes. #22142
  • Fixes segmentation faults in walsender by updating replica identities for dynamically added tables. #22273
  • Ensures omitted values in logical replication are preserved by serializing the yb_is_omitted array. #21946
  • Fixes premature tablet exclusion in CDC streams based on timeout settings. #22383
  • Fixes a race condition in CDC dynamic table creation by checking tablet initialization. #22408
  • Fixes incorrect removal of the BEGIN record in CDC streams when no DML changes occur. #21646
  • Eliminates startup issues by always using the record's commit time for Walsender operations. #22398
  • Adds support for CDC with dynamic OID data types like hstore and enum arrays. #23179
  • Clears cached schema on re-fetch to ensure correct DDL records delivery. #20698