Computer >> 컴퓨터 >  >> 프로그램 작성 >> 데이터 베이스

CockroachDB용 ObjectRocket으로 분산 SQL 확장

2019년 8월 ObjectRocket.com/blog에서 처음 게시됨

CockroachDB®는 Rackspace ObjectRocket 데이터베이스 기술 제품군의 일부입니다. CockroachDB의 확장 기능은 데이터 복제 및 배포(고가용성 최대화), 자동 데이터베이스 재조정, 데이터 도미시링 규정 준수를 지원하는 다중 지역 데이터 센터와 함께 흥미진진합니다. 그리고 이 모든 것은 높은 데이터 무결성과 분산된 ACID 트랜잭션으로 이루어집니다. 왜냐하면 CockroachDBdata 복원력은 필수품이기 때문입니다.

우리는 CockroachDB를 사용한 확장의 하이라이트 중 일부를 공유하고Rackspace ObjectRocket의 DBaaS가 제공하는 것을 살펴보고자 합니다. 개발자는 관리 서비스 플랫폼에서 CockroachDB를 사용할 때 데이터베이스 실행의 복잡성이 아닌 애플리케이션 구축에 집중할 수 있습니다.

CockroachDB용 ObjectRocket으로 분산 SQL 확장

요즘은 스케일링이 무엇보다 중요합니다

20년 전만 해도 스토리지는 값비싼 문제였으며 빅 데이터라는 용어는 우리가 큰 도전에 직면해 있음을 분명히 했습니다. 우리는 엄청난 양의 데이터를 가지고 있었고 그 데이터를 분석하거나 사용할 좋은 방법이 없었습니다. 그러나 이제 기술은 전자 상거래, 금융 소프트웨어, 연구, 경영 관리 및 데이터 마이닝의 현대 세계에 내재된 빅 데이터와 끊임없는 쿼리 및 트랜잭션을 처리할 수 있습니다. 또 다른 기술 프론티어, 사물 인터넷 , 데이터를 생성하고 온라인으로 트랜잭션을 실행하는 장치의 수를 늘립니다. 이제 온라인에서 유용한 데이터를 생성하는 다양한 기기 목록에 카메라, 조명 스위치, 냉장고를 추가할 수 있습니다.

이러한 환경에서는 데이터 저장소에 대한 현재 요구 사항을 충족하고 불가피한 데이터 증가와 더 많은 데이터 및 트랜잭션의 새로운 소스, 아직 상상하지 못한 소스를 허용하는 확장 전략을 구현하는 것이 중요합니다.

확장이란 단순히 현재 워크로드를 적절하게 처리하기 위해 필요한 데이터베이스 리소스를 늘리거나 줄이는 것을 의미합니다. 다음과 같은 방법으로 확장합니다.

  • 수직 크기 조정: 클러스터 내의 기본 노드에 RAM, 저장 공간 및 CPU를 추가(또는 제거)합니다.
  • 수평 크기 조정: 단일 노드에 더 많은 리소스를 추가하는 대신 워크로드를 처리하는 데 필요한 경우 더 많은 노드를 추가합니다.

대부분의 관계형 데이터베이스는 수직 확장을 사용합니다. 그러나 대부분의 분산 데이터베이스(종종 비관계형)는 수평 확장을 사용합니다. 이는 트랜잭션 로드가 많고, 쿼리가 자주 발생하며, 읽기/쓰기 및 복원력 요구 사항이 더 좋습니다. 단일 하드웨어.

그러나 수평 확장은 계산적으로 제한되지 않으며 사용 가능한 하드웨어의 양과 소프트웨어가 지원하는 것으로만 제한됩니다. CockroachDB를 독특하게 만드는 것은 분산형 온라인 트랜잭션 처리(OLTP) 시스템에 내재된 빠른 실시간 읽기 및 쓰기에 대한 응답으로 관계형 데이터베이스(전통적으로는 불가능)를 수평으로 확장하는 훌륭한 솔루션을 제공한다는 것입니다. CockroachDB를 수직으로 확장할 수도 있지만 노드를 추가하여 확장하는 것이 선호되는 방법입니다.

CockroachDB 확장이 특별한 이유는 무엇입니까?

Rackspace ObjectRocket의 제품 관리자인 Derek Johnson에 따르면 CockroachDB 확장의 가장 흥미로운 측면은 얼마나 스마트한지입니다. 첫 번째 노드를 생성하고 구성한 후 후속 노드 추가가 간단해집니다. 다중 노드 환경에서 데이터 저장소의 안정성, 규정 준수 및 성능을 유지하기 위해 자동 크기 조정, 데이터 균형 및 자체 관리 지역별 규정 준수 요구 사항의 강력한 CockroachDB 기능을 활용할 수 있습니다. 최적화된 구성을 통해 CockroachDB의 진정한 기능을 활용할 수 있습니다. 예를 들어 —locality를 사용하여 노드의 지역 및 가용 영역을 설명하는 플래그를 사용하여 CockroachDB는 지리적 분할을 구현하고 지정된 지역 내에서 데이터를 자동으로 유지합니다.

다음은 몇 가지 확장 하이라이트에 대한 분석입니다.

데이터 저장소 확장에 따른 데이터 무결성

  • 트랜잭션은 ACID를 준수하며 BEGIN과 같은 SQL 명령을 사용하여 일반적인 방식으로 사용할 수 있습니다. 또는 COMMIT .
  • CockroachDB는 관계형 데이터베이스와 다릅니다. 확장하는 동안 단일 노드로 가는 모든 쓰기 대신 모든 관련 노드에 읽기와 쓰기를 모두 분산합니다. 이 다중 활성 가용성은 CockroachDB의 고가용성 버전이며 지리적 확장을 허용합니다.
  • CockroachDB는 최소 3개의 다른 노드에 복제 요청을 보낸 다음 대부분의 노드가 데이터를 성공적으로 복제했다고 보고할 때까지 커밋을 기다리는 방식으로 합의 복제를 사용합니다.
  • 각 쓰기에 대한 의도와 기록이 있는 중재된 트랜잭션은 트랜잭션 충돌을 방지합니다.
  • CockroachDB는 두 개의 객체를 사용하여 모든 트랜잭션을 조정합니다. 트랜잭션 레코드와 쓰기 인텐트는 서로 체크인하고 필요한 경우 트랜잭션을 다시 시작하여 최신 값을 커밋하도록 합니다.
  • CockroachDB는 데이터 균형 및 복제로 인해 성능과 데이터 무결성의 균형이 잘 맞습니다.

구조를 위한 지리적 분할!

지리적으로 격리된 샤드를 생성하는 대신 지연 시간을 개선하지만 교차 지역 쿼리를 방지하는 대신 CockroachDB는 범위 수준에서 구성 설정을 사용하여 정의된 지역 내에서 데이터를 복제합니다. CockroachDB는 고유한 지리적 분할 기능으로 이중 목적 가치를 제공합니다. 데이터를 저장하도록 특정 지역을 구성하면 애플리케이션 성능(사용자 애플리케이션에 더 가까운 데이터)과 GDPR 데이터 거주 규정 준수를 모두 달성할 수 있습니다.

CockroachDB 관리 UI에는 노드 맵이라는 환상적인 지리적 표시가 있습니다. , 모든 노드에 대한 아이콘과 각 노드에 대한 세부 정보가 있는 세계 지도를 보여줍니다. 이 그래픽 디스플레이는 데이터 저장소 간의 지연 문제를 계획하고 해결하는 데 도움이 됩니다. ObjectRocket Mission Control UI를 통해 CockroachDB에 접근할 때, CockroachDB AdminUI에 쉽게 연결하여 Node Map을 볼 수 있습니다.

적절한 구성으로 새 노드를 수동으로 추가하면 스마트하고 신속한 확장이 가능합니다.

  • 새 노드를 사전에 가동하려면 CLI 또는 관리 UI를 통해 명령을 사용하여 노드를 만들고 필요한 플래그 및 기타 구성을 설정할 수 있습니다.
  • 확장하려면 많은 데이터베이스를 중지하고 시작해야 하지만 CockroachDB를 사용하면 시스템 부하가 걸리는 동안 노드를 쉽게 추가할 수 있습니다.

오케스트레이션을 사용하면 다운타임 없이 자동으로 조정이 처리됩니다.

CockroachDB는 다음과 같은 확장 이점을 제공합니다.

  • 오케스트레이션 플랫폼을 통해 CockroachDB를 확장하면 쉽고 강력한 자동화가 가능합니다. 예를 들어, ObjectRocket이 사용하는 것처럼 Kubernetes를 사용할 때 단일 명령으로 CockroachDB를 확장하여 새 리소스를 프로비저닝하고 필요에 따라 추가 포드를 가동할 수 있습니다.
  • 노드 간 데이터 재조정은 데이터 센터와 다른 클라우드 제공업체 간에도 자동으로 발생합니다.
  • 분산 트랜잭션은 작업 부하에 영향이 없고 가동 중지 시간이 없으며 지연 시간이 증가하지 않음을 의미합니다.
  • 모든 노드에서 균등하게 서버 활용도를 최적화하는 것은 CockroachDB의 자동 크기 조정의 자연스러운 결과입니다.

관리형 서비스로 통합

ObjectRocket은 Kubernetes 컨테이너 기반 아키텍처를 사용하여 CockroachDB 데이터 저장소에 대한 완전한 관리형 서비스를 제공합니다. 이 서비스에는 설계 및 배포 컨설팅, 전체 기술 지원, 기업용 CockroachDB 버전의 모든 이점이 포함됩니다.

관리형 CockroachDB 솔루션의 주요 기능은 다음과 같습니다.

  • 3노드 HA(고가용성) 클러스터
  • ObjectRocket UI를 통해 CockroachDB 관리 UI에 액세스
  • IP 주소 허용 목록
  • 사용자 인증
  • 전송 계층 보안(TLS)

이것이 의미하는 바는 편안한 SQL 인터페이스와 PostgreSQLwire 호환성을 제공하지만 자동 HA, 손쉬운 확장성 및 지리적 확장을 갖춘 관계형 ACID 호환 데이터 저장소를 얻을 수 있다는 것입니다.

ObjectRocket의 관리형 CockroachDB 제품을 사용하면 사전 정의된 노드 유형에서 데이터 요구 사항에 가장 적합한 옵션을 선택한 다음 필요에 따라 해당 노드 유형을 더 추가하여 수평적으로 확장할 수 있습니다. Kubernetes 기반 플랫폼은 장애 또는 문제가 있는 노드를 자동으로 교체하므로 클러스터가 항상 가동되고 사용 가능한지 확인할 수 있습니다.

지금은 CockroachDB와 Rackspace ObjectRocket이 관리 서비스와 함께 제공하는 사항을 확인하기에 좋은 시간입니다. CockroachDB의 관리형 제품이 어떻게 데이터 저장소 요구 사항을 해결할 수 있는지에 대한 통찰력을 얻으려면 Top 5 Use Cases 블로그를 참조하십시오.Cockroach®에는 우수한 문서가 있습니다. .

Rackspace Cloud 서비스 약관을 보려면 여기를 클릭하십시오.

피드백 탭을 사용하여 의견을 작성하거나 질문하십시오. 영업 채팅을 클릭할 수도 있습니다. 지금 채팅하고 대화를 시작하세요.