{
    "api_version": "1",
    "kind": "dse_post",
    "self": "https://update.dsesecurity.com/api/v1/posts/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
    "item": {
        "id": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
        "slug": "treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets",
        "url": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
        "alternate_urls": {
            "markdown": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets.md",
            "json": "https://update.dsesecurity.com/api/v1/posts/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/"
        },
        "title": "Treat pg_basebackup throttling and WAL streaming as separate budgets",
        "summary": "Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.",
        "format": {
            "slug": "guide",
            "name": "Guide"
        },
        "priority": {
            "slug": "info",
            "name": "Information"
        },
        "featured": false,
        "image": {
            "theme": "continuity-recovery",
            "label": "Continuity & recovery",
            "alt": "Paired infrastructure paths converging on a stable recovered service.",
            "card_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-card.webp?v=1.8.20",
            "hero_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-hero.webp?v=1.8.20",
            "social_url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
            "width": 2400,
            "height": 1350
        },
        "topics": [
            {
                "slug": "business-continuity",
                "name": "Business Continuity",
                "url": "https://update.dsesecurity.com/topic/business-continuity/"
            },
            {
                "slug": "it",
                "name": "IT",
                "url": "https://update.dsesecurity.com/topic/it/"
            }
        ],
        "author": {
            "name": "DSE Security Editorial Team",
            "url": "https://update.dsesecurity.com/#editorial-team",
            "type": "Organization"
        },
        "publisher": {
            "name": "Detection Systems & Engineering",
            "url": "https://dsesecurity.com/"
        },
        "published_at": "2026-10-15T13:32:27+00:00",
        "modified_at": "2026-10-15T13:36:15+00:00",
        "reviewed_on": "2026-10-15",
        "reading_minutes": 2,
        "word_count": 243,
        "potentially_affected": "This guidance applies to PostgreSQL 17 pg_basebackup planning, particularly streamed-WAL backups. It does not prescribe a transfer rate or infer available replication capacity for a particular server.",
        "dse_recommendation": "DSE recommends putting data transfer, WAL generation, replication connections, and destination capacity into the same change worksheet.",
        "primary_source": {
            "name": "PostgreSQL 17 — pg_basebackup",
            "url": "https://www.postgresql.org/docs/17/app-pgbasebackup.html",
            "published_on": null,
            "authority": "www.postgresql.org"
        },
        "publishing_principles": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
        "usage_info": "https://update.dsesecurity.com/usage/",
        "copyright_notice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
        "content_html": "<p>Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.</p>\n<h2>Source facts</h2>\n<p>In PostgreSQL 17, pg_basebackup can stream WAL alongside the base backup using its stream collection method. That opens a second replication connection, so the run needs two replication connections rather than one. The max-rate setting limits data-directory transfer, but it limits WAL transfer only when the collection method is fetch. Consequently, setting a base-backup rate cap does not also cap the separate streamed WAL traffic. An incremental backup also requires combination with its prerequisite backups before use.</p>\n<p>Source: <a href=\"https://www.postgresql.org/docs/17/app-pgbasebackup.html\">PostgreSQL 17 — pg_basebackup</a>.</p>\n<h2>Applicability</h2>\n<p>This guidance applies to PostgreSQL 17 pg_basebackup planning, particularly streamed-WAL backups. It does not prescribe a transfer rate or infer available replication capacity for a particular server.</p>\n<h2>DSE recommendation</h2>\n<p>DSE recommends putting data transfer, WAL generation, replication connections, and destination capacity into the same change worksheet. State explicitly which traffic the configured rate limit controls. Prefer a conservative trial during a supervised window before increasing throughput. Keep the selected WAL method and any incremental dependencies attached to the backup record, so recovery staff do not mistake an individual incremental directory for a self-contained recovery image.</p>\n<h2>Verification</h2>\n<p>Use a test cluster to observe replication connections and data transfer with the intended WAL mode. Confirm that monitoring distinguishes data-copy throughput from WAL traffic. Reconstruct and start the resulting backup in isolation, including the combination stage if an incremental backup was selected.</p>\n<h2>Official reference</h2>\n<p><a href=\"https://www.postgresql.org/docs/17/app-pgbasebackup.html\">PostgreSQL 17 — pg_basebackup</a>. Reviewed October 15, 2026.</p>",
        "content_text": "Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.\nSource facts\nIn PostgreSQL 17, pg_basebackup can stream WAL alongside the base backup using its stream collection method. That opens a second replication connection, so the run needs two replication connections rather than one. The max-rate setting limits data-directory transfer, but it limits WAL transfer only when the collection method is fetch. Consequently, setting a base-backup rate cap does not also cap the separate streamed WAL traffic. An incremental backup also requires combination with its prerequisite backups before use.\nSource: PostgreSQL 17 — pg_basebackup.\nApplicability\nThis guidance applies to PostgreSQL 17 pg_basebackup planning, particularly streamed-WAL backups. It does not prescribe a transfer rate or infer available replication capacity for a particular server.\nDSE recommendation\nDSE recommends putting data transfer, WAL generation, replication connections, and destination capacity into the same change worksheet. State explicitly which traffic the configured rate limit controls. Prefer a conservative trial during a supervised window before increasing throughput. Keep the selected WAL method and any incremental dependencies attached to the backup record, so recovery staff do not mistake an individual incremental directory for a self-contained recovery image.\nVerification\nUse a test cluster to observe replication connections and data transfer with the intended WAL mode. Confirm that monitoring distinguishes data-copy throughput from WAL traffic. Reconstruct and start the resulting backup in isolation, including the combination stage if an incremental backup was selected.\nOfficial reference\nPostgreSQL 17 — pg_basebackup. Reviewed October 15, 2026.",
        "content_markdown": "Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.\n\n## Source facts\n\nIn PostgreSQL 17, pg_basebackup can stream WAL alongside the base backup using its stream collection method. That opens a second replication connection, so the run needs two replication connections rather than one. The max-rate setting limits data-directory transfer, but it limits WAL transfer only when the collection method is fetch. Consequently, setting a base-backup rate cap does not also cap the separate streamed WAL traffic. An incremental backup also requires combination with its prerequisite backups before use.\n\nSource: [PostgreSQL 17 — pg_basebackup](https://www.postgresql.org/docs/17/app-pgbasebackup.html).\n\n## Applicability\n\nThis guidance applies to PostgreSQL 17 pg_basebackup planning, particularly streamed-WAL backups. It does not prescribe a transfer rate or infer available replication capacity for a particular server.\n\n## DSE recommendation\n\nDSE recommends putting data transfer, WAL generation, replication connections, and destination capacity into the same change worksheet. State explicitly which traffic the configured rate limit controls. Prefer a conservative trial during a supervised window before increasing throughput. Keep the selected WAL method and any incremental dependencies attached to the backup record, so recovery staff do not mistake an individual incremental directory for a self-contained recovery image.\n\n## Verification\n\nUse a test cluster to observe replication connections and data transfer with the intended WAL mode. Confirm that monitoring distinguishes data-copy throughput from WAL traffic. Reconstruct and start the resulting backup in isolation, including the combination stage if an incremental backup was selected.\n\n## Official reference\n\n[PostgreSQL 17 — pg_basebackup](https://www.postgresql.org/docs/17/app-pgbasebackup.html). Reviewed October 15, 2026."
    },
    "json_ld": {
        "@context": "https://schema.org",
        "@graph": [
            {
                "@type": "Organization",
                "@id": "https://dsesecurity.com/#organization",
                "name": "Detection Systems & Engineering",
                "alternateName": "DSE Security",
                "url": "https://dsesecurity.com/",
                "logo": {
                    "@type": "ImageObject",
                    "url": "https://update.dsesecurity.com/assets/dse-logo-20260812.png?v=1.8.20"
                }
            },
            {
                "@type": "Organization",
                "@id": "https://update.dsesecurity.com/#editorial-team",
                "name": "DSE Security Editorial Team",
                "url": "https://update.dsesecurity.com/",
                "parentOrganization": {
                    "@id": "https://dsesecurity.com/#organization"
                }
            },
            {
                "@type": "WebSite",
                "@id": "https://update.dsesecurity.com/#website",
                "name": "DSE Updates",
                "alternateName": "DSE Security Knowledge Hub",
                "url": "https://update.dsesecurity.com/",
                "inLanguage": "en-US",
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "potentialAction": {
                    "@type": "SearchAction",
                    "target": {
                        "@type": "EntryPoint",
                        "urlTemplate": "https://update.dsesecurity.com/?q={search_term_string}"
                    },
                    "query-input": "required name=search_term_string"
                }
            },
            {
                "@type": "WebPage",
                "@id": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
                "url": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
                "isPartOf": {
                    "@id": "https://update.dsesecurity.com/#website"
                },
                "lastReviewed": "2026-10-15"
            },
            {
                "@type": "BreadcrumbList",
                "@id": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/#breadcrumbs",
                "itemListElement": [
                    {
                        "@type": "ListItem",
                        "position": 1,
                        "name": "DSE Updates",
                        "item": "https://update.dsesecurity.com/"
                    },
                    {
                        "@type": "ListItem",
                        "position": 2,
                        "name": "Treat pg_basebackup throttling and WAL streaming as separate budgets",
                        "item": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/"
                    }
                ]
            },
            {
                "@type": [
                    "Article",
                    "TechArticle"
                ],
                "@id": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/#article",
                "identifier": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
                "url": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/",
                "headline": "Treat pg_basebackup throttling and WAL streaming as separate budgets",
                "description": "Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.",
                "abstract": "Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.",
                "articleBody": "Budget data-copy traffic and streamed WAL separately when throttling a PostgreSQL base backup.\nSource facts\nIn PostgreSQL 17, pg_basebackup can stream WAL alongside the base backup using its stream collection method. That opens a second replication connection, so the run needs two replication connections rather than one. The max-rate setting limits data-directory transfer, but it limits WAL transfer only when the collection method is fetch. Consequently, setting a base-backup rate cap does not also cap the separate streamed WAL traffic. An incremental backup also requires combination with its prerequisite backups before use.\nSource: PostgreSQL 17 — pg_basebackup.\nApplicability\nThis guidance applies to PostgreSQL 17 pg_basebackup planning, particularly streamed-WAL backups. It does not prescribe a transfer rate or infer available replication capacity for a particular server.\nDSE recommendation\nDSE recommends putting data transfer, WAL generation, replication connections, and destination capacity into the same change worksheet. State explicitly which traffic the configured rate limit controls. Prefer a conservative trial during a supervised window before increasing throughput. Keep the selected WAL method and any incremental dependencies attached to the backup record, so recovery staff do not mistake an individual incremental directory for a self-contained recovery image.\nVerification\nUse a test cluster to observe replication connections and data transfer with the intended WAL mode. Confirm that monitoring distinguishes data-copy throughput from WAL traffic. Reconstruct and start the resulting backup in isolation, including the combination stage if an incremental backup was selected.\nOfficial reference\nPostgreSQL 17 — pg_basebackup. Reviewed October 15, 2026.",
                "datePublished": "2026-10-15T13:32:27+00:00",
                "dateModified": "2026-10-15T13:36:15+00:00",
                "mainEntityOfPage": {
                    "@id": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/"
                },
                "inLanguage": "en-US",
                "isAccessibleForFree": true,
                "author": {
                    "@type": "Organization",
                    "name": "DSE Security Editorial Team",
                    "url": "https://update.dsesecurity.com/#editorial-team"
                },
                "publisher": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "image": {
                    "@type": "ImageObject",
                    "@id": "https://update.dsesecurity.com/updates/treat-pg-basebackup-throttling-and-wal-streaming-as-separate-budgets/#primaryimage",
                    "url": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "contentUrl": "https://update.dsesecurity.com/assets/editorial/continuity-recovery-social-v2.jpg?v=1.8.20",
                    "width": 1200,
                    "height": 630,
                    "caption": "Treat pg_basebackup throttling and WAL streaming as separate budgets"
                },
                "articleSection": [
                    "Business Continuity",
                    "IT"
                ],
                "keywords": [
                    "Business Continuity",
                    "IT",
                    "Guide",
                    "Information priority"
                ],
                "genre": "Guide",
                "about": [
                    {
                        "@type": "Thing",
                        "name": "Business Continuity",
                        "url": "https://update.dsesecurity.com/topic/business-continuity/"
                    },
                    {
                        "@type": "Thing",
                        "name": "IT",
                        "url": "https://update.dsesecurity.com/topic/it/"
                    }
                ],
                "wordCount": 243,
                "timeRequired": "PT2M",
                "publishingPrinciples": "https://update.dsesecurity.com/updates/dse-updates-editorial-methodology/",
                "usageInfo": "https://update.dsesecurity.com/usage/",
                "copyrightHolder": {
                    "@id": "https://dsesecurity.com/#organization"
                },
                "copyrightNotice": "Copyright © 2026 Detection Systems & Engineering. All rights reserved.",
                "citation": {
                    "@type": "CreativeWork",
                    "name": "PostgreSQL 17 — pg_basebackup",
                    "url": "https://www.postgresql.org/docs/17/app-pgbasebackup.html"
                }
            }
        ]
    }
}