관리자들은 만족하지 못했다. 문제를 해결하기 위해 파일을 하드링크로 대체하려는 초기 시도 역시 ext4의 65,000 하드링크 제한 때문에 실패했다.

사이트 커뮤니티 멤버들이 채팅에서 자주 사용하는 작은 GIF 파일 하나가 웹사이트의 백업 할당량을 377GB나 초과하게 만들어 리눅스 파일 시스템을 손상시키고 백업 프로세스 실패를 초래했습니다. Discourse 기술 블로거인 제이크 골즈버로(Jake Goldsborough)에 따르면, 제니퍼 애니스톤의 ‘행복한 댄스’ 리액션 GIF는 크기가 1.6MB에 불과했지만, 이번 사례에서는 백업 과정에서 무려 246,173번 중복된 것이었습니다. 이 문제는 과도하게 사용된 행복한 댄스 GIF와 파일 보안 정책 구현이 복합적으로 작용한 결과였습니다.
친구들(Friends)의 레이첼이 추는 행복한 댄스 GIF 파일이 하나의 Discourse 사이트에서 246,173번 중복되면서, 1.6MB의 파일이 377GB의 백업 데이터 팽창(bloat)을 일으켜 파일 시스템의 용량 한계에 도달했습니다. 제니퍼 애니스톤이 인프라를 스트레스 테스트할 수 있다는 사실이 입증된 사례입니다: https://t.co/I80bfhKJBG 2026년 4월 9일
Discourse는 가장 널리 사용되는 현대적인 커뮤니티 토론 플랫폼 중 하나를 구축하는 회사이자 오픈 소스 소프트웨어 프로젝트로, 현재 22,000개가 넘는 온라인 커뮤니티에 동력을 제공하고 있습니다. 이 실시간 채팅 플랫폼에서는 사용자들이 토론을 활기차게 만들기 위해 이모지나 GIF를 삽입할 수 있습니다. 그러나 플랫폼의 ‘보안 업로드(secure uploads)’ 기능 때문에 골즈버로는 다음과 같이 설명합니다. "파일이 보안 컨텍스트 간을 이동할 때(예를 들어, 비공개 메시지에서 공개 게시물로 이동할 때), 시스템은 무작위 SHA1 값을 가진 새로운 복사본을 생성합니다. 원본 내용은 동일하지만, Discourse는 이를 새로운 파일로 취급합니다." 따라서 인기 있는 이미지나 리액션 GIF는 게시물, 재게시물(reposts), 개인 메시지(PMs) 등 모든 곳에 퍼져 나가게 되며, 각 컨텍스트마다 파일 사본이 하나씩 생성됩니다.
Discourse가 중복 파일로 인해 시스템이 포화되는 문제에 대해 처음 시도했던 해결책은 원본 콘텐츠를 해시(hash)로 추적하는 것이었습니다. 이후 백업 시에는 해시를 기준으로 업로드를 그룹화하고 각 그룹에서 첫 번째 파일만 다운로드하도록 처리했습니다. 중복 파일에는 하드링크(Hardlinks)를 생성하여 효율성을 높였습니다.
390TB 비디오 게임 아카이브가 RAM, SSD, 하드 드라이브 가격 급등으로 오프라인 전환 위기

아무도 인생이 이런 식일 것이라고 말해주지 않았다
이 방식은 초기에는 우아한 해결책처럼 보였으나, Discourse의 대형 고객사 중 한 곳이 노드당 약 65,000개라는 ext4의 하드링크 제한에 모든 이의 이목을 집중시켰습니다. 해당 사례에서 백업은 초기 수정 방안으로 작동했지만, 회사 블로그에 따르면 "246,173개의 중복 파일 전체를 한 번에 다운로드하는 것이 아니라, 한 번의 다운로드와 더불어 한계에 도달한 후 약 181,000개의 추가 다운로드가 발생했습니다."라며 "기대했던 결과는 아니었다"고 전했습니다.
또 다른 고객사의 경우, 432GB의 업로드 데이터와 이에 상응하는 방대한 백업 용량을 보유하고 있었습니다. 그러나 분석 결과 실제 고유 콘텐츠는 단지 26GB에 불과했습니다. 즉, 중복 파일로 인해 데이터가 16배나 부풀려진 상황이었습니다.
377GB의 팽창을 일으킨 근본적인 원인 파일은 역시 친구들의 레이첼이 추는 행복한 댄스 GIF였습니다. Discourse는 문제가 된 사이트가 이 리액션 GIF를 "게시물, 개인 메시지 등 모든 곳에서 끊임없이 사용"하면서 매우 '활발한' 사이트였음을 지적했습니다.
한편, Discourse는 이전에 적용했던 해결책에 대한 수정책을 찾아내 또 다른 해결책을 제시했습니다. 이 새로운 수정책은 하드링크를 생성하는 방식으로 이전과 유사하게 작동합니다. 하지만 파일 시스템이 EMLINK 오류 메시지(하드링크가 너무 많음)를 내보내면, 시스템은 해당 파일을 로컬에 복사하고, 이 새로운 파일을 '기본(primary)' 파일로 간주하여 한계에 다시 도달할 때까지 이 과정을 반복합니다. Discourse는 이 새로운 조치가 "어떤 파일 시스템에서든 별도의 설정 없이 작동합니다"라며 어느 정도의 만족감을 표했습니다.