분류 전체보기

3장. 저장소와 검색
개요데이베이스가 데이터를 저장하는 방법과 데이터를 요청했을 때 다시 찾을 수 있는 방법을 확인한다.로그 구조 저장소 엔진과 페이지 지향 저장소 엔진에 대해서 알아본다. 데이터베이스를 강력하게 만드는 데이터 구조색인(Index)은 데이터베이스에서 특정 키의 값을 효율적으로 찾을 수 있는 방법이다.색인은 기본 데이터에서 파생된 추가적인 구조이기 때 쓰기 과정에서 오버헤드가 주로 발생한다. (데이터를 쓸 때마다 색인도 함께 갱신해야 하기 때문이다.)해시 색인데이터 파일에 오프셋을 추가하는 전략키/값 저장소에서 가장 간단한 색인 전략은 키를 데이터 파일의 바이트 오프셋에 매핑해 인메모리 해시 맵을 유지하는 전략이다.키/값 쌍이 추가될 때마다 방금 기록한 데이터의 오프셋을 반영하고 맵을 갱신한다.디스크 공간이 유..

2장. 데이터 모델과 질의 언어
개요데이터 저장과 질의를 위한 다양한 범용 데이터 모델을 알아보자.관계형 모델, 문서 모델, 그래프 기반 모델을 비교해보자.관계형 모델과 문서 모델관계형 모델: 데이터가 관계(테이블)로 구성되고 각 관계는 순서 없는 튜플(Row)의 모음관계형 모델은 관계형 데이터베이스(RDBMS)로 발전했으며 정규화된 구조를 데이터를 저장하고 질의할 때 사용되었다.관계형 모델의 목표는 정리된 인터페이스 뒤로 구현 세부사항을 숨기는 것이다.NoSQL의 탄생NoSQL의 등장 배경은 다음과 같다.대규모 데이터셋이나 쓰기 연산에 대한 처리량을 관계형 데이터베이스보다 쉽게 도달할 수 있게하는 확장성의 필요도관계형 모델에서 지원하지 않는 특수 질의 동작제한적인 관계형 스키마에 비해 동적이고 표현력이 풍부한 데이터 모델에 대한 바람..

Kafka: Exactly-Once Semantic (w/ Transaction_)
개요Kafka에서 Exactly Once Semantic을 보장하는 방법에 대해서 알아본다. 조건Kafka에서 Exactly-Once Semantic (이하 EoS)를 보장하기 위해선 2가지 조건이 필수적이다Idempotence ProducerTransaction API Idempotence ProducerIdempotence Producer는 이름에서 알 수 있듯, 메세지를 멱등하게 보낼 수 있는 프로듀서를 의미한다.멱등하게 보냄은 메세지가 중복없이 전송되는 것을 의미한다. 하지만 멱등함이 메세지를 정확히 한 번 전송함을 의미하는 것은 아니다. Idempotence Producer가 활성화되면 프로듀서는 숫자로 구성된 PID를 할당받는다. Idempotence Producer가 전송하는 메세지에는 파티..

EKS 클러스터에서 nGrinder 사용하기
개요쿠버네티스(EKS Cluster) 환경에 nGrinder를 설치하고 API 서버에 부하를 넣어보는 방법에 대해서 알아본다. nGrindernGrinder는 오픈 소스 기반의 분산 성능 테스트 도구이다.nGrinder는 Controller와 Agent로 구성된다.Controller: 테스트 계획 설정, Agent 관리, 모니터링, 테스트 결과 및 분석과 같이 관리자의 역할을 담당하는 컴포넌트Agent: 테스트 스크립트 실행, 분산 처리, 실시간 데이터 전송을 담당하는 실제 명령을 수행하는 컴포넌트따라서, nGrinder를 이용해 API 서버에 부하를 넣기 위해선 Controller, Agent를 모두 설치해야한다. nGrinder ControllernGrinder Controller를 배포하기 위한 D..

Kafka Connect: Incremental Cooperative Rebalancing
서론Kafka Connect Worker는 컨테이너 기반(e.g Kubernetes Pod)이나 물리적/가상 머신(e.g EC2)에서 일반적으로 사용된다.이러한 환경에서는 Rolling Restart, Scale-Up/Down, Scale-In/Out 등과 같이 Worker Group의 상태 변경으로 인해 리밸런싱이 자주 발생할 수 있다. Kafka 2.3.0 이전에는 리밸런싱 시 모든 Task와 Connector가 모두 Revoke된 후 다시 Assign되는 방식(Eager Rebalance)이 적용됐다.이는 리밸런싱 과정에서 전체 작업이 중단되는 “Stop-The-World” 현상을 야기했다. 이를 해결하기 위해 **KIP-415: Incremental Cooperative Rebalancing이 제..