데이터베이스 복제(Replication)는 분산 데이터베이스 환경에서 신뢰성, 가용성, 과부하 방지 등을 위하여 이용되며, 마스터/슬레이브(Master/Slave), 멀티마스터(Multi-Master)와 같이 두 가지 모델이 존재한다. 멀티마스터 데이터베이스는 다중 데이터베이스에 삽입 및 갱신을 위한 동기화에 따른 복잡도 증가와 비용 증가와 같은 문제를 지닌다. 이러한 이유로 데이터의 삽입과 수정이 빈번히 일어나는 환경에는 마스터/슬레이브 모델을 이용한 데이터베이스 복제가 적합하다. 하지만 마스터/슬레이브 데이터베이스 역시 시스템에서 각 트랜잭션이 마스터로 접속해야 할지, 슬레이브로 접속해야 할지를 선택하기 위한 기준이 명확히 존재하지 않는 문제를 지닌다. 따라서 이 연구에서는 마스터/슬레이브 데이터베이스 모델에서 AOP(Aspect Oriented Programming) 기반의 데이터베이스 트랜잭션 라우팅 알고리즘을 제안한다. 이를 위하여 AOP에 기반하여 애플리케이션을 횡단 관심사로 분리하고 각 관심사들을 모듈화 하여 트랜잭션을 마스터 데이터베이스 및 슬레이브 데이터베이스로 라우팅한다. 이 논문은 시나리오 기반의 기능 통합 테스트를 통하여 제안 알고리즘의 안정성(Stability) 및 성능이 우수함을 평가한다.
데이터베이스 복제(Replication)는 분산 데이터베이스 환경에서 신뢰성, 가용성, 과부하 방지 등을 위하여 이용되며, 마스터/슬레이브(Master/Slave), 멀티마스터(Multi-Master)와 같이 두 가지 모델이 존재한다. 멀티마스터 데이터베이스는 다중 데이터베이스에 삽입 및 갱신을 위한 동기화에 따른 복잡도 증가와 비용 증가와 같은 문제를 지닌다. 이러한 이유로 데이터의 삽입과 수정이 빈번히 일어나는 환경에는 마스터/슬레이브 모델을 이용한 데이터베이스 복제가 적합하다. 하지만 마스터/슬레이브 데이터베이스 역시 시스템에서 각 트랜잭션이 마스터로 접속해야 할지, 슬레이브로 접속해야 할지를 선택하기 위한 기준이 명확히 존재하지 않는 문제를 지닌다. 따라서 이 연구에서는 마스터/슬레이브 데이터베이스 모델에서 AOP(Aspect Oriented Programming) 기반의 데이터베이스 트랜잭션 라우팅 알고리즘을 제안한다. 이를 위하여 AOP에 기반하여 애플리케이션을 횡단 관심사로 분리하고 각 관심사들을 모듈화 하여 트랜잭션을 마스터 데이터베이스 및 슬레이브 데이터베이스로 라우팅한다. 이 논문은 시나리오 기반의 기능 통합 테스트를 통하여 제안 알고리즘의 안정성(Stability) 및 성능이 우수함을 평가한다.
Database replication is utilized to increase credibility, availability and prevent overload of distributed databases. Two models currently exist for replication - Master/Slave and Multi-Master. Since the Multi-Master model has problems of increasing complexity and costs to interface among multiple d...
Database replication is utilized to increase credibility, availability and prevent overload of distributed databases. Two models currently exist for replication - Master/Slave and Multi-Master. Since the Multi-Master model has problems of increasing complexity and costs to interface among multiple databases for updates and inserts, the Master/Slave model is more appropriate when frequent data inserts and updates are required. However, Master/Slave model also has a problem of not having exact criteria when systems choose to connect between Master and Slave for transactions. Therefore, this research suggests a routing algorithm based on AOP (Aspect Oriented Programming) in the Master/Slave database model. The algorithm classifies applications as cross-cutting concerns based on AOP, modularizes each concern, and routes transactions among Master and Slave databases. This paper evaluates stability and performance of the suggested algorithm through integration tests based on scenarios.
Database replication is utilized to increase credibility, availability and prevent overload of distributed databases. Two models currently exist for replication - Master/Slave and Multi-Master. Since the Multi-Master model has problems of increasing complexity and costs to interface among multiple databases for updates and inserts, the Master/Slave model is more appropriate when frequent data inserts and updates are required. However, Master/Slave model also has a problem of not having exact criteria when systems choose to connect between Master and Slave for transactions. Therefore, this research suggests a routing algorithm based on AOP (Aspect Oriented Programming) in the Master/Slave database model. The algorithm classifies applications as cross-cutting concerns based on AOP, modularizes each concern, and routes transactions among Master and Slave databases. This paper evaluates stability and performance of the suggested algorithm through integration tests based on scenarios.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
이 논문에서 제안하는 알고리즘의 목표는 마스터/슬레이브 데이터베이스를 선택하는 것으로 알고리즘의 목적 자체만으로는 Before 충고를 사용하는 것이 간편할 수 있으나 Around 충고를 사용한 이유는 각 트랜잭션이 종료되고 나면 새롭게 트랜잭션을 라우팅 해야 하기 때문이다. 즉, 위 알고리즘에서 명세한 D값을 초기화하는 작업이 직조된 메소드를 수행하고 난 다음에 반드시 일어나야 하기 때문이다.
이 논문에서는 마스터/슬레이브 데이터베이스 모델에서 AOP (Aspect Oriented Programming) 기반의 데이터베이스 트랜잭션 라우팅 알고리즘을 제안한다. AOP에 기반하여 마스터/슬레이브 데이터베이스에 트랜잭션 라우팅을 할 경우, 트랜잭션 라우팅에 대한 관심사를 모듈화 하여 각각의 애플리케이션에서 그대로 적용하는 것이 가능하므로 투명한 데이터 접근이 가능해진다.
이 논문은 기존의 마스터/슬레이브 데이터베이스 모델이 지니고 있는 애플리케이션 코드 레벨에서의 수정이 필요한 의존성 문제점을 해결하기 위하여 AOP 기반의 트랜잭션 라우팅 알고리즘을 제안하였다. AOP 모듈을 이용하여 트랜잭션 라우팅을 이용하게 되면 애플리케이션 코드가 횡단 관심사로 분리되면서 기존의 코드상에서 트랜잭션을 라우팅할 필요가 없어지므로 가독성 및 유지보수성이 좋아진다.
이 절에서는 성능 및 안정성을 평가한다. 이를 위하여 이 논문에서 제안한 AOP 기반 트랜잭션 라우팅 알고리즘을 적용한 시스템과 대조군으로 멀티마스터, JDBC를 통해 12시간 동안 50명의 가상 유저로 테스트를 진행하여 결과를 도출한다.
가설 설정
실험을 위하여 가상의 50명 유저가 12시간 동안 서비스를 사용한다는 가정으로 테스트한다. 50명의 유저는 테스트베드 환경에서 순수하게 트랜잭션 라우팅 성능을 확인할 수 있을 정도의 유저 수/부하이며 그 이상이 될 경우 데이터베이스 성능 한계로 인해 제대로 된 결과를 도출할 수 없다.
제안 방법
Fig. 1은 로그인, 업로드, 댓글 목록과 같은 핵심 관심사 예와 핵심 관심사에 중복으로 들어있는 공통 관심사인 횡단 관심사를 로깅, 보안, 트랜잭션 등의 예로 분류하였다.
평가대상으로 Table 4와 같이 제안 알고리즘인 AOP 기반 알고리즘과 AOP 기반 알고리즘을 테스트한 환경과 유사하면서도 멀티마스터를 구현한 MySQL의 Galaera Cluster를 선정한다. 또한 Django에서 제공하는 데이터베이스 라우팅 기능과 유사한 애플리케이션의 수정이 필요한 MySQL의 JDBC 드라이버(Driver)를 이용한 트랜잭션 라우팅을 선정한다.
실험은 비교대상들로 구축된 웹 서버에서 주어진 12개의 시나리오를 기준으로 nGrinder를 통해 12시간씩 진행된다. 테스트의 평가항목으로 12시간 동안 지속적인 테스트를 통해서 안정성과 속도 그리고 정확한 라우팅 여부를 평가항목으로 진행하였다.
이 연구에서는 자바의 AspectJ AOP를 사용한다. 실험은 이미 구현된 A사의 문서 편집 클라우드 스토리지 서비스의 테스트베드 환경으로 구축한다. 적용 서비스는 RESTful API(Application Programming Interface)를 통한 테스트의 자동화가 가능하다.
이 연구에서 제안하는 트랜잭션 라우팅 알고리즘은 AOP의 횡단 관심사로 분류가 되며 Fig. 3과 같이 트랜잭션 AOP 모듈보다 먼저 수행되어야 한다.
목표-시나리오 모델링 기반 횡단 관심사 식별 및 명세화 방법은 목표-시나리오 기반의 요구사항 분석 방법을 기반으로 횡단 관심사를 식별하는 방법이다[4]. 이 연구에서는 비즈니스 수준, 서비스 수준, 상호작용 수준, 내부 수준을 목표와 시나리오 추상수준의 4가지 항목으로 정의하여 시스템 전체 관심사를 분석하고 분석된 결과 중 중복을 식별하여 횡단 관심사를 분석한다. 하지만 위 연구에서는 전반적인 시스템 관심사에 대한 포괄적인 분석에 대한 방법론만을 제시한다.
이 절에서는 성능 및 안정성을 평가한다. 이를 위하여 이 논문에서 제안한 AOP 기반 트랜잭션 라우팅 알고리즘을 적용한 시스템과 대조군으로 멀티마스터, JDBC를 통해 12시간 동안 50명의 가상 유저로 테스트를 진행하여 결과를 도출한다. Fig.
AOP에 기반하여 마스터/슬레이브 데이터베이스에 트랜잭션 라우팅을 할 경우, 트랜잭션 라우팅에 대한 관심사를 모듈화 하여 각각의 애플리케이션에서 그대로 적용하는 것이 가능하므로 투명한 데이터 접근이 가능해진다. 제안하는 알고리즘은 로그인, 업로드, 댓글 목록과 같은 핵심 관심사에 트랜잭션 라우팅을 위한 횡단 관심사를 적용하여 접근하기 위한 데이터베이스가 마스터인지 슬레이브인지를 선택한다.
즉, 위 알고리즘에서 명세한 D값을 초기화하는 작업이 직조된 메소드를 수행하고 난 다음에 반드시 일어나야 하기 때문이다. 제안하는 알고리즘은 메소드의 이름을 기반으로 라우팅한다. 슬레이브 데이터베이스만 사용해야 할 경우는 트랜잭션에서 읽기 전용에 해당하는 트랜잭션만 포함하며 해당 메소드들은 보통의 애플리케이션에서 get, find와 같은 형태의 이름을 띄게 된다.
39 버전을 사용한다. 테스트 클라이언트로 NHN의 nGrinder의 사전에 정해진 트랜잭션 시나리오를 Python 스크립트로 구현한다.
실험은 비교대상들로 구축된 웹 서버에서 주어진 12개의 시나리오를 기준으로 nGrinder를 통해 12시간씩 진행된다. 테스트의 평가항목으로 12시간 동안 지속적인 테스트를 통해서 안정성과 속도 그리고 정확한 라우팅 여부를 평가항목으로 진행하였다.
대상 데이터
31을 사용하고, 멀티마스터의 경우 동일 MySQL 버전과 스토리지 엔진은 InnoDB를 사용한다. 멀티마스터 구성을 위해 Galera Cluster를 사용하였다. WAS(Web Application Server)의 경우 Apache Tomcat 7.
평가항목으로는 안정성과 속도 그리고 정확한 라우팅 여부를 선정한다. 평가대상으로 Table 4와 같이 제안 알고리즘인 AOP 기반 알고리즘과 AOP 기반 알고리즘을 테스트한 환경과 유사하면서도 멀티마스터를 구현한 MySQL의 Galaera Cluster를 선정한다. 또한 Django에서 제공하는 데이터베이스 라우팅 기능과 유사한 애플리케이션의 수정이 필요한 MySQL의 JDBC 드라이버(Driver)를 이용한 트랜잭션 라우팅을 선정한다.
이론/모형
이 연구에서는 자바의 AspectJ AOP를 사용한다. 실험은 이미 구현된 A사의 문서 편집 클라우드 스토리지 서비스의 테스트베드 환경으로 구축한다.
성능/효과
또한, JDBC 드라이버를 통한 방법과의 비교에서는 속도 및 안정성은 유사하게 측정되었으나, 사용자의 트랜잭션에 대하여 애플리케이션 코드를 수정하지 않는다는 점에서 우수함을 보였다. 따라서 이 논문에서 제안하는 AOP 기반의 트랜잭션 라우팅 알고리즘은 다른 방법들에 비해 애플리케이션의 수정이 없으며 결과 또한 안정적이며 우수한 성능을 보였다.
세부적으로는 멀티마스터보다는 안정성이 더 뛰어난 것이 확인되었다. 또한, JDBC 드라이버를 통한 방법과의 비교에서는 속도 및 안정성은 유사하게 측정되었으나, 사용자의 트랜잭션에 대하여 애플리케이션 코드를 수정하지 않는다는 점에서 우수함을 보였다. 따라서 이 논문에서 제안하는 AOP 기반의 트랜잭션 라우팅 알고리즘은 다른 방법들에 비해 애플리케이션의 수정이 없으며 결과 또한 안정적이며 우수한 성능을 보였다.
실험에 따른 결과로 제안하는 알고리즘을 적용할 경우 안정성, 오류 발생률이 전체적으로 가장 적은 것이 확인되었다. 세부적으로는 멀티마스터보다는 안정성이 더 뛰어난 것이 확인되었다. 또한, JDBC 드라이버를 통한 방법과의 비교에서는 속도 및 안정성은 유사하게 측정되었으나, 사용자의 트랜잭션에 대하여 애플리케이션 코드를 수정하지 않는다는 점에서 우수함을 보였다.
실험에 따른 결과로 제안하는 알고리즘을 적용할 경우 안정성, 오류 발생률이 전체적으로 가장 적은 것이 확인되었다. 세부적으로는 멀티마스터보다는 안정성이 더 뛰어난 것이 확인되었다.
후속연구
향후 연구로는 이름 기반이 아닌 다른 형태로 마스터/슬레이브를 선정할 수 있는 기준을 마련하는 것과 슬레이브 선택 후 슬레이브 그룹 내의 특정 데이터베이스를 선택하는 것에 대한 연구가 요구된다.
질의응답
핵심어
질문
논문에서 추출한 답변
AOP는 무엇인가?
AOP는 소프트웨어를 핵심 관심사와 횡단 관심사로 분리하여 모듈화 시키는 프로그래밍 기법이다[3]. 기존의 객체지향 프로그래밍은 다수의 객체들에 분산적으로 중복되어있는 공통 관심사가 발생하게 되어있어 프로그래밍 유지보수 및 가독성이 낮다는 단점을 지닌다.
데이터베이스 복제는 무엇을 위하여 이용되는가?
데이터베이스 복제(Replication)는 분산 데이터베이스 환경에서 데이터를 각 데이터베이스에 복제하여 신뢰성, 가용성, 과부하 방지 등을 위하여 이용된다. 이를 위하여 마스터/슬레이브(Master/Slave), 멀티마스터(Multi-Master) 데이터베이스와 같은 다양한 모델이 존재한다[1].
데이터의 삽입과 수정이 빈번히 일어나는 환경에서 마스터/슬레이브 모델을 이용한 데이터 복제가 적합한 이유는 무엇인가?
데이터베이스 복제(Replication)는 분산 데이터베이스 환경에서 신뢰성, 가용성, 과부하 방지 등을 위하여 이용되며, 마스터/슬레이브(Master/Slave), 멀티마스터(Multi-Master)와 같이 두 가지 모델이 존재한다. 멀티마스터 데이터베이스는 다중 데이터베이스에 삽입 및 갱신을 위한 동기화에 따른 복잡도 증가와 비용 증가와 같은 문제를 지닌다. 이러한 이유로 데이터의 삽입과 수정이 빈번히 일어나는 환경에는 마스터/슬레이브 모델을 이용한 데이터베이스 복제가 적합하다.
참고문헌 (9)
E. Cecchet, G. Candea, and A. Ailamaki, "Middleware-based Database Replication: The Gaps Between Theory and Practice," In Proceedings of the 2008 ACM SIGMOD international conference on Management of data, pp.739-752, 2008.
K. K. Hercule, M. M. Eugine, B. B. Paulin, and L. B. Joel, "Study of the Master/Slave replication in a distributed database," International Journal of Computer Science Issues, Vol.8, No.5, pp.319-326, 2011.
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold, "An overview of AspectJ," ECOOP 2001-Object-Oriented Programming. Springer Berlin Heidelberg, pp.327-354, 2001.
S. H. Kim, M. S. Kim, and S. Y. Park, "An Identification and Specification Method of Crosscutting Concerns based on Goal-Scenario Modeling for Aspect-Oriented Software Development," Journal of Korea Information Science Society, Vol.35, No.7, pp.424-430, 2008.
M. Petrini, "Distributed Databases Management Using Replication Method," The Annals of the University of Petrosani, Economics, Vol.9, No.4, pp.135-140, 2009.
D. J. Choi, K. S. Chung, and J. S. Shon, "An Improvement on the Weighted Least-Connection Scheduling Algorithm in Web Cluster Systems," Korea Internet Service Promotion Association, Vol.33, No.1, pp.199-201, 2006.
S. Gancarski, H. Naacke, E. Pacitti, and P. Valduriez. "The Leganet system: Freshness-Aware Transaction Routing in a Database Cluster," Information Systems, Vol.32, No.2, pp.320-343, 2005.
S. Elnikety, S. Dropsho, and W. Zwaenepoel, "Tashkent+: Memory-aware load balancing and update filtering in replicated databases," ACM SIGOPS Operating Systems Review, Vol.41, No.3, pp.399-412, 2007.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.