2021/11/25 2

대규모 시스템 설계 기초 - 7. 분산 시스템을 위한 유일 ID생성기 설계

분산 시스템에서 사용될 유일 ID 생성기 요구사항 ID는 유일해야 한다 ID는 숫자로만 구성되어야 한다. ID는 64비트로 표현될 수 있는 값이어야 한다. ID는 발급 날짜에 따라 정렬 가능해야 한다. 초당 10,000 개의 ID를 만들 수 있어야 한다. 선택지 다중 마스터 복제 특징 DB의 auto increment 기능을 활용하는 것이다. 다만 다음 ID를 구할 때 1만큼 증가시키지 않고 k 만큼 증가시킨다. 간단하게 적용할 수 있는 방식이고, 한 데이터 센터에서 어느정도 확장도 가능하다 단점 여러 데이터 센터에 걸쳐 규모를 늘리기 어렵다. ID의 유일성은 보장되겠지만, 그 값이 시간 흐름에 맞추어 커지도록 보장할 수는 없다 서버를 추가하거나 삭제할 때도 잘 동작하도록 만들기 어렵다. k가 고정되고 ..

대규모 시스템 설계 기초 - 6. 키-값 저장소 설계

키-값 저장소는 키-값 DB라고도 불리는 비 관계형 DB이다. 키는 유일해야 하며, 키에 매달린 값은 키를 통해서만 접근할 수 있다. 키-값 저장소로 널리 알려진 것으로는 아마존 다이나모, memcached, Redis 같은 것들이 있다. 분산 키-값 저장소 분산 키-값 저장소를 설계하기 전에, 단일 키-값 저장소를 생각해보자. 단일 키-값 저장소는 간단하다. 키-값 쌍 전부를 메모리에 hash table로 저장하면 된다. 또한 2가지 개선책 1) 데이터 압축 2) 자주 쓰이는 데이터만 메모리에 두고 나머지는 디스크에 저장 을 이용하면 조금 더 나은 단일 키-값 저장소를 만들 수 있다. 하지만 한 대 서버로는 부족한 때가 찾아오며 결국은 분산 키-값 저장소를 활용할 수 밖에 없다. 먼저 분산 시스템을 설..