523
13
장
확장
어떨까? 모든 샤드를 쿼리하려면, 각 개별 샤드를 쿼리하고 메모리에서 조인하거나 두 데이터
집합을 모두 사용 가능한 읽기 대체 저장소가 있어야 한다. 샤드 전반을 교차하는 쿼리는 캐싱
된 결과를 사용하는 비동기 메커니즘에 의해 처리되는 경우가 많다. 예를 들어 몽고
Mongo
는 이
러한 쿼리를 수행하기 위해 맵/리듀스
map
/
reduce
작업을 사용한다.
간략한 설명에서 짐작할 수 있듯이, 쓰기를 위해 데이터베이스를 확장하는 것은 매우 까다로운
일이며, 다양한 데이터베이스의 기능이 실제로 차별화되는 시작점이다. 기존 쓰기 볼륨을 얼마
나 쉽게 확장할 수 있는지와 관련해서 한계에 부딪히기 시작할 때 사람들이 데이터베이스 기술
을 변경하는 경우를 자주 본다. 이런 일이 발생할 때 더 큰 머신을 구입하는 것이 가장 신속하
게 문제를 해결하는 방법이지만, 다른 한편으로는 요구 사항을 더 잘 처리하는 다른 유형의 데
이터베이스를 살펴보고 싶어 할 수도 있다. 사용해야 할 데이터베이스 유형이 늘어나면서 새로
운 데이터베이스를 선택하는 것은 벅찬 일이 될 수 있겠지만, 그 출발점으로 프라모드 사달게
이
Pramod
J
.
Sadalage
와 마틴 파울러
Martin
Fowler
가 간결하게 정리한 『
NoSQL
: 빅 데이터 세상으로 떠
나는 간결한 안내서』 (인사이트,
2013
)를 적극 추천한다. 이 책에서는 (그래프 데이터베이스
와 같은 고도의 관계형 저장소부터 문서 저장소, 컬럼 저장소, 키-값 저장소까지 ) 사용할 수
있는 다양한 스타일의 ...