Em 2012, Dr. Jeffrey Dean, da Google, compartilhou o custo da latência para algumas operações relevantes.
Mesmo não estejam atualizados, sobretudo por ignorarem a evolução tecnológica, estes números continuam úteis para quem projeta sistemas.
Latency Comparison Numbers (~2012) ---------------------------------- L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns 14x L1 cache Mutex lock/unlock 25 ns Main memory reference 100 ns 20x L2 cache, 200x L1 cache Compress 1K bytes with Zippy 3,000 ns 3 us Send 1K bytes over 1 Gbps network 10,000 ns 10 us Read 4K randomly from SSD* 150,000 ns 150 us ~1GB/sec SSD Read 1 MB sequentially from memory 250,000 ns 250 us Round trip within same datacenter 500,000 ns 500 us Read 1 MB sequentially from SSD* 1,000,000 ns 1,000 us 1 ms ~1GB/sec SSD, 4X memory Disk seek 10,000,000 ns 10,000 us 10 ms 20x datacenter roundtrip Read 1 MB sequentially from disk 20,000,000 ns 20,000 us 20 ms 80x memory, 20X SSD Send packet CA->Netherlands->CA 150,000,000 ns 150,000 us 150 ms Notes ----- 1 ns = 10^-9 seconds 1 us = 10^-6 seconds = 1,000 ns 1 ms = 10^-3 seconds = 1,000 us = 1,000,000 ns
As diferenças indicadas ficam ainda mais impactantes quando consideramos escala. Abaixo, segue a mesma relação escaladas em um bilhão (veja original)
Lets multiply all these durations by a billion: Magnitudes: ### Minute: L1 cache reference 0.5 s One heart beat (0.5 s) Branch mispredict 5 s Yawn L2 cache reference 7 s Long yawn Mutex lock/unlock 25 s Making a coffee ### Hour: Main memory reference 100 s Brushing your teeth Compress 1K bytes with Zippy 50 min One episode of a TV show (including ad breaks) ### Day: Send 2K bytes over 1 Gbps network 5.5 hr From lunch to end of work day ### Week SSD random read 1.7 days A normal weekend Read 1 MB sequentially from memory 2.9 days A long weekend Round trip within same datacenter 5.8 days A medium vacation Read 1 MB sequentially from SSD 11.6 days Waiting for almost 2 weeks for a delivery ### Year Disk seek 16.5 weeks A semester in university Read 1 MB sequentially from disk 7.8 months Almost producing a new human being The above 2 together 1 year ### Decade Send packet CA->Netherlands->CA 4.8 years Average time it takes to complete a bachelor's degree
Do exposto, podemos concluir que:
- A performance para manipulação de dados em memória é consideravelmente melhor do que em “disco” (dispositivos de armazenamento persistente).
- Algoritmos para compressão de dados são extremamente performáticos e, geralmente, são compensados pela redução de tráfego na rede, sobretudo na internet
- Operações que envolvam comunicação entre dois datacenters distintos são extremamente onerosas.
- SSD é 10+ vezes mais rápido do que discos convencionais.
Obviedades que precisam ser ditas e que, na prática, são frequentemente esquecidas, sobretudo em tempos de obsessão por arquiteturas distribuídas.