Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
78 changes: 78 additions & 0 deletions docs/config/_default/menus.toml
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,84 @@
[stable_api.params]
showSection = true

########## Menus for "v2.25"

[["v2.25"]]
weight = 1
["v2.25".params]
productsDropdown = true

[["v2.25"]]
name = "Overview"
weight = 2
identifier = "yugabytedb"
url = "/v2.25/"
["v2.25".params]
showSection = true

[["v2.25"]]
name = "Quick Start"
weight = 4
identifier = "quick-start"
url = "/preview/quick-start/macos/"
["v2.25".params]
showSection = true
hideChildren = true

[["v2.25"]]
name = "Explore"
weight = 5
identifier = "explore"
url = "/v2.25/explore/"
["v2.25".params]
classes = "separator"
showSection = true

[["v2.25"]]
name = "Secure"
weight = 8
identifier = "secure"
url = "/v2.25/secure/"
["v2.25".params]
showSection = true

[["v2.25"]]
name = "Launch and Manage"
weight = 9
identifier = "launch-and-manage"
url = "/v2.25/launch-and-manage/"
["v2.25".params]
showSection = true

[["v2.25"]]
name = "Reference"
weight = 10
identifier = "reference"
["v2.25".params]
showSection = true

[["v2.25"]]
name = "Troubleshoot"
parent = "launch-and-manage"
url = "/preview/troubleshoot/"

[["v2.25"]]
name = "Benchmark"
weight = 11
identifier = "benchmark"
url = "/v2.25/benchmark/"
["v2.25".params]
classes = "separator"
showSection = true

[["v2.25"]]
name = "Contribute"
weight = 13
identifier = "contribute"
url = "/preview/contribute/"
["v2.25".params]
showSection = true

########## Menus for "v2024.2"

[["v2024.2"]]
Expand Down
5 changes: 4 additions & 1 deletion docs/config/_default/params.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,11 @@ version_menu_pagelinks = true
[[versions]]
url = "/stable"
version = "v2025.1 (STS)"
# [[versions]]
# url = "/preview"
# version = "v2.25 (Preview)"
[[versions]]
url = "/preview"
url = "/v2.25"
version = "v2.25 (Preview)"
[[versions]]
url = "/v2024.2"
Expand Down
1 change: 1 addition & 0 deletions docs/content/preview/releases/ybdb-releases/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ The following stable and preview releases are no longer supported:

| Release series | Released | End of maintenance support | End of Life (EOL) |
| :------------- | :------- | :------------------------- | :---------------- |
| [v2.25](v2.25/) {{<tags/release/preview>}} | January 17, 2025 | n/a | n/a |
| [v2.23](v2.23/) {{<tags/release/preview>}} | September 13, 2024 | n/a | n/a |
| [v2.21](v2.21/) {{<tags/release/preview>}} | March 26, 2024 | n/a | n/a |
| [v2.19](v2.19/) {{<tags/release/preview>}} | June 20, 2023 | n/a | n/a |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,23 +1,18 @@
---
title: What's new in the v2.25 preview release series
headerTitle: What's new in the v2.25 preview release series
linkTitle: v2.25 series (Preview)
linkTitle: v2.25 series
description: Enhancements, changes, and resolved issues in the v2.25 preview release series.
aliases:
- /preview/releases/release-notes/latest-release/
- /preview/releases/whats-new/latest-release
menu:
preview_releases:
identifier: v2.25
parent: ybdb-releases
weight: 2770
identifier: yba-v2.25
parent: end-of-life
weight: 2790
type: docs
---

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.

For an RSS feed of all release series, point your feed reader to the [RSS feed for releases](../index.xml).

## Release announcements

* [Doubling Down on PostgreSQL Compatibility: YugabyteDB Levels Up with PG15 Features](https://www.yugabyte.com/blog/postgresql-compatibility-new-yugabytedb-pg15-features/)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
---
title: What's new in the YugabyteDB Anywhere v2.25 release series
headerTitle: What's new in the YugabyteDB Anywhere v2.25 release series
linkTitle: v2.25 series (Preview)
linkTitle: v2.25 series
description: Enhancements, changes, and resolved issues in the YugabyteDB Anywhere v2.25 preview release series.
menu:
preview_releases:
identifier: yba-v2.25
parent: yba-releases
weight: 1010
identifier: v2.25
parent: end-of-life
weight: 2790
type: docs
---

What follows are the release notes for all releases in the YugabyteDB Anywhere (YBA) v2.25 series. Content will be added as new notable features and changes are available in the patch releases of the v2.25 series.

For an RSS feed of all release series, point your feed reader to the [RSS feed for releases](../index.xml).

## Before you upgrade

Before upgrading, be sure to review the information in [Prepare to upgrade YugabyteDB Anywhere](/preview/yugabyte-platform/upgrade/prepare-to-upgrade/).
Expand Down
80 changes: 80 additions & 0 deletions docs/content/v2.25/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: YugabyteDB
description: YugabyteDB documentation is the best source to learn the most in-depth information about the YugabyteDB database, YugabyteDB Aeon, and YugabyteDB Anywhere.
headcontent: Open source cloud-native distributed SQL database
weight: 1
type: indexpage
breadcrumbDisable: true
---

YugabyteDB is an open source PostgreSQL-compatible distributed database for cloud native apps. Resilient, scalable, and flexible, it can be deployed across public and private clouds as well as in Kubernetes environments.

{{< sections/2-boxes >}}
{{< sections/bottom-image-box
title="Get started locally on your laptop"
description="Download and install YugabyteDB on your laptop, create a cluster, and build a sample application."
buttonText="Quick Start"
buttonUrl="/preview/quick-start/macos/"
imageAlt="Locally Laptop" imageUrl="/images/homepage/locally-laptop.svg"
>}}

{{< sections/bottom-image-box
title="Explore distributed SQL"
description="Explore the features of distributed SQL, with examples."
buttonText="Explore"
buttonUrl="/preview/explore/"
imageAlt="Yugabyte cloud" imageUrl="/images/homepage/yugabyte-in-cloud.svg"
>}}
{{< /sections/2-boxes >}}

## Develop for YugabyteDB

{{< sections/3-boxes>}}
{{< sections/3-box-card
title="Build a Hello World application"
description="Use your favorite programming language to build an application that connects to a YugabyteDB cluster."
buttonText="Build"
buttonUrl="/preview/develop/tutorials/build-apps/"
>}}

{{< sections/3-box-card
title="Connect using drivers and ORMs"
description="Connect applications to your database using familiar third-party divers and ORMs and YugabyteDB Smart Drivers."
buttonText="Connect"
buttonUrl="/preview/develop/drivers-orms/"
>}}

{{< sections/3-box-card
title="Use familiar APIs"
description="Get up to speed quickly using YugabyteDB's PostgreSQL-compatible YSQL and Cassandra-based YCQL APIs."
buttonText="Develop"
buttonUrl="/preview/api/"
>}}

{{< /sections/3-boxes >}}

## Get under the hood

{{< sections/3-boxes>}}
{{< sections/3-box-card
title="Architecture"
description="Learn how YugabyteDB achieves consistency and high availability."
buttonText="Learn More"
buttonUrl="/preview/architecture/"
>}}

{{< sections/3-box-card
title="Secure"
description="Secure YugabyteDB with authentication, authorization, and encryption."
buttonText="Secure"
buttonUrl="/preview/secure/"
>}}

{{< sections/3-box-card
title="Configure"
description="Configure core database services."
buttonText="Configure"
buttonUrl="/preview/reference/configuration/"
>}}

{{< /sections/3-boxes >}}
53 changes: 53 additions & 0 deletions docs/content/v2.25/additional-features/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: Advanced capabilities
headerTitle: Advanced capabilities
linkTitle: Advanced capabilities
description: How to deploy advanced capabilities for your YugabyteDB deployment.
headcontent: Deploy and manage advanced capabilities for your YugabyteDB universe
menu:
v2.25:
identifier: additional-features
parent: launch-and-manage
weight: 40
type: indexpage
---

{{<index/block>}}

{{<index/item
title="YSQL Connection Manager"
body="Built-in connection pooling for YSQL."
href="connection-manager-ysql/"
icon="fa-thin fa-phone">}}

{{<index/item
title="Change Data Capture"
body="Capture changes made to data in the database."
href="change-data-capture/"
icon="fa-thin fa-arrows-rotate">}}

{{<index/item
title="Colocation"
body="Keep closely related data together via colocation."
href="colocation/"
icon="fa-thin fa-people-roof">}}

{{<index/item
title="Parallel queries"
body="Leverage multiple CPUs to answer queries faster."
href="parallel-query/"
icon="fa-thin fa-grip-lines-vertical">}}

{{<index/item
title="PostgreSQL extensions"
body="Use PostgreSQL extensions to extend the functionality of YSQL."
href="pg-extensions/"
icon="fa-thin fa-puzzle">}}

{{<index/item
title="Auto Analyze service"
body="Automate execution of ANALYZE commands."
href="auto-analyze/"
icon="fa-thin fa-microscope">}}

{{</index/block>}}
95 changes: 95 additions & 0 deletions docs/content/v2.25/additional-features/auto-analyze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
---
title: Auto Analyze service
headerTitle: Auto Analyze service
linkTitle: Auto Analyze
description: Use the Auto Analyze service to keep table statistics up to date
headcontent: Keep table statistics up to date automatically
tags:
feature: early-access
menu:
v2.25:
identifier: auto-analyze
parent: additional-features
weight: 100
type: docs
---

To create optimal plans for queries, the query planner needs accurate and up-to-date statistics related to tables and their columns. These statistics are also used by the YugabyteDB [cost-based optimizer](../../reference/configuration/yb-tserver/#yb-enable-base-scans-cost-model) (CBO) to create optimal execution plans for queries. To generate the statistics, you run the [ANALYZE](../../api/ysql/the-sql-language/statements/cmd_analyze/) command. ANALYZE collects statistics about the contents of tables in the database, and stores the results in the `pg_statistic` system catalog.

Similar to [PostgreSQL autovacuum](https://www.postgresql.org/docs/current/routine-vacuuming.html#AUTOVACUUM), the YugabyteDB Auto Analyze service automates the execution of ANALYZE commands for any table where rows have changed more than a configurable threshold for the table. This ensures table statistics are always up-to-date.

## Enable Auto Analyze

Before you can use the feature, you must enable it by setting `ysql_enable_auto_analyze_service` to true on all YB-Masters, and both `ysql_enable_auto_analyze_service` and `ysql_enable_table_mutation_counter` to true on all YB-TServers.

For example, to create a single-node [yugabyted](../../reference/configuration/yugabyted/) cluster with Auto Analyze enabled, use the following command:

```sh
./bin/yugabyted start \
--master_flags "ysql_enable_auto_analyze_service=true" \
--tserver_flags "ysql_enable_auto_analyze_service=true,ysql_enable_table_mutation_counter=true"
```

Enabling Auto Analyze on an existing cluster requires a rolling restart to set `ysql_enable_auto_analyze_service` and `ysql_enable_table_mutation_counter` to true.

## Configure Auto Analyze

You can control how frequently the service updates table statistics using the following YB-TServer flags:

- `ysql_auto_analyze_threshold` - the minimum number of mutations (INSERT, UPDATE, and DELETE) needed to run ANALYZE on a table. Default is 50.
- `ysql_auto_analyze_scale_factor` - a fraction that determines when enough mutations have been accumulated to run ANALYZE for a table. Default is 0.1.

Increasing either of these flags reduces the frequency of statistics updates.

If the total number of mutations for a table is greater than its analyze threshold, then the service runs ANALYZE on the table. The analyze threshold of a table is calculated as follows:

```sh
analyze_threshold = ysql_auto_analyze_threshold + (ysql_auto_analyze_scale_factor * <table_size>)
```

where `<table_size>` is the current `reltuples` column value stored in the `pg_class` catalog.

`ysql_auto_analyze_threshold` is important for small tables. With default settings, if a table has 100 rows and 20 are mutated, ANALYZE won't run as the threshold is not met, even though 20% of the rows are mutated.

On the other hand, `ysql_auto_analyze_scale_factor` is especially important for big tables. If a table has 1,000,000,000 rows, 10% (100,000,000 rows) would have to be mutated before ANALYZE runs. Set the scale factor to a lower value to allow for more frequent statistics collection for such large tables.

In addition, `ysql_auto_analyze_batch_size` controls the maximum number of tables the Auto Analyze service tries to analyze in a single ANALYZE statement. The default is 10. Setting this flag to a larger value can potentially reduce the number of YSQL catalog cache refreshes if Auto Analyze decides to ANALYZE many tables in the same database at the same time.

For more information on flags used to configure the Auto Analyze service, refer to [Auto Analyze service flags](../../reference/configuration/yb-tserver/#auto-analyze-service-flags).

## Example

With Auto Analyze enabled, try the following SQL statements.

```sql
CREATE TABLE test (k INT PRIMARY KEY, v INT);
SELECT reltuples FROM pg_class WHERE relname = 'test';
```

```output
reltuples
-----------
-1
(1 row)
```

```sql
INSERT INTO test SELECT i, i FROM generate_series(1, 100) i;
```

Wait for few seconds.

```sql
SELECT reltuples FROM pg_class WHERE relname = 'test';
```

```output
reltuples
-----------
100
(1 row)
```

## Limitations

Because ANALYZE is a DDL statement, it can cause DDL conflicts when run concurrently with other DDL statements. As Auto Analyze runs ANALYZE in the background, you should turn off Auto Analyze if you want to execute DDL statements. You can do this by setting `ysql_enable_auto_analyze_service` to false on all YB-TServers at runtime.
Loading