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)|2016. 08. 19.
Advanced Database Systems and Queries참고 문헌 16인용 수 28
한 줄 요약

이 논문은 BiDEL이라는 양방향 데이터베이스 진화 언어를 사용하여 단일 데이터베이스 내에서 공존하는 스키마 버전을 가능하게 하는 InVerDa 시스템을 제안한다. BiDEL은 데이터베이스 스키마 버전 간의 데이터를 동기화하기 위해 델타 코드(뷰 및 트리거)를 자동으로 생성하며, 수동 유지보수를 제거하고 최소한의 성능 오버헤드로 투명하고 양방향 데이터 전파를 가능하게 한다.

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에서 공존하는 스키마 버전에 대한 네이티브 지원 부족 문제를 해결하여 개발자가 복잡한 델타 코드를 수동으로 유지보수하지 않도록 한다.
  • 애자일 개발 및 장기적인 시스템 유지보수 기간 동안 스키마 진화의 비용과 실수의 가능성을 줄인다.
  • 데이터베이스 관리자가 물리적 테이블 스키마를 자유롭게 수정하더라도 기존의 스키마 버전을 손상시키거나 수동으로 델타 코드를 업데이트할 필요 없이 유지보수할 수 있도록 한다.
  • 모든 스키마 버전 간에 정확성과 일관성을 보장하는 공식적으로 검증된 양방향 변환 메커니즘을 제공한다.
  • 수동으로 작성된 SQL에 비해 359배 작아진 코드베이스 크기로 성능과 유지보수성을 높이기 위해 델타 코드를 자동으로 생성하고 관리한다.

제안 방법

  • 스키마 및 데이터 변환을 정방향과 역방향 모두에서 정의할 수 있는 양방향 데이터베이스 진화 언어인 BiDEL을 설계한다.
  • 모든 스키마 버전 간의 읽기 및 쓰기 전파의 정확성을 보장하기 위해 양방향성의 공식적 평가를 수행한다.
  • InVerDa를 DBMS 확장 기능으로 구현하여 BiDEL을 사용해 스키마 버전 간 데이터 동기화를 위한 뷰와 트리거를 자동으로 생성한다.
  • 완전한 액세스 전파를 지원: 어떤 스키마 버전에서든의 쓰기 작업이 모든 다른 스키마 버전에서 볼 수 있으며, 각 버전은 독립적이고 완전한 데이터베이스처럼 동작한다.
  • 논리적 스키마 진화와 물리적 스키마 설계를 분리하여 DBA가 물리적 스토리지 최적화를 수행하더라도 애플리케이션 수준의 스키마 버전에 영향을 주지 않도록 한다.
  • 여러 SMO를 통해 성능을 평가하여 전파 오버헤드를 측정하고, 이론적 예측 대비 평균 6.3% 이내의 최소한의 편차를 보였다.

실험 결과

연구 질문

  • RQ1수동 델타 코드가 필요 없이 단일 데이터베이스 내에서 공존하는 스키마 버전을 어떻게 지원할 수 있는가?
  • RQ2스키마 버전 간의 정확한 양방향 데이터 전파를 보장하기 위해 필요한 공식적 보장 조건은 무엇인가?
  • RQ3수동으로 작성된 SQL에 비해 양방향 데이터베이스 진화 언어가 스키마 진화의 복잡성과 유지보수 비용을 얼마나 줄일 수 있는가?
  • RQ4자동으로 생성된 델타 코드의 성능 오버헤드가 쿼리 처리에 얼마나 영향을 미치는가?
  • RQ5물리적 스키마 최적화를 논리적 스키마 버전과 별도로 적용할 수 있을까? 이 경우 애플리케이션 호환성은 유지되는가?

주요 결과

  • BiDEL 스크립트는 동등한 수동 SQL 스크립트보다 359배 짧아져 코드베이스 크기와 유지보수 부담을 크게 줄였다.
  • 자동으로 생성된 델타 코드의 성능 오버헤드는 매우 미미하여, 이론적 예측 대비 평균 6.3% 이내의 측정된 전파 시간 편차를 보였다.
  • InVerDa는 투명하고 양방향 데이터 전파를 가능하게 하여, 어떤 스키마 버전에서든의 변경 사항이 즉시 모든 다른 스키마 버전에서 확인 가능하며, 각 버전은 완전한 독립형 데이터베이스처럼 보인다.
  • 데이터베이스 관리자는 공존하는 논리적 스키마 버전의 가용성이나 정확성에 영향을 주지 않고 물리적 테이블 스키마를 자유롭게 수정할 수 있다.
  • 물리적 스키마를 워크로드 변화에 맞게 적응시킬 수 있도록 함으로써 효율적인 쿼리 최적화를 지원하며, 이는 백워드 호환성의 손상 없이 가능하다.
  • 양방향성의 공식적 검증을 통해 모든 읽기 및 쓰기 작업이 모든 스키마 버전 간에 정확히 전파됨을 보장하여 강력한 정확성 보장을 제공한다.

더 나은 연구,지금 바로 시작하세요

연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.