datalevin/datalevin
A simple, fast and versatile Datalog database
해결하는 문제
Datalevin은 SQL RDBMS와 그래프 데이터베이스의 대안이 되는 간단하고 빠르며 내구성이 뛰어난 Datalog 데이터베이스를 제공합니다. SQL의 복잡성을 피하면서 더 선언적이고 조합 가능한 쿼리 언어를 제공하며, 일부 다른 Datalog 구현체에서 볼 수 있는 복잡한 시계열 의미론을 피합니다. 또한 키-값 쌍, 문서, 벡터 임베딩을 하나의 시스템 내에서 처리할 수 있는 유연한 저장 엔진의 필요성을 해결합니다.
작동 방식
Datalevin은 고성능 읽기와 ACID 준수를 보장하기 위해 LMDB(Lightning Memory-Mapped Database)의 파생 버전을 기반으로 구축되었습니다. 복잡한 조인에 대한 실행 계획을 개선하기 위해 비용 기반 쿼리 최적화기를 사용합니다. AI 기능을 위해 llama.cpp를 통합하여 데이터베이스 내 텍스트 생성과 임베딩을 지원하며, SIMD 가속 라이브러리를 사용해 벡터 인덱싱 및 검색을 수행합니다. SQLite와 유사한 임베디드 라이브러리로 배포하거나, Raft 기반 고가용성 네트워크 클라이언트/서버로도 사용할 수 있습니다.
대상 사용자
Datalog의 선언적 특성을 SQL보다 선호하는 개발자, 그래프 쿼리나 귀납적 추론이 필요한 애플리케이션을 개발하는 사람, 그리고 내장된 벡터 검색과 LLM 통합 기능을 갖춘 'AI 네이티브' 데이터베이스를 필요로 하는 AI 개발자에게 적합합니다.
주요 특징
- 다양한 저장 방식: Datalog 쿼리, EDN 데이터용 키-값 저장, 자동 경로 인덱싱이 가능한 문서 저장(.JSON, EDN, Markdown)을 지원합니다.
- AI 네이티브: 내장된 로컬 MCP 서버를 제공하며,
llama.cpp를 통해 데이터베이스 내 임베딩과 텍스트 생성을 지원합니다. - 고성능: 혁신적인 비용 기반 쿼리 최적화기와 비동기 트랜잭션 모드로 쓰기 집약적 워크로드에 최적화되어 있습니다.
- 광범위한 통합: Java, Python, Node.js, Clojure용 라이브러리를 제공하며, Babashka 포드와 호환됩니다.
- 고급 검색: 풀텍스트 검색 엔진과 SIMD 가속 벡터 데이터베이스 기능을 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트