Upload
joowan
View
676
Download
4
Embed Size (px)
Citation preview
Google을
지탱하는 기술
Mario
목 차
□ Google의 탄생
□ Google의 공룡화
Chapter 1.
Google의 탄생
검색엔진의 진화
□ 이용자의 편의성 고려
□ Hardware의 확장
□ Web Page에 순위를 정함
○ Page Rank
○ Anchor Text
○ Word
○ Ranking Function
순위산출방식
□ Page Rank
○ 각 Web page에 일정점수 할당
○ 다른 Page로 Link하면 자신의 점수 분배
○ 최종 점수는 다른 Page에서 받은 점수의 합
□ Anchor Text
○ Web Page에 Link할 때 Link된 문자열
○ 많은 Page에 Link되어 있으면 신뢰성이
높다고 간주
순위산출방식
□ Word
○ Web page의 모든 단어를 기록
○ 단어의 글씨크기, 속성등도 결과에 영향
□ Ranking Function
○ 수많은 정보들을 조합하여 최종적으로
검색결과에 순위를 부여
○ 끊임없는 개량작업이 이루어 졌고 앞으로도
계속될 것임
검색엔진의 3요소
□ 검색서버
○ 이용자와의 통신 관리
○ 요청 해석 / 처리내용 판단
○ Index 검색
○ 결과를 보기쉽게 편집 / 전송
검색엔진의 3요소
□ 검색 Backend
○ Crawler : Web page 정보수집
○ Crawling : 다양한 웹 페이지를 수집
○ Repository : Web page 임시저장소
○ Index creating : Web page를 검색용
인덱스로 만들어내는 과정
검색엔진의 3요소
□ Index
○ 주어진 Data를 안전하게 저장
○ 요청받은 Data를 빠른 속도로 찾아냄
○ 검색엔진의 Database와 같은 존재
검색의 흐름
□ 이용자가 검색 요청
□ 검색어가 Lexicon에 의해 wordID로 변환
□ wordID를 역Index에서 검색, docID list 취득
□ docID에 Ranking Function 적용,
점수가 높은순으로 정렬
□ 상위 docID 각각에 대해 Web page 정보추출
□ 정보를 정리해서 결과를 이용자에게 보냄
Chapter 2.
Google의 공룡화
성능향상을 위한 두가지 방법
□ Scale-up
○ 보다 뛰어난 하드웨어를 도입
□ Scale-out
○ 하드웨어의 수를 늘림
□ Scale-up과 Scale-out의 균형을 맞춰
효율적인 성능향상을 꾀함
분산 시스템의 구성
□ Rack
○ System의기본
○ 하나의 Rack는 40~80대의 PC 역할
□ Cluster
○ Rack을 여러 개 연결
□ Data Center
○ 다수의 Cluster가 한데 모여있는 것
Scale-out 방식의 문제점
□ Hardware의 고장
○ 장애를 미리 상정하고 대비
○ 문제발생시 동작이 멈추지 않아야 한다
□ 분산처리
○ 모든 장비의 상태를 파악하고 작업을 분산시킴
○ 확장이 용의하고 병목현상이 없도록 설계
CPU와 HDD의 효율적 사용
□ CPU
○ GFS Cluster
● 다수의 Machine을사용, File system 구축
○ Work queue
● 여유가 있는 Machine을 찾아 작업 부여
□ HDD
○ Machine들을 Network로 연결하여 Data 조작
검색엔진의 개량
□ 검색서버의 대규모화
□ 검색 Backend의 대규모화
○ Crawler의 성능이 올라가면 Repository에
저장되는 데이터의 양도 증가,
병목현상 가능성 잠재
○ URL Server도 병목현상 발생 가능성 잠재
○ Load Balancing과 Index생성
□ Index의 대규모화
구글의 분산 System
□ 검색 요청시 IP조사 후 가까운 Data Center로
접속됨
□ Data Center가 이용불가할 경우 다른 Data
Center로 연결
검색 Cluster
□ GWS(Google Web Server)
○ 검색 요청을 한곳에 모음
□ LB(Load Balancer)
○ 검색요청 분배
□ Document Server
○ 각각의 Web page 제목 및 요약정보 생성