프로젝트 소개

Aerospike Graph Service(AGS)는 WebSocket을 통해 Apache TinkerPop 3.7.x Gremlin 이어 프로토콜을 구현하고 그래프 데이터를 Aerospike 클러스터에 저장하는 JVM 기반 그래프 데이터베이스 엔진입니다. 정점과 간선은 인접성 정보를 함께 배치하는 압축된 온디스크 레이아웃에 보관되어, 대부분의 순회 홉이 단일 Aerospike 읽기로 해결될 수 있습니다. 이 서비스는 Gremlin 순회를 효율적인 Aerospike 작업으로 변환하고, Aerospike 특화 쿼리 계획 최적화를 적용하며, 결과를 모든 TinkerPop 호환 드라이버(gremlin-python, gremlin-javascript, Java용 gremlin-driver 등)로 스트리밍합니다. 주요 기능은 다음과 같습니다: - 대규모에서도 한 자릿수 밀리초의 p99를 제공하는 저지연 OLTP 그래프 쿼리. - 전체 그래프에서 GraphComputer 작업(PageRank, 연결 요소, 사용자 정의 VertexProgram)을 실행하기 위한 Spark 기반 OLAP 모듈. - CSV, GraphML 또는 GraphSON 파일을 Aerospike 데이터 모델로 직접 수집하여 빠른 초기 로드를 지원하는 Spark 기반 벌크 로더. - Aerospike에서 상속된 수평 확장, 강한 일관성, 예측 가능한 1밀리초 미만 읽기, 하이브리드 메모리 아키텍처, 데이터센터 간 복제. - 표준 Gremlin 인터페이스; 사용자 정의 쿼리 언어나 드라이버가 필요하지 않습니다. 배포는 Docker 친화적입니다. graph-service-examples 디렉터리의 docker-compose 파일로 AGS, Aerospike 데이터베이스, Zipkin을 함께 시작할 수 있습니다. 기존 Aerospike 클러스터의 경우 클러스터의 호스트, 포트, 네임스페이스를 가리키는 환경 변수로 AGS 테이너를 시작할 수 있습니다. 마운트된 속성 파일을 통해 구성을 제공할 수도 있습니다. 소스에서 빌드하려면 JDK 17(코드는 Java 11 바이트코드로 컴파일), Maven 3.9+, Buildx가 포함된 Docker, 그리고 도우미 build-docker 스크립트를 위한 python_on_whales가 있는 Python 3가 필요합니다. 이 프로젝트는 OLTP 엔진, Spark 벌크 로더, Spark OLAP 모듈, 공유 API를 포괄하는 다중 모듈 Maven 빌드입니다. AGS는 Apache License 2.0에 따라 릴리스되며, Aerospike와 Apache TinkerPop/Spark에 대한 상표 고지를 포함합니다.