데이터 계층화
r6gd 패밀리의 노드 유형을 사용하는 클러스터는 메모리와 로컬 SSD(solid state drives) 스토리지 간에 데이터를 계층화합니다. 데이터 계층화는 데이터를 메모리에 저장하는 것 외에도 각 클러스터 노드에서 저렴한 SSD(Solid State Drive)를 활용하여 Valkey 및 Redis OSS 워크로드에 대한 새로운 가격 대비 성능 옵션을 제공합니다. 다른 노드 유형과 마찬가지로 r6gd 노드에 기록된 데이터는 다중 AZ 트랜잭션 로그에 안정적으로 저장됩니다. 데이터 계층화는 전체 데이터 세트의 최대 20%까지 정기적으로 액세스하는 워크로드와 SSD에서 데이터에 액세스할 때 추가 지연 시간을 허용할 수 있는 애플리케이션에 이상적입니다.
데이터 계층화가 있는 클러스터에서 MemoryDB는 저장하는 모든 항목의 마지막 액세스 시간을 모니터링합니다. 사용 가능한 메모리(DRAM)가 모두 사용되면 MemoryDB는 최근최소사용(LRU) 알고리즘을 사용하여 자주 액세스하지 않는 항목을 메모리에서 SSD로 자동으로 이동합니다. 이후에 SSD의 데이터에 액세스하면 MemoryDB가 요청을 처리하기 전에 자동 및 비동기식으로 다시 메모리로 이동합니다. 데이터의 하위 집합에만 정기적으로 액세스하는 워크로드가 있는 경우 데이터 계층화는 용량을 비용 효율적으로 확장할 수 있는 최적의 방법입니다.
데이터 계층화를 사용하면 키 자체는 항상 메모리에 남아 있지만 LRU는 메모리 대 디스크의 값 배치를 제어합니다. 일반적으로 데이터 계층화를 사용하는 경우 키 크기가 값 크기보다 작은 것이 좋습니다.
데이터 계층화는 애플리케이션 워크로드에 미치는 성능 영향을 최소화하도록 설계되었습니다. 예를 들어 500바이트 문자열 값을 가정하면 SSD에 저장된 데이터에 대한 읽기 요청 및 메모리의 데이터에 대한 읽기 요청과 비교하여 평균 450마이크로초의 지연 시간을 추가로 기대할 수 있습니다.
가장 큰 데이터 계층화 노드 크기(db.r6gd.8xlarge)를 사용하면 단일 500노드 클러스터에 대략 500TB까지 저장할 수 있습니다(읽기 복제본 1개를 사용하는 경우는 250TB). 데이터 계층화의 경우, MemoryDB는 노드당(DRAM) 메모리의 19%를 비데이터 사용을 위해 예약합니다. 데이터 계층화는 MemoryDB에서 지원되는 모든 Valkey 및 Redis OSS 명령 및 데이터 구조와 호환됩니다. 이 기능을 사용하려면 클라이언트 측 변경 사항이 필요하지 않습니다.