ankur-anand/unisondb

A streaming multimodal database for Edge AI, and Edge Computing.

UnisonDB – 엣지 AI를 위한 로그 기반 실시간 데이터베이스

무엇인가요 – UnisonDB는 Go로 작성된 오픈소스 다중 모델 데이터베이스로, 쓰기 전용 로그(WAL)를 주 데이터 소스로 간주합니다. 모든 쓰기 작업은 B+ 트리 저장소에 영구 저장되며 동시에 gRPC 또는 객체 스토어 기반 복제를 통해 무제한의 복제본으로 즉시 스트리밍됩니다. 이 설계는 데이터를 계산과 가까이 유지하고, 수천 개의 노드에 밀리초 이내로 전파해야 하는 엣지 우선 워크로드를 대상으로 합니다.

핵심 아이디어

  • 로그 기반: WAL(구현은 WALFS 서브시스템)은 메모리 매핑되고 세그먼트화되어 실시간으로 읽을 수 있습니다. 복제본은 로그를 직접 따라가므로 저장된 데이터와 복제 스트림이 동일합니다.
  • Raft 기반 쓰기: 선택적 쿼럼 쓰기로 주 노드에 강한 일관성과 내구성을 제공합니다.
  • Blob 팬아웃: WAL 세그먼트를 S3/MinIO/GCS/Azure에 한 번 업로드하면, 무제한의 엣지 리더가 이를 풀링할 수 있어 각 복제본에 지속적인 gRPC 연결이 필요하지 않습니다.
  • 다중 모델 API: 키-값, 와이드 컬럼, 대용량 객체(LOB) 접근 패턴이 단일 HTTP/JSON 인터페이스를 통해 모두 지원됩니다.
  • Zero-mq 알림: 사이드카 프로세스가 반응형 애플리케이션을 위해 밀리초 미만의 지연으로 변경 이벤트를 전송합니다.

AI/엣지 컴퓨팅에서의 중요성

  • 엣지에서의 AI 추론 파이프라인은 모델 버전, 특징 캐시, 센서 읽기값과 같은 상태를 필요로 하며, 이는 쿼리 가능하고 즉시 다른 장치로 브로드캐스트되어야 합니다.
  • 전통적인 스택은 데이터베이스 + 메시지 브로커(Kafka, Pub/Sub, CDC)를 결합하여 운영 복잡성과 지연을 증가시킵니다. UnisonDB는 이 두 계층을 하나의 엔진으로 통합합니다.
  • 복제 모델은 10,000개 이상의 노드를 수초 내에 확장 가능하여 IoT 장치 펌 fleet, 자율 로봇, 분산 추론 서비스에 적합합니다.

주요 기능 (리포지토리에 기재됨)

기능 제공하는 기능
고가용성 쓰기 주 노드에서 Raft 쿼럼, ISR 스타일 복제
스트리밍 복제 WAL을 gRPC 또는 객체 스토어 기반 팬아웃
Blob 팬아웃 S3/MinIO 등에 불변 WAL 세그먼트 게시; 무제한 리더
다중 모델 스토리지 키-값, 와이드 컬럼, 대용량 객체
실시간 알림 ZeroMQ 사이드카, 밀리초 미만 지연
내구성 있는 B+ 트리 엔진 BoltDB 또는 LMDB 백엔드를 통한 ACID 준수 저장
네임스페이스 격리 논리적 네임스페이스를 통한 멀티테넌트 지원

성능 요약 (README에서)

  • 처리량: Apple M2 Pro에서 1KB 값에 대해 초당 60k–80k SET 작업을 수행하며, 10,000개 이상의 노드로 전파.
  • 지연: 밀리초 미만의 변경 알림; 두 홉 토폴로지에서 복제 지연은 수백 밀리초 수준.
  • 벤치마크: Redis 호환 벤치마크에서 GETSET 작업 모두 BadgerDB, BoltDB, LMDB와 경쟁 가능.

빠른 시작

git clone https://github.com/ankur-anand/unisondb && cd unisondb
go build -o unisondb ./cmd/unisondb
./unisondb server --config config.toml   # 주 서버 시작
curl -X PUT http://localhost:4000/api/v1/default/kv/mykey \
  -H "Content-Type: application/json" \
  -d '{"value":"bXl2YWx1ZQ=="}'

문서 및 생태계

  • 시작 가이드, 구성 참조, 아키텍처 개요, HTTP API 문서, 백업/복원, 배포 토폴로지 등은 모두 unisondb.io에서 호스팅됩니다.
  • 플러그인 가능한 스토리지 백엔드: BoltDB (단일 파일) 또는 LMDB (메모리 매핑)를 B+ 트리 계층에 사용 가능.
  • MinIO를 통한 예제 복제 (cmd/examples/blobstore-minio).

상태알파 단계; 활성 CI(고 테스트, 커버리지), GitHub 위키에 오픈 로드맵 존재.

누가 사용할 수 있나요

  • 공유되고 일관된 상태가 필요한 엣지 장치에 AI 추론 모델을 배포하는 팀.
  • 별도의 메시지 브로커 없이 내구성 있는 저장소와 실시간 이벤트 스트림이 필요한 애플리케이션.
  • 분산 센서 네트워크, 로봇 펌, 또는 상태 변경의 저지연 팬아웃이 중요한 모든 시스템.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트