더북(TheBook)

그러면 고가용성을 유지하면서 데이터베이스 처리 속도를 유지하려면 어떻게 해야 할까요? 슬레이브가 없을 때처럼 속도가 잘 나오게 하려면, 슬레이브의 변경 전파 과정을 건너뛰고 바로 게임 서버에 응답하면 됩니다.

p340_1

▲ 그림 8-8 신속한 응답을 중요시할 때의 데이터 변경 처리

 

먼저 게임 서버가 마스터 DB에 변경하는 질의를 보냅니다(). 그러면 마스터 DB는 변경 요청을 바로 처리하고 결과를 반환합니다(). 마스터 DB는 슬레이브 DB에 변경된 것을 알려 주고(), 슬레이브 DB는 변경 사항을 자기 자신에게 적용합니다.

단 마스터와 슬레이브는 항상 같은 상태가 아니고 일시적으로 옛 데이터를 가지는 문제가 있을 수 있습니다. 즉, 일관성이 깨집니다. 다른 표현으로 최신이 아닌 데이터인 스테일 데이터(stale data)를 가져오는 문제가 있습니다.

이쯤 되면 “너무한 것 아닌가?” 하는 생각이 들 수도 있습니다. 하지만 그 대가로 얻는 것은 고가용성 데이터베이스입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.