소프트웨어 테스트 도구 기업 모멘틱(Momentic)이 성능과 확장성을 개선하기 위해 데이터베이스를 포스트그레SQL(PostgreSQL)에서 클릭하우스(ClickHouse)로 전환했다고 밝혔다. 개발자 전문 매체 인포큐(InfoQ)에 따르면, 모멘틱의 캐시 테이블은 약 8만 건에서 10억 건 규모로 폭발적으로 늘었고, 이 과정에서 쓰기와 읽기가 잦은 작업 환경에서 포스트그레SQL의 한계가 드러났다. 회사 측은 캐시를 동시에 읽고 쓰려는 질의들이 부딪히면서 자원 사용량이 급증하고 락 경합(lock contention)이 발생했다고 설명했다.
전환 당시 모멘틱은 하루 약 60만 건의 캐시 조회를 1초 이내 지연으로 처리해야 했다. 데이터가 급증하면서 동시 읽기·쓰기가 자원을 두고 경쟁했고, 포스트그레SQL의 B-트리 인덱스는 데이터가 커질수록 질의 비용이 가파르게 늘었다. 반면 클릭하우스의 희소 기본 인덱스(sparse primary index)는 테이블이 커져도 검색 범위를 소수의 ‘그래뉼(granule)’로 좁혀, 데이터 크기에 비례해 스캔량이 늘지 않는 이점이 있었다.
모멘틱은 테스트 ID, 스텝 ID, 버전, 깃 브랜치, 커밋 타임스탬프를 결합한 기본 키를 설계해 기능 브랜치 질의의 90%에서 효율적인 조회를 달성했다. 다만 메인 브랜치의 일부 질의는 여전히 방대한 항목을 스캔해야 했는데, 이는 테스트 ID별 커밋 타임스탬프를 미리 계산하는 구체화 뷰(materialized view)로 해결했다. 또 포스트그레SQL에서 세 개로 나뉘던 질의를 클릭하우스의 ReplacingMergeTree를 활용한 INSERT 방식으로 통합해, 중복 제거를 데이터베이스가 비동기로 처리하게 했다. 이 방식이 충분히 효율적이어서 별도의 레디스(Redis) 계층은 완전히 제거했다.
전환은 신중하게 진행됐다. 모멘틱은 클릭하우스를 포스트그레SQL과 나란히 ‘섀도 모드’로 운영하며 두 시스템에 동시에 쓰고 결과를 비교한 뒤, 트래픽을 점진적으로 넘겼다. 전환 이후에도 롤백 안전망으로 이중 쓰기를 잠시 유지했다. 그 결과 캐시는 총 200억 건 규모로 확장됐고, 하루 200만 건 이상의 질의를 처리하면서도 평균 응답 지연은 약 250밀리초를 유지했다.














