2012년 뉴욕타임스 비츠(Bits) 기사에서 쿠엔틴 하디는 페이스북 성공의 일부를 성능 엔지니어링 덕분으로 돌린다. 2002년에 설립된 프렌드스터는 트래픽이 많을 때 잦은 장애와 느린 페이지 로딩에 시달렸고, 당시 관행대로 많은 정보를 하나의 데이터베이스에 넣었다.

기사에 따르면 페이스북은 우연히 이 문제를 피했다. 하버드에서 시작해 다른 아이비리그 학교, 다른 대학, 그리고 일반 대중으로 확장했다. 마크 저커버그는 각 대학마다 별도의 데이터베이스를 만들고, 사람들이 원할 경우 서로 소통할 수 있도록 이들을 연결하는 소프트웨어를 작성했다. 그 모델은 오늘날 샤드(shard)라고 불리는 여러 개의 별도 데이터베이스로 남아 있으며, 신규 사용자는 전체 시스템이 감당할 수 있는 용량에 따라 배정된다.

기사는 또한 익명을 요청한 한 임원에 따르면 단순화 덕분이기도 하다고 전한다. 페이스북은 두 사람이 가진 상호 친구만 살펴보았는데, 이는 프렌드스터가 시도한 분리 단계(degrees of separation) 계산보다 훨씬 쉬운 문제였다. Accel은 2005년 투자 후 Veritas Software의 창립자인 제프 로스차일드를 컨설턴트로 데려왔고, 저커버그는 그를 설득해 서버를 관리하게 했다.

각 대학에 자체 데이터베이스를 주고 사람들을 서로 연결하는 소프트웨어를 작성하여, 각 장애와 각 부하가 국지적으로 머물게 한다.

모든 사용자를 위한 단일 데이터베이스는 트래픽이 증가함에 따라 함께 느려지고 함께 장애가 발생한다.

한 번에 한 학교씩 출시하면서 팀은 직접 해보며 배우고 기대감을 키울 수 있었다.

대학별로 분리된 데이터베이스는 장애를 국지화하고 시스템을 더 안정적으로 만들었다.

분리 단계 대신 상호 친구를 세는 것은 쿼리를 저렴하게 유지했다.

단계적 출시는 확장 가능한 아키텍처를 강제할 수 있다. 부하가 닥치기 전에 자연스러운 단위로 분할하라.

기사에 따르면 오늘날 페이스북의 9억 사용자는 별도의 샤드에 속해 있다. 프렌드스터는 2003년 상장 전 주식으로 3,000만 달러의 구글 인수 제안을 거절했고, 2008년 약 1억 1,500만 회원으로 정점을 찍은 뒤 쇠퇴하여 2009년 말에 매각되었다.

근거 확인하기

출처

  1. Engineering Tricks That Helped Facebook Win The New York Times (Bits) · archive.nytimes.com ·