본문 바로가기

키설계

분산 시스템을 위한 유일 ID 생성기 설계 가상면접 사례로 배우는 대규모 시스템 설계 기초 책의 7장을 보면, 분산 시스템을 위한 유일 ID 생성기 설계 패턴에 대해 나온다. 최근에 고민했던 것들이 모두 정리되어있어 블로그에도 남겨본다. 이 책에서는 유일 ID 생성 패턴은 크게 4가지이다. 1. 데이터베이스 별로 pk 생성 규칙을 나눠갖기 DB 별로 사용할 수 있는 pk 생성 규칙을 나눠가지는 안이다. 후보1: pk 증분 기준을 각각 다르게 설정하기 예를 들어, pk를 auto_increment를 데이터베이스 별로 증가시키는 기준을 다르게 가져가는 안이 있다. 갈레라 클러스터 처럼 분산 DB 구조에서는 이런 패턴을 사용하고 있다. 그러나 DB 서버를 증설하거나 삭제하는 작업이 쉽지 않다는 단점이 있다. 후보2: pk 시작값을 다르게 설정하기 대신..
UUID와 increment PK는 언제 사용해야할까? 1. 기본키로 UUID를 사용할 때 오는 이점 테이블의 기본키로 UUID를 사용하는 방법은 3가지 이점이 있다. (a) 데이터베이스가 여러 개인 경우, 하나의 ID가 여러 데이터베이스에서도 고유한 값이라고 볼 수 있다. 이러한 전제가 있으면, 서로 다른 테이블에서 관리되던 데이터를 하나의 데이터 소스로 합치기 쉽다. 예를 들어, 뉴스 콘텐츠 테이블이 1개가 있고, 이를 검색 엔진 (ElasticSearch)에 복제하고 있다고 가정해보자. 이후, 잡지 콘텐츠 테이블이 필요하게 되어, 이 정보를 동일한 ElasticSearch에 추가해야하는 상황이 왔다고 상상해보자. 두 테이블이 숫자 기반의 pk를 사용하고 있었다면 두 콘텐츠의 ID가 충돌나는 현상이 발생하게 된다. 이 때문에 두 테이블을 하나의 소스에 합..