Skip to main content
QUICK REVIEW

[論文レビュー] Living in Parallel Realities -- Co-Existing Schema Versions with a Bidirectional Database Evolution Language

Kai Herrmann, Hannes Voigt|arXiv (Cornell University)|Aug 19, 2016
Advanced Database Systems and Queries参考文献 16被引用数 28
ひとこと要約

本論文では、双方向データベース変更言語であるBiDELを用いて、1つのデータベース内で複数のスキーマバージョンを共存可能にするInVerDaというシステムを提案する。BiDELは、データの同期を自動で行うdeltaコード(ビューとトリガー)を生成し、手動での保守を排除することで、最小限のパフォーマンスオーバーヘッドで透明かつ双方向のデータ伝搬を実現する。

ABSTRACT

We introduce end-to-end support of co-existing schema versions within one database. While it is state of the art to run multiple versions of a continuously developed application concurrently, it is hard to do the same for databases. In order to keep multiple co-existing schema versions alive; which are all accessing the same data set; developers usually employ handwritten delta code (e.g. views and triggers in SQL). This delta code is hard to write and hard to maintain: if a database administrator decides to adapt the physical table schema, all handwritten delta code needs to be adapted as well, which is expensive and error-prone in practice. In this paper, we present InVerDa: developers use the simple bidirectional database evolution language BiDEL, which carries enough information to generate all delta code automatically. Without additional effort, new schema versions become immediately accessible and data changes in any version are visible in all schema versions at the same time. InVerDa also allows for easily changing the physical table design without affecting the availability of co-existing schema versions. This greatly increases robustness (orders of magnitude less lines of code) and allows for significant performance optimization. A main contribution is the formal evaluation that each schema version acts like a common full-fledged database schema independently of the chosen physical table design.

研究の動機と目的

  • 現代のDBMSが複数のスキーマバージョンをネイティブにサポートしていないことにより、開発者が複雑なdeltaコードを手動で保守しなければならないという問題に対処すること。
  • アジャイル開発や長期的なシステム保守におけるスキーマ変更のコストとエラーの発生リスクを低減すること。
  • データベース管理者が物理的テーブルスキーマを自由に変更しても、既存のスキーマバージョンが壊れたり、手動でのdeltaコード更新を必要としなくなるようにすること。
  • すべてのスキーマバージョン間で正しく整合性を保つために、形式的に検証された双方向変換メカニズムを提供すること。
  • 手書きSQLと比較して359倍もコードベースを削減する自動生成および管理によるdeltaコードにより、高いパフォーマンスと保守性を達成すること。

提案手法

  • 前向きおよび後向きの両方向でのスキーマおよびデータ変換を定義できる、双方向データベース変更言語であるBiDELを設計すること。
  • 双方向性の形式的評価により、すべてのスキーマバージョン間での読み取りおよび書き込み伝搬の正しさを保証すること。
  • InVerDaをDBMS拡張として実装し、BiDELを用いてスキーマバージョン間のデータ同期のためのビューとトリガーを自動生成すること。
  • 完全なアクセス伝搬をサポート:任意のスキーマバージョンでの書き込みが、すべての他のバージョンに即座に反映され、各バージョンが独立した完全なデータベースとして動作すること。
  • 論理的スキーマの進化と物理的スキーマ設計を分離することで、DBAが物理的ストレージを最適化しても、アプリケーションレベルのスキーマバージョンに影響を与えないようにすること。
  • 複数のSMOを用いてパフォーマンスを評価し、理論的期待値からわずか6.3%のずれで、最小限のオーバーヘッドを示した。

実験結果

リサーチクエスチョン

  • RQ1手動でのdeltaコードの必要なしに、1つのデータベース内で複数のスキーマバージョンを共存可能にする方法は何か?
  • RQ2スキーマバージョン間での正しく動作する双方向データ伝搬を保証するための形式的保証とは何か?
  • RQ3手書きSQLと比較して、双方向データベース変更言語がスキーマ進化の複雑さと保守コストをどれほど低減できるか?
  • RQ4自動生成されたdeltaコードのパフォーマンスオーバーヘッドが、クエリ処理に及ぼす影響はどの程度か?
  • RQ5アプリケーションの互換性を損なわずに、論理的スキーマバージョンとは独立して物理的スキーマの最適化を適用できるか?

主な発見

  • BiDELスクリプトは、同等の手書きSQLスクリプトと比較して359倍も短く、コードベースのサイズと保守負担を顕著に削減した。
  • 自動生成されたdeltaコードのパフォーマンスオーバーヘッドは最小限であり、理論的期待値から平均でたった6.3%のずれにとどまった。
  • InVerDaは、透明で双方向のデータ伝搬を実現している:任意のスキーマバージョンでの変更が、すべての他のバージョンに即座に反映され、各バージョンが完全に機能する独立したデータベースとして見える。
  • データベース管理者は、物理的テーブルスキーマを自由に変更しても、共存する論理的スキーマバージョンの可用性や正しさに影響を与えない。
  • 物理的スキーマの適応がワークロードの変化に応じて効率的に最適化可能であり、後方互換性を損なわない。
  • 双方向性の形式的検証により、すべての読み取りおよび書き込み操作がすべてのスキーマバージョン間で正しく伝搬され、強力な正しさの保証が得られた。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。