Jepsen, ParticleDB 1.1.4 분석에서 96개 결함 보고... 'Full ACID' 주장은 시기상조
- Jepsen이 ParticleDB 1.1.4부터 1.1.18.11.rc-22까지 테스트해 96개 이슈를 보고했고, 대부분이 단일 서버와 단일 클라이언트, 장애 없는 환경에서 재현됨
- 존재하지 않는 컬럼에 대한 조건과 WHERE 4 = 5가 행을 반환하고, 드롭한 테이블이 뒤틀린 형태로 되살아나는 등 기본 쿼리 처리 오류가 다수
- 기본 occ 트랜잭션 모드에서 커밋된 쓰기가 유실되고, 최강 설정인 serializable에서도 Lost Update와 내부 이상 현상이 발생함
- 1.1.18.11.rc-22에서 10개를 제외한 모든 이슈가 해결됐고, Orkes는 1.1.19-rc.13에서 남은 문제도 모두 해결했다고 주장함. 이 테스트는 Orkes의 자금 지원으로 진행됨
- 홈페이지의 'formally proven' TLA+ 표기는 근거가 없었고, 'Full ACID' 주장과 달리 문서에는 snapshot isolation이라고 적혀 있었음
Hacker News 의견들
formally proven이라고 써놓은 거, formerly proven을 음성인식이 잘못 받아쓴 거 아니냐ㅋㅋ
TLA+가 코드를 증명해주는 것도 아닌데 명세조차 없었다니, 대체 뭘 증명했다는 건지 모르겠음
jepsen-io/particledb 깃허브가 404 뜨길래 뭐지 했는데 지금은 올라옴. 아직 private이라 곧 해결한다고 작성자가 답글 달았었음
96개는 진짜 심한 거임. 다른 DB들 보면 보통 10개 이하이고 대부분 사소한 수준이더라. AI용이라 바이브코딩 의심도 들고
리포트 토론 섹션이 처참함. Orkes가 Postgres용 Jepsen 하네스를 돌렸다고 했는데 1.1.4에 돌리자마자 바로 실패했다고 나옴
Rust로 짠 슬롭 DB. 랜딩페이지는 이미 바꾼 듯. 웨이백머신에 'Written in Rust · Formally Verified · PostgreSQL Compatible' 그대로 남아 있음
ParticleDB 팀인데 지적 전부 받아들이고 몇 달 동안 고쳤음. 이제 Jepsen 워크로드를 매일 돌리고 지원하는 트랜잭션 모드도 줄였음. 최근 실행에서는 이상 없었음
pre-release 빌드랑 실험적 동시성 모드에서 나온 결과라는 반박도 있는데, 그래도 단일 서버에 장애 없이 커밋 유실이 나오는 건 변명이 안 됨
DB 만드는 건 진짜 재밌는 학습인데 제대로 만들기는 미친 듯이 어려움
오픈소스냐고 물었더니 서버는 비공개고 SDK랑 CLI만 MIT, Studio도 MIT 예정이라고 함
WHERE 4 = 5가 행을 반환한다는 거 보고 할 말 잃음. 존재하지 않는 컬럼 조건도 통과하고, 드롭한 테이블이 이상한 형태로 되살아난다니
링크된 이슈는 진짜 굴욕적임. 마케팅은 'Full ACID 159K TPS'라더니 바로 아래 문서에는 snapshot isolation이라고 적혀 있었음
NULL 비교 때문에 행 수가 안 맞는 건 주류 SQL도 그런데, 4=5가 참이 되는 건 비교 대상이 아님
Postgres 호환이라니 기존 Postgres Jepsen 스위트라도 돌려봤어야 함. AI한테 각색시켜서라도 걸렸을 텐데
바이브코딩이면 이 정도 나올 수 있다지만, Kyle 부르기 전에 자기들이 아무 테스트도 안 했다는 게 이해 안 됨