Scalar DL
Scalar DLは多様なデータベース上で動作するスケーラブルなビザンチン故障検知ミドルウェアです。Scalar DLは、データベースに対する改ざん等を含むビザンチン故障を高い精度で検知し、データベースが管理するデータにおいて高い真正性を保証します。また、当該機能を下位のデータベースの性能特性を大幅に損なうことなく実現します。
1.サービス全体像
Scalar DLは多様なデータベース上で動作するスケーラブルなビザンチン故障検知ミドルウェアです。
Scalar DLの特徴と利点
Scalar DLは、データベースに対する改ざん等を含むビザンチン故障を高い精度で検知し、データベースが管理するデータにおいて高い真正性を保証します。Scalar DLはデータベース固有の機能および実装に依存せず、また、下位のデータベースの性能特性を大幅に損なうことなく、ビザンチン故障検知を実現します。例えば、下位のデータベースがスケーラブルな分散データベースであれば、Scalar DLを介して当該データベースに対してアクセスする場合、トランザクション性能をデータベースの処理能力に応じてスケールさせることが可能です。
Scalar DLがサポートするデータベース
- MySQL(およびMySQL compatibleなデータベース e.g., Amazon RDS, Amazon Aurora)
- PostgreSQL(およびPostgreSQL compatibleなデータベース e.g., Amazon RDS, Amazon Aurora)
- Oracle Database
- Aamazon DynamoDB
- Azure Cosmos DB
- Cassandra(およびCassandra compatibleなデータベース e.g., ScyllaDB)
- HBase
※Scalar DLはScalar DBを用いて開発されているため、Scalar DBがサポートするデータベース上において稼働します。
Scalar DLの利用方法
Scalar DLはエンタープライズライセンスで有償で提供されています。
Scalar DLはLedgerとAuditorというコンポーネントから構成されており、利用においては、Ledgerのみを用いる構成パターンとLedgerとAuditorの双方を用いる構成パターンがあります。Ledgerのみを用いるパターンにおいては、1つの組織がデータベースを運用・管理する前提のもと、Ledgerを介してデータベースを管理することにより、データベースを一部のビザンチン故障を検知できるように構成します。ただし、1組織での運用のため、すべてのビザンチン故障を検知できません。
一方、LedgerとAuditorの双方を用いるパターンにおいては、2つの組織がデータベースを運用・管理する前提のもと、1つの組織ではLedgerを介してデータベースを管理し、もう1つの組織ではAuditorを介してデータベースを管理することにより、2つの組織で同じデータを持つデータベースを相互を信頼することなく管理します。この場合は、1つの組織が正しい限り、ビザンチン故障を正しく検知できます。
Scalar DLのアプリケーションの開発においては、利用者はContractなる関数(ステートマシン)を用いて、アプリケーションにおけるビジネスロジックを記述します。ContractはJavaで記述する必要があります。
Client SDKからContractを登録し、それを実行することにより、データベースに対して任意の処理を実行します。
Client SDKはJava, Node.js, Javascript (Browser Javascirpt), Golangがあります。
Scalar DLのLedgerおよびAuditorはDockerコンテナおよびHelm Chartの形式で公開されています。