Skip to content

Instantly share code, notes, and snippets.

@kimutansk
Created June 12, 2016 12:05
Show Gist options
  • Save kimutansk/efce31b1b028a660a625b93fcb7c71d3 to your computer and use it in GitHub Desktop.
Save kimutansk/efce31b1b028a660a625b93fcb7c71d3 to your computer and use it in GitHub Desktop.
Apache Gearpump - Lightweight Real-time Streaming Engine

Apache Gearpump - Lightweight Real-time Streaming Engine

  • データ処理のトレードオフ
    • 正しさ
    • 低レイテンシ
    • 低コスト
  • トレードオフの事例
    • Billing
      • 正しさ++
    • 高速コスト見積もり
      • 正しさ+
      • 低レイテンシ+
    • 不正検知
      • 低レイテンシ++
    • 不正検知対応
      • 正しさ+
      • 低コスト+
    • Gearpumpの要素
      • 正しさ
        • Out of order processing
        • Exactly once
        • Flow Control
        • Fault Torerance
      • 低レイテンシ
        • Native Streaming
        • Message Driven
      • 低コスト
        • Message Driven
        • Dynamic DAG
  • 構成
    • Task(スレッド)をExecutor(JVM)に分散配置
    • Actorが階層的に配置、MasterはHA構成可能
  • 性能概要
    • メッセージ生成+カウントという単純な構成
    • 48Core + 256GBのマシン4クラスタで2000万弱/秒
    • Shuffle構成という前提でもStorm No Ackを凌ぐ
  • Dynamic DAG
    • 並列度更新
    • Taskバージョン更新
  • Message Driven processing
    • Taskはスレッドセーフ
    • メッセージ受信時のみCPUを使用
  • Out of order processing
    • MillWheel ArchitectureのWatermark方式
      • ただし、遅延メッセージ用のTriggerは無い?
    • Event Time baseのSliding Windowを利用可能
  • Exactly once
    • Local WatermarkをGlobal Watermarkに反映して管理
    • 障害発生時はLocal WatermarkをGlobal Watermarkにリセット

参照

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment