Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スマートシティのデータパイプラインと してのApache Pulsar (Pulsar Mee...
Search
Hongjie
July 03, 2023
Technology
0
300
スマートシティのデータパイプラインと してのApache Pulsar (Pulsar Meetup Japan #5)
スマートシティのデータパイプラインと してのApache Pulsar
@Pulsar Meetup Japan #5
2023年6月30日
Hongjie
July 03, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
380
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
160
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
760
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
860
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
4
21k
[PR] はじめてのデジタルアイデンティティという本を書きました
ritou
1
790
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
180
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
2
780
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
3
290
松尾研LLM講座2025 応用編Day3「軽量化」 講義資料
aratako
15
4.9k
re:Invent2025 セッションレポ ~Spec-driven development with Kiro~
nrinetcom
PRO
2
170
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
16
4.8k
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
31k
Un-Boring Meetings
codingconduct
0
170
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
It's Worth the Effort
3n
187
29k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
270
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
330
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
96
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
730
Believing is Seeing
oripsolob
0
20
Transcript
スマートシティのデータパイプラインと してのApache Pulsar NTTソフトウェアイノベーションセンタ Hongjie Zhai @Pulsar Meetup Japan #5
2023年6月30日
1 Copyright NTT CORPORATION スマートシティのデータパイプライン • 様々なデータを一元管理 • センサ:大量デバイス・高頻度のイベ ントデータ
• カメラ:2MB~画像・映像データ • 様々なアプリで利用 • 人流分析、危険検知、衝突検知... • 一部のアプリの出力は再びパイプライ ンに保存して、再利用される › e.g. サービスAPP エッジデバイス データパイプライン (データ管理、蓄積) RTSP REST HDFS Object Storage RDB コネカのセンサ、GPS... カメラの映像、画像... 物体検知 画像 人流分析 危険検知 Bounding Box
2 Copyright NTT CORPORATION データパイプラインの問題 サービスAPP エッジデバイス データパイプライン (データ管理、蓄積) RTSP
REST HDFS Object Storage RDB コネカのセンサ、GPS... カメラの映像、画像... 多様な要件によって複雑化 • データの使い方による問題 • データブロックとして使う(S3) • SQLを使いたい(RDB) • ファイルとして使いたい(HDFS) • ... • データの与え方による問題 • 異なるエンドポイント・プロトコル › IoTデータ:MQTT、映像:RTSP, etc. • データの永続化が必要
3 Copyright NTT CORPORATION データパイプラインの問題 サービスAPP エッジデバイス データパイプライン (データ管理、蓄積) RTSP
REST HDFS Object Storage RDB コネカのセンサ、GPS... カメラの映像、画像... 多様な要件によって複雑化 データ&基盤の維持管理問題 RTSP REST サーバー HDFS Object Storage RDB
4 Copyright NTT CORPORATION データパイプラインとしてのPulsar サービスAPP エッジデバイス コネカのセンサ、GPS... カメラの映像、画像... Apache
Pulsarを ブローカー&ストレージとして運用 • パイプラインの簡素化 • デバイス側もアプリ側もブローカーのみ に接続 • ストレージへのアクセスパターンも削減 • データ管理の一元化 • Pulsarによって自動永続化 • データ間の同期や統合が簡単 Apache Pulsar ストレージ
5 Copyright NTT CORPORATION 1. 疎結合の設計 • ストレージ・ブローカを個別にスケール可能 • 追加実装する場合の影響範囲が限定的
2. Pulsar Protocol Handler • Pulsar以外のプロトコルにも対応可能 なぜPulsarを選ぶのか? サービスAPP エッジデバイス コネカのセンサ、GPS... カメラの映像、画像... Apache Pulsar ストレージ Subscription Apache BookKeeper Consumer Cursor Apache Plusar Apache Pulsar MQTT on Pulsar[1] Kafka on Pulsar[2] Custom Protocol [1] https://github.com/streamnative/mop [2] https://github.com/streamnative/kop
6 Copyright NTT CORPORATION Pulsarは性能要件を満たすのか? サービスAPP エッジデバイス コネカのセンサ、GPS... カメラの映像、画像... Apache
Pulsar ストレージ 1. 大量デバイスを接続しても性能維持 できること • 10万以上の同時接続&同報配信 2. 大容量データを転送できること • Payload: 2MB • 画像、動画のセグメントなど 3. 上記いずれのUCでもE2E Latency は1s以下であること • 危険検知などでの許容時間
7 Copyright NTT CORPORATION Pulsarは性能要件を満たすのか? サービスAPP エッジデバイス コネカのセンサ、GPS... カメラの映像、画像... Apache
Pulsar ストレージ 1. 大量デバイスを接続しても性能維持 できること • 10万以上の同時接続&同報配信 2. 大容量データを転送できること • Payload: 2MB • 画像、動画のセグメントなど 3. 上記いずれのUCでもE2E Latency は1s以下であること • 危険検知などでの許容時間
8 Copyright NTT CORPORATION UC:コネクテッドカーへの情報配信 • 地域・車種などの単位でメッセージ を配信 • 1Topicあたり10万〜デバイスが接続
• メッセージを全てのデバイスに同報配信 • アプリ (Producer)送信から車(Consumer) 受信までのE2E Latencyは1s以内に抑 えたい Apache Pulsar 地域A 車種B Topic:地域A Topic:車種B 地域危険検知 推薦システム 一括通知(同報配信) Apache Pulsarはどこまで 性能要件満たせる?
9 Copyright NTT CORPORATION Pulsarの性能検証 • 単一Topicの同報配信能力の検証 • 1Publisherから10万Consumerへの性能(Latency)を計測 •
ConsumerごとにShared Subscriptionを作成 • 検証設定:10KB Message * 1 Msg/s、AWS i3.4xlarge Publisher Pulsar 2.10 Apache BookKeeper Consumer Persistent Topic 永続化 ZooKeeper Consumer Consumer Consumer Consumer Consumer ※詳細はPulsar Summit 2022 Asiaに参照 OMB 100K Shared Subscription Shared Subscription Shared Subscription Shared Subscription Shared Subscription Shared Subscription
10 Copyright NTT CORPORATION 検証結果 • 10万Consumerの接続時間はまだまだ長い(1h以上) ➢ データから2.2h以上かかると予想 ➢
朝など車が一気に動き出す場合大量の接続あるため、分単位に削減したい • E2E Latency(特に99%)も指数的に増加 Benchmark Item 20,000 Consumers 30,000 Consumers 40,000 Consumers 100,000 Consumers E2E Lat.(Avg.) 0.23s 0.48s 2.9s - (接続時間>1h) E2E Lat.(99% Tile) 0.68s 1.07s 4.09s - (接続時間>1h) Connection Time 252s 594s 1196s - (接続時間>1h) ※詳細はPulsar Summit 2022 Asiaに参照 Subscriptionが性能問題を引き起こす SubscriptionはBookKeeperへの定期アク セス含め多くの処理を行っているため、 性能へのインパクトが大きい
11 Copyright NTT CORPORATION Subscriptionの削減方法 • スケールアップ: Broker単体のSubscription性能を向上させる • 複数のConsumerに同報配信可能なSubscriptionを実装
› ConsumerはSubscriptionと比べて動作が軽いため、性能向上につながる › Pulsarの設計上、Subscriptionの実装は独立しているため簡単に実装可能 • スケールアウト:複数台のサーバで同じTopicの配信を実現する • コミュニティによって実装中:https://github.com/apache/pulsar/issues/16153 › PIP-63 Read-only Topic, PIP-180 Shadow Topic (@Jason918) • 現在のTopicのクローンを他のサーバで作ってメッセージ配信機能を実現 › 書き込みは本体のTopicのみに対して行う › PulsarのGeo-replication機能を活用して実装 ※詳細はPulsar Summit 2022 Asiaに参照
12 Copyright NTT CORPORATION Pulsarは性能要件を満たすのか? サービスAPP エッジデバイス コネカのセンサ、GPS... カメラの映像、画像... Apache
Pulsar ストレージ 1. 大量デバイスを接続しても性能維持 できること • 10万以上の同時接続&同報配信 2. 大容量データを転送できること • Payload: 2MB • 画像、動画のセグメントなど 3. 上記いずれのUCでもE2E Latency は1s以下であること • 危険検知などでの許容時間
13 Copyright NTT CORPORATION UC:機械学習によるカメラ画像分析 • カメラの画像をリアルタイム収集 • 4K画像の場合は2MB/msgと想定 •
最大限の転送Throughputが欲しい • 機械学習のデータパイプラインとして利用 • 前処理のメタデータ(画像の認識結果、Bounding Box情報、etc.)も取り扱う • 学習改善するためのデータの利用履歴記録も必要 今回はデータ転送性能に注目 Apache Pulsar Topic:画像 前処理 Topic:共通中 間データ 危険検知 画像データ
14 Copyright NTT CORPORATION Pulsarの性能検証 • 単一Brokerのデータ受信能力の検証 • Publisher→ConsumerのLatencyを計測 •
Publishの最大Throughputを計測 • 検証設定:2MB Message Size、AWS i3.4xlarge Publisher Pulsar 2.10 Apache BookKeeper Consumer Persistent Topic 永続化 ZooKeeper OMB Shared Subscription クライアントライブラリの仕様上、 一時的なThroughputは安定 に出せると限らない
15 Copyright NTT CORPORATION クライアントライブラリの仕様 • Produceしたメッセージはクライ アントでキャッシュされる • Brokerの受信能力を一時的に超えても
エラーが起きない • 一時的なThroughput変動を吸収可能だ が... • 常時大量送信してると、Out Of Memoryが起きる • E2E Latencyも増え続ける Producer OutOfMemory OOMエラーが起きた場合の E2E Latency 長時間転送できるThroughput の上限を計測
16 Copyright NTT CORPORATION 検証結果 Target Throughput 180 msg/s 190
msg/s 200 msg/s Ave. Latency [ms] 12.61 19.80 (OOMエラー) E2E Latency 99% [ms] 65.36 287.66 Max latency [ms] 116.91 424.73 • 2MBメッセージに対して、最大Throughputは190msg/s ~ 200msg/s • i.e. ~400MB/s、 Latencyは限界性能まで<0.5sのため十分小さい Disk I/Oの実測性能:800MB/s 100msg/s 200msg/s 300msg/s 平均書き込み速度:420MB/s BKサーバの書き込みログ • BookKeeper側のDisk IOがネック • DiskIOの上限性能は400msg/s • DiskIO上限までのスパイクもあるが、 平均値はDisk限界性能の半分程度 BookKeeperに改善余地がある
17 Copyright NTT CORPORATION BookKeeperの性能 Apache BookKeeper as a long
term distributed store,JV Jujjuri(Salesforce), BookKeeper meetup on, Nov. 2016
18 Copyright NTT CORPORATION BookKeeperの性能 Apache BookKeeper as a long
term distributed store,JV Jujjuri(Salesforce), BookKeeper meetup on, Nov. 2016 大きいデータだと性能が発揮しにくい
19 Copyright NTT CORPORATION BookKeeper性能の向上 • スケールアップ:Bookie単体のDisk使用率の向上 • i.e. 並列書き込みDisk
IO スパイクを対処 • パラメータ設定(Write Thread Pool, Journal Thread etc.)によるボトルネック解消[1] • スケールアウト:Bookie数を増やし、効率的に利用する • EnsembleSize、 Write Quorumを増やし、Ack Quorumはそのままにしておく • 各Bookieの性能に合わせて、独自Replication方法も実装可能(DistributionSchedule) [1] Apache BookKeeper Internals ,https://medium.com/splunk-maas/apache-bookkeeper-internals-part-2-writes-359ffc17c497 項目 改善前(単体Bookie) 改善後(単体Bookie) スケールアウト Bookie Disk IO(MB/s) 420 610 (1.5x) ほぼ線形 (2台構成でBookie単 体性能*2より早いこと も!) Throughput (msg/s) 190 270 (1.42x) Avg. Latency (ms) 19.8 11.3 (-43%)
20 Copyright NTT CORPORATION まとめ • 多様なプロトコルが存在するシステムに対して、Pulsarでデー タパイプラインを簡略化できる • PulsarはDC内(マイクロサービス間)での利用を対象に設計されており、
一部の極端なUCを考慮していないため、回避策が必要 • 場合によっては、無理に既存機能を使い回すより、独自実装の 方が効率よい • Pulsarの疎結合設計のおかげで、改善・改造自体も簡単