Etsy의 데이터베이스 샤딩을 Vitess로 마이그레이... 노트

Etsy의 데이터베이스 샤딩을 Vitess로 마이그레이션하기

2010년부터 Etsy의 데이터베이스 아키텍처는 자체 ORM으로 관리되는 샤딩된 MySQL 클러스터를 기반으로 했습니다. 수천 개의 샤드로 구성된 이 시스템은 수동적인 확장과 인덱스 데이터베이스의 단일 실패 지점이라는 문제에 직면했습니다. 인덱스 데이터베이스는 샤드 매핑을 저장하여 ORM이 쿼리를 효율적으로 라우팅하는 것을 방해하고 잠재적인 사이트 중단을 유발했습니다. 이러한 문제를 해결하기 위해 Etsy는 2018년에 오픈 소스 데이터베이스 확장 도구인 Vitess를 도입했습니다. 기존 샤딩 로직을 복제하기 위해 Vitess 내에 사용자 정의 vindex를 구현하여 전체 데이터 마이그레이션을 피했습니다. 여기에는 점진적인 전환을 위해 SQLite 조회 vindex 및 하이브리드 vindex를 생성하는 작업이 포함되었습니다. Vitess로의 마이그레이션은 위험을 최소화하고 쿼리 비호환성을 테스트하기 위해 테이블별로 점진적으로 수행되었습니다. 데이터베이스 트랜잭션 관련 문제로 인해 관련 테이블을 동시에 마이그레이션해야 했으며, 이는 상호 의존성을 강조했습니다. Vitess의 크로스 샤드 쿼리 기능은 성능을 크게 향상시켰지만, 스캐터 쿼리는 신중하게 관리되었습니다. 궁극적으로 Vitess 마이그레이션은 단일 실패 지점을 제거하고 개발자가 데이터에 쉽게 접근할 수 있도록 했으며, 사용자에게는 거의 눈에 띄지 않는 성능 향상을 제공했습니다. 또한 수동 확장을 크게 개선하고 새로운 Vitess 기능을 사용할 수 있게 했습니다.
CdXz5zHNQW_LPveoPxaAk.jpeg