Upload
sid-choi
View
1.186
Download
0
Embed Size (px)
DESCRIPTION
chapter 2 구글의 공룡화
Citation preview
Google 을 지탱하는 기술
By Sid
구글의 공룡화
Index
1. 구글의 대규모화
- System 확장- 하나로 합체- 이것만큼은- 자원은 알뜰하게- Search Engine
Upgrade
2. 분산처리 System
- 세계화- 다수의 서버- 인덱스 분할- 인덱스 분산- 새로운 검색절차
System 확장1. Scale – up
보다 뛰어난 하드웨어 도입
장점 – 시스템 단순 Software 변경불필요
단점 – 가격비쌈
2. Scale – out
하드웨어의 수 늘림
장점 – 필요에 따라 장비 증가가능 비용억제 단점 – Software 개발 잘못된 설계는 성능개선 X
S-up
S-out
하나로 합체
Rack – 2~4 개의 CPU 2~4GB Memory 2~4 개의 HDD 장비들은 1Gbps LAN 으로 연결
Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack 의 집합
Data Center – 다수의 Rack 이 모여있는것 . 같은 Rack 이 복수의 Cluster 로 사용가능
하나로 합체
Rack – 2~4 개의 CPU 2~4GB Memory 2~4 개의 HDD 장비들은 1Gbps LAN 으로 연결
Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack 의 집합
Data Center – 다수의 Rack 이 모여있는것 . 같은 Rack 이 복수의 Cluster 로 사용가능
하나로 합체
Rack – 2~4 개의 CPU 2~4GB Memory 2~4 개의 HDD 장비들은 1Gbps LAN 으로 연결
Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack 의 집합
Data Center – 다수의 Rack 이 모여있는것 . 같은 Rack 이 복수의 Cluster 로 사용가능
이것만큼은 !!
• 전원이 갑자기 끊김 ⇒ 재시동한다 . ⇒ 재시동 않는다 .• HDD 의 일부에 접근 할 수 없다 .• HDD 가 완전히 멈춘다 .• Network 에 잠시 / 계속 연결되지 않는다 .
Hardware 의 고장
장애를 미리 상정하고 대비
Software 로라도 문제해결 해줘야 함
이것만큼은 !!
확장성 – 장비의 수를 늘린 만큼 성능이 (Scalability) 향상되는 성질
병목현상 – System 의 어딘가에서 성능향상을 저해하는 요인이 나타는 현상
고난도 분산처리
모든 장비의 상태파악 ⇒ 작업 분산시킴
[ 대규모 분산시스템구축 ] 확장할 수 있는 구조설계 ⇒ 병목현상 나타나지 않게
자원은 알뜰하게
GFS 에 의해 연결된 machine 의 집합들Data Center 의 각 machine 을 network 로 연결⇒ 일관되게 Data read/write 하는 기술
OS 의 task 관리를 복수의 machine 으로 분산시킴각 machine 의 부하 감시⇒ 여유 있는 곳에서 Task 실행
GFS Cluster(Google File System)
Work Queue Cluster
자원은알뜰하게
Work Queue
CPU
HDDGFS
CPU
HDD
Search En-gine Upgrade
Search Server 의 대규모화
Server 늘림 ⇒ User 의 검색요청 분산 But Index 에서 병목현상 (wordID 에 따른 분산때문 )
대량의 검색결과 ⇒ 순위선정어려움
DocIn-dex
Lexicon
Barrels
Barrels
Barrels
SearchEngine
확장한다
병목현상
Search En-gine Upgrade
Back-end 의 대규모화
Crawler 성능↑ ⇒ Repository 저장되는 양↑ ⇒ 병목현상
Webpage 수↑⇒ URLserver 에서 병목현상
확장한다
병목현상 ?
Repository crawler
crawler
crawler
URL server
구조해석
단어처리
병목현상 ?
Search En-gine Upgrade
Index 의 대규모화
Index 를 분할하자 ⇒ 일정한 크기로 유지 ⇒ 성능악화 되지 않는다
대규모 Index 만들자 ⇒ 매번 분할하기 번거로움 ⇒ 범용 인덱스 시스템 구축
세계화
세계 각지의 Data Center
가장 가까운 곳으로 연결⇒ 부하분산의 첫걸음
다수의 서버
GWS(Google Web Server)
각 검색요청을 한 곳에 모음
LB(Load Balancer)
여유 있는 GWS 에 일 맡김
Index ServerWeb page 목록 전달
Document ServerWeb page 요약정보
LB
GWS
IndexServer
GWS GWS
Docu-ment
Server
SearchCluster
Index 분할
검색을 모든 Index 로 분산⇒ Index 당 web page 수 상한⇒ 일정시간 내 검색 마침
Index 의 크기도 작아짐
Shard
docID#1wordID#
1Position#
1Size#1 Etc.#1
wordID#2
Position#3
Size#3 Etc.#2
wordID#4
Position#4
Size#2 Etc.#4
docID#2wordID#
1Position#
2Size#1 Etc.#1
wordID#3
Position#1
Size#2 Etc.#3
Index 분산
Shard = 파편
작은 cluster 로 구성
LB 가 부하를 균등하게 분산
확장 가능한 구조
GWS
LB
In-dexIn-dex
In-dex
In-dex
LB
In-dexIn-dex
In-dex
In-dex
LB
In-dexIn-dex
In-dex
In-dex
shard
shard
shard
새로운 검색 절차
User 검색요청
Index Server 의 모든 shard cluster 에 검색요구
각 shard 는 검색과 랭킹처리
GWS 는 반환된 것 중 상위만 채택
Document Server 에 do-cId 로 정보요구
GWS 는 결과를 html page만들어 출력
GWS
IndexServer
Docu-ment
Server
shard shard
shard
shard
shard shard
Spell-ing
check
광고서버
①
①②
구글의 기본사상
Software 로 신뢰성 높임
Hardware 가 고장나도 system 전체의 동작 유지
Hardware 늘려 부하를 분산
분할 / 분산 system 으로 병목현상 방지
비용대비 고성능 hardware 선택
Thanks for your attention