## Summary

For small object workloads (1 KB objects), Tigris achieves approximately **20x** **the throughput** of Cloudflare R2 for both read and write operations. R2 exhibits extremely high latency for small objects, making Tigris the clear winner for this use case.

## Load Phase Results

Loading 10 million 1 KB objects into each system.

| Metric          | Tigris      | Cloudflare R2                   |
|-----------------|-------------|----------------------------------|
| P50 Latency     | 16.799ms    | 197.119ms<br>(11.73x Tigris)    |
| P90 Latency     | 35.871ms    | 340.223ms<br>(9.48x Tigris)     |
| Runtime         | 6710.7sec   | 72063sec<br>(10.74x Tigris)     |
| Throughput      | 1490.2ops/sec | 138.8ops/sec<br>(0.09x Tigris)  |

R2's p90 PUT latency tops **340ms** whereas Tigris stays below **36ms**. This extreme latency difference means Tigris finishes the load in **6711 seconds** while R2 requires **72063 seconds** (over 20 hours).

_Total load time for loading 10M 1 KB objects_

## Mixed Workload Results

1 million operations with 80% reads and 20% writes.

### Read Performance

| Metric          | Tigris      | Cloudflare R2                   |
|-----------------|-------------|----------------------------------|
| P50 Latency     | 5.399ms     | 605.695ms<br>(112.19x Tigris)    |
| P90 Latency     | 7.867ms     | 680.959ms<br>(86.56x Tigris)     |
| Runtime         | 241.7sec    | 4705.3sec<br>(19.47x Tigris)     |
| Throughput      | 3309.8ops/sec | 42.6ops/sec<br>(0.01x Tigris)    |

Tigris sustains **≈3.3k ops/s**, approximately **78x R2 (≈43 ops/s)** for read operations.

_Read throughput during mixed workload_

_Read p90 latency during mixed workload_

### Write Performance

| Metric          | Tigris      | Cloudflare R2                   |
|-----------------|-------------|----------------------------------|
| P50 Latency     | 12.855ms    | 605.695ms<br>(47.12x Tigris)     |
| P90 Latency     | 16.543ms    | 680.959ms<br>(41.16x Tigris)     |
| Runtime         | 241.6sec    | 4705.3sec<br>(19.48x Tigris)     |
| Throughput      | 828.1ops/sec  | 42.6ops/sec<br>(0.05x Tigris)    |

Tigris delivers **≈828 ops/s**, approximately **20x R2 (≈43 ops/s)** for write operations.

_Write throughput during mixed workload_

_Write p90 latency during mixed workload_

## Key Takeaways

- **20x faster throughput** for both reads and writes
- **Sub-10ms read latency** vs R2's 680ms p90
- **Sub-20ms write latency** vs R2's 680ms p90
- **10x faster bulk loads** for large datasets
- R2 is not optimized for small object workloads
