목록운영 관련 경험 (2)
Lewis's Tech Keep
해시 키 재배치(rehash) 문제부하를 균등하게 나누려면 해시 함수를 이용하면 좋음serverIndex = hash(key) % N (N은 서버의 개수) 기존 키가 삭제되거나 추가되면 이슈가 발생할 수 있음삭제 될 경우 엉뚱한 서버에 접속 -> 대규모 캐시 미스 발생 가능안정 해시안정 해시는 해시 테이블 크기가 조정될 때 오직 k(키 개수)/n(슬롯 개수)개의 키만 재배치하는 기술서버와 키를 균등 분포(uniform distribution) 해시 함수를 사용 해 해시 링에 배치키의 위치에서 링을 시계 방향으로 탐색하다 만나는 최초의 서버가 키가 저장될 서버다파티션 (해시 공간)의 불균형 문제가 생김 -> 가상 노드가 들어옴가상 노드하나의 서버가 링 위에 여러 개의 가상 노드를 가지는 것시계방향으로 링을..

배경설명어느 날이었다.저녁 시간 대 쯤 갑자기 모니터링 보드에서 급격한 hps 증가를 보았다.예제 그림너무 급격하게 오른 요청 수로 인하여 요청들이 쓰레드를 모두 차지하여 혼잡 상태에 들어가게 되고,이로 인해 파드가 무한 재시작하는 상황이 발생했다.판단증가 폭이 빨라도 너무 빨랐다.재배포나 일반적 플로우에서의 일시적 혼잡 상태라면 어느정도 피크를 달성한 이후에 정상화되어야 하고 유저의 일반적 재요청일 경우의 그래프라고 하기 어려울 만큼 해당 그래프는 급격한 증가세에 있었다.진행이로 인하여 플로우 상 진행되지 않는 서버가 존재하자 비즈니스적 타격을 받게 되었다.기존에 RateLimiter가 존재했지만 해당 RateLimiter는 결국 어플리케이션 레벨에 있는 라이브러리였기 때문에 쓰레드 워커가 일을 할 수..