Skip to download

hesela.dev

Storage glossary · datasets · llms.txt · hesela.com

Deterministic accounting / no device measurements

RAID write costs: reads, writes and payload

56 deterministic RAID5/P+Q examples compare read-modify-write and reconstruct-write with explicit byte denominators. No device measurements or timing predictions.

Download CSV56 cases / 14 columns

JSON and provenance / Model code / Research explanation

Accounting assumptions

Healthy fixed-width parity rows with complete equal-size block replacements and cold cache. k data blocks, p parity blocks, u replacements. RMW reads u+p and writes u+p; reconstruct reads k-u and writes u+p. One transfer of one member block is one operation. Each row is independent. The two strategies have equal operation count when 2u+p=k.

At the same 16 KiB host payload, four isolated one-block RMW updates in a four-data-member RAID5 row use 16 member-block transfers. A coalesced full-row update uses 5. This comparison assumes no cache reuse between isolated updates; it is not a measured speedup.

All 56 generated cases. k = data blocks; p = parity blocks; u = changed data blocks. Every block is 4 KiB. RMW at u=k is a forced comparison.
kpuStrategyReadsWritesTotalOperations / host block
211RMW2244
211Reconstruct1233
212RMW3363
212Reconstruct0331.5
221RMW3366
221Reconstruct1344
222RMW4484
222Reconstruct0442
411RMW2244
411Reconstruct3255
412RMW3363
412Reconstruct2352.5
413RMW4482.6667
413Reconstruct1451.6667
414RMW55102.5
414Reconstruct0551.25
421RMW3366
421Reconstruct3366
422RMW4484
422Reconstruct2463
423RMW55103.3333
423Reconstruct1562
424RMW66123
424Reconstruct0661.5
811RMW2244
811Reconstruct7299
812RMW3363
812Reconstruct6394.5
813RMW4482.6667
813Reconstruct5493
814RMW55102.5
814Reconstruct4592.25
815RMW66122.4
815Reconstruct3691.8
816RMW77142.3333
816Reconstruct2791.5
817RMW88162.2857
817Reconstruct1891.2857
818RMW99182.25
818Reconstruct0991.125
821RMW3366
821Reconstruct731010
822RMW4484
822Reconstruct64105
823RMW55103.3333
823Reconstruct55103.3333
824RMW66123
824Reconstruct46102.5
825RMW77142.8
825Reconstruct37102
826RMW88162.6667
826Reconstruct28101.6667
827RMW99182.5714
827Reconstruct19101.4286
828RMW1010202.5
828Reconstruct010101.25

Reproduce

The module needs only Node.js; it performs no device I/O and uses no random seed or dependencies. With the linked module in the current directory, this command prints the identical CSV.

node --input-type=module -e 'import { toCsv } from "./raid-write-costs.mjs"; process.stdout.write(toCsv())'

JSON includes SHA-256 hashes of the model and CSV. Generation time is not an observation period. Displayed ratios are rounded to four decimal places; CSV retains the numeric values.

Limits

Column definitions

k
Data blocks per parity row.
p
Parity blocks: 1 for RAID5, 2 for P+Q.
u
Complete data blocks replaced together in the same row.
blockBytes
Bytes per equal-size member block; illustrative 4096-byte input.
strategy
Forced rmw or reconstruct; not an observed controller choice.
reads
Member-block reads before parity calculation, with no cache hits.
writes
Changed-data plus parity member-block writes.
operations
Reads plus writes; counts, not seconds.
hostBytes
Replacement payload bytes: u times blockBytes.
readBytes
Member-interface bytes read.
writeBytes
Member-interface bytes written; excludes NAND-internal work.
operationsPerHostBlock
Member-block reads and writes divided by u.
writeBytesPerHostByte
Member write bytes divided by host payload bytes.
ioBytesPerHostByte
Member read plus write bytes divided by host payload bytes.

Sources and license

CC0-1.0 for Hesela's original model and generated rows. Cited works retain their own rights.

  1. Peter M. Chen, Edward K. Lee, Garth A. Gibson, Randy H. Katz and David A. Patterson. RAID: High-Performance, Reliable Secondary Storage. ACM Computing Surveys 26(2), 145-185 (1994). Author manuscript: sections 3.2.5-3.3.2, Table 3 and 4.1. (accessed 2026-10-11)
  2. Dan J. Williams. MD RAID Acceleration: Support for Asynchronous DMA/XOR Engines. Linux Symposium 2006, Volume Two, printed pp. 409-414; sections 3-5. The PDF filename uses different pagination. (accessed 2026-10-11)
  3. Linux kernel documentation: RAID 4/5/6 cache, write-back mode and implementation. Rolling documentation; accessed 11 October 2026. (accessed 2026-10-11)

Definitions: read-modify-write, reconstruct-write and full-stripe write.