9. MongoDB 주요 구성요소 (2)
1. MongoDB Intro
mongod
- 데이터를 저장, 관리 (복제 정책 적용 가능)
mongos
- client의 요청 받아 환경 설정 서버의 partitioning
정보를 참고해 적절한 데이터 서버로 요청을 포워딩
Config Server
- sharding에 대한 환경 설정 서버
- partitioning에 대한 정보를 관리
10. 기억할 것!
1. MongoDB Intro
mongod
- 데이터를 저장
mongos
- client와 mongod 서버 간 라우터 역할
Config Server
- 메타 정보 관리
17. a.k.a?(5)
MongoDB가 Oracle, MySQL을 대체...?
- 물론 미국에서는 Main Stream으로 진입중
- 하지만 국내에서는.... 아직 오랑캐 DB
- 서로닮아가는 모습이 특징(Oracle ↔ MongoDB)
1I. MongoDB에 대해 알려진 사실들(?)
19. 피할 수 없는 RDBMS와의 비교 – Q&A(1)
대용량 시스템 운영시 RDBMS 대비 주의할 점
- 제일 중요한 건 모니터링! (변수가 더 많음)
- 그 다음 중요한 건 shard key 설정
(효과적인 shard key 설정은 서비스 데이터에
대한 이해가 충분히 있어야 함)
11I. MongoDB를 이용하며 느낀 점
20. 피할 수 없는 RDBMS와의 비교 – Q&A(2)
대용량 시스템 운영시 RDBMS 대비 주의할 점
- 장애시 Contingency Plan이 명확해야 함
- 용량별, 시기별 확장 계획이 있다면 좋음
- collection 별로 데이터를 구분하는 습관필요
11I. MongoDB를 이용하며 느낀 점
21. Script 언어를 알면 유리한 MongoDB
script언어를 알면 MongoDB 활용성 ↑
- 모니터링 shell
- 개인에게 특화된 function 사용
- 다양한 driver 연동
11I. MongoDB를 이용하며 느낀 점
22. MongoDB 를 관리하는 주체는...? (1)
MongoDB를 누가 관리할 것인가?
- 개발자가 이해하기 쉬운 구조
- 하지만 ~DB가 붙고 data가 들어와서 DBA느낌
- 왠지 모니터링도 잘해야 할 것 같으니 서버가이
11I. MongoDB를 이용하며 느낀 점
23. MongoDB 를 관리하는 주체는...? (2)
MongoDB를 누가 관리할 것인가?
- 앞서 열거한 역량을 고루 가진 운영자
- devops 성격을 가진 조직
(서비스 개발자들이 직접 운영도 수행)
→ flow 이해 빠르고, bug fix 더 빠름
11I. MongoDB를 이용하며 느낀 점
30. MongoDB Monitoring(6)
제가 시도해 보고 있는 방법은...
- 브라우저 / 서버 / 데이터베이스에 이르기까지
자바스크립트로 구성된 풀스택 플랫폼
- 실시간 업데이트 가능 (매번 빌드 하거나, 서버를
내렸다 올리지 않아도 자동 갱신)
1V. MongoDB 모니터링
31. MongoDB Monitoring(7)
제가 시도해 보고 있는 방법은...
- MongoDB의 Oplog를 이용한 Monitoring 수행
* oplog : 복제셋 형태로 운영되는 MongoDB
서버간의 동기화를 위해 DB의 변경사항을
저장하는 로그
- app 구성하기에 따라서 visualization이 가능
1V. MongoDB 모니터링
32. MongoDB Monitoring(8)
제가 시도해 보고 있는 방법은...
- 해결책으로서, Meteor는 data변화를 탐지하고
observer를 작동시키기 위해 oplog를 사용한다.
- Meteor는 Primary를 tailing하는 Secondary
처럼 행동함
1V. MongoDB 모니터링
45. WiredTiger
3.0 release 부터 도입된 WiredTiger
mongodb 사용시 엔진 선택 가능
(--storageEngine=“wiredTiger”)
디폴트 설정시에는 MMAPv1 엔진 사용
3.2 release부터는 WiredTiger가 디폴트!
별첨. MongoDB + WiredTiger
49. WiredTiger vs TokuMX – Q&A
쿼리 성능 측면에서 TokuMX가 유리함
(특히 insert, update)
WiredTiger : B-Tree 데이터 구조
TokuMX : Fractal tree Indexing
TokuMX는 도입시에 다양한 측면에서
테스트가 필요함(few reference)
별첨. MongoDB + WiredTiger
50. WiredTiger vs TokuMX – Q&A
쿼리 성능 측면에서 TokuMX가 유리함
(특히 insert, update)
WiredTiger : B-Tree 데이터 구조
TokuMX : Fractal tree Indexing
별첨. MongoDB + WiredTiger
51. WiredTiger vs TokuMX – Q&A
B-tree vs Fractal Tree
별첨. MongoDB + WiredTiger
https://www.bnl.gov/csc/seminars/abstracts/Bender_Presentation.pdf
52. WiredTiger vs TokuMX – Q&A
다만 TokuMX를 써보니...
CPU 과부하 문제가 발생할 수 있으며,
모니터링 & 조절 가능하다면 TokuMX 추천
TokuMX는 도입시에 다양한 측면에서
테스트가 필요함(few reference)
별첨. MongoDB + WiredTiger