BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表

data Artisansがストリームデータ上の直列化可能なACIDトランザクション機能を発表

原文(投稿日:2018/09/12)へのリンク

data ArtisansがStreaming Ledgerの一般提供を開始すると発表した。Apache Flinkを拡張して、テーブル、キー、イベントストリーム間でシリアライズ可能なACIDトランザクションの実行を可能にする。同社独自のFlinkへのアドオンは特許出願中の技術であり、一度にひとつのキーでのみ一貫性のある操作が可能だという、現在の一般的な機能制限を越えた動作を可能にする。

現在のFlinkSparkなどのストリーム処理プロジェクトが提供していた、一貫性を持って高々一回実行されるオペレーションには、キーがひとつの場合に限るという制約があった。今回data ArtisansがStreaming Ledgerをリリースしたことで、Flinkでは、ACIDトランザクションを保証しながら、イベント状態の境界を越えた処理が可能になる。ACIDとは、トランザクションシステムの根幹をなすコンポーネントの略称である。

  • Atomicity(不可分性): トランザクションのすべての変更は不可分に実行される。トランザクション機能は、行の変更をすべて実行するか、あるいはまったく実行しない。
  • Consistency(一貫性): トランザクション機能は、テーブルを一貫性のある状態から、別の一貫性のある状態へと移行させる。
  • Isolation(分離): 各トランザクションは、そのテーブル上で動作する唯一のトランザクションとして実行される。
  • Durability(堅牢性): トランザクションの行う変更は堅牢(durable)で、失われることはない。

ACID原則に従って実装されたトランザクションは、単一のオペレーションとして実行され、すべてが完了するか、あるいはすべてが失敗するかのいずれかとなる。これにより、停止やアプリケーションエラーといった事象が発生した場合でも、データの一貫性が保証される。ACID原則を必要とするトランザクションの例として、よく引き合いに出されるのは、ある銀行から別の銀行への資金の移送である。ストリーム処理でACIDトランザクションを実現したのはStreaming Ledgerが初めてだが、SQL ServerやOracleといったリレーショナルデータベースでは古くから使用されている機能だ。

ACID Transactions

出典: https://data-artisans.com/wp-content/uploads/2018/08/2018-08-31-dA-Streaming-Ledger-whitepaper.pdf

オープンソースのストリーム処理フレームワークであるApache Flinkのオリジナル作者が創立したdata Artisans社は、dA Platformの名で知られるdata Atrisans Platformを使用したストリーム処理インフラストラクチャを提供している。同社プラットフォームは、Apache Flink、dA Application Manager、そして今回のStreaming Ledgerで構成される。WSO2リサーチ担当バイスプレジデントのSrinath Perera氏がビッグデータ技術と呼ぶ、ストリーム処理の世界で活動する同社は、データストリームのクエリと、その情報に基づく意思決定を可能にしている。

ストリーム処理はビッグデータのための技術です。これによってユーザは、データの受信後わずかの間に、連続したデータストリームに対してクエリを実行し、条件を素早く検出することが可能になります。その検出時間は、数ミリ秒から数分までさまざまです。ストリーム処理を使えば、例えば温度計からのデータストリームを照会して、温度が氷点に達したことを検出した時にアラートを受け取るようなことも可能です。

今回の発表に合わせてdata Artisansは、Streaming Ledgerの詳細とアーキテクチャを説明したホワイトペーパをリリースした。例えばアーキテクチャについては、4つの基本的なビルディングブロックから構成されている。アプリケーションの状態を維持するテーブル、テーブルを更新するトランザクション関数、トランザクションをドライブするトランザクションイベントストリーム、オプションとしてストリームの成功あるいは失敗に関するイベントを発行する結果ストリームである。さらに、トランザクション内で変更されたテーブルは、並行的な更新から分離される。このセットアップが結果的に、ストリーム間で作業する場合においても、データの一貫性を保証するのだ。

Streaming Ledger Architecture

出典: https://data-artisans.com/wp-content/uploads/2018/08/2018-08-31-dA-Streaming-Ledger-whitepaper.pdf

data Artisansはまた、GitHubリポジトリで、Streaming Ledgerをソースからビルドするための手順や、Maven Centralから入手する方法についても提供している。さらにリポジトリには、Stream Ledgerの使い方を示した基本的なSimpleTradeの例のような、同プロジェクトを導入するためのサンプルも用意されている。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT