날짜: 2008년 8월 1일 금요일

웹의 규모가 거대하다는 것은 이미 오래 전부터 알고 있는 사실입니다. 1998년 구글의 첫 인덱스에는 무려 26만 개의 페이지가 포함되어 있었고, 2000년이 되자 페이지수는 10억을 넘어섰습니다. 지난 8년간 엄청난 규모의 콘텐츠가 생겨났습니다. 최근에는 구글의 검색 엔지니어들 조차 웹의 규모를 보고 놀라움을 감추지 못했습니다– 이는 새로운 콘텐츠를 찾기 위한 구글의 웹 링크 처리 시스템이 새로운 이정표를 세웠을 당시였습니다: 한번에 고유 URL을 1조 개 이상 처리할 수 있게 된 것입니다!

그렇다면 구글은 그 많은 페이지를 어떻게 찾아낼까요? 우선 잘 연결된 일련의 초기 페이에서 출발하여 각 페이지에 있는 링크를 따라 새로운 페이지를 찾아 갑니다. 이 새로운 페이지에 있는 다른 링크를 통해 또 다른 페이지로 연결되고, 이를 통해 결과적으로 방대한 링크 리스트가 탄생하게 됩니다. 사실 1조 개 이상의 개별 링크를 찾아냈지만 페이지들 전부가 고유의 웹 페이지로 연결되지는 않았습니다. 많은 경우에는 동일한 내용의 콘텐츠를 담고 있는 복수의 URL이나 자동으로 복사된 복제 URL들을 담고 있습니다. 중복된 페이지를 정확하게 제거한 뒤에도 여전히 1조개 이상의 고유 URL이 남아 있었으며, 지금도 개별 웹 페이지의 수는 날마다 수십억 개씩 증가하고 있습니다.

그렇다면 웹상에 존재하는 고유 페이지의 수는 정확히 얼마나 될까요? 저희도 정확히 모릅니다. 모든 페이지를 살펴볼 시간도 없지요! :-) 엄밀히 말해서 현존하는 페이지의 수는 무한대입니다– 예를 들어 웹 캘린더에 “다음 날”이란 링크가 있으면 이 링크를 계속 따라가면서 매번 “새로운” 페이지를 발견할 수 있습니다. 그러나 이러한 방법은 사용자들에게 어떠한 혜택도 주지 않기 때문에 채택하지 않고 있습니다. 그러나 이 같은 예는 웹의 규모가 어떻게 정의하느냐에 따라 달라질 수 있다는 것과 이에 대한 정확한 답도 없다는 사실을 보여줍니다.

구글은 1조개의 페이지를 각각 인덱스하지 않습니다– 이들 페이지 중 대다수가 유사하거나 위에서 말한 캘린더의 예처럼 자동으로 복사된 콘텐츠를 담고 있기 때문입니다. 이는 사용자들에게 유용하지 않습니다. 하지만 구글이 다른 검색 엔진보다 광범위한 인덱스를 보유하고 있다는 것에 자부심을 느끼고 있으며, 구글의 목표는 언제나 세상의 모든 데이터에 대한 인덱스를 만드는 것에 포커스를 두고 있습니다.

구글은 이 같은 거대한 양의 정보를 따라잡기 위해 검색어 결과에 대한 초기 웹 데이터 처리 당시부터 크게 힘써왔습니다. 그 당시 모든 작업은 일괄적으로 처리 되었습니다: 하나의 워크스테이션이 2-3 시간 만에 2600만개의 페이지에 대한 페이지랭크(PageRank) 그래프를 계산할 수 있었습니다. 이를 통해 취합된 페이지들이 일정 기간 동안 구글 인덱스로 사용되었습니다. 현재 구글은 웹을 지속적으로 다운로드하며 업데이트된 페이지 정보를 모으고 하루에도 몇 번씩 웹-링크 그래프 전체를 재처리하고 있습니다. 1조 페이지 URL에 대한 이 그래프는 1조 개의 교차로가 그려져 있는 지도와 유사합니다. 저희는 미국의 전체 도로에 있는 모든 교차로를 하루에 몇 차례씩 완벽하게 조사하는 것과 유사한 작업을 컴퓨터로 하고 있는 것입니다. 다만 이것을 지도로 그린다면 미국 지도보다 약 5만 배 클 것이며 도로와 교차로의 수도 5만 배 정도 더 많을 것입니다.

이같은 구글의 폭넓은 시스템은 수조 개의 연결을 담은 링크 그래프를 효과적으로 처리하고 페타바이트(테라바이트 용량의 1024배)의 데이터를 빠르게 분류하여 가장 중요한 질문에 알맞은 답을 하기 위해 준비합니다: 이것이 바로 여러분의 구글 검색입니다.

작성자: 웹검색 인프라스트럭쳐 팀소프트웨어 엔지니어 제시 앨퍼트(Jesse Alpert), 닛산 하자즈(Nissan Hajaj)