1. 샤딩이란


샤딩이란 여러 장비에 걸쳐 데이터를 분할하는 과정을 말하며 때때로 파티셔닝이라는 용어로도 불린다.

수동 샤딩은 어떤 DB를 사용하든 대부분 수행이 가능하다. 수동 샤딩을 하면 애플리케이션이 여러 DB 서버와 연결을 유지하고 적절한 DB에 쿼리를 하는 방식이다. 하지만 이런 방식은 노드를 추가하거나 삭제할 때 어려움이 있다.

몽고DB는 애플리케이션에서 구조를 추상화하고 시스템 관리를 간단하게하는 자동 샤딩을 지원한다.

샤딩의 한가지 목적은 여러개의 샤드 클러스터가 하나의 장비처럼 보이게 하는 것이다. 이러한 세부 사항을 애플리케이션으로부터 숨기기 위해 샤드 앞단에 mongos라는 라우팅 프로세스를 실행한다.

2. 단일 장비 클러스터에서의 샤딩