프로젝트 소개

frankengraphdb는 Rust로 작성된 야심찬, 백지 상태의 속성 그래프 데이터베이스로, 이전에는 독립적으로만 존재했던 고급 기술들을 결합하도록 설계되었습니다. 이는 MVCC 버전 관리, 시간 여행 기록, git 스타일 브랜칭, 복제, 변경 구독이 모두 단일 추가 전용, 콘텐츠 주소 지정, erasure-coded 커밋 스트림(Chronicle이라고 함)의 표현으로 통합되는 통합 아키텍처를 목표로 합니다. 스토리지 엔진(Strata)은 인라인 인접성, 델타 블록, 밀봉된 압축 CSR 실행을 갖춘 온도 계층형 LSM 설계를 사용하여 트랜잭션 쓰기와 분석 스캔의 균형을 맞춥니다. 쿼리 실행(Loom)은 이진 해시 조인, 최악의 경우 최적 다중 조인, 분해된 중간 결과를 포괄하는 통합 FreeJoin 연산자 패밀리를 사용하며, 벡터화 및 morsel 병렬로 실행됩니다. 증분 계산(Ripple)은 DBSP 스타일 Z-집합 대수에 기반하여 재귀 쿼리, 구체화된 뷰, 상시 쿼리, 증분 분석을 지원합니다. 시스템은 결정성을 강조합니다: 동일한 상태와 동일한 쿼리는 바이트 단위로 동일한 결과를 생성하며, 감사 가능한 계획 인증서와 재생 가능한 결정 카드를 제공합니다. 또한 기능 기반 보안 모델(Warden), 트랜잭션 HNSW 벡터 인덱스(Beacon), 대규모 그래프 알고리즘 카탈로그(Prism), 복제(Aegis)를 포함합니다. 프로젝트는 Rust로 작성되었으며, 작업 공간 전체에서 `unsafe`를 금지하고, 세 개의 소유 기반 라이브러리만으로 폐쇄된 종속성 우주를 유지합니다. README는 현재 시제로 작성되어 전체 1.0 목표 상태를 설명하지만, 현재 구현된 것과 향후 작업을 명확히 표시합니다. 마지막 확인 기준으로 CLI는 데이터베이스 생성, GQL 쿼리 실행, 결과 스트리밍, 쓰기 커밋, 리비전 비교, 대량 가져오기를 지원합니다. 브랜치, 그래프 카탈로그 및 일부 고급 기능은 아직 구현되지 않았습니다. 프로젝트는 활발하고 자체 소유이며, 포괄적인 설계 계획 문서가 포함되어 있습니다.