18
Google지탱하는 기술 Mario

구글을 지탱하는 기술

  • Upload
    joowan

  • View
    676

  • Download
    4

Embed Size (px)

Citation preview

Page 1: 구글을 지탱하는 기술

Google을

지탱하는 기술

Mario

Page 2: 구글을 지탱하는 기술

목 차

□ Google의 탄생

□ Google의 공룡화

Page 3: 구글을 지탱하는 기술

Chapter 1.

Google의 탄생

Page 4: 구글을 지탱하는 기술

검색엔진의 진화

□ 이용자의 편의성 고려

□ Hardware의 확장

□ Web Page에 순위를 정함

○ Page Rank

○ Anchor Text

○ Word

○ Ranking Function

Page 5: 구글을 지탱하는 기술

순위산출방식

□ Page Rank

○ 각 Web page에 일정점수 할당

○ 다른 Page로 Link하면 자신의 점수 분배

○ 최종 점수는 다른 Page에서 받은 점수의 합

□ Anchor Text

○ Web Page에 Link할 때 Link된 문자열

○ 많은 Page에 Link되어 있으면 신뢰성이

높다고 간주

Page 6: 구글을 지탱하는 기술

순위산출방식

□ Word

○ Web page의 모든 단어를 기록

○ 단어의 글씨크기, 속성등도 결과에 영향

□ Ranking Function

○ 수많은 정보들을 조합하여 최종적으로

검색결과에 순위를 부여

○ 끊임없는 개량작업이 이루어 졌고 앞으로도

계속될 것임

Page 7: 구글을 지탱하는 기술

검색엔진의 3요소

□ 검색서버

○ 이용자와의 통신 관리

○ 요청 해석 / 처리내용 판단

○ Index 검색

○ 결과를 보기쉽게 편집 / 전송

Page 8: 구글을 지탱하는 기술

검색엔진의 3요소

□ 검색 Backend

○ Crawler : Web page 정보수집

○ Crawling : 다양한 웹 페이지를 수집

○ Repository : Web page 임시저장소

○ Index creating : Web page를 검색용

인덱스로 만들어내는 과정

Page 9: 구글을 지탱하는 기술

검색엔진의 3요소

□ Index

○ 주어진 Data를 안전하게 저장

○ 요청받은 Data를 빠른 속도로 찾아냄

○ 검색엔진의 Database와 같은 존재

Page 10: 구글을 지탱하는 기술

검색의 흐름

□ 이용자가 검색 요청

□ 검색어가 Lexicon에 의해 wordID로 변환

□ wordID를 역Index에서 검색, docID list 취득

□ docID에 Ranking Function 적용,

점수가 높은순으로 정렬

□ 상위 docID 각각에 대해 Web page 정보추출

□ 정보를 정리해서 결과를 이용자에게 보냄

Page 11: 구글을 지탱하는 기술

Chapter 2.

Google의 공룡화

Page 12: 구글을 지탱하는 기술

성능향상을 위한 두가지 방법

□ Scale-up

○ 보다 뛰어난 하드웨어를 도입

□ Scale-out

○ 하드웨어의 수를 늘림

□ Scale-up과 Scale-out의 균형을 맞춰

효율적인 성능향상을 꾀함

Page 13: 구글을 지탱하는 기술

분산 시스템의 구성

□ Rack

○ System의기본

○ 하나의 Rack는 40~80대의 PC 역할

□ Cluster

○ Rack을 여러 개 연결

□ Data Center

○ 다수의 Cluster가 한데 모여있는 것

Page 14: 구글을 지탱하는 기술

Scale-out 방식의 문제점

□ Hardware의 고장

○ 장애를 미리 상정하고 대비

○ 문제발생시 동작이 멈추지 않아야 한다

□ 분산처리

○ 모든 장비의 상태를 파악하고 작업을 분산시킴

○ 확장이 용의하고 병목현상이 없도록 설계

Page 15: 구글을 지탱하는 기술

CPU와 HDD의 효율적 사용

□ CPU

○ GFS Cluster

● 다수의 Machine을사용, File system 구축

○ Work queue

● 여유가 있는 Machine을 찾아 작업 부여

□ HDD

○ Machine들을 Network로 연결하여 Data 조작

Page 16: 구글을 지탱하는 기술

검색엔진의 개량

□ 검색서버의 대규모화

□ 검색 Backend의 대규모화

○ Crawler의 성능이 올라가면 Repository에

저장되는 데이터의 양도 증가,

병목현상 가능성 잠재

○ URL Server도 병목현상 발생 가능성 잠재

○ Load Balancing과 Index생성

□ Index의 대규모화

Page 17: 구글을 지탱하는 기술

구글의 분산 System

□ 검색 요청시 IP조사 후 가까운 Data Center로

접속됨

□ Data Center가 이용불가할 경우 다른 Data

Center로 연결

Page 18: 구글을 지탱하는 기술

검색 Cluster

□ GWS(Google Web Server)

○ 검색 요청을 한곳에 모음

□ LB(Load Balancer)

○ 검색요청 분배

□ Document Server

○ 각각의 Web page 제목 및 요약정보 생성