피드로 돌아가기
I built a Graph database to catch money launderers. Here's what I actually learned.
Dev.toDev.to
Database

Graph와 Vector Search를 하나로, Binary Hypervector 기반 통합 DB 설계

I built a Graph database to catch money launderers. Here's what I actually learned.

Pragadeesh2026년 4월 7일7advanced

Context

기존 AML 시스템은 관계 추적용 Graph DB와 이름 유사도 분석용 Vector DB를 각각 운영하는 2-컴포넌트 구조. 두 시스템 간 데이터 동기화 및 서비스 레이어의 복잡한 결합 과정 필요. 단일 시스템으로 두 기능을 네이티브하게 처리하는 통합 구조의 부재.

Technical Solution

  • Vector Symbolic Architecture를 도입하여 엔티티와 관계를 고차원 이진 벡터(Binary Hypervector)로 표현하는 설계
  • XOR 비트 연산을 통해 인덱스 순회나 쿼리 플래닝 없이 O(1) 복잡도로 관계를 추적하는 체인 트래버설 구현
  • HNSW 인덱스와 메모리 맵 파일 기반의 해시 테이블을 결합하여 그래프 탐색과 벡터 유사도 검색을 단일 데이터 구조로 통합
  • MiniLM 모델로 생성한 384차원 float 임베딩을 결정론적 랜덤 행렬을 통해 10,048비트 이진 벡터로 투영하는 파이프라인 구축
  • Foreign Function and Memory API를 활용하여 핫패스를 JVM Heap 외부로 처리함으로써 GC 압력을 제거한 오프힙(Off-heap) 메모리 구조 설계
  • Memory-mapped WAL(Write-Ahead Log)을 적용하여 서버 재시작 시 대규모 엣지 데이터를 빠르게 복구하는 영속성 레이어 구현

Impact

  • 1.87M 엔티티 기준 4-hop 소유권 체인 트래버설 평균 3.65ms 달성
  • 전체 데이터셋 대상 퍼지 엔티티 스크리닝 886ms 소요
  • 쉘 컴퍼니 리스크 스코어링 290ms ~ 1748ms 기록
  • 서버 시작 시간 약 5초 및 오프힙 메모리 사용량 약 4.5GB 유지

Key Takeaway

데이터의 표현 방식을 고차원 벡터로 통합함으로써 서로 다른 성격의 쿼리(관계 탐색 및 유사도 검색)를 단일 연산 체계로 추상화하여 아키텍처 복잡도를 획기적으로 낮춘 사례.


관계 추적과 유사도 검색이 동시에 빈번한 도메인에서 인덱스 오버헤드 감소를 위해 Vector Symbolic Architecture 도입 검토

원문 읽기
I built a Graph database to catch money launderers. Here's what I actually learned. | Devpick