작은 이모티콘이 얼마나 많은 문제를 일으킬 수 있습니까? 당신은 그것을 생각하지 않을 것입니다. 이 이모티콘은 미국 고전 TV 시리즈 "Friends"("Six"라고도 알려짐)의 9번째 시즌 20화에서 유래되었습니다. 제니퍼 애니스톤이 연기한 레이첼은 옥상에서 드라마 파티가 열린다는 소식을 듣고 즉시 환호했다. 크기가 1.6MB에 불과하고 네티즌들 사이에서 인기가 높아 Discourse라는 소셜 플랫폼에서 246,173회 사용되었습니다.
사용할 때마다 반복적으로 백업되어 결국 377GB의 중복 백업과 240,000개 이상의 하드 링크가 형성되어 Linux 파일 시스템 용량 제한을 직접적으로 돌파하고 백업 메커니즘이 실패하게 됩니다.

오픈 소스 소프트웨어 프로젝트인 Discourse는 22,000개가 넘는 온라인 커뮤니티에 기술 지원을 제공합니다. 실시간 채팅 기능은 이모티콘과 GIF 애니메이션 삽입을 지원합니다.
그러나 특별한 "안전한 업로드" 메커니즘이 있습니다.개인 메시지에서 공개 게시물로 전달과 같은 다양한 보안 시나리오 간에 파일이 이동되면 시스템은 임의의 SHA1 암호화 값을 사용하여 새 복사본을 생성합니다. 파일이 전혀 변경되지 않았더라도 Discourse에서는 해당 파일을 새 파일로 처리합니다.
따라서 인기 있는 사진이나 이모티콘이 게시물, 전달, 비공개 메시지 등을 통해 지속적으로 확산되면 매번 새로운 복사본이 생성됩니다.

실제로 Discourse는 중복 파일로 인해 과부하가 걸리는 문제를 오랫동안 알고 있었습니다. 초기 솔루션은 파일 해시 값을 통해 원본 파일을 추적하는 것이었습니다. 백업 시 업로드된 파일은 해시 값별로 그룹화됩니다. 각 그룹의 첫 번째 파일만 다운로드되며 중복 파일에 대한 하드 링크가 생성됩니다.
보기에도 좋고 우아해 보이지만 Discourse Linux 시스템은 가장 일반적이고 오래된 방식을 사용합니다.ext4 파일 시스템은 최대 16TB 단일 파일과 1EB 파일 시스템을 지원하지만 각 파일은 최대 65,000개의 하드 링크만 허용합니다.
따라서 Discourse 솔루션은 240,000개가 넘는 중복 파일을 한 번만 다운로드할 수 없습니다. 상한값에 도달한 후 시스템은 첫 번째 다운로드 외에도 약 181,000번의 추가 백업 다운로드도 수행했습니다.
즉,시스템을 충돌시키는 것은 거대한 백업 파일이 아니라 엄청나게 많은 하드 링크입니다.

다행스럽게도,담론은 마침내 완벽한 해결책을 찾았습니다. 아이디어는 하드 링크를 만드는 것이 었습니다. 그러나 파일 시스템에서 "링크가 너무 많습니다"라는 EMLINK 오류 메시지가 표시되면 해당 파일을 로컬로 복사하고 새 파일을 "마스터 파일"로 설정했습니다. 이를 기반으로 다시 링크 제한에 도달할 때까지 하드링크를 계속 생성했습니다.
Discourse는 이 새로운 조치가 모든 파일 시스템에서 작동하고 추가 구성이 필요하지 않다는 점에 상당히 만족하고 있습니다.
파일 시스템을 변경할 수 없는 한 이는 완벽하게 허용됩니다.

마지막으로 Discourse도 농담을 했습니다.이제 우리는 Jennifer Aniston도 서버 스트레스를 테스트할 수 있다는 것을 알고 있습니다.
