본문 바로가기

데이터베이스2

데이터베이스의 꽃, 샤딩(Sharding) 이전에 사내의 한 도메인에서 사용하는 DB 용량의 86% 정도를 사용함에 따라 성능 저하가 발생하기 시작했다. 그래서 샤딩 도입을 고려하게 되었고 이에 대한 세미나를 들은적이 있었다. 당시 기억으로는 샤딩을 도입전에 것이 고려해야할 것도 많고, 성능 향상도 크게 기대하기 어려워 샤딩 도입을 신중히 해야한다는 결론이었다. 이번에는 샤딩을 고려하기까지의 과정, 화려한 샤딩 기술과 한계가 무엇인지 정리해보도록 하겠다. 샤딩은 DB 클러스터링(동기 복제방식)과 리플리케이션(비동기 복제방식)에 뒤이어 서비스의 전성기~성숙기 시기에 고려하게되는 Scale-out 솔루션이다. DB 관점에서의 서비스 성장 과정 초기의 서비스는 규모도 작고 트래픽도 많지 않기 때문에 단일 DB로 구성할 수도 있다. 하지만 서비스 초기에.. 2021. 11. 17.
리플리케이션(Replication) 얼마전 회사에서 개발을 완료하고 QA 환경에서 확인하던 중 분명 있어야할 데이터가 없다는 에러로그를 확인했다. 그렇게 문제를 따라가보니 이게 왠걸 라이브 쪽 데이터와 같아야할 리플리케이션(Replication)된 DB가 깨져버렸다. 다행히 인프라팀에 요청해서 해결할 수 있었지만, 개발자로서 왜 이런 문제가 발생했고 또 리플리케이션이 정확히 뭔지 짚고 넘어가야 할것 같아서 내용을 정리해보기로 했다. 리플리케이션 (Replication) 개인적으로 재미있게 본 영화 [블레이드 러너 2049] 를 보면 미래의 인류가 인간의 노동력을 대체하기 위해 만들어진 복제인간, 리플리칸트(Replicant)가 등장한다. 리플리칸트는 비서, 경찰, 군인 등의 특수한 목적을 달성하고자 인간(Master)의 명령에 따르는 복제.. 2021. 10. 21.