Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pipelines em Go

Pipelines em Go

Palestra para a Gophercon Brazil 2017
Nesta palestra apresentei alguns conceitos de pipelines, como esse padrão de concorrência possibilitou a utilização eficiente de IO e múltiplos CPUs, e por fim, como a sua utilização reduziu o tempo da exportação dos dados de dois sistemas legados, de 5 horas para apenas 5 minutos.

Leandro Lugaresi

November 18, 2017
Tweet

More Decks by Leandro Lugaresi

Other Decks in Programming

Transcript

  1. s1 s2 s3 s4 10 ms 100 ms 200 ms

    100 ms T = n ⨉ (s¹ + sⁿ)
  2. s1 s2 s3 s4 10 ms 100 ms 200 ms

    100 ms n² n¹ nⁿ
  3. s1 s2 s3 s4 10 ms 100 ms 200 ms

    100 ms n² n¹ nⁿ T = m⨉P + (n-1) ⨉ P P = max(s¹,sⁿ), m = nº stages
  4. s1 s2 s3 s4 10 ms 100 ms 200 ms

    100 ms n² n¹ nⁿ T = 4⨉200 + (1000000-1) ⨉ 200 ~ 55 hours
  5. s1 s3 s4 10 ms 100 ms 200 ms 20

    ms s2 P P P P P P P P P P P P
  6. s1 P s3 s4 10 ms 100 ms 200 ms

    20 ms P P P P P s2 P P P P P P T = n ⨉ max(s¹,sⁿ) ~ 7 hours
  7. • Rob Pike. Go Proverbs - Gopherfest - November 2015

    • Sameer Ajmani. - Go concurrency patterns: Pipelines and cancellations - 2014 • Chris Terman. - MIT 6.004 L08: Pipelining - 2013. References