RAMCloud puts everything in DRAM
zdnet.com
zdnet.com
Umm.. I've worked with in memory data structures (who hasn't?) and yeah, layout DOES matter. Especially if your data structure is larger than a cache line.
That's only compared to the speeds gained by different memory layouts.
But compared to hard/solid state disks (which is the whole point here) the difference is less than insignificant.
I'm a crusty old console game dev. The explanation I give the new kids is: "Remember the PlayStation2? It ran at 300MHz and had a memory latency of 50 cycles. But, the PS3 is faster, right? It runs at 3000MHz and has a memory latency of 500 cycles. You know what happens when you don't think about memory layout? The PS3 runs at the same speed as the PS2!"
with latency not being absolute 0, 100bytes I/O will always be less efficient the 8K I/Os. For example, with 300Mb/s and 0.01ms latency the throughput would be 10M/s vs 220M/s.
Not if only 200 bytes of that 8K are relevant. It depends on the rpc overhead, but the small io's may be more efficient. Which is why you see them researching changes to the networking stack.
"300Mb/s and 0.01ms latency the throughput would be 10M/s vs 220M/s."
When you write numbers on a napkin this is true. When you're talking about real systems that are both concurrent and scheduled in quantized slices you'll see much more complex behavior.
Anybody know why the change in terminology? In which circles is this standard?
It's probably worth making the distinction here, considering they're claiming "maximum performance", implying fastest possible hardware available, which isn't the case: they'd at least be using SRAM if it were.
RAM has always been DRAM. Specifically putting the "D" was probably meant to differentiate it from other types of Random-Access Memory, like NVRAM.
http://www.amazon.com/Gigabyte-GC-RAMDISK-i-RAM-Hard-Drive/d...
ZeusRAM SAS drive: http://www.stec-inc.com/product/zeusram.php
RamSan rack-mounted: http://www.ramsan.com/products/rackmount-ram-storage/ramsan-...
Kaminario K2 SAN: http://www.kaminario.com/products/K2-Solid-State-SAN-Storage...
acid-state currently lacks replication/multimaster support, but happstack-state has had several experimental implementations of that as well.
acid-state is Haskell specific.. but that is part of the appeal. You can directly store fancy algebraic data structures with acid-state. You are not limited to a simple combination of records integers and strings (for example).
2.) It's a position paper. It's not attempting to assert a novel invention from day one, it's staking a claim about the design space (and further that you should fund us to do research in this space).
3.) The project is ongoing, you can see some preliminary results on their wiki. Most notable are some details on very low latency RPC and very rapid recovery. The recovery work rediscovers the same essential prescription as bigtable but does so via a second sharding scheme, which I believe is novel. Whether it's better is open to debate.
Novelty or originality are not the only requirements for noteworthiness. A great deal gets done confirming prior experience or making relatively modest and obvious evolutionary extensions of previously well known work.
"SAP HANA is an integrated database and calculation layer that allows the processing of massive quantities of real-time data in main memory to provide immediate results from analyses and transactions."
http://www.forbes.com/sites/sap/2011/10/04/why-sap-hana-is-a...