# ysoftman
# 참고 자료
# http://www.mongodb.org/display/DOCS/Replication
# http://en.wikipedia.org/wiki/MongoDB
# http://docs.mongodb.org/manual/faq/developers/#when-does-mongodb-write-updates-to-disk
# Memory Mapped File 이란
# 가상메모리의 한부분으로 파일을 메모리에 매핑하여 사용함
# 따라서 메모리에 맵핑된 파일은 메모리처럼 다룬다.
# MongoDB 에서는 가상메모리 관리를 전적으로 OS 에 의존
# Write 발생시
# 메모리에 먼저 write 후 백그라운드 쓰레드로 1분 주기로 Disk 기록(write back)
# disk 기록 실패 발생시 데이터 유실로 인해 일관성이 깨질 수 있음
# Read 발생시
# 메모리에 로딩해 놓은 상태에서 read 수행
# Mongodb 속도는 인덱스 사이즈와 메모리에 좌우
# 메모리가 가득차서 가상메모리리를 사용할 경우, 데이터 처리속도 급감
# 서버 역할
# master server : 읽기, 쓰기로 사용
# slave server : 읽기로만 사용, master 복제(백업)하고 있음
# arbiter server : master, slave 체크하고, 장애 발생시 slave 하나를 master 로 선정
# 기본적으로 master 만 write 를 수행하기 때문에 master 에 write 부하가 생김
# 이를 해결하기 위해서 데이터를 분산저장하는 auto-sharding 을 이용
# 2가지 Replication 방법 제공
# master-slave
# master 1대에 n대의 slave 가 붙어서 복제한다.
# slave 는 master 의 데이터를 카피하고 읽기전용이나 백업용도로만 사용한다.(not writes)
# replica-set
# mongodb 1.6 이후부터 지원되기 시작했다.
# master-slave 구조에 arbiter(master, slave 의 heartbeat 를 체크하여 master 장애 발생시 자체적으로 slave 중 하나를 master 를 선정) 노드를 추가하여 fail-over 지원
comments:
댓글 쓰기