공유 메모리 아키텍쳐
흔히 말하는 수직확장
장비를 더 좋은 장비로 업그레이드 하는 방식
많은 CPU, 많은 메몰 칩, 많은 디스크를 하나의 운영체제로 결합
빠른 상호연결로 모든 CPU가 메모리나 디스크에 direct로 접근 가능
단점
비용이 선형적으로 증가하지 않음
두 배 크기의 장비가 두 배의 부하를 처리할 수 없음(병목현상)
제한적인 내결함성 제공(하이엔드 장비는 핫 스왑이 가능. 핫 스왑이란 장비를 중단시키지 않고 디스크, 메모리 모듈, CPU를 교체할 수 있는 것을 말함)
공유 디스크 아키텍처
독립적인 CPU와 RAM을 탑재한 여러 장비를 사용하며, 데이터 저장은 장비 간 공유하는 디스크 배열에 하는 방식
여러 장비는 고속 네트워크(NAS)로 연결
일부 데이터 웨어하우스에서 사용하는 방식이지만, 잠금 경합과 오버헤드가 공유 디스크 접근 방식의 확장성을 제한
비공유 아키텍처
흔히 말하는 수평확장
각 노드는 CPU, RAM, DISK를 독립적으로 사용하며, 노드 간 코디네이션은 네트워크를 사용해 소프트웨어 수준에서 수행
특별한 하드웨어가 필요하지 않으므로 가격 대비 성능이 가장 좋음
지리적인 영역에 제한이 없으므로 데이터를 분산해서 저장할 수 있으며, 지리적으로 가까운 사용자의 응답에 활용할 수 있어 지연시간을 줄이고, 전체 데이터 센터의 손실을 줄일 수 있음
단점
비공유 아키텍처가 모든 면에서 좋은 것은 아님
대개 부가적인 애플리케이션 복잡도를 야기하며, 때로는 사용할 수 있는 데이터 모델의 표현을 제한
경우에 따라 단일 스레드 프로그램이 100개 이상의 CPU 코어를 사용하는 클러스터보다 훨씬 효율적으로 수행될 수 있음
여러 노드에 데이터를 분산하는 방법은 일반적으로 두 가지로 구분
복제
같은 데이터의 복사본을 잠재적으로 다른 위치에 있는 여러 노드에 유지
중복성을 제공
일부 노드가 사용 불가능 상태라면 해당 데이터는 남은 다른 노드를 통해 여전히 제공
파티셔닝