일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- MongoDB
- 김양재 목사님
- 빅데이터
- WebGL
- 김양재
- Big Data
- 몽고디비
- 주일설교
- Machine Learning
- Statistics
- 우리들교회
- node.js
- 김양재 목사
- 빅 데이터
- R
- 확률
- 인공지능
- 통계
- data science
- c++
- 빅데이타
- Deep learning
- openCV
- probability
- No SQL
- 딥러닝
- nodeJS
- 데이터 과학
- Artificial Intelligence
- 빅 데이타
Archives
- Today
- Total
Scientific Computing & Data Science
[MongoDB] Replication / Usage of Slaves / Read Scaling 본문
Data Science/MongoDB
[MongoDB] Replication / Usage of Slaves / Read Scaling
cinema4dr12 2014. 3. 29. 16:35by Geol Choi |
MongoDB의 슬레이브 노드의 역할을 정리하면 다음과 같다:
- 데이터 유실 또는 마스터 노드의 다운타임에서의 패일오버 메커니즘 기능 수행
- 백업을 위한 소스
- 읽기 스케일아웃
- 데이터 처리 수행
이 중 "읽기 스케일아웃"은 데이터를 읽을 때 PRIMARY(마스터)에 집중되는 부담을 SECONDARY(슬레이브)에 분산하는 것이 목적이다. 이 때 주의할 것은, MongoDB에서 데이터 복제는 비동기(Asynchronous)로 진행된다는 것이다.
쓰기에 대한 연산 부담의 분산은 향후 자동샤딩(Autosharding) 부분에서 집중적으로 다루도록 하겠다.
읽기 스케일아웃 방법은 다음과 같다.
우선 Replica Set이 설정되어 있다고 가정한다. Replica Set을 설정하는 방법은 Replication / Replica Set Part 2.를 참고하기 바란다.
PRIMARY 노드의 mongo 쉘에서 "test" db에 다음과 같이 도큐먼트가 입력되어 있다고 하면:
rs0:PRIMARY> db.tmp.find().pretty()
{
"_id" : ObjectId("5336c12e07a320abf7b320e3"),
"username" : "gchoi",
"pwd" : 1234
}
rs.slaveOk() 메써드를 통해 SECONDARY 노드에서 읽기를 허용한다:
rs0:SECONDARY> rs.slaveOk()
rs0:SECONDARY> use test
switched to db test
rs0:SECONDARY> db.tmp.find().pretty()
{
"_id" : ObjectId("5336c12e07a320abf7b320e3"),
"username" : "gchoi",
"pwd" : 1234
}
위와 같이 SECONDARY 노드에서도 읽기가 가능해졌다.
'Data Science > MongoDB' 카테고리의 다른 글
[MongoDB] Replication / Usage of Slaves / Data Processing (0) | 2014.03.29 |
---|---|
[MongoDB] Replication / Replica Sets Part 2. (1) | 2014.03.29 |
[MongoDB] Replication / Replica Sets Part 1. (2) | 2014.03.27 |
[MongoDB] Replication / Master-Slave Replication (0) | 2014.03.26 |
[MongoDB] Administration / Security & Authentication (0) | 2014.03.25 |
Comments