docs/content/stable/releases/ybdb-releases/end-of-life/v2.25.md
What follows are the release notes for the YugabyteDB v2.25 release series. Content will be added as new notable features and changes are available in the patch releases of the YugabyteDB v2.25 release series.
Build: 2.25.2.0-b359
Docker:
docker pull yugabytedb/yugabyte:2.25.2.0-b359
yb_db_admin. {{<issue 26218>}}yb_servers function to include universe_uuid for better cluster identification. {{<issue 25818>}}ybhnsw index creation options in YSQL. {{<issue 25859>}}ysql_dump outputs with the dump_role_checks flag. {{<issue 25877>}}ybgate_api.h by matching PostgreSQL style. {{<issue 26176>}}pg_regress outputs. {{<issue 26197>}}PgDocReadOp to enhance modularity by isolating sampling logic into PgDocSampleOp. {{<issue 26165>}}ALTER TYPE ... SET SCHEMA support for orafce extension upgrades. {{<issue 26215>}}pg_stat_get_progress_info by adding new fields. {{<issue 26273>}}ALTER TABLE operations related to constraint handling. {{<issue 26315>}}ash_metadata in PgClient RPC requests with added code explanations. {{<issue 26268>}}bitmap_scans_distinct test to ensure consistent behavior. {{<issue 26277>}}CurrentMemoryContext handling more closely with PostgreSQL updates. {{<issue 26496>}}pg_dump to support upgrades with pg_stat_statements. {{<issue 26575>}}ybhnsw.ef_search for HNSW index searches in YSQL. {{<issue 26629>}}hnsw to ybhnsw in CREATE INDEX statements for seamless index creation. {{<issue 26549>}}bad_variable_declaration_spacing lint rule. {{<issue 26651>}}server_type option to differentiate foreign servers in postgres_fdw. {{<issue 25500>}}switch_fallthrough to yb_switch_fallthrough for consistency. {{<issue 26816>}}enable_pg_anonymizer flag. {{<issue 26804>}}get_relation_constraint_attnos function to use correct flag. {{<issue 26846>}}ysql_select_parallelism to zero to prevent errors. {{<issue 26837>}}pg_strtouint64 and adopts strtoull or strtou64 for consistency. {{<issue 26870>}}pg_yb_catalog_version mode from 10 seconds to 20 seconds. {{<issue 26990>}}pg_stats with length and bounds histograms for better query planning. {{<issue 6237>}}MemTracker. {{<issue 26875>}}rocksdb_compact_flush_rate_limit_bytes_per_sec across all tablets. {{<issue 25611>}}YbHnsw for efficient memory management during data loading and unloading. {{<issue 25571>}}vector_index_dump_stats flag is true. {{<issue 26072>}}yb_read_time usage and silencing related warnings. {{<issue 25629>}}docdb::VectorIndex to docdb::DocVectorIndex to eliminate name confusion. {{<issue 26304>}}yb-admin commands. {{<issue 26332>}}yb-ts-cli compact_vector_index command for tablet-specific vector index compaction. {{<issue 26338>}}automatic_mode flag to create_checkpoint for simpler xCluster setup. {{<issue 26355>}}Outbound Replication Groups section. {{<issue 26368>}}rpc::ThreadPool to automatically adjust thread counts based on activity, enhancing resource efficiency. {{<issue 26708>}}MPSCQueue for enhanced single-consumer performance and simpler maintenance. {{<issue 26774>}}ybhnsw.ef_search to customize search expansion factor. {{<issue 26883>}}load_balancer_count_move_as_add flag to simplify cluster balancing. {{<issue 26259>}}master_replication from master_fwd.h to optimize file parsing times. {{<issue 26543>}}cdcsdk_update_restart_time_interval_secs. {{<issue 25562>}}wal_status in pg_replication_slots based on CDC consumption timing. {{<issue 26272>}}yb_walsender_poll_sleep_duration_empty_ms flag value to 10 ms to speed up replication in sparse workloads. {{<issue 26733>}}DEBUG to WARN. {{<issue 26779>}}psutil dependency in yugabyted for better compatibility. {{<issue 26350>}}REFRESH MATERIALIZED VIEW CONCURRENTLY operation. {{<issue 26205>}}yb_get_range_split_clause with partitioned tables. {{<issue 25104>}}yb_cdc_snapshot_read_time field, simplifying snapshot management. {{<issue 26303>}}yb_enable_geolocation_costing flag. {{<issue 25967>}}pg_proc entries. {{<issue 26301>}}initdb log file path on stdout for easier debugging. {{<issue 26316>}}COPY operations on tables with unique indexes. {{<issue 26207>}}MAKELEVEL. {{<issue 26337>}}relam settings. {{<issue 26317>}}indexdef for copartitioned indexes. {{<issue 26398>}}SELECT errors in incremental cache refresh. {{<issue 26399>}}vmodule flag is respected by the postgres process. {{<issue 26521>}}liblz4.1.dylib to macOS yugabyte-client package for successful deployment. {{<issue 26523>}}ANALYZE to collect accurate stats for parent-level of partitioned tables. {{<issue 23592>}}yb_get_ybctid_width. {{<issue 24819>}}pgsql_proxy_bind_address in dual NIC setups. {{<issue 26443>}}colocated = false for non-colocated databases during backups. {{<issue 26569>}}yb_index_check to verify materialized view indexes' consistency. {{<issue 26639>}}ysql_dump maintains enum sort order during backup and restore. {{<issue 26645>}}path->rows reflects accurate row estimates in scans, avoiding incorrect overwrites. {{<issue 25710>}}relfilenode_htab during initdb. {{<issue 26456>}}now to clock_timestamp for recording invalidation message time. {{<issue 26789>}}SPLIT option when creating a partitioned table. {{<issue 26807>}}ysql_yb_enable_ash flag. {{<issue 26838>}}pg_enum OID during restore if sortorder is missing, enhancing troubleshooting. {{<issue 26859>}}ScheduleCheckObjectIdAllocators inadvertently removed. {{<issue 26902>}}yb_binary_restore to be set by ybdbadmin for vector extension creation. {{<issue 26941>}}WaitForReplicationDrain behavior by not mislabeling tablets as drained. {{<issue 25457>}}db_max_flushing_bytes to properly limit memory usage under high write loads. {{<issue 26916>}}recently_applied_map by not adding read-only transactions, conserving memory. {{<issue 26666>}}UNKNOWN state TableInfos gracefully. {{<issue 26019>}}-Wmisleading-indentation warnings in GCC to prevent increased compile times. {{<issue 26177>}}use_bootstrap_intent_ht_filter is set to false, preventing memory leaks. {{<issue 26860>}}Slice::ToDebugString respects the max_len setting for hex outputs. {{<issue 26874>}}yb-admin crashes by correctly handling argument count for create_database_snapshot. {{<issue 26899>}}yb_client_admin_rpc_timeout_sec flag. {{<issue 26722>}}COMMIT records are streamed, fixing gRPC connector crashes. {{<issue 26861>}}Build: 2.25.1.0-b381
Docker:
docker pull yugabytedb/yugabyte:2.25.1.0-b381
We're excited to announce the Technical Preview of the following powerful new features in YugabyteDB aimed at simplifying operations, enhancing functionality, and improving performance.
Automatic DDL Replication {{<tags/feature/tp idea="153">}}
xCluster replication currently requires manual execution of DDL statements on both the source and target clusters to ensure schema consistency.
Automatic DDL Replication eliminates this complexity by seamlessly replicating YSQL DDL changes from the source to the target without requiring manual intervention. This ensures:
By automating DDL replication, this feature simplifies database management, reduces operational overhead, and enhances the resilience of xCluster replication.
Advisory locks {{<tags/feature/tp idea="812">}}
YugabyteDB's latest release introduces support for PostgreSQL advisory locks, enabling efficient application-level locking mechanisms. These locks allow developers to coordinate concurrent processes without blocking transactions, improving workload management and resource synchronization in distributed environments. For more information on PostgreSQL advisory locks, refer to Advisory locks in the PostgreSQL documentation.
Time-travel Queries {{<tags/feature/tp idea="1110">}}
YugabyteDB now supports time-travel queries, allowing users to run queries as if they were executed at a specified point in the past. This capability enables historical data analysis, auditing, and debugging, without requiring separate backups or snapshots, enhancing data visibility in a running database.
PgVector HNSW Index Support {{<tags/feature/tp idea="1111">}}
YugabyteDB now supports HNSW (Hierarchical Navigable Small World) indexes via the pgvector extension, enabling efficient approximate nearest neighbor (ANN) search for high-dimensional data. This addition expands YugabyteDB's vector indexing capabilities, providing another option alongside existing indexing methods for vector similarity search.
Upgrade from PostgreSQL 11 to PostgreSQL 15 {{<tags/feature/tp idea="1746">}}
YugabyteDB now supports in-place zero downtime upgrade from a PostgreSQL 11-compatible (v2024.2.2) release to a PostgreSQL 15-compatible (v2.25.1) release. This capability allows PostgreSQL major version upgrades without any downtime or interruption to the application.
PostgreSQL Anonymizer extension, which masks or replaces personally identifiable information (PII) or commercially sensitive data, is now bundled with YugabyteDB. {{<tags/feature/tp idea="1497">}} <!-- IDEA-1497 -->
YugabyteDB now supports the ability to compute multivariate statistics using the CREATE STATISTICS command. Part of PostgreSQL 15, this feature allows the query planner to use cross-column correlation statistics to generate better query plans. {{<tags/feature/tp>}} {{<issue 13598>}}
ysql_conn_mgr_sequence_support_mode for sequence management options. {{<issue 23660>}}enable_ysql_conn_mgr flag from preview status. {{<issue 25578>}}enable_ysql_conn_mgr to true for general availability. {{<issue 25578>}}INSERT ON CONFLICT by introducing efficient read batching and adding RETURNING support. {{<issue 24648>}}ybctid as a reserved, fully queryable system column for improved row identification. {{<issue 1284>}}CREATE OR REPLACE TRIGGER by ensuring ybctid is set. {{<issue 24941>}}ybcModifyTable.h meets style guidelines to pass arc lint checks. {{<issue 25172>}}ExecLockRows function. {{<issue 25268>}}ysql_block_dangerous_roles to prevent privilege escalation. {{<issue 25348>}}YsqlAdvisoryLocksTable using std::shared_future. {{<issue 25373>}}YBInitPostgresBackend for cleaner code. {{<issue 25417>}}ysql_dump by removing outdated references to pg_tablegroup. {{<issue 25419>}}pg_yb_utils.c by applying lint warnings/errors. {{<issue 25420>}}yb_insert_on_conflict_read_batch_size to zero to disable batching, aligning closer with PostgreSQL behavior. {{<issue 25489>}}ysqlsh -V output for accurate command name representation. {{<issue 25429>}}PgTypeInfo. {{<issue 25554>}}bad_opening_paren for cleaner code alignment. {{<issue 25455>}}check_for_tables_with_oids for consistency with PostgreSQL. {{<issue 25498>}}needs_pg_session_transaction field to streamline advisory lock handling. {{<issue 25591>}}PgClientSession's size and streamlines code for better readability and easier modifications. {{<issue 25652>}}pgindent for cleaner code formatting and resolving issues with function names and comments. {{<issue 25663>}}YBPgsqlLockOp for cleaner code. {{<issue 25855>}}client_ field storage in PgClientSession. {{<issue 25652>}}INSERT ON CONFLICT read batching by default to increase test coverage. {{<issue 25985>}}ef_construction and m parameters for ybhnsw indexes during creation. {{<issue 25859>}}ItemPointer static assert following upstream PostgreSQL code. {{<issue 25997>}}src/backend/tcop/ as per linting reports. {{<issue 25189>}}/rpcz endpoint response. {{<issue 25603>}}<tserver-ip>:12000/statements output. {{<issue 25368>}}Vector. {{<issue 24483>}}stmt_max_mem_base_bytes during EXPLAIN ANALYZE. {{<issue 25174>}}serialized_request size instead of SpaceUsedLong. {{<issue 25175>}}rpc_reactor_task_timeout_ms. {{<issue 25180>}}GetTableSchema to check table existence, reducing timeouts. {{<issue 25197>}}automatic_ddl_mode argument to yb-admin create_xcluster_checkpoint. {{<issue 25302>}}rocksdb_iterator_sequential_disk_reads_factor to enhance readahead during non-sequential scans. {{<issue 25397>}}//NOLINT comments to enhance code readability. {{<issue 25536>}}ScopedStatistics, reducing TServer insert time. {{<issue 25602>}}GetTablesEligibleForXClusterReplication. {{<issue 25732>}}print_ysql_write_requests flag. {{<issue 25786>}}transaction_participant.cc by removing unused boost includes. {{<issue 25792>}}PgSamplePicker by removing its dependency on PgSelectIndex. {{<issue 25858>}}ScanForward functionality for streamlined performance. {{<issue 25915>}}yb_read_time to clarify read-only restrictions. {{<issue 26027>}}vector_index_dump_stats flag is true. {{<issue 26072>}}xcluster_enable_ddl_replication to a preview flag for user testing. {{<issue 26224>}}automatic_mode flag to create_checkpoint for simpler xCluster setup. {{<issue 26355>}}TablespaceParser. {{<issue 25202>}}IMPLICIT streams by default; use flag to override. {{<issue 24023>}}ysql_yb_enable_consistent_replication_from_hash_range flag. {{<issue 25897>}}cdcsdk_publication_list_refresh_interval_secs to 15 minutes by default. {{<issue 25793>}}cdcsdk_flush_lag metric and fixes bugs in other CDC metrics. {{<issue 19445>}},{{<issue 25819>}}cdc_max_virtual_wal_per_tserver flag. {{<issue 25896>}}cdc_cache_intent_block flag to control caching of CDC intent blocks. {{<issue 24909>}}cdc_enable_caching_db_block and sets its default to true for enhanced caching. {{<issue 25573>}}cdc_use_byte_threshold_for_vwal_changes. {{<issue 25572>}}psutil dependency in yugabyted for better compatibility. {{<issue 26350>}}int64 instead of int32. {{<issue 25196>}}ysql_conn_mgr_optimized_extended_query_protocol. {{<issue 24898>}}pg_authid table prefetching during login to reduce RPCs and prevent errors. {{<issue 25776>}}ATExecSetTableSpaceNoStorage to match PG's approach. {{<issue 25019>}}yb_is_client_ysqlconnmgr. {{<issue 25220>}}ysql_dump by clearing PG result in all scenarios. {{<issue 24934>}}INSERT ON CONFLICT DO UPDATE to prevent secondary index corruption. {{<issue 25075>}}fatal calls with pg_fatal in pg_dump.c for better error handling. {{<issue 25320>}}INSERT ... ON CONFLICT DO NOTHING with multiple arbiter indexes. {{<issue 25240>}}MasterTabletServiceImpl::Write. {{<issue 25249>}}primaryKeyIndex in ysql_dump. {{<issue 25340>}}INSERT ON CONFLICT to prevent failures. {{<issue 25296>}}tablet state column to yb_local_tablets for clarity on tablet statuses. {{<issue 24250>}}set_force_catalog_modifications handling to PgSession. {{<issue 25434>}}ALTER DATABASE impact to only the targeted database. {{<issue 25392>}}INSERT ON CONFLICT updates. {{<issue 14895>}},{{<issue 25521>}}ysql_dumpall. {{<issue 25701>}}yb_enable_expression_pushdown on aggregates in trivial subqueries with OFFSET 0 returned values from incorrect columns. {{<issue 24512>}}ysql_dumpall to combine CREATE ROLE and ALTER ROLE for effective role management. {{<issue 25608>}}INSERT ON CONFLICT queries using SPI_execute_with_args. {{<issue 25773>}}ALTER DATABASE RENAME and ALTER DATABASE OWNER to global impact. {{<issue 25742>}}double for estimates. {{<issue 25862>}}\d command for indexes with spaces in their names. {{<issue 25711>}}INSERT ON CONFLICT with RETURNING when read batching is enabled. {{<issue 25836>}}CREATE OR REPLACE VIEW refreshes the catalog for immediate update visibility. {{<issue 25901>}}brew over apt. {{<issue 25925>}}relam settings. {{<issue 26317>}}indexdef for copartitioned indexes. {{<issue 26398>}}GROUP BY in YCQL using ycql_ignore_group_by_error flag. {{<issue 25030>}}ListMasterServers RPC on a master by returning an error. {{<issue 20372>}}Finished method during certain task aborts. {{<issue 23356>}}Slice::Less and Slice::compare methods. {{<issue 25319>}}WaitForReplicationDrain behavior by not mislabeling tablets as drained. {{<issue 25457>}}kSum to kMax to prevent inaccuracies. {{<issue 25422>}}yb_read_time. {{<issue 25834>}}TSLocalLockManager to yb::tserver. {{<issue 25941>}}malloc_usable_size(nullptr). {{<issue 25948>}}UNKNOWN state TableInfos gracefully. {{<issue 26019>}}use_client_to_server_encryption flag to secure login data. {{<issue 25332>}}Build: 2.25.0.0-b489
Docker:
docker pull yugabytedb/yugabyte:2.25.0.0-b489
We're excited to announce the Technical Preview of two foundational features as part of this release.
PostgreSQL 15 Support {{<tags/feature/tp>}}
As part of this release, we have upgraded our PostgreSQL fork from version 11.2 to 15.0, enabling you to leverage the many key capabilities introduced in PostgreSQL between these two versions. This upgrade brings YSQL API support for numerous features, including stored generated columns, foreign keys on partitioned tables, and non-distinct NULLs in unique indexes. It also introduces query execution optimizations like incremental sort and memoization, along with various observability and security enhancements. For more information, refer to PostgreSQL 15 features.
Query Diagnostics {{<tags/feature/tp idea="2078">}}
This feature significantly simplifies tuning poorly performing SQL queries by allowing you to capture and export detailed diagnostic information, including bind variables and constants, pg_stat_statements statistics, schema details, active session history, and execution plans. Refer to Query diagnostics.
Active session history {{<tags/feature/ea idea="830">}}
In addition, the Active Session History, which provides real-time and historical views of system activity, is now enabled by default. For more information, refer to Active Session History.
YbBatchedNL(t1 t2) and NoYbBatchedNL, and modifies yb_prefer_bnl handling. Also, it removes BNL's dependency on enable_nestloop and adjusts cost model. {{<issue 19494>}}yb_enable_inplace_index_update. {{<issue 20908>}}UNLOGGED tables syntax, handling it as LOGGED with a warning. {{<issue 23895>}},{{<issue 23889>}}pg_yb_logical_client_version table to manage session configurations. {{<issue 23871>}}ysql_conn_mgr_use_auth_backend flag. {{<issue 24147>}}yb_bnl_batch_size to 1024 and yb_prefer_bnl to true by default, ensuring BNL's replace nested loop joins without altering non-NL join plans. {{<issue 19273>}}yb_enable_fkey_catcache. {{<issue 23686>}}ALTER ROLE commands, saving system resources. {{<issue 24390>}}PgDML classes. {{<issue 24412>}}GetStatementAs<...> to simplify PgStatement* casts. {{<issue 24754>}}ybcModifyTable.c. {{<issue 24882>}}ybcSetupTargets by using BMS only, enhancing target column handling. {{<issue 25007>}}pg_hint_plan. {{<issue 6720>}}cql_revert_to_partial_microsecond_support=false. {{<issue 11052>}},{{<issue 23476>}}cql_microseconds_timestamps_used. This tracking occurs if the cql_revert_to_partial_microsecond_support flag is true. {{<issue 24776>}}load_balancer_max_inbound_remote_bootstraps_per_tserver flag. {{<issue 2426>}}usearch for better maintainability. {{<issue 23998>}}gflag_allowlist.txt for secure callhome data collection, plus version_info in TServer data. {{<issue 24103>}}automatic_ddl_mode to xCluster pollers for enhanced replication handling. {{<issue 24091>}}set_cdc_min_replicated_index during xCluster bootstrap for improved log retention. {{<issue 24105>}}yb_client from PgClientServiceImpl. {{<issue 24145>}}yb-admin command to remove non-active, blacklisted TServers. {{<issue 24044>}}yb-admin command to remove tablet servers from the registry. {{<issue 24044>}}yugabyte-bash-common for top-level management. {{<issue 19478>}}rocksdb_determine_compaction_input_at_start flag. {{<issue 24541>}}ProducerSchemaPB with SchemaVersionsPB for xCluster configurations. {{<issue 24901>}}vector_index::VertexId with StronglyTypedUuid as VectorId. {{<issue 25038>}}RollbackYsqlMajorVersionUpgrade RPC timeout to 3 minutes. {{<issue 24361>}}enable_tablet_split_of_cdcsdk_streamed_tables. {{<issue 24190>}}skip_wal_replay_from_beginning_with_cdc flag. {{<issue 24516>}}kNoCacheQueryId to prevent crashes during RocksDB operations. {{<issue 24516>}}join flag in config files is properly validated to prevent node misconfiguration. {{<issue 23007>}}pg_stat_statements to fix slow queries page on yugabyted UI. {{<issue 25094>}}tserver_master_addresses to update immediately in multi-node deployments using Yb-ts-cli. {{<issue 24659>}}ysql_enable_pg_per_database_oid_allocator is provided to return to old OID allocator behavior if necessary. {{<issue 16130>}}current_hint_retrieved after query execution to ensure consistent hint parsing. {{<issue 12741>}}ALTER SEQUENCE commands to change sequence name, schema, and owner without errors. {{<issue 17271>}}SIGQUIT for immediate shutdowns to reduce hang-ups, and monitoring for stuck processes on macOS {{<issue 24396>}}sticky settings from explain in configurations. {{<issue 24954>}}pipe type to orafce_pipe to resolve naming conflicts. {{<issue 12990>}}SideBySideDiff.sanityCheckLinesMatch. {{<issue 19690>}}INSERT ON CONFLICT, with customizable batch sizes using yb_insert_on_conflict_read_batch_size. {{<issue 24179>}}ALTER TABLE commands to avoid schema version mismatch errors in the same session. {{<issue 23882>}}ysql_dump process by eliminating faulty statements for colocated table unique constraint, enhancing database reliability. {{<issue 24057>}}INSERT ON CONFLICT command to enhance performance by minimizing alternating read and write operations. Control the batch size with the new YSQL configuration parameter yb_insert_on_conflict_read_batch_size, which, when default at 1, disables batching. {{<issue 24179>}}YBIsCoveredByMainTable method. {{<issue 24239>}}UTF8 use instead of SQL_ASCII and adds pg_collation to pre-loaded tables to prevent specific errors. {{<issue 24149>}}ALTER TABLE VALIDATE CONSTRAINT in YugabyteDB. {{<issue 24291>}}yb_enable_base_scans_cost_model configuration {{<issue 24246>}}REINDEX and TRUNCATE on system tables using table rewrite. {{<issue 24356>}}updatedCols calculations. {{<issue 24641>}}ysql_dump crashes related to pg_catalog schema dumps. {{<issue 24907>}}RelationBuildTriggers. {{<issue 24951>}}ON CONFLICT UPDATE issues. {{<issue 25075>}}yb_amiscoveredbymaintable for updated index co-partitioning design. {{<issue 25119>}}GROUP BY in YCQL using ycql_ignore_group_by_error flag. {{<issue 25030>}}alter table add column commands with a default value. {{<issue 24050>}}OpenTable operations. {{<issue 24860>}}ysql_enable_packed_row is off and existing packed rows are present. {{<issue 24545>}}SIGTERM handling for cleaner shutdowns. {{<issue 24658>}}CleanupHiddenTables holds a write lock during Upsert. {{<issue 24929>}}std::weak_ptr in tablet server handling. {{<issue 24182>}}pg_txn_start_us is set for restarted transactions, fixing priority issues in waiter resumption. {{<issue 24778>}}cdc_send_null_before_image_if_not_exists flag is true. {{<issue 18381>}}advertise_address instead of hostname. {{<issue 25037>}}