Please enable JavaScript.
Coggle requires JavaScript to display documents.
IO batching for NVMe FC - Coggle Diagram
IO batching for NVMe FC
i10 paper
background
solutions
nvme/rdma moves network stack to HW
userspace netowork/storage stack
cloud two trends
network link: 40 ~ 100Gbps
disaggregated storage
access storage over network
question
can we not change sw arch to get similar perf?
no userpsace change
no network stack change
i10
design
saturates a 100Gbps link using a commodity server
CPU utilization similar to state-of-the-art user-space stacks
and NVMe-over-RDMA products
the inefficiency lies at the boundary of the two stacks!
two ideas
End-to-end dedicated resources and batching
Delayed Doorbells
dispatch batching
result
drawback
high latency
1.7X nvme-rdma latency
achieves throughput-per-core
comparable to NVMe-over-RDMA
reduces the
CPU utilization by 2.5× for nvme-tcp
my question
io_uring/iopoll support with i10
can't work well
io uring may just poll in the 50us windows
beginning
why nvme-tcp needs io batching?
what if we don't send batching IO to nvme-tcp?
when or in which situation IO batching plays a big role?
ideas
rest when we aren't inefficient
wait for a moment if we work very hard but without good efficiency
how to model if we are working hard
how to model if we are inefficient
thoughput ?