본문 바로가기

인프라

캐시가 db보다 빠른 이유

728x90

둘 다 데이터를 담아두는 곳인데, 왜 캐시가 db보다 빠를 까?? 그리고 비용도 적게 들까??

저장소가 달라서!

메모리기반 vs 디스크 기반

  • 메모리 기반
    • 메모리 기반 저장소는 RAM을 사용하여 데이터를 저장
    • 필요할 때 즉시 꺼낼 수 있어 매우 빠름
    • 전원이 꺼지면 데이터가 사라지는 휘발성 특성
  • 디스크 기반
    • HDD, SSD 같은 디스크 장치를 사용하여 저장
    • 정보를 찾기위해 시간이 메모리보다 더 걸림
    • 영구적으로 보관 가

그래서 왜 빠른 거냐고!!

디스크에서 데이터를 찾을 때는 물리적으로 직접 찾아가며 데이터를 찾아야되기 떄문에

전기신호를 사용하는 RAM 보다 느림

예전에 디스크에서 데이터를 찾는 스케줄링 기법들을 배운 기억이 난다

아래와 같다.

  1. FCFS 스케줄링(First Come First Served) : 요청이 들어온 순서대로 처리한다.
  2. SSTF 스케줄링(Shortest Seek Time First) : 현재 디스크의 헤드 위치에서 가장 가까운 실린더에 대한 요청을 우선적으로 처리한다.
  3. SCAN 스케줄링 : 디스크의 한 쪽 끝에서 반대쪽 끝으로 이동하면서 처리하며, 마지막 실린더에 도착하면 반대 방향으로 스캔을 진행한다.
  4. C-SCAN 스케줄링 : 디스크의 한 쪽 끝에서 반대쪽 끝으로 이동하면서 처리하며, 마지막 실린더에 도착하면 시작점으로 되돌아간 후 다시 스캔을 진행한다.
  5. C-LOOK 스케줄링 : C-SCAN에서는 양 끝까지 이동하던 것을 요청된 실린더 중 마지막까지만 이동하는 방식으로 처리한다.
  6. N단계 SCAN 스케줄링 : SCAN 스케줄링과 같이 진행 방향 상의 요청을 서비스하지만 진행 중에 새로이 추가된 요청은 서비스하지 않고 다음 진행 시에 서비스하는 기법이다.
  7. 에센바흐 기법(Eschenbach scheme) : 탐색 시간 최적화뿐만 아니라 회전 지연 시간도 최적화하고자 하는 최초의 기법이다.(항공 예약시스템을 위해 개발됨)
  8. 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