colin-scott / interactive_latencies

Jeff Dean's latency numbers plotted over time
MIT License
2.06k stars 455 forks source link

Something went wrong, either the data or the units #20

Open fenghou1st opened 2 years ago

fenghou1st commented 2 years ago

The two above are blank.

https://ibb.co/T07ZTsZ

Just in case the picture gets deleted, the two I'm talking about are "Send 2,000 bytes over commodity network: 22ns " and "Read 1,000,000 bytes sequentially from SSD: 31,000ns ≈ 31μs".

errandir commented 1 year ago

Also noticed this inconsistency.

errandir commented 1 year ago

@colin-scott what's wrong with this? This latency is about a ‘commodity’ not a ‘DC’ network.

cryptocifer commented 1 year ago

This because it uses year 2003 as the baseline and assumes NIC bandwidth doubles every 2 years, which means it calculates to 500Tb/s in 2022, which is too far off.

    function getNICTransmissionDelay(payloadBytes) {
        // NIC bandwidth doubles every 2 years
        // [source: http://ampcamp.berkeley.edu/wp-content/uploads/2012/06/Ion-stoica-amp-camp-21012-warehouse-scale-computing-intro-final.pdf]
        // TODO: should really be a step function
        // 1Gb/s = 125MB/s = 125*10^6 B/s in 2003
        // 125*10^6 = a*b^x
        // b = 2^(1/2)
        // -> a = 125*10^6 / 2^(2003.5)
        var a = 125 * Math.pow(10,6) / Math.pow(2,shift(2003) * 0.5);
        var b = Math.pow(2, 1.0/2);
        var bw = a * Math.pow(b, shift(year));
        // B/s * s/ns = B/ns
        var ns = payloadBytes / (bw / Math.pow(10,9));
        return ns;
    }