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

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

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

v2024.2.0.0 - December 9, 2024

Build: 2024.2.0.0-b145

Third-party licenses: YugabyteDB, YugabyteDB Anywhere

Downloads

Docker:

docker pull yugabytedb/yugabyte:2024.2.0.0-b145

Highlights

We're excited to announce the Early Access and General Availability of the following powerful new features in YugabyteDB aimed at simplifying operations, enhancing functionality, and improving performance.

Yugabyte Kubernetes Operator EA

The Yugabyte Kubernetes Operator is a powerful tool designed to automate deploying, scaling, and managing YugabyteDB clusters in Kubernetes environments. It streamlines database operations, reducing manual effort for developers and operators. For more information, refer to the YugabyteDB Kubernetes Operator GitHub project.

Active session history EA

Get real-time and historical views of system activity by sampling session activity in the database. This feature can be used to troubleshoot performance issues effectively. For more information, refer to Active Session History (ASH) documentation.

Instant database cloning EA

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 at creation but operate independently after that. Clones can be created as of now or at any time in the recent past (within a configurable history retention period), enabling developers to experiment without impacting production performance. This feature also provides a safety net for rapid recovery from accidental SQL or CQL human errors that cause data loss or corruption.

pg_cron extension GA

The pg_cron extension brings a cron-based job scheduler 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. On node failure, leadership is automatically transferred, ensuring continuous availability and smooth scheduling operations.

pg_partman extension EA

Use the pg_partman extension to create and manage both time- and serial-based (aka range-based) table partition sets. pg_partman simplifies managing table partitions based on time or serial IDs, automating their creation and maintenance. pg_partman is often used in combination with pg_cron for data lifecycle management, and specifically for managing data aging, retention, and expiration.

Colocated tables with tablespaces EA

Starting this release, you can create 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. You enable the feature using the ysql_enable_colocated_tables_with_tablespaces flag.

Improvement to backward scans EA

The performance of YSQL backward table scans (for example, a descending-sorted query occurs against a table that is sorted ascending) has been improved by up to 10x in this release. You enable the feature using the use_fast_backward_scan flag.

New features

  • xCluster support in yugabyted. Adds support for setting up and managing xCluster replication between two clusters deployed using yugabyted.

  • Semi-automatic xCluster replication. Provides simplified management of YSQL transactional xCluster replication. xCluster management operations are now only required when adding and removing databases from replication. DDL changes can now be made by any database administrator or user with database permissions, and no longer require SSH access or intervention by an IT administrator.

  • xCluster observability. Improved ability for users to monitor xCluster metrics like Replication Lag, Safetime Lag, and replication errors. EA

  • Follower reads. Added support for setting yb_read_from_followers=true inside a transaction block using SET LOCAL. This allows greater convenience when setting follower reads for single transactions. You must set yb_read_from_followers before any statement is executed in the block.

  • Improved query performance. Implemented shared memory for PostgreSQL to TServer communication to minimize latency and enhance query performance by reducing communication overhead. This enhancement is part of Enhanced PostgreSQL compatibility mode.

  • 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. Added ability to find catalog tables that can be pre-loaded to improve latency for the first query in a connection, or after a DDL change 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 TServer 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
  • Ensures debug builds can restart from release builds by making column ID representations consistent. #21093
  • 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
  • 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 the YSQL 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
  • 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
  • Re-enables 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
  • Disables index update optimization by default to fix ON CONFLICT UPDATE issues. #25075

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
  • Prevents FATAL errors after multiple splits and PITR restores. #25103

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