Skip to main content
QUICK REVIEW

[논문 리뷰] Actor Database Systems: A Manifesto

Vivek Shah, Marcos António Vaz Salles|arXiv (Cornell University)|2017. 07. 20.
Distributed systems and fault tolerance참고 문헌 38인용 수 2
한 줄 요약

이 논문은 액터 모델의 모듈성과 확장성과 기존 데이터베이스의 데이터 관리 기능을 결합한 새로운 데이터베이스 패러다임인 액터 데이터베이스 시스템을 제안한다. 응용 프로그램 로직을 데이터 계층 내에 액터로 통합함으로써, 확장성 있고 장애 격리가 가능하며 유지보수가 쉬운 데이터 집약적 응용 프로그램을 가능하게 하며, 선언적 쿼리 및 트랜잭션을 지원한다. 스마트 슈퍼마켓 자가 체크아웃 사용 사례를 통해 이를 입증하였다.

ABSTRACT

Interactive data-intensive applications are becoming ever more pervasive in domains such as finance, web applications, mobile computing, and Internet of Things. Typically, these applications are architected to utilize a data tier for persistence. At one extreme, the data tier is a simple key-value storage service, and the application code is concentrated in the middle tier. While this design provides for programmability at the middle tier, it forces applications to forego classic data management functionality, such as declarative querying and transactions. At the other extreme, the application code can be colocated in the data tier itself using stored procedures in a database system. While providing rich data management functionality natively, the resulting lack of modularity and state encapsulation creates software engineering challenges, such as difficulty in isolation of bugs and failures or complexity in managing source code dependencies. In addition, this monolithic architectural style makes it harder to scale the application with growing request volumes and data sizes. In this paper, we advocate a new database system paradigm bringing to developers the benefits of these two extremes, while avoiding their pitfalls. To provide modularity and reasoning on scalability, we argue that data tiers should leverage the actor abstraction; at the same time, these actor-based data tiers should offer database system features to reduce bugs and programming effort involved in state manipulation. Towards this aim, we present a vision for actor database systems. We analyze current trends justifying the emergence of this abstraction and discuss a set of features for these new systems. To illustrate the usefulness of the proposed feature set, we present a detailed case study inspired by a smart supermarket application with self-checkout.

연구 동기 및 목표

  • 기존 데이터 계층 아키텍처의 한계를 해결하기 위해, 트랜잭션, 쿼리 등의 데이터 관리 기능을 포기하거나 저장 프로시저를 사용할 경우 단일화되고 유지보수가 어려운 코드가 되는 문제를 해결하기 위해.
  • 데이터 계층에서 액터 모델을 통해 모듈성, 캡슐화, 장애 격리를 도입함으로써 데이터 집약적 응용 프로그램의 소프트웨어 공학 실천을 향상시키기 위해.
  • 데이터 일致성이나 개발자 생산성을 희생시키지 않고도 데이터 집약적 워크로드의 수평적 확장을 가능하게 하기 위해.
  • 응용 프로그램 로직과 데이터 관리 간 격차를 해소하기 위해 비즈니스 로직을 데이터와 함께 공유하고 확장 가능하고 디버깅이 가능한 방식으로 위치시키기 위해.
  • 금융, IoT, 모바일 컴퓨팅 등의 분야에서 현대적이고 상호작용적인 응용 프로그램을 지원하는 새로운 아키텍처 패러다임을 제공하기 위해.

제안 방법

  • 데이터 계층 컴포onent의 기본 추상화로 액터 모델을 활용하여 세밀한 동시성, 격리, 위치 투명성을 제공하기 위해.
  • 상태를 캡슐화하고 메시지를 수신하여 응답하는 액터의 집합으로 데이터 계층을 설계하여, 기존의 저장 프로시저를 일급, 조합 가능한 로직 단위로 대체하기 위해.
  • 선언적 쿼리, ACID 트랜잭션, 스키마 강제화와 같은 전통적인 데이터베이스 기능을 액터 기반 실행 모델에 통합하기 위해.
  • 직접 공유 메모리 접근이 아닌 액터 상호작용을 통한 상태 변경 조율을 통해 메시지 전달 의미 체계를 강제함으로써 데이터 일관성과 격리를 확보하기 위해.
  • 데이터 일관성과 장애 내성성을 유지하면서도 노드 간 분산 배포가 가능한 액터를 허용함으로써 동적 배포 및 수평적 확장을 지원하기 위해.
  • 스마트 슈퍼마켓 자가 체크아웃 시스템의 사례 연구를 통해 액터 데이터베이스 시스템이 복잡한 비즈니스 로직의 모듈성, 확장성, 정확성을 어떻게 실현할 수 있는지 보여주기 위해.

실험 결과

연구 질문

  • RQ1액터 모델을 데이터베이스 시스템에 효과적으로 통합하여 모듈성과 풍부한 데이터 관리 기능을 동시에 제공할 수 있는가?
  • RQ2단일화된 저장 프로시저 아키텍처에 비해 액터 데이터베이스 시스템은 장애 격리와 장애 국소화를 어떻게 향상시킬 수 있는가?
  • RQ3액터 기반의 데이터 계층은 ACID 성질과 선언적 쿼리 지원을 유지하면서도 확장성 있고 동시 접근이 가능한가?
  • RQ4제안된 아키텍처는 데이터 집약적 응용 프로그램을 구축하고 유지보수하는 데 있어 소프트웨어 공학 복잡성을 어떻게 감소시키는가?
  • RQ5자기 체크아웃 시스템과 같은 실제 상호작용형 응용 프로그램에서 액터 데이터베이스 시스템을 사용할 경우 실질적인 이점은 무엇인가?

주요 결과

  • 액터 데이터베이스 시스템은 상태를 가진 액터 내에 비즈니스 로직을 캡슐화하고 메시지 전달을 통해 상호작용함으로써 모듈성, 조합성, 확장성을 갖춘 데이터 집약적 응용 프로그램을 가능하게 한다.
  • 이 아키텍처는 장애 격리가 강력하게 이루어져 있어 단일화된 저장 프로시저에 비해 시스템 동작을 더 쉽게 디버깅하고 추론할 수 있다.
  • 트랜잭션과 선언적 쿼리와 같은 데이터베이스 기능을 액터 모델에 통합함으로써, 응용 프로그램 수준의 오류 발생 가능성이 높은 상태 관리가 줄어든다.
  • 스마트 슈퍼마켓 자가 체크아웃 시스템의 사례 연구는 아이템 스캔, 가격 조회, 트랜잭션 처리와 같은 복잡한 비즈니스 로직이 액터 데이터베이스 시스템을 통해 유지보수가 가능하고 확장 가능한 방식으로 구현될 수 있음을 보여준다.
  • 제안된 패러다임은 데이터와 로직 양쪽 모두에 대한 수평적 확장을 지원하여, 아키텍처를 대대적으로 개선하지 않더라도 증가하는 요청 부하를 처리할 수 있다.
  • 액터와 데이터베이스 기능의 조합은 공통된 데이터 관리 문제를 시스템 계층으로 이관함으로써 개발 노력 감소와 신뢰성 향상을 가져온다.

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

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

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

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