consistent hash (ring hash) 간단하게 구현
요새 golang으로 캐시서버를 만들고 있는 중입니다.물론 golang 학습을 위해 구성하고 있기에, mini project 성격이 강합니다.계획은 간단한 key-value 캐시서버를 만들고, 여러 대의 캐시서버를 두는 분산 캐시서버를 만드는 것입니다.분산 캐시서버를 만들 때, 가장 중요한 부분 중 하나가 key값을 여러 대의 서버에 어떻게 분배할 것인가 하는 문제입니다.보통 이런 경우, 해시함수를 이용하여, key값을 해싱한 후, 그 값을 서버대수로 나눈 나머지로 서버를 결정하는 방식을 많이 사용합니다.하지만, 이런 방식은 서버가 추가되거나 제거될 때, 많은 key값들이 영향을 받게 됩니다.예를 들어, 3대의 서버가 있을 때, key1이 서버 1에 매핑되었다고 합시다. 이 상황에서 서버가 하나 추가되어..
2025. 11. 17.
number dictionary 선언시…
나는 여태껏 python dictionary를 사용할 때, key값이 어떤 값이던간에 key:value 형태로 사용하곤 했다. key 값이 숫자건 문자건 key가 생성되어 있다면 value를 추가(혹은 수정) key가 없다면 key에 대해 정의한뒤 value를 추가 하는 식으로 말이다. (defaultDict 안쓰는 고집이 있다.) 가령 예를 들어, 무방향 그래프에서 각 노드 간 연결이 아래와 같이 주어진다고 할 때 connections = [[0,1],[0,2],[1,2]] 이걸 dictionary 형태로 구성한다면 connections = [[0,1],[0,2],[1,2]] num_dict = {} for conn in connections: a,b = conn[0], conn[1] if a not ..
2023. 3. 26.