Dingo-Store Project는 여러 RAFT 복제 그룹을 기반으로 한 분산 KV 스토리지 시스템으로 스토리지 레이어 계산 오프로드 기능을 제공합니다. 이 프로젝트의 상위 계층 서비스는 SQL을 기반으로 한 DingoDB이며 KV를 기반으로 고주파 서비스 스토리지 기능을 제공 할 수도 있습니다. 프로젝트의 전체 아키텍처는 다음과 같습니다.

Dingo-Store의 Dingodb의 스토리지 클러스터에는 다음과 같은 역할이 포함되어 있습니다.
코디네이터는 RAFT Consensus 프로토콜을 사용하여 전체 DingoDB 클러스터의 중앙 메타 데이터 관리 구성 요소 역할을합니다. 데이터 분포와 DingoDB 클러스터의 전체 토폴로지를 자세히 설명하는 메타 데이터를 유지합니다. DingoDB 시스템의 '뇌'라고하는 경우가 종종 코디네이터는 클러스터의 메타 데이터를 보유 할뿐만 아니라 리소스 할당을 감독합니다. 견고성 및 고 가용성을 위해 코디네이터는 최소 3 개의 노드로 작동합니다. 최적의 배치에는 홀수의 코디네이터 노드가 권장됩니다.
Dingo-Store는 RAFT 프로토콜을 기반으로 다중 반전 메커니즘을 제공하여 데이터 일관성을 보장합니다. 또한 로그 복제, 리더 선거, RAFT 그룹 마이그레이션, 스냅 샷 설치 및 데이터 크기를 기반으로 자동 분할과 같은 기능을 제공합니다. 또한 Dingo-Store는 모든 비즈니스 데이터 모델을 주요 값 데이터 모델에 맵핑하여 원활한 고주파 키 값 읽기 쓰레기 기능을 제공합니다. 예를 들어, 테이블 모델과 인덱스 모델을 전적으로 KV 표현으로 변환합니다.
Dingo-Index는 Dingo-Store의 특수 버전입니다. 분산 데이터 저장 기능을 제공 할뿐만 아니라 고차원 벡터 데이터 및 인덱싱의 실시간 구축을 보장합니다. 고차원 공간에서 광범위한 검색 기능을 제공합니다. 이 시스템은 HNSW 및 IVF와 같은 벡터 인덱스 형식을 지원합니다.
Dingodb를 방문하는 데 오신 것을 환영합니다. Dingodb의 문서는 웹 사이트에 있습니다 : https://dingodb.readthedocs.io. Dingodb에 대한 주요 프로젝트는 다음과 같습니다.
Dingo-Store는 C ++ 및 Java의 하이브리드 프로젝트로, C ++는 분산 저장 및 컴퓨팅 기능을 제공하는 반면 Java 레이어는 기본 API 인터페이스를 제공합니다.
git submodule sync --recursive
git submodule update --init --recursive
mkdir build && cd build
# Release
cmake -DCMAKE_BUILD_TYPE=Release -DTHIRD_PARTY_BUILD_TYPE=Release -DDINGO_BUILD_STATIC=ON -DBUILD_UNIT_TESTS=OFF ..
# Debug
cmake -DCMAKE_BUILD_TYPE=Debug -DTHIRD_PARTY_BUILD_TYPE=Debug -DDINGO_BUILD_STATIC=ON -DBUILD_UNIT_TESTS=ON ..
# RelWithDebInfo
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DTHIRD_PARTY_BUILD_TYPE=RelWithDebInfo -DDINGO_BUILD_STATIC=ON -DBUILD_UNIT_TESTS=ON ..
make cd java && mvn clean package - DskipTests 자세한 정보는 다음을 참조하십시오 : 기여 가이드
Dingo-Store는 Apache License 버전 2.0 에서 라이센스가 부여 된 오픈 소스 프로젝트이며 커뮤니티의 피드백을 환영합니다. 지원이나 제안은 당사에 문의하십시오.
