대규모 데이터로의 쿼리
데이터가 많으면 쿼리를 처리하는데 시간이 걸린다. -> 직감으로는 알겠으나 왜 그런지를 이해해두는 것이 중요
많은 시행착오를 통해 대규모 데이터를 다루는 감각이 필요하다.
대규모 데이터 처리의 어려운 점
메모리 내에서 계산할 수 없다 -> 메모리보다 처리속도가 느린 디스크에 있는 데이터를 검색
디스크는 느리므로 I/O 에 시간이 걸린다.
* 메모리는 디스크보다 10만~ 100만배 이상 빠르다.
디스크는 왜 늦을까?
물리적인 동작을 수반 - 원반의 회전, 헤드의 이동
물리적인 구조에 따른 탐색속도 저하 - 원하는 위치에 있는 데이터를 찾기 위해 회전 필요
메모리보다 많이 늦은 전송속도(버스의 속도차)
- 탐색속도에 영향을 주는 요인
- 헤드의 이동과 원반의 회전이 필요
- 디스크에 배치되었는 데이터들의 위치 ( 뿔뿔이 흩어져 있으면 찾기위해 많은 회전과 이동이 필요)
메모리 - 1회 탐색시 마이크로초, 물리적인 동작 필요없음
▶▶ 메모리와 디스크 속도차를 생각하고 애플리케이션을 만드는 것이 중요
규모조정의 요소
메모리와 디스크의 속도차와 같은 사항들이 시스템 전체의 확장성 전략에 어떤 영향을 주는가를 알아보는 장
스케일업 과 스케일아웃
- 스케일 업 : 고가의 빠른 하드웨어를 사서 구매하여 성능을 향상시키는 방식
- 스케일 아웃 : 일반적인 하드웨어를 나열하여 성능을 향상시키는 방식
- 주로사용하는 방식
- 이유
- 저렴하다
- 웹 서비스에 적합한 구조다
- 시스템 구성에 유연하다.
CPU 부하와 I/O 부하
- CPU 부하 : 스케일 아웃을 이용하여 부하 완화 가능
- AP 서버, 웹 이 해당
- 같은 구성의 서버를 늘리고 로드밸랜서를 이용하여 분산
- I/O 부하 : 확장을 하여 분산으로 완화하기 어렵다
- DB 가 해당
- 스케일 아웃을 하면 어떻게 데이터를 동기화하고 안정성을 유지할 것인지 고민이 필요
대규모 데이터를 다루기위한 기초지식
프로그램을 작성할 때의 요령
1. 어떻게 하면 메모리에서 처리를 마칠 수 있을까?를 고민
- 디스크 seek 횟수 최소화
- 국소성을 활용한 분산 실형
2. 데이터량 증가에 강한 알고리즘 사용
- 이분 검색
-
3. 데이터 압축혹은 검색기술과 같은 테크닉을 활용
대규모 데이터를 다루기 전 3 대 전제 지식
1. OS 캐시
2. 분산을 고려한 RDBMS 운용
3. 알고리즘과 데이터 구조
'책 > 웹 개발자를 위한 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
[대규모 서비스] [책] 7 장 알고리즘 실용화: 19강 알고리즘과 평가 (0) | 2024.10.08 |
---|---|
5 장 대규모 데이터 처리 실전 입문 (0) | 2024.09.22 |
4 장 분산을 고려한 MySQL 운용 (0) | 2024.09.16 |
3 장 OS 캐쉬와 분산 (0) | 2024.08.31 |
1 장 대규모 웹 서비스 와 소규모 서비스 (0) | 2024.08.26 |