Tagged: Database

WiredTiger의 Hazard Pointer

  WiredTiger의 Hazard Pointer WiredTiger에서 Hazard Pointer는 메모리 페이지가 퇴거 될 수 있는지 여부를 관리하는 데 사용됩니다. 이 포스팅에서는 Hazard Pointer의 구현 프로세스를 분석합니다. Hazard Pointer Hazard Pointer는 다중 스레드 환경에서 리소스에 대한 잠금없이 액세스...

MongoDB Index #.6 TTL Index

이전 포스트   TTL(Time To Live) Index TTL 인덱스는 도큐먼트가 가진 Date 타입의 필드값을 보고 설정된 TTL Monitor 쓰레드의 삭제 주기에 따라 도큐먼트의 유효기간을 체크하여, 더 이상 유효하지 않은 도큐먼트를 자동으로 삭제하는 기능의 인덱스입니다. TTL...

MongoDB Index #.5 Full Text Search Index

이전 포스트   Full Text Search Index (전문 검색 인덱스) DBMS에서 일반적으로 전문 검색 엔진을 구축할 때 사용하는 알고리즘은 크게 두가지로 나눌수 있습니다. 하나는 형태소 분석(어근 분석, stemming)과 N-Gram 2가지로 나뉘어집니다. 명사와 조사 사이를 띄어쓰기를...

MongoDB Monitoring

  MongoDB Monitoring MongoDB를 모니터링 하는데 있어서 가장 중요한 부분은 메모리를 체크하는 것입니다. 일반적으로 많은 데이터베이스에서 클라이언트가 데이터를 요청하면 디스크에서 메모리에 적재하여 읽기 혹은 변경작업을 진행합니다. 디스크에서 메모리로 페이지를 복사하는 작업은 매우 시간이 오래걸리는 작업이며,...

MongoDB Backup

  MongoDB Backup MongoDB는 기본적으로 레플리카 셋(복제 셋)을 구성하기 때문에 1차적으로 장애에 대한 대응이 빠른편에 속합니다. 프라이머리가 장애가 난 경우 노드간의 투표를 통해 세컨더리 DB를 프라이머리로 선출하여 장애가 발생한 프라이머리를 대체합니다. 하지만 어떤일이 발생할 지는...

MongoDB의 x.509 인증

  MongoDB의 x.509 인증 x.509는 암호학에서 공개키 인증서와 인증 알고리즘의 표준 가운데에서 공개 키 기반의(PKI)의 ITU-T 표준입니다. x.509 시스템에서는 CA는 x.500 규약에 따라 서로 구별되는 공개키를 가진 인증서를 발행합니다. 한 조직의 인증된 Root 인증서는 그...

MongoDB의 인증과 권한

  MongoDB의 인증과 권한 MongoDB 클러스터에서 권한을 활성화하면, 인증이 적용되고 사용자는 역할에 따라 권한이 부여된 작업만 가능합니다.   MongoDB의 인증 매커니즘 커뮤니티 버전은 SCRAM(SCRAM-SHA-1, SCRAM-SHA-256)과 x.509 인증서 인증을 지원합니다. SCRAM이 디폴트로 사용되며 SCRAM-SHA-256는 MongoDB 4.0...

MongoDB Index #.4 Multi key Index

이전 포스팅   멀티 키 인덱스 (Multi key Index) MongoDB는 도큐먼트 기반의 비정규화된 데이터를 저장하는 데이터베이스입니다. 따라서 하나의 도큐먼트가 배열 형태의 데이터를 가지는 경우가 많이 발생하는데, 배열값이 있는 필드를 인덱싱하기 위해서 MongoDB는 각 엘리먼트에 대한 인덱스...

MongoDB Data Modeling

  MongoDB 데이터 모델링 데이터 모델링의 핵심은 애플리케이션의 요구사항, 데이터베이스 엔진의 성능 특성 및 데이터 검색 패턴의 균형을 맞추는 것입니다. 데이터 모델을 설계 할 때 데이터 자체의 고유 구조 뿐만아니라 데이터의 애플리케이션 사용(즉, 데이터 쿼리,...

MongoDB Transaction Management

MongoDB Transaction Management MongoDB의 트랜잭션 MongoDB 4.0이 릴리즈 되면서 Replica Set에서 작동하는 다중 도큐먼트 트랜잭션에 대한 지원을 추가되었습니다. 또, MongoDB 4.2의 릴리스와 함께 다중 도큐먼트 트랜잭션에 대한 지원이 Sharded Cluster로 확장되었습니다. 현재의 MongoDB는 WiredTiger 스토리지...

MongoDB Lock (잠금)

MongoDB Lock 다른 DBMS와 마찬가지로 MongoDB도 멀티 쓰레드의 동시 처리중에 발생할 수 있는 쓰레드간의 충돌문제를 방지하기 위해 Lock을 사용합니다. 간단하게 설명하면 DB의 동시성을 유지하기 위하여 사용하는 메카니즘 입니다. MongoDB가 WiredTiger 스토리지 엔진 아키텍처를 채용하면서 MongoDB의...

MongoDB 네트워크 제한 설정 및 TLS 설정

MongoDB 네트워크 제한 설정 MongoDB도 다른 DB들 처럼 DB단에서 IP 접근을 제어할 수 있습니다. MongoDB의 설정 파일을 보면 net: 으로 시작하는 네트워크 관련 설정을 할 수 있는 부분이 있습니다. /etc/mongod.conf # network interfaces net: port:...

MongoDB Index#.3 Hash Index

MongoDB Index#.3 Hash Index 이전 포스팅   MongoDB의 Hash Index 해시 인덱스는 B-Tree 만큼 범용적이지는 않지만 고유의 특성과 용도를 지닌 인덱스 중에 하나로, 주어진 키 값을 이용하여 목표 레코드의 주소를 직접적으로 계산하는 방식입니다. 따라서 단일...