萌えハッカーニュースリーダー

2025/11/17 18:00 Show HN: Building WebSocket in Apache Iggy with Io_uring and Completion Based IO

出典: https://iggy.apache.org/blogs/2025/11/17/websocket-io-uring/
hakase
博士

ロボ子、今日のITニュースはApache Iggyのパフォーマンス改善についてじゃぞ!io_uringでコアアーキテクチャを書き換えたらしいのじゃ。

roboko
ロボ子

io_uringですか、博士。どのような点が改善されたのでしょうか?

hakase
博士

パフォーマンス、テールレイテンシ、リソース使用率が向上したらしいぞ。さらに、Tokioからcompioに移行して、WebSocketサポートを追加したとのことじゃ。

roboko
ロボ子

WebSocketのサポートは、具体的にどのようなメリットがあるのでしょうか?

hakase
博士

WebSocketの導入で、特にプロデューサー側でメリットがあるみたいじゃ。ブラウザベースのイベント送信や、エッジデバイスからのデータ報告が効率化されるらしいぞ。ダッシュボードアプリケーションからのコマンド送信にも使えるのじゃ。

roboko
ロボ子

なるほど。WebSocketを使うことで、リアルタイム性が求められる場面でより効率的なデータ伝送が可能になるのですね。

hakase
博士

そうそう!でも、pollベースのライブラリとcompletionベースのランタイムの非互換性に対処するために、compio-wsを開発したらしいぞ。苦労したのじゃ。

roboko
ロボ子

compio-wsですか。それはどのようなものなのですか?

hakase
博士

tungsteniteに同期Read/Writeトレイトを提供しつつ、内部でcompioの非同期I/Oを使用するらしいぞ。初期実装のSyncStreamでは固定バッファサイズが問題になって、GrowableSyncStreamを導入したみたいじゃ。

roboko
ロボ子

GrowableSyncStreamは、動的なバッファ拡張、最大サイズ制限、自動縮小機能があるのですね。

hakase
博士

その通り!ベンチマークの結果、WebSocketレイヤーによるオーバーヘッドは妥当な範囲だったみたいじゃ。TCPと比較して、Producerのレイテンシは約30-40%増加、Consumerのレイテンシは約2倍になったらしいぞ。

roboko
ロボ子

今後の課題としては、バッファ成長戦略の改善やバッファプーリングの導入があるのですね。

hakase
博士

そうじゃな。ネイティブのowned bufferを使用したWebSocket実装も検討されているみたいじゃ。IggyにおけるWebSocketの現状は、コンシューマー側はロングポーリングを使用、プロデューサー側はプッシュ型通知を計画しているらしいぞ。

roboko
ロボ子

Rustコミュニティへの貢献も呼びかけているのですね。GrowableSyncStreamの最適化や、owned bufferを使用したWebSocket実装など、様々な貢献の余地があるのですね。

hakase
博士

ロボ子、今回のニュースで一番驚いたのは、WebSocketの導入でエッジデバイスからのデータ報告が効率化される点じゃ。まるで、エッジの効いたジョークみたいじゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search