BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Nikita Ivanov氏に聞く - Apache Igniteインメモリ・コンピューティング・プラットフォーム

Nikita Ivanov氏に聞く - Apache Igniteインメモリ・コンピューティング・プラットフォーム

原文(投稿日:2017/04/23)へのリンク

Apache Igniteは、キーバリュー型の永続化、ストリーミング、複合イベント処理をサポートするトランザクション機能を備えた、インメモリ・コンピューティング・プラットフォームである。2014年にGridGainによってオープンソース公開され、ApacheにIncubationプログラムとして受け入れられた。

InfoQは、GridGainのCTOであるNikita Ivanov氏にインタビューして、Apace Igniteについて詳しく聞いた。

InfoQ: Apache Igniteはキーバリューストアからストリーム処理に至るまで、過剰なほどのインメモリ機能を提供してますが、代表的なユースケースはどのようなものなのでしょう?

Nikita Ivanov: Apache® Ignite™のフラッグシップとなるユースケースは、金融サービスにおけるハイパフォーマンスなタスク、特に金融サービスやフィンテック企業などです。これらの企業にとって、収益の向上とアプリケーションのパフォーマンスやスケーラビリティの間には、直接的な関連性があります。GridGainとIgniteの提供する高性能、低レイテンシ、スケーラビリティが、そのまま彼らの価値になるのです。これらの企業には、自動取引やリアルタイムな規制順守対応、スプレッドベッテイング、不正検出、バックテスト、分析など、Igniteがサポートしている幅広いアプリケーションがあります。

Apache Igniteは、サードパーティのソフトウェアやSaaSソリューションとも数多く統合されています。特に成長が著しいのはSaaSとIoTのベンダです。これらの企業が持つビジネスモデルは、最適なユーザーエクスペリエンスを提供するため、あるいはWebスケールのアプリケーションやデータ集約型のIoTアプリケーションに必要なSLAを満たすために、最高水準のパフォーマンスとスケーラビリティを必要としているのです。

InfoQ: Apache Igniteは、Apache Sparkなどの一般的なインメモリコンピューティングフレームワークをどのような形で補完するのでしょうか?Alluxioと比較した場合はどうでしょう?

Ivanov: Apache IgniteがApache Sparkを補完する点はいくつかあります。Apache Sparkは主に分析、特にマシンラーニングを対象とする、非トランザクション型の読み取り専用システムです。一方でApache Igniteが使用されるのは、主に高性能なトランザクションベースのシステムとしてです。2つを合わせて使用することで、Apache IgniteがSpark RDDのインメモリ・ストレージ層として機能し、Sparkジョブ間での状態共有が可能になります。さらにIgniteは、メモリ内に格納されたSparkデータのインデックスを作成します。Spark上でSQLクエリを実行するとデータのフルスキャンが実行されますが、Igniteのインデックスによってそのパフォーマンスが大幅に向上します。

Alluxioに関しては、これまで競合の対象として見ていませんでしたので、比較するのは非常に難しいですね。

InfoQ: 2016年12月に、Netflixの提供するキャッシュシステムであるHollowがオープンソース公開されました。Hollowはキャッシュ機能をクライアントに組み込むことで、要求のレイテンシと必要なRPCの削減を実現しています。Apache Igniteでも同じことを実現できるのでしょうか?

Ivanov: Hollowについても、競争相手として見たことは一度もありませんが、機能についてはよく知っています。Hollowが提供しているものは、ほぼすべて、Apache Igniteによってすでにサポートされています。

InfoQ:Apache Igniteの大きなアドバンテージの1つは、トランザクション性と一貫性の保証を提供していることですが、IgniteのCAP定理に関する設計判断について説明して頂けますか?

Ivanov: CAP理論だけをサポートする製品は、Igniteよりも劣っていると思います。サポート対象が結果整合(EC)トランザクションのみである場合には、完全な一貫性を実現することはできません。高速化によってECを改善することはできても、完全な一貫性にはならないのです。したがって、古典的なトランザクションシステムを使用していて、資金の移動やアカウント管理が必要なのであれば、Apache CassandraMongoDBApache CouchDBなどのECソリューションは、完全な一貫性を提供しないため、まったく使用できません。

Igniteは、完全な一貫性のために、本格的な2フェーズ・コミット・トランザクション – Oracleが行なっているものとまったく同じ – が最初から有効になっています。その一方で、2フェーズコミットプロトコルを緩和して、ECソリューションのすべてのパフォーマンスを取り戻すようにシステムを構成することも可能です。つまりIgniteを使用すれば、標準データベースの完全なトランザクション動作と、整合性のトレードオフによるパフォーマンスの向上という、両方の設定のメリットを得ることができるのです。ユーザからのフィードバックによると、この柔軟性はGridGainの最大の強みのひとつになっています。

InfoQ:Apache Igniteは、解析処理のワークロード用に最適化された、インメモリのカラムナ形式(Columnar Format)をサポートしていますか?

Ivanov: いいえ、カラムナ形式はサポートしていません。

InfoQ: ロードマップはどのようになっていますか?

Ivanov: 重要な開発テーマが2つあります。データベース全体がRAMに収まらないユースケースのために、ディスクベースのストレージの大幅な改善と強化を行なうことがひとつで、もうひとつは、マシンラーニングやディープラーニングに向けたサポートと適合性を強く進めることです。これらの詳細については、近日中に大きな発表をいくつか行なう予定です。

この記事を評価

関連性
スタイル

この記事に星をつける

おすすめ度
スタイル

BT