728x90
둘 다 데이터를 담아두는 곳인데, 왜 캐시가 db보다 빠를 까?? 그리고 비용도 적게 들까??
저장소가 달라서!
메모리기반 vs 디스크 기반
- 메모리 기반
- 메모리 기반 저장소는 RAM을 사용하여 데이터를 저장
- 필요할 때 즉시 꺼낼 수 있어 매우 빠름
- 전원이 꺼지면 데이터가 사라지는 휘발성 특성
- 디스크 기반
- HDD, SSD 같은 디스크 장치를 사용하여 저장
- 정보를 찾기위해 시간이 메모리보다 더 걸림
- 영구적으로 보관 가
그래서 왜 빠른 거냐고!!
디스크에서 데이터를 찾을 때는 물리적으로 직접 찾아가며 데이터를 찾아야되기 떄문에
전기신호를 사용하는 RAM 보다 느림
예전에 디스크에서 데이터를 찾는 스케줄링 기법들을 배운 기억이 난다
아래와 같다.
- FCFS 스케줄링(First Come First Served) : 요청이 들어온 순서대로 처리한다.
- SSTF 스케줄링(Shortest Seek Time First) : 현재 디스크의 헤드 위치에서 가장 가까운 실린더에 대한 요청을 우선적으로 처리한다.
- SCAN 스케줄링 : 디스크의 한 쪽 끝에서 반대쪽 끝으로 이동하면서 처리하며, 마지막 실린더에 도착하면 반대 방향으로 스캔을 진행한다.
- C-SCAN 스케줄링 : 디스크의 한 쪽 끝에서 반대쪽 끝으로 이동하면서 처리하며, 마지막 실린더에 도착하면 시작점으로 되돌아간 후 다시 스캔을 진행한다.
- C-LOOK 스케줄링 : C-SCAN에서는 양 끝까지 이동하던 것을 요청된 실린더 중 마지막까지만 이동하는 방식으로 처리한다.
- N단계 SCAN 스케줄링 : SCAN 스케줄링과 같이 진행 방향 상의 요청을 서비스하지만 진행 중에 새로이 추가된 요청은 서비스하지 않고 다음 진행 시에 서비스하는 기법이다.
- 에센바흐 기법(Eschenbach scheme) : 탐색 시간 최적화뿐만 아니라 회전 지연 시간도 최적화하고자 하는 최초의 기법이다.(항공 예약시스템을 위해 개발됨)
- SLTF 스케줄링(Shortest Latency Time First) : 회전 지연 시간 최적화를 위한 대표적 알고리즘으로 디스크 헤드가 특정 실린더에 도착하면 그 실린더 내의 여러 트랙에 대한 요청들을 검사한 후 회전 지연 시간이 가장 짧은 요청부터 서비스하는 기법이다.
RAM(Random Access Memory) 에서 데이터를 찾는 방법은
이름에서도 알 수 있듯이 random access 방식을 사용한다.
Random Access는 저장 장소들이 모두 고유의 주소를 갖고 있고 그 주소에 데이터가 저장됩니다. 해당 데이터에 접근 하려면 그 데이터의 주소만 알고 있으면 됩니다.
즉, RAM에서는 데이터를 찾기 위해 순차적으로 접근할 필요가 없으며, 필요한 데이터에 대한 주소만 알고 있다면 무작위로 그 데이터에 액세스할 수 있습니다.
마치 해쉬 검색과 비슷하다고 할 수 있습니다.
그렇기 때문에 데이터 접근속도가 디스크보다 훨씬 빠릅니다.
728x90
'인프라' 카테고리의 다른 글
ElasticSearch란? (0) | 2024.03.28 |
---|---|
카프카 (KAFKA)란 무엇인가? (0) | 2024.03.25 |
Redis란? (0) | 2024.03.13 |
쿠버네티스 이미지란? (0) | 2024.03.09 |
4년간 인프라 운영하며 좋았던/후회했던 결정들 (0) | 2024.02.28 |