MongoDB
-
MongoDB Oplog 와 Journaling 차이MongoDB 2021. 4. 28. 14:04
MongoDB에서 Oplog와 Journaling이라는 개념이 있습니다. 어느날 엇?! 이게 뭐였더라 둘다 sync를 맞춰주는 녀석이었던 같은데 확실하게 어떤 차이가있지?? 라고 헷갈리기 시작해서 정리하게되었습니다. 1. Oplog (operations log) 정확한 이름은 Replica Set Oplog입니다. 네이밍에서 느껴지듯이 이 개념은 레플리카에 속하는 개념입니다. Oplog는 Replica set의 데이터를 동기화를 위해 내부에서 발생하는 모든 동작의 로그를 기록한 것 입니다. Replica set의 개념을 제대로 모르는 분들을 위해 간략하게 설명! MongoDB는 HA(High Availability)를 위해 클러스터를 구축하는 개념이 Replica set 입니다. 이 클러스터를 구축하기 ..
-
MongoDB Shard 개수에 따른 퍼포먼스 확인하기MongoDB 2021. 4. 26. 20:49
오늘은 MongoDB 샤드란 무엇인지 그리고 샤드 수에 따른 퍼포먼스 변화를 확인해보겠습니다. 개념 Sharding 이란? Sharding은 데이터를 여러 몽고디비 서버에서 분산해서 저장하고 처리할 수 있도록 만들어주는 기술입니다. 가끔 replica와 sharding의 목적을 혼동하시는분이 계신데 replica는 고가용성을 위한 기술이며 샤딩은 분산처리를 위한 기술입니다. 그래서 몽고디비의 고가용성과 대용량 분산 처리를 하려면 replica와 sharding이 모두 필요하게 됩니다. 단순히 장비의 하드웨어 부품을 스펙업하는 스케일업(scale-up)으로도 성능을 향상 시킬 수 있지만, 투자 대비 효율이 떨어진다고 생각을합니다. 하지만 스케일아웃(scale-out)을 위해 수평적 샤딩을 한다면, 더 저렴..
-
MongoDB 초간단 log 관리하기MongoDB 2021. 4. 26. 20:40
MongoDB 3.0 부터 configuration 으로 logrotate 옵션을 지원하지만! 이것만으로도는 로그관리에 부족한 점이 많습니다. https://docs.mongodb.com/manual/reference/configuration-options/#systemLog.logRotate Configuration File Options — MongoDB Manual In some instances, such as when running in a container, the database can have memory constraints that are lower than the total system memory. In such instances, this memory limit, rather th..
-
MongoDB 스키마 디자인 패턴MongoDB 2020. 8. 20. 18:40
데이터 모델링이 중요한 이유 1. Hardware 하드웨어의 자원은 무한하지 않기 때문입니다. 자원을 최대한 잘 활용할 수 있도록 모델링이 필요합니다. 2. MongoDB 몽고디비의 단일 다큐먼트 16MB 이상으로 저장할 수 없으며 WiredTiger 엔진은 다큐먼트의 정보를 읽기 위해서 전체 문서를 메모리에 올린 후 작업을 하기 때문에 다큐먼트에 무턱대고 때려박아(?) 놓는다면 메모리 이슈가 발생합니다. 3. Network 네트워크 속도에 대한 물리적한계가 존재합니다. 전 세계적으로 배포되는 애플리케이션의 모델링은 서비스 품질을 저하시키지 않고 데이터에 접근할 수 있도록 구성되어야 합니다. 디자인 패턴 (각 패턴별 자세한 설명과 예를 확인하시려면 더보기를 클릭해주세요) Attribute Pattern ..