복재 기능의 SELECT 분산 관련 질문 드립니다.

by kkckc posted Feb 21, 2009
안녕하세요.
늘 정성스런 답변 감사드립니다.

CUBRID의 복재 기능에 대해서 한가지 더 질문드릴 점이 있어서 문의 드립니다.

예를 들어 시스템을 구성하여

(1) CUBRID A - MASTER
(2) CUBRID B - SLAVE

와 구성했다고 가정하였을 때, 효율적인 쿼리 분산에 대해 질문 드립니다.
(1) 의 경우 INSERT, UPDATE, (+ SELECT)를 사용하고
(2) 의 경우 SELECT
를 사용한다고 가정합니다.
고객 데이터의 경우 번호가 키로 쓰인다고 가정하겠습니다.
즉 (앞번호가 0-5, 6-10 으로 2집단이 있다고 가정합니다. 쿼리는 단순 SELECT 쿼리입니다)

질문은 다음과 같습니다.

-- 첫번쨰 질문
이 경우 DB의 캐쉬에 대한 성능이 크게 좌우할 수 있으므로,
각 Transaction시 SELECT연산에 대하여 RR(Round-Robin) 로 (1), (2)을 돌아가면서 SELECT 쿼리할경우 Cache-Hit ratio가 떨어질 수 있으므로,
0-5 인 사용자는 큐브리드 (1) 에서 쿼리,6-10인 사용자는 큐브리드 (2)에서 쿼리와 같이 Routing Rule을 정하여 쿼리해야 하는 방식이 필요하다고 판단하고 있습니다. 즉 이와 같은 방식으로 구현하여야 cache-hit ratio에 의한 성능향상을 기대할 수 있을것 같습니다.
이러한 고민에 대해서 확인 부탁드립니다. ^^
(RR 과 같이 구성할 경우와 Cubrid (1), (2), (3) 에 대해서 Rule-Base로 분산하여 Select 연산의 성능 차이가 나는지요? 난다면 크게 나는지요?)

- 두번째 질문
큐브리드 (1) 에는 WRITE 연산만 (Insert, Update) 연산만 사용하고,
(2)에는 Select 연산만 사용할 경우 이러한 구성이 권장할만한 (?) 구성일지 궁금합니다.
생각에는 (1)에서 Write에 의한 연산이 발생한다면 (2)에도 DB Write에 의한 부하가 많이 발생할 것 같아 조금 우려스럽습니다.
이러한 경우 복제에 의한 일반적인 구성은 어떤 구성이 일반적인지 알 수 있을런지요.
쿼리의 빈도수는 예상하건데 (SELECT 5, INSERT 3, DELETE 3) 정도로 발생할 것으로 예상합니다.

감사드립니다.
좋은 주말 보내세요