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
-
-
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
-
- xCluster support. yugabyted enables native support for setting up xCluster between two yugabyted deployed clusters.
- xCluster support for existing clusters Enables ability to add or remove databases from the existing xCluster replication using yugabyted CLI. TP
-
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
- Connection pooling Added support for native connection pooling. TP
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 asLOGGED
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
inYbInitPinnedCacheIfNeeded
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 fromYbctidGenerator
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
andlsm
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 toMasterClusterHandler
. #19715 - Adds
read-time
option toysql_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
inCDCService
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
andSYSTEM_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 tostd::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 ofrole
. #21505 - Enables tracking of single-use YSQL configuration parameters in Connection Manager. #21757
- Enhances session consistency by using
role_oid
forsession_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
andyb-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 ifyugabyted
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
toyb_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
to0x8000
. #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
andTRUNCATE
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
tostd::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 inysql_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
whenysql_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
andtable_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