[내일배움캠프] 자바 Spring 입문_cache_221230

2023. 1. 1. 22:37·스파르타 부트캠프(spring)

캐시

: cpu의 업무처리에 필요한 정보를 빠르게 가져올 수 있게 해주는 역할

-->cpu와 메모리 사이의 데이터 전송 레이턴시 개선을 위해 사용되는 전략이다.

 

캐싱 알고리즘

: 지역성(Locality)

캐시도 나름의 근거를 토대를 가지고 메모리로부터 데이터 캐싱을 하는 것 . 엉떵한 데이터만 캐싱하면 cache miss 확률만 올라가서 시간과 공간을 쓸데없이 잡아먹는다. 근거가 중요!

  • 시간적 지역성
    지금 어떤 데이터를 사용했다면 가까운 미래에 재사용 할 가능성이 있다고 믿기
  • 공간적 지역성
    지금 어떤 데이터를 사용했다면 그와 인접한 데이터도 사요할 가능성이 있다고 믿기

 

 

cpu는 다수의 코어를 보유하고 있고 각 코어는 자체 캐시를 보유한다.

그림에서처럼 각 캐시들이 코어랑 거리가 멀수록 실제로도 멀어진다고 생각하여야한다. -> 거리가 가까울수록 데이터를 가져오는 속도가 빨라지고 멀수록 느려진다.

 

캐시 코히런스(일관성) 문제

: 캐시메모리에 저장된 데이터가 변경되었을 경우 해당 데이터를 동시에 보관하고 있다면 이 데이터의 일관성과 무결성은 어떻게 보장되어야 하는가에 대한 문제

-->MSI프로토콜을 사용

(MSI프로토콜 : 각각의 캐시 라인들에 상태를 부여-> 각 캐시 라인의 상태에 따라 최신값으로의 동기화 여부를 결정하는 프로토콜)

  • S(Shared) 상태
    가장 기본 상태. 동기화가 완료된 직후거나 값에 변함이 없으면 캐시 라인은 해당 상태를 유지

  • M(Modified) 상태
    -코어가 캐시 및 메모리의 값을 새롭게 바꾸려고 할 때 캐시 라인의 상태를 S→M 상태로 바꿔준다.
    -이러한 상태의 캐시 라인이 있으면 메모리는 해당 데이터가 새롭게 본인에게 쓰이기 전까지는 다른 코어의 요구를 거부.

  • I (Invalid) 상태
    -캐시 라인의 상태가 유효하지 않음을 뜻한다.
    -이 상태는 M 상태로 만들고 새롭게 데이터를 쓰려는 코어가 본인의 캐시 라인을 제외한 다른 캐시 라인들의 상태를 전부 I 상태로 바꾸어 놓는 것

'스파르타 부트캠프(spring)' 카테고리의 다른 글

[내일배움캠프_Spring] 자바 Spring 입문_메서드_230103  (0) 2023.01.03
[내일배움캠프_spring] 주간회고 WIL - 8주차  (5) 2023.01.01
[내일배움캠프] 자바 Spring 입문_Rest API_221222  (0) 2022.12.22
[내일배움캠프_Spring] 자바 Spring 입문_테스트코드_221221  (0) 2022.12.21
[내일배움캠프_Spring] 자바 Spring 입문_221220  (0) 2022.12.21
'스파르타 부트캠프(spring)' 카테고리의 다른 글
  • [내일배움캠프_Spring] 자바 Spring 입문_메서드_230103
  • [내일배움캠프_spring] 주간회고 WIL - 8주차
  • [내일배움캠프] 자바 Spring 입문_Rest API_221222
  • [내일배움캠프_Spring] 자바 Spring 입문_테스트코드_221221
yeah구리
yeah구리
백엔드를 공부하는 초심자입니다.
  • yeah구리
    개발일지_헤맨만큼 내땅이다
    yeah구리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 스파르타 부트캠프(spring) (75)
      • 스파르타 기술면접 (10)
      • 코딩연습 (0)
      • 항해 (10)
      • 개발일지 (4)
        • 개인 회고 (1)
        • 개발로그 (실무) (2)
      • 공부노트 (0)
      • 코딩테스트 (0)
        • 프로그래머스 (0)
        • 백준 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    X(Twitter) API #캐싱 #트러블슈팅 #개발
    비전공개발자 #개발로그 #커리어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
yeah구리
[내일배움캠프] 자바 Spring 입문_cache_221230
상단으로

티스토리툴바