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.

Avatar for Leandro Lugaresi

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