상태 비저장 스포츠 토토 베트맨 쿼리 라우터 1.0.0 출시
게시일2023-12-05작성: Yandex
관련 오픈 소스
SPQR 팀은 SPQR(Stateless Postgres Query Router)의 첫 번째 프로덕션 지원 버전을 출시하게 된 것을 자랑스럽게 생각합니다.
SPQR은 샤딩을 통한 스포츠 토토 베트맨QL의 수평 확장을 위한 쿼리 라우터입니다. SPQR은 연결 풀러만큼 경량으로 설계되어 데이터 스키마에 대한 지식을 필요한 최소한으로 줄입니다.
주요 기능
- 샤딩. 가능하다면 라우터는 트랜잭션의 첫 번째 문에서 샤드를 결정하고 트랜잭션이 끝날 때까지 클라이언트를 해당 샤드에 바인딩된 상태로 유지합니다. 하지만 샤드 또는 a를 명시적으로 지정할 수 있습니다.샤딩 키댓글 요청에서.
- 트랜잭션 및 세션 풀링. 즐겨 사용하는 연결 풀러(Odyssey 또는 PgBouncer)와 같습니다.
- 내결함성을 위한 다중 라우터. 라우터는 캐시 목적으로만 샤딩 규칙을 저장합니다. 전체 설치에 대한 정보는 QDB 서비스 내부에 저장되므로 동시에 실행되는 라우터 수는 무제한입니다.
- 샤드 재조정. 샤드 간 데이터 마이그레이션은 샤드 전체에 걸쳐 워크로드의 균형을 비례적으로 맞추는 것을 목표로 합니다. 주요 아이디어는 이러한 마이그레이션 중에 잠금 영향을 최소화하는 것입니다. 이는 전송되는 데이터 범위의 크기를 줄여 달성됩니다.
- 여러 서버 및 장애 조치. 라우터 구성에서는 하나의 샤드에 여러 서버를 지정할 수 있습니다. 그런 다음 라우터는 복제본 간에 읽기 전용 쿼리를 배포합니다. 그러나 자동 라우팅 외에도 쿼리 내의 target-session-attr 매개변수를 사용하여 특정 쿼리의 대상을 명시적으로 정의할 수 있는 옵션도 있습니다.
- 쿼리 실행을 위한 사소한 오버헤드. 벤치마크 보기여기그리고여기.
프로젝트 상태
SPQR의 필수 기능 세트가 프로덕션에 사용됩니다. 그러나 자동 샤드 재조정은 아직 생산 준비가 되어 있지 않습니다. 또한 SPQR은 일부 교차 샤드 쿼리를 지원하지만 일관되지 않은 스냅샷이 있고 진정한 교차 샤드 원자성을 제공하기 위해 2PC 잠금이 아닙니다.
현재 프로젝트는 Yandex Cloud에서 관리되고 있습니다. 그러나 우리는 기술적인 관점을 넓힐 수 있는 새로운 설계자와 기여자를 찾고 있습니다. 언제나 그렇듯이 어떤 피드백이라도 환영합니다.
링크
SPQR은 다음에서 개발 및 배포됩니다.https://github.com/pg-sharding/spqr.
출시된 버전을 찾을 수 있습니다.릴리스 페이지에서.