Horyzontalne skalowanie systemów strumieniowych

Koncepcje strumieniowania danych

Mike Metzger

Data Engineer

Skalowanie horyzontalne – przypomnienie

  • Zamiast skalować „w górę", skaluj „wszerz"
  • Zazwyczaj oznacza zwiększenie wydajności przez dodawanie kolejnych zasobów, nie szybszych / lepszych
  • Najlepsze w przypadkach ekstremalnie równoległych
    • Zadania, które można łatwo podzielić
    • Np. przetwarzanie dużej grupy niezależnych obrazów
Koncepcje strumieniowania danych

Skalowanie horyzontalne w strumieniowaniu

  • Przetwarzanie strumieniowe zazwyczaj wiąże się z minimalnymi opóźnieniami
  • Transfer danych między węzłami może być problematyczny
  • Najlepiej przetwarzać cały strumień w jednym potoku
  • Tworzy się kopie potoków
Koncepcje strumieniowania danych

Kopie potoków

  • Zdarzenia trafiają do potoku w momencie wystąpienia
  • Wszystkie powiązane zadania są zamknięte w potoku aż do zakończenia
  • Skalowanie przez dodawanie kolejnych potoków
  • Można nadal skalować wertykalnie w ramach potoku
Koncepcje strumieniowania danych

Dodatkowe aspekty

  • Mogą być potrzebne dodatkowe komponenty
  • Balancer / kierownik obciążenia
    • Rozdawanie kart
    • Najmniej obciążony węzeł
  • Nieuchronnie pojawią się wąskie gardła
    • Wydajność zapisu na dysk
  • Warto rozważyć skrócenie potoku strumieniowego
    • Eliminuje potrzebę natychmiastowego przetwarzania danych
Koncepcje strumieniowania danych

Czas na ćwiczenia!

Koncepcje strumieniowania danych

Preparing Video For Download...