# UnisonDB - 로그 기반 실시간 데이터베이스

> Clean Markdown view of GeekNews topic #24479. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24479](https://news.hada.io/topic?id=24479)
- GeekNews Markdown: [https://news.hada.io/topic/24479.md](https://news.hada.io/topic/24479.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-11-20T09:31:01+09:00
- Updated: 2025-11-20T09:31:01+09:00
- Original source: [github.com/ankur-anand](https://github.com/ankur-anand/unisondb)
- Points: 16
- Comments: 0

## Summary

**UnisonDB**는 엣지 AI와 IoT 환경에서 흔히 부딪히는 **데이터 일관성과 실시간 복제 문제**를 정면으로 다루는 **로그 네이티브 실시간 데이터베이스**입니다. **Append-only 로그와 B+Tree 엔진**을 결합해 빠른 쓰기와 효율적 범위 읽기를 동시에 구현하고, **WAL 기반 스트리밍 복제**로 수백 노드 간 서브초 단위 동기화를 보장합니다. 기존의 **etcd, Kafka, LMDB**가 각각 일관성·스트리밍·로컬 성능 중 하나에 치우쳤다면, UnisonDB는 이를 하나의 **단일 로그 중심 구조**로 통합해 엣지 퍼스트 아키텍처에 최적화했습니다. 분산 시스템을 직접 다루는 개발자라면 “저장과 스트리밍의 경계가 사라진다”는 이 접근이 꽤 매력적으로 느껴질 듯합니다.

## Topic Body

- **AI와 Edge 컴퓨팅을 위한 메시지 버스**처럼 동작하는 고성능 동기화 엔진  
- **로그 네이티브(log-native) 실시간 데이터베이스** : 엣지 AI와 엣지 컴퓨팅 환경의 **데이터 일관성과 실시간 반응성 문제**를 해결하기 위해 설계  
- **B+Tree 스토리지 엔진**과 **WAL(Write-Ahead Logging)** 기반 스트리밍 복제를 결합해, 수백 개 노드 간 **서브초 단위 복제**와 **강한 일관성**을 보장  
- **멀티모델 구조**로 Key-Value, Wide-Column, Large Object(LOB) 저장 지원  
- **ZeroMQ 기반 실시간 알림**으로 밀리초 단위 변경 감지 제공  
- **엣지 퍼스트(Edge-First) 설계**로 로컬 우선 아키텍처에 최적화  
- **네임스페이스 격리**를 통한 멀티테넌시 지원  
- 기존 시스템과의 차이:  
  - **LMDB/BoltDB**는 빠른 로컬 저장소지만 복제 불가  
  - **etcd/Consul**은 일관성은 높지만 확장성 제한  
  - **Kafka/NATS**는 스트리밍에 강하지만 쿼리 불가  
  - UnisonDB는 이 간극을 메우며, **저장과 스트리밍을 통합한 단일 로그 중심 구조** 제공  
- **핵심 아키텍처 3계층 구조**  
  - 1\. **WALFS(Write-Ahead Log File System)*** – mmap 기반 로그 파일 시스템, 대규모 읽기/쓰기 최적화  
    - 세그먼트 단위 로그 구조로, **순차 쓰기와 랜덤 읽기 모두 최적화**  
    - **제로카피 읽기**, **오프셋 기반 탐색**, **실시간 tailing** 지원  
    - 여러 복제 노드가 동시에 읽을 수 있는 **병렬 리더 구조**   
  - 2\. **Engine** – WAL, MemTable, B-Tree를 결합한 하이브리드 스토리지  
    - WALFS를 기반으로 **MemTable(스킵리스트)** 와 **B-Tree 인덱스**를 조합  
    - **FlatBuffers**를 사용해 복제 시 역직렬화 없이 전송 가능  
    - **원자적 멀티키 트랜잭션** 지원, 커밋 단위로 일관성 보장  
    - **LOB(대용량 객체)** 를 트랜잭션 단위로 청크 처리 및 스트리밍 가능  
    - **Wide-Column 모델**로 부분 컬럼 업데이트 및 동적 스키마 확장 지원  
  - 3\. **Replication** – WAL 기반 스트리밍 복제, 오프셋 추적 기능 포함  
    - **WAL 기반 스트리밍 복제**로, 팔로워가 오프셋을 추적하며 실시간 동기화  
    - **FlatBuffer 로그 레코드**를 사용해 자체 기술된 데이터 구조 유지  
    - **배치 전송**으로 효율적 스트리밍 구현  
    - **BoltDB 대비 약 2배 빠른 읽기 성능**, 일관성 중심 설계  
- **UnisonDB의 해결 방식**  
  - **Append-only 로그 + B-Tree** 결합으로 고속 쓰기와 효율적 범위 읽기 제공  
  - **트랜잭션 기반 멀티키 복제** 및 **컬럼 인식 동기화** 지원  
  - **gRPC WAL 스트리밍 + B-Tree 스냅샷**으로 내장 복제 수행  
  - **압축(compaction) 없는 구조**로 예측 가능한 지연과 높은 처리량 확보  
- **라이선스**: Apache License 2.0  
- **개발 언어**: Go  
- **적합한 활용 분야**: 엣지 AI, 분산 IoT, 로컬 우선 데이터 처리, 실시간 분석 시스템

## Comments



_No public comments on this page._
