4 ms·
The problem of commit latency bottlenecking global throughput seems to be a matter of treating the device as a black box that must be quiesced as a unit. If the
by jeffbee 2y ago
The problem of commit latency bottlenecking global throughput seems to be a matter of treating the device as a black box that must be quiesced as a unit. If the NVMe device presented multiple namespaces to the operating system, and if other unnecessary abstractions like the filesystem are discarded, then the database can make progress on one namespace while blocked on another, even within a single host.
- senderista 2y agoIsn't this basically what FUA does on SCSI? Presumably O_DIRECT+O_SYNC/O_DSYNC will invoke this path when possible?
- jeffbee 2y agoYeah but a hard disk drive has no internal parallelism, while an SSD has immense internal parallelism.
- lmz 2y agoThere is a feature known as NVMe namespaces but not sure how well it's supported outside of expensive enterprise gear https://unix.stackexchange.com/questions/520231/what-are-nvme-namespaces-how-do-they-work https://unix.stackexchange.com/questions/520231/what-are-nvm...
- jeffbee 2y agoTo a close approximation, NVMe devices that come in U.2 or U.3 form factors support multiple namespaces, and those that come in M.2 support only 1, and 4KiB LBA format support follows the same pattern with a few exceptions. But you don't have to spend an insane amount to get these features. The Micro 7x00 series costs ~$100/TB.
- mgerdts 2y agoGenerally datacenter drives like Samsung PM9A3, Micron 7xxx, etc., that are available in M.2 and U.2 have the same features between the form factors. The maximum size and performance may differ between them, but this is likely a side effect of physical size for NAND chips and power envelope.