1. Google을 지탱하는 기술
cras5@naver.com
Oros
2009-04-30 cras5@naver.com 1
2. Content
1장, Google의 탄생
- Google?
- Search Engine 의 3요소
- Google 초기 검색 서버
2장, 구글의 공룡화
- 시스템의 성능향상
- 분산 시스템의구성
- 문제점
2009-04-30 cras5@naver.com 2
3. Google?
Google이 다른 검색 Engine과의 차별성
- 기존 검색 Engine의 문제 - 속도는 빠르게, 양은 많게
- Google의 목적 - 유용한 검색 결과
2009-04-30
4. Search Engine 의 3요소
- Search Server : User의 요청에 따라 검색을 수행하
는 컴퓨터
- Search Back-end : Search 나 Ranking을 위해 필
요한 정보를 분석하고, Search Server가 이용하기 쉽
게 가공해 Index 형태로 보관
- Index : Server 와 Back-end 사이에서 이용되는 보
관함
2009-04-30
5. Google 초기 검색 서버
1단계
- URL Server 가 Crawler 에게 Web Page를 Download하
도록 요구한다
- Crawler : 인터넷상의 다양한 Web page를 수집하는 기
술, 방법
- 복수의 Crawler가 동시에 Download 하면서 docID를 할
당해 Repository에 저장
- docID : Web page 의 고유의 숫자값
- Repository : Crawler가 수집한 Web page의 임시 저장
소
2009-04-30
6. Google 초기 검색 서버
2단계
- Repository 에서 Web page를 가져오면 Index Creating이 시작된다. 구조
해석을 통해 Web page 내의 Text를 추출함과 동시에 Web page의 Title등이
DocInext에 기록되고, URL이 URLlist에 각각 기록된다.
- DocIndex : Web page의 기본정보를 기록하는 Index
3단계
- 단어처리에 의해 모든 단어가 Lexicon에 따라 wordID로 변환되고, 단어의
위치와 크기가 모두 Barrels에 기록된다.
- Lexicon : Google에서 이용되는 Index(용어집), 단어를 wordID로 변환한
다.
- Barrels : 단어 Index 생성, 가능한 작게 만들어야 한다
- Web page 내에 link 가 있다면 URLlist를 기초로 docID를 조사하고 link관
계를 Links를 기초로 docID를 조사하고 link관계를 Links에 기록한다.
- Links : URLlist 에 link 가 다른 link를 향하고 있는 것을 말함.
2009-04-30
7. Google 초기 검색 서버
4단계
- docID를 찾을 수 없다면 URL Server 에 의해 새로 Crawling을 시작한다. 또한
Anchor Text 는 link 한 곳의 단어 정보로서 Barrels에 기록된다.
- URLServer : Crawler 를 지휘하는 역할을 하는 Server
5단계
- Ranking 을 위한 사전 처리를 해야하는데 여기서는 Links를 기초로 Page Rank 가 계
산된다. 최종적인 Ranking 처리는 서버가 담당한다.
- 검색 서버는 User로부터 요청이 들어오면 Lexicon 에 따라 검색어를 변환하고 이어서
Barrels의 역 인덱스에서 docID list를 가져온 후, 각각의 Ranking 함수를 적용해 순위를
결정한다.
- Inverted Index : 검색에 필요한 것은 Web page에 포함되어 있는 단어의 정보가 아
니라 단어가 포함되어 있는 Web page 의 정보이다. 그런 이유로 wordID를 기준으로
docID를 얻는 방법
6단계
- Ranking에 의해 상위로 올라온 docID는 DocIndex에서 Web page의 정보를 가져와
보기 쉽게 User에게 반환한다.
2009-04-30
8. 시스템의 성능향상
scale-up - 보다 뛰어난 하드웨어를 도입하는 방법
scale-out - 하드웨어의 수를 늘리는 방법
장단점
scale-up 장점: 시스템을 단순하게 할 수 있다.
소프트웨어를 변경할 필요가 없다.
단점: 고성능 하드웨어의 가격이 비싸다.
scale-out 장점: 필요에 맞게 장비의 수를 증가 시킬 수 있
다.
비교적 비용을 억제할 수 있다.
단점: 처음부터 복수의 하드웨어를 상정해서 소프
트웨어를 개발해야만 한다.
2009-04-30
9. 분산 시스템의구성
rack - 시스템의 기본
하나의 rack 에는 40~80대의 pc에 해당하는 부품
cluster - rack을 하나의 단위로 여러개 연결한 것
목적따라 다양한 cluster들이 존재
data center 다수의rack가 한데 모여있는것
세계 각 지에 분산 배치
2009-04-30