반응형

개발 40

Retry

Exponential Backoff 점진적으로 시간 간격이 늘어나는 Exponential Backoff 전략 지수에 비례하여 Backoff 시간을 조절한다. 한계점: 어차피 동시에 요청이 몰린다면 똑같은 시간 간격으로 모든 재시도가 동일하게 몰릴 것 With Jitter 원래 Jitter는 데이터 통신 용어로 사용될 때는 패킷 지연이 일정하기 않고, 수시로 변하면서 그 간격이 일정하지 않는 현상을 의미한다 동일한 재시도 시간 간격에 무작위성을 추가하여 서로 요청하는 시간대의 동시성(?)을 분산 지수로 증가하는 Backoff 시간에 일정 범위 안의 랜덤 대기 시간을 추가적으로 더하는 것 On WebFlux Normal Retry .retry() .retry(long numRetries) .retryWhen..

개발 2023.07.03

Redis Fragmentation

문제 TTL로 인한 key eviction이 많이 발생하는 경우 설정된 maxmemory를 넘어서 maxmemory_policy를 통한 key eviction이 많이 발생하는 경우 used_memory 지표는 줄어드나 used_memory_rss 지표는 큰 감소가 발생하지 않고 유지됨 메모리 단편화(Fragmentation) 현상 발생 Redis Memory 모니터링 지표 예시용 호출 예제이므로 키값들만 확인하고 지표는 단편화와 관계 없음 127.0.0.1:6379> info memory # Memory used_memory:967440 used_memory_human:944.77K used_memory_rss:8720384 used_memory_rss_human:8.32M used_memory_peak..

개발 2023.06.18

캐싱 전략

Cache 캐쉬란 데이터 요청 주체와 메모리 저장공간 사이에 위치하면서 메모리 저장공간에 대한 조회 요청을 앞에서 먼저 대신 처리해주는 저장장치이다. 직접적으로 데이터 처리 로직을 실행 하지않고 이전에 조회된 데이터를 다시 가져오는 방식이기 효율성을 얻기 적이지만 일관성을 일부 양보하는 전략이라고 할 수 있다 Read 보다 Write가 빈번하게 일어나야 하거나 데이터 정합성이 중요한 경우 Cache를 사용하기 부적합하다 지역성의 원리 Hit ratio 를 높이는 방식으로 cache 에 데이터를 저장하는 것이 중요하며 이때 지역성의 원리가 적용된 알고리즘이 주로 사용된다. 시간 지역성(Temporal locality) 최근에 요청된 데이터가 다시 요청될 확률이 높다. For, while 같은 반복문에 사용..

개발 2023.06.17
반응형