|
|
|
|
|
by jauntywundrkind
719 days ago
|
|
Optane definitely had many great uses. It had stunningly good iops with very low latency, it had fantastic endurance, and no write amplification concerns. Optane was excellent for datases, just pricey! Far more pricey than Intel had promised initially, which was a disappointment, but still somewhat in league with enterprise SSDs of the time. If you really wanted very low latency you needed Optane DIMMs. And that was problematic because typically you wanted motherboards loaded with ram. And it made it complex to figure out how to use those DIMMs, those parts of memory that would be slower but persistent. Using the DIMMs was hard. But Optane existed as a damned fine NVMe product too! Latency wasn't as good because it was PCIe, was the main downside. CXL could remove this penalty, make it look more like ram that is a NUMA hop away, potentially, which would be grand. This ain't really required to use Optane well, one can still get epic iops at incredibly consistently low latency & proposer, but if you do have a latency sensitive demand it certainly can help! Poor Optane. I have a hard time understanding how something of such excellent value floundered so. In truth there's not that many people who need many drive-writes-per-day but even if you didn't, the promise was this drive should last you a very very long time because it had such endurance. That long term sustainability seemed like an incredible value we simply failed to recognize & tap. |
|
CXL changes the game due to its cache coherency protocol. You don't have to care, precisely because the system transparently deals with this directly in the hardware. It is just one giant address space. You don't need slow OS level page faults or to update the page table every time something is loaded or unloaded from memory.
The biggest problem with persistent memory is building an application with transactional semantics. All the hardware and software transactional memory is built around concurrency and not persistence. When you think about it, that is kind of backwards. Persistent memory has very loose performance requirements since I/O is assumed to be slow. Meanwhile parallelism and concurrency are about increasing performance and therefore it defeats the point if it ends up slower than without.