Database (15) 썸네일형 리스트형 MongoDB Task Executor Pool What is Task Executor? TaskExecutor란 MongoDB의 작업 단위를 처리하는 기본 컴포넌트이다. https://github.com/mongodb/mongo/blob/master/src/mongo/executor/README.md#taskexecutorMongoDB 소스코드 내부에서 event와 callback의 개념을 갖고 다음과 같은 기능을 제공한다. 원하는 경우 취소하거나 나중에 예약할 수 있는 기능이 포함된 작업 예약.이벤트를 만들고, 스레드가 이벤트를 구독하도록 하고, 원하는 경우 구독된 스레드에 알림 전송단일 또는 여러 원격 호스트에서 원격 및 종료 명령을 예약What is Task Executor Pool? mongos는 Client로 부터 받은 쿼리 요청을 처리하기.. MongoDB - Collect slow query using Fluentbit and Opensearch 개요MongoDB는 audit log가 아닌 log는 단일 로그 파일로 로그를 남긴다. 이 때, 운영상 중요한 slow query 로그나, error 로그들도 단일 파일에 남기 때문에 이런 로그들의 관리가 어려워지는 경우가 종종 있다. 로그를 수집하여 Opensearch에 적재하는 경우 대량의 로그가 쌓이다보면 로그의 retention을 짧게 조정해야만 하는 경우가 생긴다. slow query나 error로그는 더 긴 기간동안 보고싶지만 하나의 Index에서 관리하다 보니 오래 보지 못하는 경우가 종종 생긴다. 이 글에서는 Fluentbit와 opensearch를 사용해 MongoDB의 로그를 수집하는 방법을 설명한다. 이 때, slow query와 error로그는 별도의 Opensearch Index.. MongoDB Debug Mode로 빌드하기 MongoDB를 사용하고 있는가. 그렇다면 MongoDB에 대해서 얼마나 알고 있는가. MongoDB를 알 수 있는 가장 좋은 방법은 결국 직접 실행해보는 것이다. 이번에는 MongoDB를 Debug Mode로 빌드하고 gdb를 사용해서 디버깅해보는 방법을 알아보자. Overviewgdb를 사용해서 MongoDB를 디버그 모드로 실행해볼 수 있다. Debug Mode로 빌드하기 PrerequisiteServerMongoDB를 빌드, 실행할 수 있는 서버가 필요하다. 각자 알아서 서버를 잘 준비해보도록하자. 스토리지는 100GB 정도면 적절하다. ( 나는 그랬다. ) mongod를 빌드하기 위해서 필요한 최소한의 용량은 13GB라고 하지만, 실제로 수행했을 때에는 약 34GB 정도의 공간을 차지하는 것을 .. WiredTiger 직접 빌드해서 MongoDB 데이터파일 살펴보기 WiredTiger란?WiredTiger란 MongoDB에서 사용하는 기본 스토리지 엔진이다. MongoDB는 3.2 버전부터 WiredTiger를 기본 스토리지 엔진으로 사용하기 시작했으며, 그 전까지는 MMAPv1 이라고 하는 스토리지 엔진을 사용하고 있었다. MMAPv1 스토리지 엔진을 탑재한 MongoDB는 많은 단점이 있었는데, 대표적으로 MMAPv1 스토리지 엔진은 도큐먼트 단위의 동시성 제어를 지원하지 못하고 컬렉션 단위의 동시성 제어를 제공했다. 이로 인해서 동시에 같은 컬렉션에 데이터의 쓰기가 발생하는 경우 처리량이 좋지 않고 병목현상이 발생했다. MongoDB에서는 이러한 단점들 때문에 WiredTiger라는 스토리지 엔진을 인수하고 기본 스토리지 엔진으로 사용하기 시작했다. Wired.. MongoDB Journaling 다른 여타 데이터베이스들과 동일하게 MongoDB는 데이터의 영속성을 보장하기 위해서 Journaling이라는 기법을 사용한다.다른 데이터베이스들에서는 WAL(Write Ahead Log)이라고 불리기도 한다. Journaling은 무엇이고 왜 쓰는지에 대해서 알아보자.Journaling 이란?MongoDB의 공식 홈페이지에 보면 Journaling에 대해서 다음과 같이 설명하고 있다.https://www.mongodb.com/docs/manual/core/journaling/To provide durability in the event of a failure, MongoDB uses write ahead logging to on-disk journal files.MongoDB 서버가 예기치못하게 종료되.. MongoDB Replication IntroMongoDB의 복제에 대해서 알고 있지만 정확하게 어떻게 동작하는지는 잘 모르고 있다. MongoDB에서는 Replica Set의 형태로 데이터베이스 단에서 복제 기능을 제공하기 때문에 별도의 다른 설정 없이 쉽게 복제 구성이 가능하다. 그리고 안정적으로 동작한다. 복제 방식 쪽에서 문제가 발생할 확률이 적기 때문에 트러블 슈팅이나 깊게 공부할 기회가 적다. 따라서 이렇게 체계적인 형태로 정리하여 남기고 싶다. 공부하며 정리한 내용이기 때문에 추상적이고 정확하지 않은 정보가 있을 수 있다.Create Oplog of PrimaryReplica Set에서는 Primary가 쓰기 요청을 받는다. Primary는 DML을 받으면 다음과 같은 일들을 수행한다.DML의 데이터를 메모리상에 업데이트한다... Milvus Architecture https://milvus.io/docs/four_layers.md Milvus는 Cloud native application 으로 Cloud 환경에서 동작하는데 최적화되어있다. 확장성과 유연성을 위해서 control plane 과 data plane을 분리하고 storage layer와 computing layer를 분리했다. 이로 인해서 Milvus는 Access Layer, Coordinator Service, Worker nodes, Storage 총 4개의 컴포넌트로 구성되어 있으며 확장성과 유연성을 갖출 수 있다. Access Layer가장 기본적으로 유저가 Milvus를 사용하기 위해 접근하는 Layer 이다. Milvus 는 Massive Parrallel Processing (MPP) 을.. mongodb 인스턴스 만들기 우분투 기준으로 설명 1. AWS EC2 인스턴스 생성 2. Data 디렉토리로 사용할 100 GB EBS 생성 3. EBS 인스턴스에 마운트 ubuntu@ip-10-0-160-31:~$ sudo file -s /dev/xvdc ubuntu@ip-10-0-160-31:~$ sudo mkfs -t xfs /dev/xvdc ubuntu@ip-10-0-160-31:~$ sudo mkdir /journal ubuntu@ip-10-0-160-31:~$ sudo mount /dev/xvdc /journal ubuntu@ip-10-0-160-31:~$ sudo file -s /dev/xvdc ubuntu@ip-10-0-160-31:~$ sudo lsblk -f 4. 인스턴스에 mongodb 다운로드 https://w.. 이전 1 2 다음