728x90
반응형

rocksdb 8

B ε-tree (Be-tree)

개요B ε-tree(Bε-tree 또는 Be-tree)는 디스크 기반 대규모 데이터베이스 시스템에서 쓰기 성능을 극적으로 향상시키기 위해 설계된 B-트리 기반의 자료구조입니다. 기존 B-트리가 랜덤 쓰기 위주로 설계되어 I/O 병목이 발생하는 데 비해, Be-tree는 각 노드에 **쓰기 버퍼(write buffer)**를 도입하여 **일괄 처리(batch write)**를 가능하게 함으로써 높은 쓰기 처리량을 달성합니다. RocksDB, TokuDB, WiredTiger 등의 NoSQL 및 스토리지 엔진에서 그 원리가 채택되고 있습니다.1. 개념 및 정의 항목 내용 비고 정의노드별 쓰기 버퍼를 활용해 쓰기 작업을 일괄 처리하는 계층적 B-트리 구조“B epsilon tree”로도 표기목적디스크 기반..

Topic 2026.02.10

LZ4

개요LZ4는 매우 빠른 압축 및 복원 속도를 제공하는 무손실 데이터 압축 알고리즘으로, LZ77 계열 알고리즘 중 하나입니다. 낮은 압축률 대신 초고속 성능을 제공하며, 로그 수집, 데이터베이스, 게임 엔진, 스트리밍 등 성능 중심의 환경에서 널리 사용됩니다. 프랑스의 Yann Collet이 개발하였으며, 오픈소스로 배포되고 있습니다.1. 개념 및 정의 항목 설명 정의빠른 속도를 중시하는 경량 무손실 압축 알고리즘목적데이터의 빠른 전송과 실시간 처리를 위한 고속 압축필요성느린 압축 알고리즘으로 인한 병목 제거압축과 복원 모두 매우 빠르며, 특히 압축 해제 속도는 업계 최고 수준2. 특징특징설명비교초고속 속도복원 속도 1GB/s 이상 가능zlib보다 최대 10배 빠름낮은 압축률속도 중심이므로 압축 효율은..

Topic 2026.01.28

RocksDB

개요RocksDB는 Facebook에서 LevelDB를 기반으로 개발한 고성능 임베디드(embedded) 키-값(key-value) 저장 엔진입니다. 디스크 기반의 LSM(Log-Structured Merge) 트리 구조를 사용하여 높은 쓰기 성능과 낮은 지연(latency)을 보장하며, 대규모 스토리지 시스템과 성능 민감한 애플리케이션에 최적화되어 있습니다.1. 개념 및 정의 항목 설명 정의LSM 트리 기반의 고성능 키-값 저장 엔진목적쓰기 집약적인 워크로드의 저장 효율성 극대화필요성대용량 데이터를 빠르고 안정적으로 처리하는 엔진 필요RocksDB는 로컬 스토리지에서 높은 IOPS를 제공하며 다양한 NoSQL 시스템의 백엔드로 채택되고 있습니다.2. 특징특징설명비교LSM 기반 구조쓰기 버퍼 → SST..

Topic 2026.01.27

Kafka Streams

개요Kafka Streams는 Apache Kafka에서 제공하는 스트림 프로세싱 라이브러리로, 실시간 데이터 파이프라인 및 이벤트 기반 애플리케이션을 개발하기 위해 설계되었다. 분산 스트림 프로세싱 프레임워크를 직접 구축할 필요 없이, 단일 애플리케이션 수준에서 고성능의 데이터 변환, 집계, 윈도우 연산 등을 수행할 수 있다.1. 개념 및 정의 항목 내용 비교 개념Kafka 토픽에서 데이터를 읽고, 실시간으로 처리 후 다시 토픽으로 내보내는 라이브러리Apache Flink, Spark Streaming 대비 경량목적실시간 데이터 변환 및 이벤트 처리마이크로서비스 통합 용이필요성대규모 스트리밍 데이터의 저지연 처리로그, IoT, 금융 트랜잭션 등2. 특징특징설명비교경량 구조Kafka 클라이언트 라이브..

Topic 2025.11.12

NVMe-KVS (Key-Value Command Set)

개요데이터가 폭발적으로 증가하고 다양한 형태로 저장되는 시대, 기존의 블록 기반 스토리지 인터페이스는 유연성과 성능 측면에서 한계를 드러내고 있습니다. 특히 객체지향적 접근 방식이나 NoSQL 기반의 워크로드가 증가함에 따라, Key-Value 기반 스토리지 접근 방식이 각광받고 있으며, 이를 스토리지 레벨에서 직접 지원하기 위한 기술이 바로 **NVMe-KVS (Key-Value Command Set)**입니다. 본 글에서는 NVMe-KVS의 개념, 구조, 기술적 장점 및 활용 사례를 심층적으로 다룹니다.1. 개념 및 정의NVMe-KVS는 Non-Volatile Memory Express(NVMe) 프로토콜 상에서 **Key-Value 형태로 데이터를 읽고 쓰는 명령어 집합(Command Set)**을..

Topic 2025.08.23

SkipListMap

개요SkipListMap은 Skip List 자료구조를 기반으로 구현된 정렬된 Key-Value Map입니다. 트리 기반 구조(B-tree, AVL, Red-Black Tree)와 달리 난수 기반의 링크드 리스트 계층 구조를 활용하여, **검색, 삽입, 삭제 작업을 평균 O(log n)**의 성능으로 수행할 수 있으며, Java의 ConcurrentSkipListMap, Redis, RocksDB 등에서 활용됩니다.1. 개념 및 정의SkipListMap은 기본적으로 Skip List라는 자료구조를 기반으로 구성된 맵(Map)으로, Key를 기준으로 정렬된 상태를 유지하며, 중복되지 않는 키와 연관된 값을 저장합니다. Skip List는 여러 층의 연결 리스트를 사용하여 빠른 탐색을 가능하게 하는 구조이며..

Topic 2025.05.18

LSM-Tree (Log-Structured Merge-Tree)

개요LSM-Tree(Log-Structured Merge-Tree)는 디스크 기반 저장 장치에서 쓰기(write) 성능을 극대화하기 위해 설계된 트리 기반 자료구조입니다. RocksDB, LevelDB, Cassandra 등 다양한 NoSQL·NewSQL 시스템에서 채택되고 있으며, 로그 형태의 쓰기 버퍼와 다단계 정렬·병합(Merge) 구조를 활용하여 쓰기 집약형 워크로드에 특화된 성능을 제공합니다.1. 개념 및 정의 항목 설명 정의LSM-Tree는 메모리 상에 로그처럼 데이터를 기록한 후, 주기적으로 디스크에 정렬된 트리 형태로 병합하는 계층형 트리 아키텍처입니다.목적랜덤 쓰기를 순차 쓰기로 변환하여 디스크 I/O 병목을 해소함필요성기존 B-Tree 계열은 쓰기 성능 한계 및 디스크 IOPS 문제 ..

Topic 2025.05.16

Skip List

개요Skip List는 연결 리스트(linked list)에 다층 구조를 추가하여 이진 탐색 트리와 유사한 빠른 탐색, 삽입, 삭제를 지원하는 자료구조입니다. 평균적으로 O(log n) 시간 복잡도를 제공하며, 균형 유지가 복잡한 트리 구조 대신 간단한 구조로 고성능을 실현할 수 있어 데이터베이스, 인메모리 캐시 시스템 등 다양한 분야에서 활용됩니다.1. 개념 및 정의항목내용정의다층 연결 리스트를 사용하여 탐색 성능을 향상시키는 확률적(probabilistic) 자료구조목적이진 탐색 트리 수준의 탐색 속도 확보 및 구현 단순화필요성정렬된 데이터에서 빠른 검색, 삽입, 삭제를 지원하고 트리 리밸런싱 복잡성 감소Skip List는 간결한 구조와 높은 효율성으로 현대 시스템 설계에 널리 사용되고 있습니다.2...

Topic 2025.05.03
728x90
반응형