본문 바로가기

전체 글

(33)
MongoDB Replication MongoDB에서는 높은 가용성과 이중화를 위한 기능입니다. 하나의 Primary와 Primary의 Write를 Replication하는 여러개의 Secondary로 구성되어 있습니다. Primary에 문제가 생길 때 Primary 과반수 선출 기능을 통해 자동으로 Secondary 중 하나를 Primary로 승격시켜서 가용성을 제공합니다. Arbiter 과반수 노드를 만들기 위해 홀수 노드를 배포하는게 부담스럽다면 데이터를 가지고 있지 않고, Primary 선출 기능만 가지고 있는 Arbiter를 사용할 수도 있습니다. Hidden Member 데이터는 replication되지만, client에게 보이지 않는 멤버입니다. 백업 용도로 사용하는게 좋습니다. Delayed Member x시간만큼 이전 데이..
Redis 궁금했던것들 정리 Redis는 왜 빠른가? Redis의 경우 내부적으로 해시 테이블에 key/value를 저장하고 있습니다. 인메모리에서 해시테이블을 사용해 key/value를 사용하기 때문에 매우 빠릅니다. 또, 내부적으로 명령어를 처리할 때는 싱글스레드를 사용하지만, 클라이언트 I/O에는 버전 6부터 멀티스레드를 사용하기 때문에 클라이언트 I/O 처리에서 효율적입니다. 키는 어떻게 관리되는가? Redis에서 데이터를 집어넣을 때 TTL을 줄 수 있습니다. TTL의 경우 만료시간이 지나더라도 바로 만료되지 않고, 아래 정책에 따라서 만료처리가 됩니다. 1. 만료된 키에 접근하면 그 때 삭제 2. 뒷단에서 TTL이 있는 key들을 Redis가 체크하면서 TTL이 지났다면 삭제 따라서, 만료된 키라도 일정시간동안 메모리에 ..
카프카는 어떻게 설계되었는가? 이벤트 스트리밍 플랫폼 카프카 카프카는 이벤트 스트리밍 플랫폼입니다. 이벤트 스트리밍 플랫폼으로써 카프카는 아래와 같은 특징을 가집니다. 이벤트 데이터를 카프카에 쓰고(publish), 읽는(subscribe)것이 가능합니다. 배치성 데이터도 지원합니다. 메시징 시스템 같은 사용케이스를 다루기 위한 낮은 지연시간과 빠른 속도 지원 대용량 이벤트 메시지들을 원하는 만큼 저장 가능 메인 컨셉과 용어 event record 이벤트 레코드는 비지니스에서 어떤 일이 발생했을 때의 값을 가지고 있습니다. 카프카에서는 이벤트 형태로 데이터를 읽고 쓰게 됩니다. 이벤트는 키, 값, 타임스탬프와 기타 메타데이터를 가지고 있습니다. 이벤트 형태 키: "앨리스" 값: "Bob에게 2만원 송금" 타임스탬프: "2020년 7월..