7 ms·
Caching Beyond RAM: The Case for NVMe
- ihsw2 8y agoIt is very exciting to see Optane competitive with conventional NVMe drives -- this is something that Intel got right early and their exploration into DIMM-socketed Optane drives is similarly exciting. It has already been established that for most consumer workloads, the latency differences between memory and Optane is negligible. This article shows that heavy-duty workloads (ie: high-traffic memcached clusters) can be accommodated by Optane and NVMe too. Clusters of 500K IOPS drives can take us most of the way there. I don't want to get all /r/hailcorporate but Optane drives are great products and (more importantly) you can run them on AMD platforms (ie: SP3) too. Granted, NVMe drives bring the fight and they're much more cost competitive at scale, but that will change soon.
- djsumdog 8y ago> and (more importantly) you can run them on AMD platforms (ie: SP3) too Wait, you can? I thought Optane required specific motherboards for the DIMM versions? From what I understand, the M.2/nvme devices just show up as a drive in Linux right? But I thought the actual DDR4/DIMMS only work in certain Xeon boards.
- a012 8y agoI suppose they're relating to Optane SSD[0], not Optane memory. [0] https://www.intel.com/content/www/us/en/products/memory-storage/solid-state-drives/gaming-enthusiast-ssds/optane-900p-series.html https://www.intel.com/content/www/us/en/products/memory-stor...
- ihsw2 8y agoAh, the DDR4/DIMM Optane models are not yet publicly available (which should significantly bring us closer to parity with memory latency), and I was referring to the Optane NVMe drives being compatible with AMD systems.
- selectodude 8y agoI love toys and I would love to jump feet first into optane, but a dollar per gigabyte is hard to stomach.
- JoshTriplett 8y agoAbout a decade ago, I paid around $600 for the 80GB X25-M, the first SSD that focused on performance rather than just low latency. One of the best system upgrades I've ever had. A dollar per gigabyte doesn't seem half bad at all for the top end of performance.
- berbec 8y agoMy first hard drive upgrade was a 80MB HardCard - an ISA hard disk for my PC XT 286. I recall it cost clost to $1,000. There's always going to be the top tier storage that costs an arm and a leg - that just means two steps down gets affordable. Optane pricing will drive down NVME which will drive down SATA SSD.
- dragontamer 8y agoThe main issue is that video gamers don't see any benefits to NVMe NAND drives. So the "hardcore gamer" market is beginning to stall out on SATA SSD drives. Why pay 2x more for NVMe NAND if your video game load times aren't any better?
- coldtea 8y ago
- dormando 8y agoThey have quite a ways to go before I'd be happier treating them as RAM for something like memcached... but it's a good start. The IOPS is very low and the latency is still quite a ways off from RAM. For a lot of other workloads it seems doable if expensive.
- bradleyjg 8y agoWhat's the lifetime of an optane or NVMe drive when used as a constantly thrashing cache? Weeks? Months? Edit: Missed this the first time through: > Calculating this is done by monitoring an SSD's tolernace of "Drive Writes Per Day". If a 1TB device could survive 5 years with 2TB of writes per 24 hours it has a tolerance of 2 DWPD. Optane has a high tolerance at 30DWPD, while a high end flash drive is 3-6DWPD.
- nisa 8y agodatasheet says something along 5pb write endurance.
- ec109685 8y agoThey also talk in the paper of keeping the thrashing parts of the cache in RAM. Facebook for example calculates the effective hit rate of a larger set of items and only caches those that won’t be quickly purged out / overwritten in secondary storage.
- ebikelaw 8y agoIt's only four more years before the patent on adaptive replacement caching expires. Then we can use it in memcached ...
- ksec 8y agoSerious ? Doesn't ZFS already uses it?
- ebikelaw 8y agoSun licenses the patent and has related patents on the same thing. Sun provides an implementation under the CDDL license. ZFS on Linux is distributed under the CDDL. Linux is distributed under the GPL for which no patent holders have granted permission to use the patented inventions. Many other implementations exist including one under the Apache license and one under the Mozilla license that I found in two seconds on github. The whole thing is a mess.
- Andys 8y agoThe limiting factor of Optane is actually the controller. The power consumption of the controller itself, as well as the costs of getting high bandwidth to and from CPU and memory. Current products are striking a conservative balance and in the future they could get much faster.
- mmt 8y agoWhat would be interesting to see is if this benefit would be better applied directly to the database instead. The relative scarcity of NVMe ports/bandwidth per server may make that as unattractive as doing the (RAM) caching on the database server itself, but it's not obvious, if one could only spend the money in one place, where it would be best spent.
- rzzzt 8y agoNVMe drives use 2-4 PCIe lanes, so you can have quite a few of them in a system with a suitable adapter.
- mmt 8y agoI'd say that's comparable scarcity to DIMM slots, as the ratio between those and PCIe channels tends to be in the range of 1:2-4 on current CPUs.
- ihsw2 8y agoAMD's SP3 (Epyc) offerings address the limited capacity. Compared to Intel's current offerings, they are much more cost-competitive in terms of density.
- mmt 8y agoThat's certainly true for PCIe lanes, though their memory channel density is unremarkable. (I've also read about cache latency affecting database performance, but I'm not sure what to think of that consindering how synthetic benchmarks usually are). Historically, I've had trouble convincing management to get anywhere close to reaching the capacity of a server's PCIe lanes, possibly because of a general ignorance around direct attached (but external) storage options, but the popularity of NVMe may change that. Now the challenge may become convincing people that 128 lanes per CPU is better than 40. There's also the (extension of the perpetual challenge) that the mere existence of such a price-competitive option to Intel means one doesn't have to panic at the slightest hint of scale and invest immense engineering effort and non-linear infastructure cost into a distributed database to replace a "single"/central [1] RDMBS. [1] With all the usual replicas and caches for performance (and failover), as is the point of the article.
- reacharavindh 8y agoAn adapter that splits a single PCIE slot(x16) to hold 4 x M.2 NVMe SSDs(x4 each) would be a great way to persist a Redis instance that is not just serving as a cache. If the same can be done with Optane SSDs, the lower latency will at higher queue depth will certainly help.
- robhu 8y agoThis already exists: https://www.tweaktown.com/reviews/8542/asrock-ultra-quad-2-card-16-lane-aic-review/index.html https://www.tweaktown.com/reviews/8542/asrock-ultra-quad-2-c...
- namibj 8y agoThis is not a low profile card, and wastes quite a lot of space. It should take two cards on each side of the board, with the connectors facing orthogonal to those of the x16 slot.
- wtallis 8y agoYou can't put something as tall as a M.2 connector on the back side of an expansion slot without violating the form factor guidelines and enchroaching on the space of the next slot over. The only compliant way to put M.2 drives on the back is to use an offset edge connector so the main board is a bit lower than it usually would be. Amfeltec has some boards like this, but I think they have a patent on their offset connector. http://amfeltec.com/products/pci-express-gen-3-carrier-board-for-4-m-2-ssd-modules/ http://amfeltec.com/products/pci-express-gen-3-carrier-board...
- namibj 8y agoOh. Well, there are cases where it would fit without such an exotic connector, but those are non-compliant. I assume you don't need licenses for just making a dumb PCIe card, if you don't name it with trademarks? Or are there patents you need to license to sell PCIe-compatible, non-electronic cards?
- 8y ago
- majidazimi 8y agoIs there any reason why memcahced/redis doesn't provide external store as an interface and let people implement the load/store operations? I would like to be able to implement hierarchy of "hot(RAM) -> warm(NVM) -> cold(SSD) -> DB" style cache.
- dormando 8y agono reason, it's doable with a bit more cleanup. The I/O bits are encapsulated entirely in extstore.c with a relatively clean interface. it's not a layered setup, it's actually bolted all into the same hash table, which makes pluggable I/O systems not make much sense. it ensures that a lot of operations can't touch secondary (like miss, touch, delete, sets of new items, etc), which reduces load on the IO by quite a lot. edit: Also extstore itself will support NVM + SSD sort-of-layers soon enough. I'll be retesting that on the same optane+ssd machine in a couple weeks.
- praseodym 8y agoFacebook has recently published a paper on how they use NVM caches with their MyRocks (MySQL) databases; the morning paper has a really good write-up: https://blog.acolyer.org/2018/06/06/reducing-dram-footprint-with-nvm-in-facebook/ https://blog.acolyer.org/2018/06/06/reducing-dram-footprint-...
- Rafuino 8y agoDisclosure: I work at Intel and submitted the post. Dormando mentions the test was done with the help of Accelerate With Optane, a collaboration we have with Packet to provide access to servers with Intel Optane SSDs. Check out https://www.acceleratewithoptane.com/ https://www.acceleratewithoptane.com/ for more info, and you can find me and the Packet team over at slack.packet.net. We're especially interested in open source projects that want to test what they can do with the tech and are interested in sharing what they learned with the broader community. Thanks to Dormando for going first!
- ewams 8y agoSkylake cpu? Which model? Assuming using 32GB dimms to use all six lanes (if Skylake)? This is something that has bit me a few times - most Skylake cpus have 6 lanes, so balanced is 192, 384, etc. Not 4 lanes like we are used to! Would also recommend trying different ram configs anyways, on our side we have seen better thru put on 768 than on 384. Even 512 performs better in some cases than 192.
- Rafuino 8y agohttps://www.acceleratewithoptane.com/access/ https://www.acceleratewithoptane.com/access/ has the server info. We aimed for a balanced configuration to enable the widest variety of use cases. Not everyone will need to use everything provided, and it might not fit everyone's needs!
- hyc_symas 8y agoCould have just used LMDB memcachedb and gotten the RAM/NVMe cache management transparently, for free. https://github.com/LMDB/memcachedb https://github.com/LMDB/memcachedb