개인적으로 만들고 있는 link 프로젝트 진행 중 persistence storage 를 지원하고 싶었다. 처음엔 처음부터 만들기 힘들어 보여 google 의 leveldb 를 가져와 wrapping 하는 식으로 key value storage를 지원하게끔 구성하였다.
SkipList 구현하고 있는 simpleDB 프로젝트는 distribute key value storage 로, 기본적으로는 LSM-tree 를 사용하여 storage를 구현했고, 분산처리를 위해 Raft 알고리즘을 구현한 프로젝트이다. 여기서 LSM-tree 기반 storage를 구현하던 중 L0에 해당하는 메모리 영역에 데이터를 저장하기 위한...
Load Balancer 란 무엇인가? 로드 밸런서의 임무는 사용 가능한 서버 풀에서 모든 클라이언트의 요청을 공정하게 나누는 것이다. 로드 밸런서는 서버 과부하나 충돌을 방지하기 위해 이 작업을 수행한다. 로드 밸런싱 계층은 방화벽 다음으로 데이터 센터 내에서 첫 번째 접촉 지점이다. 서비스가 초당 수백 또는 수천 개의 요청을 처리하는 경우 로드...
DNS란 무엇인가? DNS(Domain Name System)는 인간에게 친숙한 도메인 이름을 기계가 읽을 수 있는 IP 주소에 매핑하는 인터넷의 이름 지정 서비스이다. 사용자가 브라우저에 도메인 이름을 입력하면 브라우저는 DNS 인프라에 요청하여 도메인 이름을 IP 주소로 변환해야 한다. 원하는 IP 주소를 얻으면 사용자의 요청이 대상 웹 서버로 ...
Programmers - 게임 맵 최단거리
LeetCode - 1757. Recyclable and Low Fat Products