mirror of
https://github.com/minio/minio.git
synced 2025-11-09 05:34:56 -05:00
[feat]: change erasure coding default block size from 10MiB to 1MiB (#11721)
major performance improvements in range GETs to avoid large read amplification when ranges are tiny and random ``` ------------------- Operation: GET Operations: 142014 -> 339421 Duration: 4m50s -> 4m56s * Average: +139.41% (+1177.3 MiB/s) throughput, +139.11% (+658.4) obj/s * Fastest: +125.24% (+1207.4 MiB/s) throughput, +132.32% (+612.9) obj/s * 50% Median: +139.06% (+1175.7 MiB/s) throughput, +133.46% (+660.9) obj/s * Slowest: +203.40% (+1267.9 MiB/s) throughput, +198.59% (+753.5) obj/s ``` TTFB from 10MiB BlockSize ``` * First Access TTFB: Avg: 81ms, Median: 61ms, Best: 20ms, Worst: 2.056s ``` TTFB from 1MiB BlockSize ``` * First Access TTFB: Avg: 22ms, Median: 21ms, Best: 8ms, Worst: 91ms ``` Full object reads however do see a slight change which won't be noticeable in real world, so not doing any comparisons TTFB still had improvements with full object reads with 1MiB ``` * First Access TTFB: Avg: 68ms, Median: 35ms, Best: 11ms, Worst: 1.16s ``` v/s TTFB with 10MiB ``` * First Access TTFB: Avg: 388ms, Median: 98ms, Best: 20ms, Worst: 4.156s ``` This change should affect all new uploads, previous uploads should continue to work with business as usual. But dramatic improvements can be seen with these changes.
This commit is contained in:
@@ -29,8 +29,17 @@ import (
|
||||
|
||||
const (
|
||||
// Block size used for all internal operations version 1.
|
||||
|
||||
// TLDR..
|
||||
// Not used anymore xl.meta captures the right blockSize
|
||||
// so blockSizeV2 should be used for all future purposes.
|
||||
// this value is kept here to calculate the max API
|
||||
// requests based on RAM size for existing content.
|
||||
blockSizeV1 = 10 * humanize.MiByte
|
||||
|
||||
// Block size used in erasure coding version 2.
|
||||
blockSizeV2 = 1 * humanize.MiByte
|
||||
|
||||
// Buckets meta prefix.
|
||||
bucketMetaPrefix = "buckets"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user