Saturday, July 27, 2024
Google search engine
HomeUncategorizedRest in Peace, Optane

Rest in Peace, Optane

Intel’s Optane memory modules launched with a lot of fanfare in 2015, and were recently
discontinued, in 2022, with similar fanfare. It was a sad day for me, a lover of
abstraction-breaking technologies, but it was forseeable and understandable.

At the time of Optane’s launch, a lot of us were excited about the idea of having a new storage
tier, sitting between DRAM and flash. It was announced as having DRAM endurance and speed with
the persistence and size of flash. It was a futuristic memory technology, but the technology of
the future met the full force of Wright’s Law.

Wright’s Law

Each doubling of production volume corresponds to a 20% decrease in cost.

This is the simple statement of Wright’s Law. It was originally developed by a man named Theodore
Wright in the 1930’s when looking at the production of airplane parts. Since then, it has been
verified to hold in many different industries, although the cost reduction seems to vary between
10 and 25% depending on the industry. Despite the industry difference, the history of
semiconductor technology has actually followed Wright’s Law more closely than Moore’s Law: The
density increases predicted by Moore’s Law tend to speed up and slow down with demand growth,
exactly as predicted by Wright’s Law.

During the last 7 years, DRAM and Flash have both experienced massive increases in density and
production volume, and in turn, Wright’s Law has given us cheaper, faster, bigger devices.

DRAM Production 2015-2022

The lifetime of DDR4 memory roughly matches the lifetime of Optane. DDR4 was introduced a few
years before 2015, and became cost-effective compared to DDR3 around 2015-2016. Today, DDR5 RAM
and the CPUs that can use it have just recently been introduced to the market. Over this time,
RAM price per bit has roughly halved, and global RAM production has grown by a factor of about
10-15. However, due to competition between AMD and Intel, the number of memory channels per CPU
has also roughly doubled. Thus, a server in 2022 holds about 4x as much RAM as a server in 2015,
and memory cost as a share of system cost has increased by a factor of 2. Memory bandwidth has
increased by a factor of about 3 due to a doubling of memory channels and the channels getting
faster.

This means that both the capacity argument of Optane (“a system with Optane DIMMs can hold more
memory”) has diminished over time, and the performance gap between Optane and DDR memory has also
grown. A two-socket server populated with RDIMMs can now hold several TB of memory, so the value
proposition of Optane for memory capacity has been eliminated.

Flash is a Spectrum

Flash memory comes in four flavors, based on the number of bits stored in each cell. Single-level
cell (SLC) flash stores one bit per cell. It has the lowest density, but the longest endurance and
highest speeds. MLC (multi-level cell) holds two bits per cell, and is worse on speed and
endurance than SLC, but better than TLC (triple-level cell). Most SSDs today use TLC flash: it
offers a good balance between price and endurance, and most workloads are read-heavy, so there
isn’t a lot of stress on the memory arrays. QLC (quad-level cell) has recently been introduced to
the market as a capacity SSD technology: QLC has even lower endurance and speed than TLC, but
increases the capacity a lot. PLC (penta-level) is on the horizon, promising to continue the
trend.

On the back of this distinction, we can see a natural tiering of flash: using TLC or QLC for
capacity (in place of disk for all but the largest datasets), and using SLC for caching and
write-heavy workloads. This means that SLC flash is a direct competitor to Optane, but it
has the advantages of being much cheaper per bit without being a lot slower.

Flash Production 2015-2022

After Optane’s launch, Flash memory technology advanced quickly. In 2015, NVMe drives had been out
for about a year or two. NVMe drives and the controller chips that ran them were still working out
the kinks. Understandably, Intel also created NVMe drives with Optane, offering much better read
and write latencies than NVMe drives with flash. Not only did Optane offer faster access than
flash, but it had the advantage of being a simpler, more reliable form of memory that didn’t need
complicated controller algorithms.

As time went on, companies quicly improved the speed, reliability, and density of each flash
technology. In 2015, TLC was roughly in the position QLC occupies today: mostly for read-only and
read-heavy workloads. Now, TLC is the workhorse flash technology used for general-purpose drives,
as its speed and endurance have improved. Similarly, SSD controller chips have also improved over
time, allowing them to work faster and make better use of the flash chips on an SSD. Lots of money
goes into R&D work for flash, and it shows.

In the last 7 years, flash has grown to be the dominant storage technology: going from almost 20x
more per bit than hard drives to just 5x more per bit. In addition, SSD latency has dropped by
a factor of 2 due to control chips getting more powerful and algorithms getting better. Flash
bandwidth has increased to the point where an SSD can saturate a PCIe gen 4 x4 link. A modern
SLC SSD can be found with read latency under 30 microseconds, and even TLC SSDs can get close to
100 microsecond latencies.

Flash has advanced so much over the last 7 years that if the trend continues, I may be eulogizing
the magnetic hard drive in 2030. Flash is eating the storage world for good reason: it can offer
high speeds and high capacity, and while it had some rough edges, we have learned how to work with
it very well.

Optane and Wright’s Law

Clearly, as time has advanced, Optane’s position in the memory hierarchy has been getting crushed
between expanding DDR4 DRAM and flash that is getting faster and faster. Both of these
technologies have had much more innovation and R&D over the last 7 years than Optane, and it shows.
In retrospect, Intel was fighting an uphill battle if they wanted to treat Optane simply as a point
on the memory hierarchy. To make the project successful, they needed it to be a unique value add.

The Value Proposition of Optane

After the dust settled, Optane modules only ended up having a small price difference with DRAM
modules of the same size, but were almost as slow as SLC flash, and only had 3-5x the endurance of
flash memory. The NVMe drives were faster, but not that much faster, than SLC flash. The only
value-add that was left was the abstraction difference with normal memory: Optane offered
persistence on the memory bus.

If you have worked on a database or a storage system, you will know how valuable this can be: lots
of code in high-throughput storage systems is there to make sure that transactions persist as
quickly as possible. Conceivably, if the normal memory writes involved in that transaction can
make it persistent, you can delete a ton of code. You could even conceivably run a small database
on an mmap-ed Optane file, and persistence would be given to you for free. Oh wait… a lot of
databases mmap their backing files already.

Persistence on the Memory Abstraction

It turns out that what developers mostly would have wanted from Optane they got from BSD and Linux
in the form of mmap. mmap-ing a file allows you to treat the contents of the file as though
they are in memory, and allows the filesystem and a cache to handle the rest. The parts of the
file you have accessed recently are in memory, while other parts of the file are fetched from disk
when you demand them – your access triggers a page fault, which in turn triggers a read from the
filesystem. Writes to the file are handled in the background. This is not the fastest way to
access files, but it is a very convenient one, and it works well enough for many high-performance
key-value databases like LevelDB, LMDB, SQLite, QuestDB, RavenDB, and more.

mmap had one more secret weapon: the filesystem. If the media backing the filesystem wore out,
the filesystem (and the layers underneath it) could detect and correct issues. Optane had no
such protection.

When Intel thought they were enabling a whole new class of high-performance databases by offering
persistence on the memory bus, they were really offering a performance boost compared to persistent
databases using mmap. It might not even have been a performance boost: Optane slowed down your
median read and write operations in exchange for avoiding those page faults, so if your working set
was small or mostly fit inside RAM, mmap and NVMe flash was actually faster.

Persistent Memory and Caches

It turns out that offering persistence on the memory bus runs into abstraction problems with the
current memory controllers on CPUs. The memory controllers and cache hierarchies are designed
assuming that memory is dumb and volatile, and they can indefinitely delay writes to save
bandwidth.

The initial solution that Intel came up with was an instruction, CLFLUSH, that flushed a cache
line to memory. However, CLFLUSH was a serializing instruction, like CPUID, so it ended up
flushing the CPU pipeline as well as the cache hierarchy when it was issued. Worse, flusing the
cache line would invalidate it, so if you wanted to read the value back after writing it, you would
incur a cache miss. It was later supplemented by CLFLUSHOPT and CLWB which also could be used
to flush and write back cache lines without incurring the same performance penalty.

However, when Optane memory started to come out, CLFLUSH was the only instruction from this suite
that was available, meaning that initial performance tests suffered from both the speed difference
between Optane and DRAM and the substantial overhead of the CLFLUSH instruction. Intel would
probably have had a much easier time selling Optane if their core architecture were ready.

Alternative Methods of Persistence

Also between 2015 and 2022, several companies were offering a different kind of persistent DIMM.
Instead of using a special type of memory, this kind of persistent DIMM used normal DRAM, but added
some flash memory and a small controller circuit on the back that saved the contents of the DRAM
to flash every time the power started to dip.

To make sure that the contents of the DIMM were safe, these persistent DIMMs had a supercapacitor
or small lithium ion battery (usually kept in a 2.5 inch drive bay and connected to the DIMM
through a cable) that kept the DIMM powered while the rest of the system was going down. On
power-up, the DIMM would restore the memory contents.

These were later specified by JEDEC as “NVDIMM-N” modules (standing for Non-volatile Dual Inline
Memory Module – NAND flash type).

Still, these alternatives have some problems: they are a lot thicker than normal memory DIMMs, and
they can’t offer the capacity that Optane modules could offer. However, they don’t have the same
durability problems that Optane and flash do, since the flash is rarely written, and they operate
at the same speed as the rest of the system’s memory.

Thank You, Optane

So many technologies have become successful around Optane and the promises it held. Unfortunately,
Optane was not one of them.

SSDs using SLC flash offer blazing fast performance with a block abstraction, and enterprises and
database developers learned how to take advantage of the differences between SSDs that were small
and fast, using SLC flash, and SSDs that were slower and larger, with TLC and QLC flash. Some SSD
manufacturers also saw the idea of a caching drive and competed by adding SLC caching to their TLC
SSDs. Most high-end consumer SSDs today do this for you.

For the few customers who needed persistence on the memory bus, the JEDEC NVDIMM standards emerged,
with the flagship NVDIMM-N modules allowing you to have a DRAM module that was both persistent
and fast, and an additional standard to cover future persistent memory technologies. Intel’s
new instructions allow users to take advantage of these new modules, adding a fundamental
capability to CPUs.

Optane has helped us learn to build computing systems that take advantage of the spectrum of
“legacy” storage and memory technologies. I, for one, am sad to see it go, but happy that I won’t
miss it.

Read More

RELATED ARTICLES

6 COMMENTS

  1. You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments