News for hackers. Stuff that matters.
Re:Does my data fit in RAM? by keanzu on Wednesday February 12, 2020 @03:58PM (#22312740)
Samsung claims their 970 Pro NVMe can read 3.5GB/s sequentially. That's about 300 seconds or 5 minutes per TB.
Re:Does my data fit in RAM? by thedance on Wednesday February 12, 2020 @04:36PM (#22313062)
It can't though.
Re:Does my data fit in RAM? by wtallis on Wednesday February 12, 2020 @06:40PM (#22313987)
It can, and their fastest enterprise SSD can write at that speed too, or do sequential reads at 7-8GB/s, or random reads at over 4 GB/s.

I just ran `time cp /dev/nvme0n1 /dev/null` on the 1TB 970 Pro. The result:

  real    4m50.724s
  user    0m2.001s
  sys     3m10.282s
So with literally zero optimization effort, we've hit the spec (and saturated a PCIe 3.0 x4 link).
Re:Does my data fit in RAM? by keanzu on Wednesday February 12, 2020 @07:22PM (#22314255)
Impressive performance for a $345 consumer grade SSD.

https://www.newegg.com/samsung-970-pro-1tb/p/N82E16820147694

Re:Does my data fit in RAM? by ClumsyPilot on Thursday February 13, 2020 @05:38AM (#22316686)
That's impressive and all, but any fragmentation or non-linear access and performance will fall off a cliff
Re:Does my data fit in RAM? by wtallis on Thursday February 13, 2020 @07:43AM (#22317262)
You'd probably be surprised. For reads, there are tons of drives that will saturate PCIe 3.0 x4 with 4kB random reads. Throughput is a bit lower because of more overhead from smaller commands, but still several GB/s. Fragmentation won't appreciably slow you down any further, as long as you keep feeding the drive a reasonably large queue of requests (so you do need your software to be working with a decent degree of parallelism).

What will cause you serious and unavoidable trouble is if you cannot structure things to have any spatial locality. If you only want one 64-bit value out of the 4kB block you've fetched, and you'll come back later another 511 times to fetch the other 64b values in that block, then your performance deficit relative to DRAM will be greatly amplified (because your DRAM fetches would be 64B cachelines fetch 8x each instead of 4kB blocks fetched 512x each).