Low-Latency RPC Scribe
Mogul: Two nics. If we configure a NIC for bandwidth or latency, may want two.
Can we really get a NIC that can be good at both at once?
Talk of UDP between slower than TCP due to more concentration on optimizing TCP.
Jeff keeps pushing the two NIC agenda - optimizing both dimensions on one NIC
really hard.
Keith Adams says syscalls very fast, but we're counting cache misses, so it
actually is worth considering.
Jeff mentioned RDMA.
Speculation about NIC hardware being improved with regards to latency.
- people seem to think certainly possible, but unsure whether it will
get fast enough
Mendel & others on some NICs having complex microcode for multiple ring buffers,
virtualization, etc.
- big vendors, however (intel, broadcom), generally have functionality
in silicon, not microcode – faster
Suggestions to use infiniband, or something other fancy, for prototyping.
Another suggestion to use our low layer networking and put cassandra, memcached,
etc on top to demonstrate low latency.
Question about retransmit rates expected
- nobody seems to have data
Jeff Mogul brings up incast problem
- overflowing buffers in intermediate switches bad, leads to secondary
failures (synchronization possible)
Retransmit whole requests? If loss rare, why not?
- partial retransmits could reduce probability of incast problem
What happens when there's network congestion?
Flow control?
Jeff Dean: Use second core that shares same cache as the RPC handler core to
prefetch packet data into cache.
- no synch. needed
Keith Adams again: plug this stuff into memcached!