서비스의 고유아이디를 만들기 위한 참고용 인스타그램 샤드키 만들기. http://interconnection.tistory.com/25 를 통해서 샤드키와 같은 사용자를 구분하는 고유형식의 아이디를 만드는 것을 보았습니다. 이 부분을 적용해서 우리가 만들고자하는 모바일을 활용한 서비스의 사용자를 구분하는 유일한 ID 키로 사용해보고자 합니다. 사용자를 구분하는 유일한 ID 키를 만드는 방법을 세웠습니다. 단계별로 진행을 하려고 합니다. 1) 현재 사용자를 구분하기 위해 필요한 것이 무엇인가? 와 같은 목적을 정리해야합니다. 2) 1) 과정에서 나온 사용자를 구분하기 위해 필요한 것들을 하나하나씩 분석합니다. 3) 부분부분을 구분하여서 bit를 할당합니다. 일단 단계라고 쓰긴 썼는데 너무 모호한 것 같아서..
인스타그램도 기존의 DB를 사용하는 데에 있어서 용량을 늘리고 샤딩하는 문제에 대해서 전체적인 구조적 고민을 하는 경우가 있었다고 합니다. 심지어 DB종류를 Postgresql에서 다른 종류로 바꿔야 하는 가에 대해서 고민도 했다고 합니다. 하지만 결국 정해진 결론은 데이터를 샤딩하자는 결론이 나왔습니다. 보통 DB에서는 Data가 들어가면 그 Data에 따른 incremental number로 숫자를 생성하여 다루기 때문에 만약 정수형이 이 수를 이용해서 샤딩을 하는 경우에는 중복문제가 발생할 수 있습니다. 그래서 나온 논의가 고유 ID를 만들어서 샤드키로 활용하자는 것이었습니다. 여기서부터 샤드키를 만드는 방법이라고 생각하실 수 있는데, 그렇게 생각하는 것보다 고유한 아이디(UID)를 만드는 과정을 ..
샤딩이라는 것은 데이터를 파티셔닝하는 방법이다. 파티셔닝을 하는 방식에는 1) 수직적 파티셔닝 2) 수평적 파티셔닝 으로 나뉩니다. 사진 data, 동영상 data 로 두가지 종류의 data가 있고, 저장할 DB가 1번, 2번이 있다고 하면, 수직적인 방식으로는 1번 DB에 사진 data를 저장하고, 2번 DB에 동영상 data를 저장하는 방식. 수평적인 방식으로는 1번과 2번 DB에 사진 data의 일부분을 분할 저장, 마찬가지로 동영상 data도 1,2번 DB에 분할 저장하는 방식이다. 본격적으로 샤딩의 방법에 대해서 이야기 합니다. 데이터 베이스에 관해서 샤딩을 고려할 때 먼저 고려되어야 하는 부분은 데이터 베이스의 퍼포먼스를 Scale-Up 하는 것이다. 샤딩은 데이터를 다른 공간에 나누는 작업이..