Adriano da Silva
Cadet
- Joined
- Sep 20, 2021
- Messages
- 2
Hey, guys.
I bought an adapter card to plug my NVMe driver into a PCI-e slot (adapter image is attached). This board has a super capacitor, capable of keeping the driver on for seconds in case of power failure. Enough time to write any outstanding data.
It works as a UPS directly connected to the NVMe driver. In theory, it works as a Power Loss Protection (PLP) added to a consumer NVMe driver. So I would like to use a consumer NVMe to accelerate writes with fsync type calls.
In theory writes with fsync-like calls are dumped directly into flash without making use of driver cache memory. This makes writing very slow, especially for many small files.
We know that only enterprise drivers are able to be fast in these scripts, because only they have supercapacitors inside them. Therefore, they are prepared to ignore fsync calls, keeping the data in cache memory. But they are too expensive, out of my budget. So I'm looking for a cheaper alternative.
This Chinese adapter with supercapacitor is very cheap. As well as consumer NVMe drivers they are also very cheap compared to enterprise drivers.
But as we all know, consumer NVMe's are not able to bypass the fsync-like calls used by many storage software, databases, etc. This makes the consumer NVMe very slow, especially on small files.
Is there any way to configure the NVMe OS-driver so that it replaces or not sends fsync-type calls from applications to the physical nvme driver? It would be interesting to be able to perform this configuration indicating the driver that we know is protected with the super capacitor.
Or would it be possible to place this instruction directly in the driver firmware?
Thus, he could apply a flush to the data only when the node was turned off. Because it would be guaranteed that the driver would have the energy and time to write the data.
Any idea?
Grateful,
I bought an adapter card to plug my NVMe driver into a PCI-e slot (adapter image is attached). This board has a super capacitor, capable of keeping the driver on for seconds in case of power failure. Enough time to write any outstanding data.
It works as a UPS directly connected to the NVMe driver. In theory, it works as a Power Loss Protection (PLP) added to a consumer NVMe driver. So I would like to use a consumer NVMe to accelerate writes with fsync type calls.
In theory writes with fsync-like calls are dumped directly into flash without making use of driver cache memory. This makes writing very slow, especially for many small files.
We know that only enterprise drivers are able to be fast in these scripts, because only they have supercapacitors inside them. Therefore, they are prepared to ignore fsync calls, keeping the data in cache memory. But they are too expensive, out of my budget. So I'm looking for a cheaper alternative.
This Chinese adapter with supercapacitor is very cheap. As well as consumer NVMe drivers they are also very cheap compared to enterprise drivers.
But as we all know, consumer NVMe's are not able to bypass the fsync-like calls used by many storage software, databases, etc. This makes the consumer NVMe very slow, especially on small files.
Is there any way to configure the NVMe OS-driver so that it replaces or not sends fsync-type calls from applications to the physical nvme driver? It would be interesting to be able to perform this configuration indicating the driver that we know is protected with the super capacitor.
Or would it be possible to place this instruction directly in the driver firmware?
Thus, he could apply a flush to the data only when the node was turned off. Because it would be guaranteed that the driver would have the energy and time to write the data.
Any idea?
Grateful,