Industry Insights

Two Write Paths in OLTP: Commit-Path Logging Versus Page Flush

작성: JH SemiconductorOLTP / write-ahead log / WAL

An OLTP workload should be decomposed into synchronous log writes, asynchronous page flushes, and random index reads, each with different requirements. The commit path is a QD1 latency problem rather than an IOPS problem, page flushing determines which DWPD tier is appropriate, and steady-state P99 is the metric that matters when qualifying a drive.

Decompose the Workload First

Treating OLTP as one uniform random read/write profile almost guarantees the wrong drive choice. There are at least three distinct streams. The write-ahead log is small, sequential, synchronous, and every commit requires the data to genuinely reach a power-safe domain. Page flushing is larger-block, random, and can be batched asynchronously. Index lookups are 4 to 8 KB random reads. Averaging them into a single IOPS figure hides the actual bottleneck.

Commit Latency Is a QD1 Problem

On the commit path transactions wait serially: the application issues fsync or a FUA write and cannot answer the client until the drive completes it. Queue depth here is typically one or two, so throughput figures are irrelevant and QD1 write latency governs. The planned QD1 average 4KB random write latency for J750/J770 is 10 µs against 65 µs for reads, because a write can be safely acknowledged from the controller buffer under PLP while a read must actually traverse the NAND array and the correction pipeline. A drive without power-loss protection has two options: give up that fast path, or lose acknowledged transactions on power failure. For a database the second is not an option.

Page Flushing Sets the DWPD Tier

Bytes written to the drive usually exceed application-level logical writes by a significant factor. Database page size of 8 or 16 KB amplifying 4 KB modifications, double-write buffers, and repeated checkpoint flushing all compound. Capacity planning should start from projected five-year cumulative writes and work back to DWPD. A 3.84 TB drive at 1 DWPD permits 3.84 TB of writes per day for five years; the same capacity class at 3 DWPD permits three times that. J750 is defined at 1 DWPD and J770 at 3 DWPD, matching read-dominant versus sustained-write workloads. An OLTP primary generally belongs to the latter.

Why P99 Beats the Average

Database locking and transaction timeouts are most sensitive to the slowest fraction of requests. A millisecond stall from garbage collection extends a lock-holding transaction, which under concurrency cascades into queueing and shows up as a throughput cliff rather than a gentle latency rise. Qualification must therefore measure P99 and P99.9 write latency in steady state after adequate preconditioning; fresh-drive averages carry no information.

From Specification to Selection

J770 is planned at 600 KIOPS 4KB random write and 1,500 KIOPS random read, in 1.6/3.2/6.4/12.8 TB capacities. The order of work is: fix DWPD from five-year write volume, validate queue configuration against the commit latency budget, and only then check peak IOPS headroom. All figures are product definition/EVT planning values and require confirmation against replayed customer workloads.

키워드
OLTPwrite-ahead logWALfsyncQD1 latencyDWPDP99 tail latencyJH Semiconductor