강의 5 대규모 데이터 처리의 어려운 점
대규모 데이터의 어려움은 메모리 내에서 계산할 수 없다는 점
- 메모리 내에서 계산할 수 없개 되면 디스크에 있는 데이터를 검색할 필요가 있다.
- 하지만 디스크는 느리다 → I/O에 시간이 걸린다
디스크는 왜 느릴까?

메모리
는 전기적인 부품이므로 물리적 구조는 탐색속도와 그다지 관계없다.마이크로초(10^-6초)단위의 포인터 이동으로 탐색이 수행된다.
한편
디스크
는 헤드의 이동, 원반(디스크)의 회전 이라는 물리적인 동작을 수반한다.각각 수 밀리초(10^-3초)가 걸리는 동작이다.
다음으로 탐색에 사용되는 것이
CPU 의 캐시
에 올리기 쉬운 알고리즘이나 데이터 구조라면 메모리 내용이 CPU캐시에 올라가므로 더욱 빨라져 나노초(10^-9초) 단위로 처리할 수 있다.OS 의 도움!
os 는 디스크의 단저인 물리적 동작에 따른 시간 소요를 커버하기 위해 연속된 데이터를 같은 위치에 쌓고 데이터를 읽을때 페이지 단위로 읽음으로써 디스크의 회전을 최소화 합니다.
강의 6 규모조정의 요소
규모조정 (Scaling)
Scale Out
- 동일한 성능의 하드웨어를 여러대 배치하는 것
- Scale Up - 단일 하드웨어의 성능을 높이는것
웹 애플리케이션과 부하의 관계
- 애플리케이션 서버 - CPU bound
- 서버를 여러대 두고 로드밸런싱을 적용한다.
- DB 서버 - I/O bound
- I/O 부하는 더 복잡하다
강의 7
강의 7 대규모 데이터를 다루기 위한 기초지식
1 프로그램을 작성할 때의 요령
1) 메모리에서 처리를 마칠 수 있도록
- 디스크 seek 횟소 최소화
- 국소성을 활용한 분산
2) 데이터량 증가에 강한 알고리즘을 사용
- O(n) → O(logn)
3) 데이터 압축, 정보검색 기술
2 프로그램 개발의 근간이 되는 기초
1) OS 캐시 -
3장
2) 분산을 고려한 RDBMS -
4장
3) 대규모 환경에서 알고리즘과 데이터 구조 -
5장