ゼロコピーで瞬時にプロセス間の大規模データ通信を可能にする「Eclipse iceoryx」ミドルウェア、Eclipse Foundationが公開

2021年7月14日

Eclipse Foundationは、データをコピーすることなく瞬時にプロセス間でデータ通信を可能にするミドルウェア「Eclipse iceoryx」を公開しました。

一般に、あるプロセスと別のプロセスが通信を行う場合、何らかのAPIやプロトコルを通じてプロセス間でデータが渡されます。このときデータを受け取った側のプロセスは、自身のメモリ空間にデータのコピーを書き込むことになります。

受け取るデータが少量であればコピーは一瞬で終わりますが、大量のデータを受け取る場合、コピーには時間がかかるでしょう。

例えば、自動車の自動運転システムのような、リアルタイムに大量の動画データを分析し、判断するようなシステムでは、カメラや画像センサーからの画像を取得するプロセスと、その画像データを受け取って分析するプロセスのあいだにはつねに膨大なデータの受け渡しが発生します。

しかもこれをできるだけ遅延なく、高速に受け渡す必要があるわけです。

Eclipse iceoryxは、こうした大規模データをプロセス間で高速に受け渡すことを目的とした可能なミドルウェアです。

データを渡すプロセスを「Publisher」、データを受け取るプロセスを「Subscriber」とすると、PublisherはEclipse iceoryxから要求されたメモリ空間にデータを直接書き込みます。データが書き込まれたら、SubscriberはEclipse iceoryxからAPIを通じてポインタを受け取り、ポインタが示すメモリのデータを参照することでデータを受け取ることができます。

このようにデータをコピーすることなく瞬時に受け渡しできることがEclipse iceoryxの大きな特徴です。

対応するOSはLinux、QNX、macOS。対応するプログラミング言語はCとC++。今後Windows、Rustに対応する予定。

データの受け渡しのタイミングとしてはポーリングとイベントドリブンに対応。

Eclipse iceoryxのソースコードはGitHubで公開されています

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本