Live data from Hacker News

RAM Is the New Disk

medium.com

11–20 of 74 posts

Re: RAM Is the New Disk

#11
The price of disk has dropped at nearly the same pace as ram. As has the cost of compute. At the same time data growth has increased faster than either has dropped... so I'm not really sure the price argument holds water. If I can buy ram at 1/100th the cost but I need to store 500x more data... that isn't a net win on cost.

From ~$1000.00/gb to $0.03/gb

http://www.mkomo.com/cost-per-gigabyte-update

Re: RAM Is the New Disk

#12
And 99% of developers spend their entire careers without giving as much as a passing thought to cache locality. Quick, how long, in cycles, does it take to retrieve data from RAM? About 200 cycles. 200 cycles is a very long time if you miss cache often. Scattered RAM reads can be _slower_ than sustained linear disk reads (that is, once the disk actually gets around to reading, which takes a while).

Re: RAM Is the New Disk

#15

Are you sure latency stayed around 100ns? http://pics.crucial.com/wcsstore/CrucialSAS/images/campaigns...

That's very interesting. The estimate of 100ns came from here: https://people.eecs.berkeley.edu/~rcs/research/interactive_l... . and is probably not very precise (maybe because it is only capturing rough order of magnitude). I have now updated the post. Thanks for the feedback! Specific constant aside, the point about latency not improving much still holds.

Your link got truncated with ellipses. Here we go: http://www.eecs.berkeley.edu/~rcs/research/interactive_laten...

Re: RAM Is the New Disk

#16
The problem with asking a programmer to keep track of the locality of their data, is that most modern programming languages make reasoning about locality hard to do. With the exception of C and C++. Even for those languages, unless all relevant data is in simple arrays, making assertions about locality is hard.

For interpreted languages like Python or Javascript, figuring out RAM storage and access patterns of data is very hard. So we probably need programming language mechanisms to help with understanding the locality patterns of our programs and probably tooling to help change it.

Re: RAM Is the New Disk

#17

The problem with asking a programmer to keep track of the locality of their data, is that most modern programming languages make reasoning about locality hard to do. With the exception of C and C++. Even for those languages, unless all relevant data is in simple arrays, making assertions about locality is hard. For interpreted languages like Python or Javascript, figuring out RAM storage and access patterns of data i…

Even for C++, most designs are OOP, which treats data layout as an afterthought.

Re: RAM Is the New Disk

#18

... I was the third engineer at VoltDB and spent six years making that bet. It's not a good bet. Maybe there are other factors, but if VoltDB could page out cold data to disk I think it would be at least 2x if not more successful. No one agreed with me so it never happened. I saw so many use cases go out the door because hey you know what? RAM is expensive and it's cheaper to page out cold data. The scale where that…

+1, this ended up being a major con when we did our comparison considering how much data we needed available and the cost overhead.

Re: RAM Is the New Disk

#19

... I was the third engineer at VoltDB and spent six years making that bet. It's not a good bet. Maybe there are other factors, but if VoltDB could page out cold data to disk I think it would be at least 2x if not more successful. No one agreed with me so it never happened. I saw so many use cases go out the door because hey you know what? RAM is expensive and it's cheaper to page out cold data. The scale where that…

this is a feature that MySQL Cluster had to add over time, and then it had limitations that were slowly lifted.

Re: RAM Is the New Disk

#20
post #12

And 99% of developers spend their entire careers without giving as much as a passing thought to cache locality. Quick, how long, in cycles, does it take to retrieve data from RAM? About 200 cycles. 200 cycles is a very long time if you miss cache often. Scattered RAM reads can be _slower_ than sustained linear disk reads (that is, once the disk actually gets around to reading, which takes a while).

It's even worse when you get into interpreted languages like Python and Ruby. Bad efficiency at that level which translates to dreadful if not totally broken efficiency at the cache level.
Post reply on HN