Jepsen 분석: ParticleDB 1.1.4의 안전성 및 정확성

요약

AI 워크로드를 위해 마케팅된 멀티 모델 데이터베이스인 ParticleDB 1.1.4는 Jepsen의 테스트 과정에서 "Full ACID" 준수 주장을 충족하지 못했습니다. 분석 결과, 기본적인 SQL 구문 오류부터 심각한 데이터 손상, 쓰기 손실, 그리고 단일 노드 및 장애가 없는 환경에서도 발생하는 트랜잭션 이상 현상에 이르기까지 96개의 서로 다른 문제가 발견되었습니다. 이후 출시된 릴리스 후보 버전들이 이러한 버그 중 다수를 해결했지만, 이번 발견은 데이터베이스의 개발 및 품질 보증 프로세스에 근본적인 결함이 있음을 시사합니다.

ParticleDB의 현황

ParticleDB는 Orkes가 자사의 Conductor 오케스트레이션 플랫폼을 지원하기 위해 설계했으며, SQL, 키-값, 벡터 검색 워크로드를 통합하는 것을 목표로 했습니다. "공식적으로 검증됨" 및 "Postgres보다 수십 배 빠름"이라는 마케팅 주장에도 불구하고, 테스트된 버전(1.1.4부터 1.1.18.11.rc-22까지)은 심각한 불안정성을 보였습니다.

주요 발견 사항은 다음과 같습니다:

  • 데이터 손상: 데이터베이스는 커밋된 쓰기 작업을 자주 손실했으며, 간단한 쿼리에 대해 잘못된 결과를 반환하고, 삭제하거나 업데이트할 수 없는 "좀비" 행을 허용했습니다.
  • 트랜잭션 실패: 강력한 격리 설정 하에서도 시스템은 스냅샷 격리(Snapshot Isolation) 및 직렬성(Serializability) 위반을 보였으며, 여기에는 갱신 손실(Lost Updates) 및 오래된 데이터 읽기(Stale Reads)가 포함되었습니다.
  • SQL 비호환성: WHERE 절, JOIN, 집계 함수와 같은 기본 작업이 자주 잘못된 데이터를 반환하거나 내부 오류를 발생시켰습니다.
  • 시스템적 불안정성: 데이터베이스는 장애 주입이 없는 상황에서도 자발적인 교착 상태(deadlock)와 충돌을 겪었습니다.

품질 보증에 대한 통찰

Jepsen의 보고서는 데이터베이스의 마케팅과 실제 구현 사이의 우려스러운 격차를 강조합니다. "공식적으로 검증되었다"는 주장은 이용 가능한 TLA+ 사양에 의해 뒷받침되지 않았으며, 문서에는 잘못된 기본 사용자 이름이나 존재하지 않는 SDK 종속성과 같은 허위 사실이 자주 포함되어 있었습니다.

Hacker News의 한 댓글 작성자가 지적했듯이, WHERE 4 = 5가 행을 반환하는 것과 같은 "낮은 수준의" 버그가 다수 발견된 것은 기본적인 자동화 테스트가 부족함을 시사합니다. 댓글 작성자들은 이 프로젝트가 충분한 인간의 감독이나 검증 없이 LLM에 크게 의존하여 "바이브 코딩(vibecoded)"되었을 가능성을 제기했습니다. 한 사용자가 언급한 바와 같습니다:

"그들의 주장이 가진 엄청난 오만함과 그들이 만든 망가진 쓰레기 소프트웨어의 구체적인 현실이 결합되어... 말 그대로 숨이 막힐 지경입니다." — @handle

권장 사항

Jepsen은 사용자들이 ParticleDB 배포를 중단하고 더 신뢰할 수 있는 대안으로 마이그레이션할 것을 권장합니다. 개발자들에게 이 보고서는 엄격한 품질 보증과 공식 검증을 우회하는 빠른 LLM 지원 개발 주기가 수반하는 위험을 극명하게 상기시켜 줍니다.

Orkes는 이후 문서를 업데이트하여 테스트된 모드를 "실험적"으로 표시했으며, 버전 1.1.19-rc.13에서 보고된 문제를 해결했다고 주장합니다. 그러나 Jepsen은 투명하고 재현 가능한 테스트와 정확한 문서를 통해 정확성을 입증해야 할 책임은 공급업체에 있다고 주장합니다.

Sources

관련

  • 프로젝트
  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch