ConfluentがKafkaによるメッセージングシステムの長年の夢、‘正確に一度だけ’をついに実現

オープンソースの分散メッセージストリーミングツールApache Kafkaの商用化サービス(リアルタイムデータストリーミング)を提供しているConfluentが今週、Kafkaのユーザーにとって嬉しい機能を発表した。それは、Kafkaを使ってメッセージを、“正確に一度だけ”送る能力だ。

それのどこがすごいのか、門外漢には分かりづらいが、Kafkaのような高速メッセージングツールを使っている人たちにとっては、長年の見果てぬ夢だった。コミュニティの人たちは、実現不可能とも思っていた。

通常、メッセージを送る側は、それが届いたという受信確認を待つ。しかしConfluentのCTO Neha Narkhedeによると、Kafkaのような分散メッセージングシステムでは、途中で問題が起きることがある。コンピューターのエラー、ネットワークの障害、などなど。しかしたとえば金融関連のトランザクションなどでは、メッセージは確実に一度だけ送られてほしい。二度以上は、ノーだ。

多くの人びとが“正確に一度だけ”は達成不可能な目標と考えているのは、それを実現するためのスピードと正確さのトレードオフが大きすぎるからだ。しかしNarkhedeによると、同社はこの問題に大量の技術者をつぎ込み、1年がかりでやっと、長年探し求めていた解に到達した。

それを実現している技術的細部はきわめて多い。そしてNarkhedeによると、随所に技術的なトレードオフもあるが、でもみんなが考えるほど多くはない。というか、彼女によると、同社はこの問題を解決しただけでなく、メッセージのスピードを犠牲にすることなくそれを達成したのだ。

“正確に一度だけのモードでも、パフォーマンスのオーバヘッドはほとんど無視できる。そして通常モードでは、パフォーマンスは従来より向上した”、と彼女は語る。

その新しいリリースは、通常の利用で20%速くなり、“正確に一度だけ”の機能を使うと3〜10%のスピードペナルティが生じる。彼女によると、正確に一度だけではつねに多少のオーバヘッドは生ずるが、今後数か月の努力でそれをできるだけなくしていきたい、という。

彼女によると、この機能を眉唾で見ている人がまだ多い。頭がおかしいんじゃないか、と言う人もいる。長年、誰も解決できなかった問題だ。実際にそのとおり動くことを、どうやって確認するのだ? …彼女はコミュニティが抱(いだ)いている疑念を、このように表現した。

“何千時間もテストをした。パフォーマンスにはとくに気をつけた。Kafkaのアーキテクチャを抜本的に再検討し、全体的な高速化を図った。一年がかりで、やっと使えるようになった”、とこれまでの努力を彼女は説明する。

Confluentは3月に5000万ドルを調達し、調達総額は8000万ドルになった。Kafkaは最初、LinkedInで作られ、その後オープンソースのコミュニティへ移った。Confluentは、2014年に創業された。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))

投稿者:

TechCrunch Japan

TechCrunchは2005年にシリコンバレーでスタートし、スタートアップ企業の紹介やインターネットの新しいプロダクトのレビュー、そして業界の重要なニュースを扱うテクノロジーメディアとして成長してきました。現在、米国を始め、欧州、アジア地域のテクノロジー業界の話題をカバーしています。そして、米国では2010年9月に世界的なオンラインメディア企業のAOLの傘下となりその運営が続けられています。 日本では2006年6月から翻訳版となるTechCrunch Japanが産声を上げてスタートしています。その後、日本でのオリジナル記事の投稿やイベントなどを開催しています。なお、TechCrunch Japanも2011年4月1日より米国と同様に米AOLの日本法人AOLオンライン・ジャパンにより運営されています。