From e2e12bcd506c45be9d08e8812b31031994d60e0b Mon Sep 17 00:00:00 2001 From: Walter Date: Fri, 31 Oct 2025 21:38:36 +0800 Subject: [PATCH 1/2] docs(operational-data-hub): add guide for estimating MongoDB oplog size --- docs/images/collection_size.png | Bin 0 -> 81574 bytes docs/images/collection_stats.png | Bin 0 -> 48538 bytes .../evaluate-mongodb-oplog-size.md | 150 ++++++++++++++++++ docs/operational-data-hub/set-up-odh.md | 6 +- sidebars.js | 1 + 5 files changed, 156 insertions(+), 1 deletion(-) create mode 100644 docs/images/collection_size.png create mode 100644 docs/images/collection_stats.png create mode 100644 docs/operational-data-hub/evaluate-mongodb-oplog-size.md diff --git a/docs/images/collection_size.png b/docs/images/collection_size.png new file mode 100644 index 0000000000000000000000000000000000000000..6dd292d91c9da9ef6490865431f0238f25ab26aa GIT binary patch literal 81574 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 literal 0 HcmV?d00001 diff --git a/docs/operational-data-hub/evaluate-mongodb-oplog-size.md b/docs/operational-data-hub/evaluate-mongodb-oplog-size.md new file mode 100644 index 00000000..40eed1a8 --- /dev/null +++ b/docs/operational-data-hub/evaluate-mongodb-oplog-size.md @@ -0,0 +1,150 @@ +# How to Estimate MongoDB Oplog Size + +In the TapData platform, MongoDB serves as the core storage engine for the [Operational Data Hub (ODH)](set-up-odh.md), handling real-time mirrored data in the FDM layer and processed, structured business data in the MDM layer. This guide draws from MongoDB's official documentation and TapData's real-world use cases to explain the oplog's purpose, estimation techniques, and optimization tips. + +```mdx-code-block +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +``` + +## What the Oplog Does + +The oplog (operations log) is a special capped collection in MongoDB that records all data modifications, such as inserts, updates, and deletes. It's central to MongoDB's replication system and enables key features: + +* **Data Replication**: The primary node logs write operations in the oplog, which secondary nodes read and apply to stay in sync. +* **Change Data Capture (CDC)**: Tools like TapData rely on the oplog to detect real-time changes for CDC tasks. +* **Fault Recovery**: If a secondary node goes offline, the oplog provides a "window" for it to catch up without a full resync. +* **Rollback Support**: During primary node elections, the oplog helps undo inconsistent operations. + +In TapData's [ODH setup](set-up-odh.md), MongoDB acts as the metadata store, and the oplog ensures reliable real-time syncing between FDM and MDM layers. An undersized or overwritten oplog can cause data loss or sync failures, so accurate sizing is essential—aim for at least 72 hours of retention for stable operations. + +## Estimate Oplog Size + +Oplog sizing depends on your workload and goals. Since it logs all writes at the instance level (covering FDM and MDM databases), base estimates on actual traffic. Start with 10–20 GB and adjust dynamically. + +### Key Factors Affecting Oplog Size + +| Factor | Description | +|-------------------------|-----------------------------------------------------------------------------| +| Desired Retention Time | The time span between the oldest and newest entries (oplog window). Longer retention requires more space. | +| Write Rate (OPS) | Higher operations per second consume space faster; TapData's bulk syncs or concurrent tasks can spike this. | +| Operation Type and Average Size | Inserts/deletes log full BSON documents; updates log changed fields (multi-updates expand into multiple entries). | +| Other Considerations | Network/protocol overhead (10-30%); per-entry metadata (50-100 B); bulk ops add entries; overall instance load (FDM/MDM). | + +### Methods for Estimate Oplog Size + +For TapData scenarios, balance short-term bursts (e.g., FDM full mirrors) with ongoing loads (e.g., MDM changes). Use the method that fits your case, then take the larger estimate for your final oplog config. + +**Preliminary Step: Get Average BSON Document Size** + +You'll need this for both methods: + +* **Via MongoDB Compass**: Select the database to see the Avg. document size for each collection. + ![Collection Stats Example](../images/collection_stats.png) +* **Command Line**: Run `db.getCollection('your_collection_name').stats().avgObjSize` + +```mdx-code-block + + +``` + +Ideal for one-time high-throughput writes, like initial FDM syncing or large migrations. Ensure the oplog holds all logs from the entire process to prevent overwrites that could disconnect replicas or CDC tools. + +**Steps** (for a single collection): + +1. **Estimate Total Write Volume** + - For full inserts: Oplog volume ≈ `avgBsonSize × document count` + - For updates/deletes: Multiply by an inflation factor (1.2–2.0, based on update frequency and field coverage) +3. **Add Oplog Metadata Overhead**
Each entry adds ~80–120 bytes (for ts, h, ns, op, etc.).
→ Total metadata ≈ `100 × document count` +4. **Apply Buffer**
Add 20–30% for network variability, concurrency, and internal overhead. + +**Example Calculation:** + +![Collection Size Example](../images/collection_size.png) + +Using the collection above with 11,000,000 documents: + +:::tip +Base oplog estimates on raw BSON sizes—the storageSize in the image is compressed disk usage and shouldn't be used. +::: + +1. Average BSON size is about 772 bytes from stats. +2. **Total BSON Bytes**: `772 B × 11,000,000 = 8,492,000,000 B ≈ 7.91 GiB` +3. **Metadata Overhead**: ~`100 B × 11,000,000 = 1,100,000,000 B ≈ 1.02 GiB` +4. **Logical Total**: `≈ 8.93 GiB` +5. **With Buffer (network/peaks)**: Add 10–30%; recommend ~11-12 GiB. + +:::tip +For multi-collection databases or syncing multiple DBs, sum totals across all, scale for updates/deletes (e.g., ×1.5–2), then estimate oplog needs. +::: + +
+ + +Suited for steady-state scenarios like MDM ongoing writes, TapData CDC, or replication. Factor in write rates and retention goals to ensure logs persist during outages or maintenance. + +**Formula**: **Oplog Size ≈ (Average Entry Size × Peak OPS × Retention Seconds) + Buffer** + +**Steps**: + +1. **Determine Average Write Rate (OPS)** + - Use [TapData monitoring](../platform-ops/monitor-with-prometheus.md) or `mongostat` over 1–3 days. + - Include inserts, updates, deletes; use weighted averages or P90 for peaks/valleys. + - Account for occasional bursts separately. +2. **Set Retention Time**: At least 72 hours recommended. +3. **Add Buffer**: 20–30% on top for fluctuations, transactions, or log expansion. + +**Example Calculation**: + +Assume: +- Average entry size: **1 KB** +- Average OPS: **100** +- Retention: **72 hours = 259,200 seconds** + +Oplog size ≈ 1 KB × 100 × 259,200 = 25,920,000 KB ≈ 24.72 GiB; add 20% buffer → 24.72 × 1.2 ≈ 29.66 GiB. + +Recommend ~29–30 GiB to cover 3 days of typical writes in stable production setups. + + +
+ + +## Check and Monitor Oplog Usage + +After estimating and setting up, regularly inspect the oplog in TapData's production environment to confirm usage matches expectations and spot issues like overwrite risks or lags early. + +On a TapData MongoDB node: + +```javascript +use local +db.oplog.rs.stats() // Shows size (used bytes), storageSize, and maxSize (cap) +``` + +or + +```javascript +use admin +db.adminCommand({ replSetGetStatus: 1 }) // Displays overall status, including oplog window +``` + +[Integrate Prometheus](../platform-ops/monitor-with-prometheus.md) for monitoring and set alerts (e.g., used/size > 80%). Focus on OPS, oplog window, and replication lag, especially during peaks or bulk syncs. + +## Adjusting Oplog Size + +If monitoring reveals insufficient coverage for retention or peaks, resize dynamically to boost TapData's CDC and sync efficiency. Set initially via the oplogSizeMB parameter when starting mongod; prefer runtime commands in production to minimize downtime. + +Runtime resize: + +```javascript +use admin +db.runCommand({ replSetResizeOplog: 81920 }) // 80 GB +``` + +In TapData production, do this during maintenance windows with backups. Some setups may require mongod restarts—follow official steps. Post-adjustment, recheck the oplog window and set a min retention (hours) to avoid overwrites. + +## Best Practices + +* **Capacity Planning**: Size for at least 72 hours of writes; start at 10–50 GB. +* **Safety Buffer**: Add 20–30% to estimates for unexpected spikes. +* **[Monitoring Alerts](../platform-ops/monitor-with-prometheus.md)**: Trigger warnings at 80% usage for timely adjustments. +* **Regular Reviews**: Reassess quarterly as business and data volumes grow. \ No newline at end of file diff --git a/docs/operational-data-hub/set-up-odh.md b/docs/operational-data-hub/set-up-odh.md index a8a0f8fd..0d546f65 100644 --- a/docs/operational-data-hub/set-up-odh.md +++ b/docs/operational-data-hub/set-up-odh.md @@ -21,7 +21,11 @@ When creating the MongoDB connection, be sure to set the **connection role as bo - You can use one shared database for both FDM and MDM layers, or create dedicated databases for better isolation and scalability. - Deploy MongoDB as a [replica set](../platform-ops/production-deploy/install-replica-mongodb.md) to ensure high availability and fault tolerance. -- Ensure the MongoDB instance has enough disk space and a 14-day Oplog retention to support stable real-time synchronization and CDC. +- Ensure the MongoDB instance has enough disk space Oplog retention to support stable real-time synchronization and CDC. + +:::tip +Need help sizing your MongoDB Oplog? Check out our [MongoDB Oplog Sizing Guide](mongodb-oplog-sizing-guide.md) for detailed calculations and best practices. +::: diff --git a/sidebars.js b/sidebars.js index 0d9db546..91a565e7 100644 --- a/sidebars.js +++ b/sidebars.js @@ -285,6 +285,7 @@ const sidebars = { items: [ 'operational-data-hub/plan-data-platform', 'operational-data-hub/set-up-odh', + 'operational-data-hub/evaluate-mongodb-oplog-size', { type: 'category', label: 'Ingest and Sync Data (FDM Layer)', From d7946d3f180e0f37c2af277fbc1bf09c75b4998c Mon Sep 17 00:00:00 2001 From: Walter Date: Fri, 31 Oct 2025 21:42:27 +0800 Subject: [PATCH 2/2] fix broken links --- .github/actions/spelling/allow.txt | 1 + docs/operational-data-hub/evaluate-mongodb-oplog-size.md | 2 +- docs/operational-data-hub/set-up-odh.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt index dd505930..efd283b3 100644 --- a/.github/actions/spelling/allow.txt +++ b/.github/actions/spelling/allow.txt @@ -713,4 +713,5 @@ replicasetstatus topmetrics tsdb xzvf +bson diff --git a/docs/operational-data-hub/evaluate-mongodb-oplog-size.md b/docs/operational-data-hub/evaluate-mongodb-oplog-size.md index 40eed1a8..2f6b56a1 100644 --- a/docs/operational-data-hub/evaluate-mongodb-oplog-size.md +++ b/docs/operational-data-hub/evaluate-mongodb-oplog-size.md @@ -13,7 +13,7 @@ The oplog (operations log) is a special capped collection in MongoDB that record * **Data Replication**: The primary node logs write operations in the oplog, which secondary nodes read and apply to stay in sync. * **Change Data Capture (CDC)**: Tools like TapData rely on the oplog to detect real-time changes for CDC tasks. -* **Fault Recovery**: If a secondary node goes offline, the oplog provides a "window" for it to catch up without a full resync. +* **Fault Recovery**: If a secondary node goes offline, the oplog provides a "window" for it to catch up without a full re-sync. * **Rollback Support**: During primary node elections, the oplog helps undo inconsistent operations. In TapData's [ODH setup](set-up-odh.md), MongoDB acts as the metadata store, and the oplog ensures reliable real-time syncing between FDM and MDM layers. An undersized or overwritten oplog can cause data loss or sync failures, so accurate sizing is essential—aim for at least 72 hours of retention for stable operations. diff --git a/docs/operational-data-hub/set-up-odh.md b/docs/operational-data-hub/set-up-odh.md index 0d546f65..e71de673 100644 --- a/docs/operational-data-hub/set-up-odh.md +++ b/docs/operational-data-hub/set-up-odh.md @@ -24,7 +24,7 @@ When creating the MongoDB connection, be sure to set the **connection role as bo - Ensure the MongoDB instance has enough disk space Oplog retention to support stable real-time synchronization and CDC. :::tip -Need help sizing your MongoDB Oplog? Check out our [MongoDB Oplog Sizing Guide](mongodb-oplog-sizing-guide.md) for detailed calculations and best practices. +Need help sizing your MongoDB Oplog? Check out our [MongoDB Oplog Sizing Guide](evaluate-mongodb-oplog-size.md) for detailed calculations and best practices. :::