Database/Vitess
-
[Vitess] vtctldclient AddCellInfo 명령어 알아보기Database/Vitess 2024. 2. 5. 07:39
- 목차 들어가며.이번 글에서는 vtctldclient 의 AddCellInfo 명령어에 대해 알아보겠습니다.AddCellInfo 는 Vitess 클러스터의 Topology Server에 새로운 셀(Cell) 정보를 추가하는 명령어입니다.Cell 은 Vitess 클러스터에서 논리적인 그룹을 나타내며, tablet 들이 위치할 수 있는 영역입니다. 예를 들어, 총 8개의 vttablet 들이 존재할 때에 4개는 Cell1, 나머지 4개의 vttablet 은 Cell2 로 설정할 수 있습니다. 아래의 이미지와 같이 물리적인 vttablet 을 4개씩 그룹지어 논리적 단위로 나눌 수 있게 됩니다. Topology Service ( Etcd ).일반적으로 Vitess 의 Topology Service 는 E..
-
[Vitess] PlannedReparentShard 알아보기 ( PRS , Planned Reparent Shard )Database/Vitess 2024. 1. 2. 04:37
- 목차 들어가며.이번 글에서는 Vitess 의 PlannedReparentShard 에 대해서 알아보도록 하겠습니다.Vitess 는 여러 MySQL Instance 들을 매니징하는 서비스로써하나의 Vitess Cluster 내부에서 여러 MySQL Instance 들이 존재합니다.그리고 Primary - Replica 구조를 통해서 MySQL 의 Replication 을 지원합니다. Primary - Replica 구조에서 Replica 를 새로운 Primary 로 변경하는 작업을 Leader Election, Failover 등으로 표현하곤 하는데요.Vitess 에서는 이러한 작업을 Reparent 라고 합니다.Primary 를 Parent 로 여기고, Replica 들을 Child 로 간주하는 컨셉..
-
[Vitess] Etcd 알아보기Database/Vitess 2023. 12. 30. 23:39
- 목차 소개. Vitess 는 내부적으로 etcd 를 사용합니다. etcd 는 ZooKeeper 처럼 분산 시스템의 상태 정보와 메타데이터를 저장하는데요. Vitess 의 여러 Topology 들의 상태와 정보를 저장합니다. etcd 를 통해서 Keyspace, Cell, Shard, Tablet 의 상태와 정보가 관리된다고 생각하시면 됩니다. 이번 글을 통해서 Vitess 는 Etcd 에 어떤 정보를 저장하고, Etcd 를 활용하는 Orchestration 에 대해 알아보려고 합니다. Vitess Cluster 구현하기. 아래 예시는 Kubernetes 위에서 Vitess 를 실행하는 간단한 예시입니다. Kubernetes 와 Vitess 환경에서 Etcd 가 어떻게 동작하는지 알아보려고 합니다. h..
-
[Vitess] Topology Service 알아보기Database/Vitess 2023. 12. 30. 21:50
- 목차 소개. Vitess 의 Topology 는 Vitess 의 여러 구성요소들의 구조와 관계를 설정하는 논리적인 개념입니다. Vitess 의 구성요소들은 다음과 같습니다. Server, Cell, Keyspace, Shard, Tablet 등으로 구성됩니다. 이번 글에서는 각각의 요소들이 무엇인지 알아보고 Topology 를 구성하는 방법에 대해서 알아보려고 합니다. 구성요소. Vitess 의 구성요소들을 알아봅니다. 구성요소들은 Server, Cell, Keyspace, Shard, Tablet 등이 존재합니다. Server. Vitess 에서 지칭하는 Server 는 실제 물리적인 서버를 의미합니다. Vitess 는 MySQL 을 관리하는 클러스터인데요. 여러 개의 MySQL 서버 또는 프로세스..
-
[Vitess & Kubernetes] Cell 알아보기Database/Vitess 2023. 12. 30. 16:36
- 목차 함께 보면 좋은 자료. https://westlife0615.tistory.com/232 KinD 로 Vitess 구현하기. - 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/407 KinD 알아보기. - 목차 소개. KinD 는 "카인드" 라고 발음되며, 로컬 머신에서 쿠버네티스를 간편하게 실행할 수 있는 도구입니다. KinD 는 Kuberne westlife0615.tistory.com 소개. Cell 은 Vitess 가 관리하는 데이터베이스들을 논리적으로 묶는 단위입니다. "논리적 단위" 라는 표현이 좀 애매한데요. 이를 잘 표현하는 다른 사례들을 먼저 얘기하고자 합니다. 쿠버네티스를 예로 들면, ReplicaSet 이나 Service 를 이야기할 수..
-
[Vitess] VTGate 알아보기Database/Vitess 2023. 11. 24. 13:08
- 목차 들어가며.VTGate 는 Vitess 생태계에서 중요한 구성 요소로, 클라이언트 애플리케이션이 Vitess 클러스터와 상호 작용할 수 있도록 하는 게이트웨이 역할을 합니다. VTGate 의 역할은 다음과 같이 나열할 수 있습니다. 클라이언트의 요청 쿼리를 적절한 VTTablet 으로 라우팅합니다.다중 VTGate 를 두어 로드 밸런서 & 리버스 프록시의 역할을 수행할 수 있습니다.Multi Shards 로부터 전달받은 데이터를 Join, Merge, Sorting 을 수행합니다. 추가적으로, 사용자와 권한(예: User 및 Grant) 설정도 지원하여 데이터베이스의 보안을 효과적으로 관리할 수 있습니다.이 문서에서는 VTGate 의 주요 기능에 대한 설명과 실습을 진행하려고 합니다. VTGa..
-
[Vitess] VTOrc Orchestration 알아보기 ( EmergencyReparentShard )Database/Vitess 2023. 10. 30. 22:04
- 목차 들어가며.Vitess 는 MySQL 기반의 대규모 분산 데이터베이스 관리 시스템으로, 대규모 트래픽과 데이터베이스 확장성 문제를 해결합니다. 이러한 Vitess 의 강력한 기능 중 하나인 VTOrc는 복제(replication) 관리와 장애 복구(failover)를 자동화하는 Orchestration 도구입니다. 이 글에서는 VTOrc의 역할, 주요 기능, 동작 방식, 그리고 사용 사례에 대해 알아보겠습니다. 아래의 링크들은 Docker 로 구현하는 Vitess 에 관한 글들의 링크입니다. 아래 내용을 먼저 참고하시면 VTOrc에 대한 이해를 돕는데 유용할 것입니다. https://westlife0615.tistory.com/73 [Vitess] mysqlctld 기본적인 사용법 알아보기- 목차..
-
[Vitess] Docker 환경에서 vttablet 실행하기: 단계별 가이드Database/Vitess 2023. 9. 19. 09:59
- 목차 들어가며.이번 글에서는 1개의 vttablet 을 Docker 를 통해서 실행하는 방법에 대해서 알아보려고 합니다.vttablet 을 실행시키기 위해서 다양한 Vitess 구성 요소가 필요합니다.아래는 필수적으로 요구되는 구성 요소들입니다.Etcd : Cell, Shard 등의 Vitess 상태 저장을 위한 중앙 저장소입니다.vtctld : Vitess Client 로부터 Vitess 구성요소를 생성하기 위한 API Server.mysqlctld : mysqlctld 는 MySQL 인스턴스를 생성 및 실행, 관리를 위해서 필요한 Vitess 의 도구입니다. vttablet 은 Vitess의 핵심 구성 요소 중 하나로, Vitess 클러스터에서 MySQL 데이터베이스와 직접 통신하며 데이터 복제,..
-
Vitess Multi Shards 구현하기 ( Sharded Keyspace )Database/Vitess 2023. 9. 6. 07:32
- 목차 들어가며.Vitess 는 대규모 분산 MySQL 워크로드를 관리하기 위한 강력한 오픈 소스 데이터베이스 클러스터링 시스템입니다. 많은 트래픽과 데이터를 처리해야 하는 현대의 애플리케이션에서 데이터베이스 성능과 확장성은 매우 중요합니다. 그러나 데이터의 양이 방대해지면서 단일 데이터베이스로 이를 처리하는 데 한계가 생길 수 있습니다. 이러한 문제를 해결하기 위해 도입되는 기술 중 하나가 바로 샤딩(sharding) 입니다. Vitess 는 동일한 Keyspace 에 여러 Shard 를 구성하고, 각 Shard 에 Vttablet 을 배치하여 데이터와 트래픽을 분산시킬 수 있습니다.각 VTTablet 과 그 내부의 MySQL 은 샤딩된 개별적인 데이터 단위를 관리하게 됩니다.그리고 VTGate 는 ..
-
KinD 로 Vitess 구현하기.Database/Vitess 2023. 9. 5. 09:54
- 목차 함께 보면 좋은 글. https://westlife0615.tistory.com/407 KinD 알아보기. - 목차 소개. KinD 는 "카인드" 라고 발음되며, 로컬 머신에서 쿠버네티스를 간편하게 실행할 수 있는 도구입니다. KinD 는 Kubernetes in Docker 의 약자이구요. Docker 를 활용하여 쿠버네티스 환경을 구성 westlife0615.tistory.com https://westlife0615.tistory.com/80 Kubernetes Custom Resource 알아보기 - 목차 소개.쿠버네티스의 Custom Resource 에 대해서 알아보려고 합니다. 쿠버네티스는 자체적인 Resource 들을 가집니다. Pod, ReplicaSet, Deployment, Se..