...도면에는 불필요한 선이 없어야 하고 기계에는 불필요한 부품이 없어야 합니다. -윌리엄 스트렁크 주니어, 스타일의 요소
이 책에서 데이터 집약적인 애플리케이션 설계: 안정적이고 확장 가능하며 유지 관리가 용이한 시스템 이면의 큰 아이디어에서 최신 애플리케이션을 위한 데이터 인프라스트럭처 요소의 특성과 장단점에 대해 저술했습니다. 그 책에서 그는 "그림 1-1. 여러 구성 요소를 결합한 데이터 시스템의 가능한 아키텍처"를 그렸습니다. 이 글에서는 그 예와 Couchbase를 사용한 가능한 아키텍처를 살펴봅니다.
예 1:
다음과 같은 최신 데이터베이스를 사용해 보겠습니다. 카우치베이스 확장성을 제공하여 인프라를 간소화합니다. 캐시, 데이터베이스, 검색및 이벤트 처리 를 사용할 수 있습니다. 하나씩 하나씩 각각의 독립적인 구성 요소를 확장 가능한 기능으로 대체할 수 있습니다. 카우치베이스 기능 (빨간색).
새로운 아키텍처를 얻기 위해 불필요한 부분을 제거해 보겠습니다.
예 2: 데이터 분석 및 데이터 시각화라는 일반적인 사용 사례를 하나 더 추가했습니다.
동일한 기술을 사용하여 Couchbase를 사용하고 불필요한 구성 요소를 제거한 후 다음과 같은 결과를 얻었습니다:
다시 말하지만, 새로운 아키텍처를 얻기 위해 불필요한 부분을 제거해 보겠습니다. 여기서는 분석 서비스 카우치베이스 내에서 사용할 수 있습니다.
그렇다고 해서 한두 가지 제품을 사용하도록 모든 것을 간단히 재설계할 수 있는 것은 아닙니다. 모든 인프라의 경향은 복잡성을 증가시키는 것입니다. 구성 요소가 많으면 복잡성이 증가합니다. 이 가이드는 비즈니스 목표를 달성하고 복잡성을 해소하기 위해 구성 요소를 지속적으로 추가, 제거, 리팩터링하는 데 도움이 되는 가이드입니다.
메소스가 UDF 실행과 어떤 관련이 있나요?
--- 포함된 텍스트 ---
반면에 Mesos, YARN, Docker, Kubernetes 등과 같은 배포 및 클러스터 관리 도구는 애플리케이션 코드를 실행하기 위한 목적으로 특별히 설계되었습니다. 한 가지 일을 잘하는 데 집중하기 때문에 여러 기능 중 하나로 사용자 정의 기능의 실행을 제공하는 데이터베이스보다 훨씬 더 잘할 수 있습니다.
직렬화 가능한 트랜잭션이 작은 범위에서 실행된다는 것은 무엇을 의미하나요?
--- 포함된 텍스트 ---
예를 들어, 이러한 시스템은 멀티 리더 구성으로 여러 데이터센터에 분산 운영되어 지역 간에 비동기적으로 복제될 수 있습니다. 지역 간 동기식 조정이 필요하지 않으므로 한 데이터센터가 다른 데이터센터와 독립적으로 계속 운영할 수 있습니다. 이러한 시스템은 조정을 도입하지 않으면 선형화할 수 없기 때문에 적시성 보장은 약하지만 강력한 무결성을 보장할 수 있습니다.
이러한 맥락에서 직렬화 가능한 트랜잭션은 파생된 상태를 유지하는 데 여전히 유용하지만, 잘 작동하는 작은 범위에서 실행할 수 있습니다.
쓰기 왜곡 이상 현상이 나타난다는 것은 무엇을 의미하나요?
--- 포함된 텍스트 ---
저는 개인적으로 MySQL이 고유성 제약 조건을 올바르게 유지하지 못하는 경우와 PostgreSQL의 직렬화 가능 격리 수준에서 쓰기 왜곡 이상이 나타나는 경우를 보았지만, MySQL과 PostgreSQL은 수년 동안 많은 사람들의 실전 테스트를 거친 강력하고 좋은 평가를 받는 데이터베이스입니다.