---
title: Object Storage Request Estimation
description: >-
  Estimate the number of object storage PUT requests generated by BYOC Logs
  indexers and compactors
breadcrumbs: Docs > BYOC Logs > Operate BYOC Logs > Object Storage Request Estimation
---

> For the complete documentation index, see [llms.txt](https://docs.datadoghq.com/llms.txt).

# Object Storage Request Estimation

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com, us2.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site.md). ({% placeholder "user-datadog-site-name" /%}).
{% /alert %}

{% /callout %}

## Overview{% #overview %}

Object storage (Amazon S3, Google Cloud Storage, Azure Blob Storage) bills both **stored data** and **API requests**. This page estimates the **PUT requests** generated on the write path by **indexers** and **compactors**.

## Indexers{% #indexers %}

Each indexer runs several **indexing pipelines**, one per vCPU. Every 30 seconds (the default commit timeout), each pipeline uploads one index file (a *split*) to object storage:

$$\text"splits per pipeline per day" = {86400} / 30 = 2880$$

A 4-vCPU indexer runs 4 pipelines, so it uploads **11,520 splits per day**.

Splits store **compressed** data (3x or more). At typical volumes, they stay below the 128 MiB multipart threshold and upload as a **single PUT request**. Larger splits use multipart upload and cost 3 or more PUT requests.

## Compactors{% #compactors %}

Compactors **merge 10 splits into 1**, repeatedly, over three *generations* (gen 1, 2, 3). Merged splits are large (over 1 GB) and use multipart upload, so each one costs 3 or more PUT requests.

The 10:1 fan-in means every generation produces 10x fewer splits than the one before it. In total, compaction adds only about **one-third more PUT requests** on top of the indexer splits.

## Request estimates{% #request-estimates %}

The following estimates assume:

- **8 MB/s per indexer vCPU**, so a 4-vCPU indexer sustains 32 MB/s, or ~2.8 TB/day. See [Cluster Sizing](https://docs.datadoghq.com/byoc-logs/operate/sizing.md#indexers).
- **4 indexing pipelines** per indexer, with the default 30-second commit timeout
- A PUT price of **$0.005 per 1,000 requests** (S3 Standard, `us-east-1`)

Each indexer uploads 11,520 splits per day. Compaction adds about one-third, for a total of **\~15,360 PUT requests per indexer per day**:

| Daily volume   | Indexers (4 vCPUs each) | Total PUT requests per day | Approx. PUT cost per month |
| -------------- | ----------------------- | -------------------------- | -------------------------- |
| **1 TB/day**   | 1                       | ~15,000                    | ~$2                        |
| **10 TB/day**  | 4                       | ~61,000                    | ~$9                        |
| **100 TB/day** | 37                      | ~568,000                   | ~$85                       |
PUT requests scale with **pipeline count and commit cadence, not raw ingestion volume**. Raising the commit timeout (for example, to 60 seconds) roughly halves the request count, at the cost of higher search latency.
## Further reading{% #further-reading %}

Additional helpful documentation, links, and articles:

- [BYOC Logs Cluster Sizing](https://docs.datadoghq.com/byoc-logs/operate/sizing.md)
- [Learn more about BYOC Logs Architecture](https://docs.datadoghq.com/byoc-logs/introduction/architecture.md)
