Skip to content
Open
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,7 @@ In this section, you can find information about the deployment package that is l

### Plan Details

This section shows details of the plan that applies to this environment.
It also includes the option to change your plan. For details, refer to [Changing Plan](/developerportal/deploy/change-plan/).
This section shows details of the plan that applies to this environment.

* **Name** – the type of plan associated with your license
* **Instances** – the number and memory allocation of instances in the environment (for more information, see the [Scaling](#scaling))
Expand All @@ -147,6 +146,11 @@ It also includes the option to change your plan. For details, refer to [Changing
* **File Storage** – available size for storing blobs
* **Multi-AZ Enabled** – a **Yes** or **No** value indicating whether multiple availability zones are enabled

From this section, you can also do the following:

* Change your plan. For details, refer to [Changing Plan](/developerportal/deploy/change-plan/).
* Reclaim database disk space. For details, refer to [Repacking Your Database in Mendix Cloud](/developerportal/deploy/repack-database/).

#### Scaling {#scaling}

To see the options for changing scaling, click **Scale** on the **Instances** row. This will open the **Change Scaling** dialog box, which includes two sliders that you can control:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,11 @@ If you are the [Technical Contact](/developerportal/general/app-roles/#technical

### Change Requests Tab {#change-requests}

On the **Change Requests** tab, the Technical Contact can view details of all past and current [Plan](/developerportal/deploy/change-plan/) and [Connection](/developerportal/deploy/connecting-to-external-resource/) requests and perform actions based on each request's current status.
On the **Change Requests** tab, the Technical Contact can view details of all past and current requests of the following types, and perform actions based on each request's current status:

* [Plan](/developerportal/deploy/change-plan/)
* [Connection](/developerportal/deploy/connecting-to-external-resource/)
* [Database Repack](/developerportal/deploy/repack-database/)

For each submitted request, the following information is available:

Expand Down
6 changes: 3 additions & 3 deletions content/en/docs/deployment/mendix-cloud-deploy/metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ The value is calculated by dividing the sum of dead rows by the sum of live and

Interpret this graph together with the [Database Transactions and Mutations](#Trends-dbpgstatdatabaseVERSIONmain) and [Database Disk Usage](#Trends-dbdfabs) graphs. Heavy update or delete traffic combined with rising bloat is a strong indicator that reclaim is falling behind.

If the average bloat ratio remains high for an extended period, contact [Mendix Support](https://support.mendix.com/) to request a database debloat operation. Before submitting the request, check the [Largest Table Size](#Trends-dblargesttablesize) graph to verify that the disk space precondition is met.
If the average bloat ratio remains high for an extended period, the Technical Contact of the app can [repack the database](/developerportal/deploy/repack-database/). Before starting the repack, check the [Largest Table Size](#Trends-dblargesttablesize) graph to verify that the disk space precondition is met.

### Maximum Table Bloat Ratio{#Trends-dbmaxtablebloatratio}

Expand All @@ -449,7 +449,7 @@ Only tables larger than 16 MiB are included. This excludes trivially small table

A consistently high value in the **non_system** series typically indicates an application table with a heavy update or delete workload. A consistently high value in the **system** series is unusual and usually indicates that Mendix Runtime background tasks (such as session or scheduled events) are generating changes faster than autovacuum can reclaim them.

As with the [Average Database Bloat Ratio](#Trends-dbavgbloatratio), if a series remains high for an extended period, contact [Mendix Support](https://support.mendix.com/) to request a database debloat operation.
As with the [Average Database Bloat Ratio](#Trends-dbavgbloatratio), if a series remains high for an extended period, the Technical Contact of the app can [repack the database](/developerportal/deploy/repack-database/).

### Largest Table Size{#Trends-dblargesttablesize}

Expand All @@ -461,7 +461,7 @@ The size includes the table's data, indexes, and TOAST storage. Each data point

If the largest table changes over the period being viewed, the graph remains a single continuous line, but the tooltip for each data point identifies which table was the largest at that moment. A steadily growing largest-table value, combined with rising [Database Disk Usage](#Trends-dbdfabs) is a common indicator that a table may benefit from archiving, partitioning, or a review of its data retention policy.

This graph is also relevant when requesting a database debloat operation (see [Average Database Bloat Ratio](#Trends-dbavgbloatratio) above). The cleanup process temporarily requires additional free database disk space approximately equal to the size of the largest table. Compare this graph with [Database Disk Usage](#Trends-dbdfabs) to verify that sufficient free space is available before opening a support ticket. If there is not enough free space, the database storage must be resized first.
This graph is also relevant when repacking the database (see [Average Database Bloat Ratio](#Trends-dbavgbloatratio) above). The repack temporarily requires additional free database disk space approximately equal to the size of the largest table. Compare this graph with [Database Disk Usage](#Trends-dbdfabs) to verify that sufficient free space is available before starting the repack. If there is not enough free space, the database storage must be resized first.

## Read More

Expand Down
91 changes: 91 additions & 0 deletions content/en/docs/deployment/mendix-cloud-deploy/repack-database.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: "Repacking Your Database in Mendix Cloud"
linktitle: "Repacking the Database"
url: /developerportal/deploy/repack-database/
weight: 80
description: "Describes how to reclaim database disk space in Mendix Cloud by repacking the database."
---

## Introduction

PostgreSQL keeps old versions of updated and deleted rows to support concurrent reads. Over time, these dead rows can accumulate and cause table bloat, which increases disk usage and can reduce query performance. Mendix Cloud runs autovacuum on all PostgreSQL databases, which is sufficient for most apps. For apps with a high number of transactions that create, update, and delete large amounts of data, autovacuum can fail to keep up.

Repack reclaims the disk space used by bloat. It uses the PostgreSQL extension `pg_repack` to rebuild tables and indexes without holding exclusive locks, so your app stays running during the process. After the repack, the database disk usage reflects only live data.

## Prerequisites {#prerequisites}

Before repacking the database, verify the following:

* You are the [Technical Contact](/developerportal/general/app-roles/#technical-contact) for the app.
* The database has enough free disk space. The repack temporarily requires free database disk space approximately equal to the size of the largest table. Compare the [Largest Table Size](/developerportal/operate/metrics/#Trends-dblargesttablesize) and [Database Disk Usage](/developerportal/operate/metrics/#Trends-dbdfabs) graphs to verify this.

To decide whether a repack is needed, use the [Average Database Bloat Ratio](/developerportal/operate/metrics/#Trends-dbavgbloatratio) and [Maximum Table Bloat Ratio](/developerportal/operate/metrics/#Trends-dbmaxtablebloatratio) graphs.

## Repacking the Database {#repacking}

To repack the database, follow these steps:

1. Go to [Projects](https://projects.home.mendix.com/).
2. Click **Environments** on your app.
3. On the **Environments** page, click the **Overview** tab to view your environments.
4. Find your target environment.
5. Click **Details** ({{% icon name="notes-paper-edit" %}}) next to the environment you want to view.
6. In the **Plan Details** section of the [Environment Details](/developerportal/deploy/environments-details/#plan-details) page, click **Repack**.
7. In the dialog box that appears, select **Execute now** to run the repack immediately, or select **Schedule for later** to run it at a later time. The expected impact on the running app is minimal, but scheduling lets you choose when the repack happens.

If you select **Schedule for later**, choose a date. The repack is scheduled for the first available maintenance window after that date.
8. Click **Submit**.
9. Click **Proceed** to confirm the database repack request.

{{% alert color="info" %}}
Only one repack request can exist for an environment at a time.
{{% /alert %}}

## Tracking a Repack Request {#tracking}

You can track and manage your database repack requests on the [Change Requests](/developerportal/deploy/environments/#change-requests) tab of the app's **Environments** page. Repack requests appear with **Database Repack** as the request type. This tab is visible only to the Technical Contact.

### Repack Request Details {#request-details}

Click **Details** on a database repack request to view the name of the requester and other request details, including:

* Status of the request
* Reason of repack
* Date of request creation
* Date the request was scheduled
* Request ID
* Request type
* App name
* Environment

### Repack Request Status {#repack-status}

A repack request can have the following statuses:

* **Pending Schedule** – The repack is awaiting scheduling.
* **Scheduled** – The repack is scheduled for the next maintenance window.
* **In Progress** – The repack is actively being applied to the environment. The environment is in a maintenance state, but the app keeps running.
* **Completed** – The repack was successfully applied to the environment.
* **Failed** – The repack did not complete successfully, for example because of an execution error.
* **Canceled** – The Technical Contact canceled the request. You can cancel a request until it is **In Progress**, including after it is scheduled. You cannot cancel a request that is **In Progress** or **Completed**.

### Available Actions by Status {#available-actions}

In the **Request Details** dialog box, depending on the request's [status](#repack-status), the Technical Contact can perform the following actions:

* **Pending Schedule** – Click **Cancel Request** to cancel the request, or click **Schedule Change** to set when the repack is applied.
* **Scheduled** – Click **Cancel Request** to cancel the request, or click **Execute Now** to run the repack immediately.

{{% alert color="warning" %}}
If the Technical Contact cancels a request, its status changes to **Canceled** and the repack is canceled entirely. You cannot reschedule a repack. To repack the database or change the scheduled date, submit a new request.
{{% /alert %}}

## Scheduling a Repack {#scheduling-a-repack}

If the status of your request is **Pending Schedule**, follow these steps:

1. On the **Change Requests** tab, click **Details** on the request.
2. In the **Request Details** dialog box, click **Schedule Change**.
3. Select **Execute Now** to run the repack immediately, or select **Schedule for later** and choose a date, as described in [Repacking the Database](#repacking).

After scheduling, the status changes to **Scheduled**. You can still click **Execute Now** at any time before the scheduled maintenance window to run the repack immediately instead. When the repack starts, the status changes to **In Progress**, and then to **Completed** or **Failed**.
2 changes: 1 addition & 1 deletion content/en/docs/releasenotes/deployment/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Follow the links in the table below to see the release notes you want:

| Type of Deployment | Last Updated |
| --- | --- |
| [Mendix Cloud](/releasenotes/developer-portal/mendix-cloud/) | October 18, 2026 |
| [Mendix Cloud](/releasenotes/developer-portal/mendix-cloud/) | November 1, 2026 |
| [Mendix on Kubernetes](/releasenotes/developer-portal/mendix-for-private-cloud/) | June 11, 2026 |
| [Mendix on Azure](/releasenotes/developer-portal/mendix-on-azure/) | July 2, 2026 |
| [SAP Business Technology Platform (SAP BTP)](/releasenotes/developer-portal/sap-cloud-platform/) | September 28, 2025 |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ Mendix Cloud deployments are also dependent on the latest version of the [Mendix

For information on the current status of deployment to Mendix Cloud and any planned releases, refer to [Mendix Status](https://status.mendix.com/).

## November 2026

### November 1, 2026

#### New Features

* Technical Contacts can now reclaim database disk space used by table bloat without contacting Support. For more information, refer to [Repacking Your Database in Mendix Cloud](/developerportal/deploy/repack-database/).

## October 2026

### October 18, 2026
Expand Down
2 changes: 1 addition & 1 deletion layouts/partials/landingpage/latest-releases.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ <h4 class="lp-panel-title">Latest Releases</h4>
</li>
<li class="lp-panel-list">
<a href="/releasenotes/developer-portal/deployment/">Deployment</a>
<p class="rn-date">October 18, 2026</p>
<p class="rn-date">November 1, 2026</p>
</li>
<li class="lp-panel-list">
<a href="/releasenotes/catalog/">Catalog Release 2.150.0</a>
Expand Down
Loading