캐시 작업에 대한 토폴로지 방식 동작
NCache 캐시 작업을 수행할 때 다르게 동작하는 다양한 캐싱 토폴로지를 제공합니다. 아래 주어진 NCache 토폴로지 및 해당 동작.
- 미러 캐시 (엔터프라이즈 에디션만 해당)
- 복제된 캐시
- 파티션된 캐시
- 분할된 복제본 캐시 (엔터프라이즈 에디션만 해당)
- 클라이언트 캐시 (엔터프라이즈 에디션만 해당)
미러 토폴로지
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. NCache Enterprise Edition.
In 거울 토폴로지에서 클라이언트는 활성 노드와만 통신하고 수동 노드는 활성 노드의 복제본이며 백업에 사용됩니다.
대량 작업은 활성 노드에서 수행되며 응용 프로그램은 수동 노드에 작업이 복제될 때까지 기다립니다.
비동기 작업도 활성 노드에서 수행되지만 컨트롤은 애플리케이션에 즉시 반환되므로 두 노드에서 작업이 수행될 때까지 기다리지 않습니다. 콜백이 등록되어 있으면 작업의 성공 또는 실패에 따라 트리거됩니다.
복제된 토폴로지
In 복제 된 토폴로지에서 클라이언트는 한 번에 하나의 노드에 연결됩니다. 따라서 대량/비동기 작업은 클라이언트가 연결된 특정 노드로 전송됩니다. 그런 다음 이러한 작업은 노드 간에 동기식으로 복제되어 데이터 일관성을 보장합니다.
대량 작업의 경우 클라이언트가 연결된 특정 노드로 작업이 전송됩니다. 클러스터의 모든 노드에서 복제가 발생한 후 컨트롤이 사용자에게 반환됩니다.
비동기 작업의 경우 복제가 발생할 때까지 기다리지 않고 컨트롤이 애플리케이션에 즉시 반환됩니다. 그러나 일단 복제가 발생하면 콜백이 트리거되어 클라이언트로 반환됩니다.
분할된 토폴로지
In 분할 된 or 분할된 복제본 토폴로지에서 클러스터 전체의 데이터 배포를 담당하는 배포 맵이 유지됩니다. 수행 중인 작업에 대해 자세히 알아보기 전에 분포 맵이 무엇인지 이해하는 것이 중요합니다. 분산 맵은 키-값 쌍 구조로, 키는 노드 ID를 나타내고 값에는 해당 노드에 있는 버킷(데이터) 정보가 포함됩니다. 이런 식으로 전체 맵이 캐시에 대해 생성되고 서버 측에서 유지됩니다. NCache 코디네이터 노드가 맵을 기반으로 데이터 분포를 결정하도록 합니다.
주의 사항
배포 맵은 클러스터가 완전히 연결된 경우(클러스터의 모든 노드가 연결된 경우) 모든 데이터를 배포합니다. 노드가 클러스터에서 연결이 끊긴 경우 NCache 더 이상 분포도를 기준으로 데이터를 나누지 않고 다음 연결된 노드로 데이터를 보냅니다.
분산 맵 작업에서 버킷이 있는 노드 주소를 가져온 후 대상 노드로 전송됩니다. NCache 클라이언트 측에서 분산 맵을 유지하므로 키에 대해 다음 작업을 수행할 때 작업이 데이터가 있는 노드로 직접 전송됩니다. 데이터가 있는 노드로 작업을 직접 보내므로 성능이 향상됩니다.
분포 맵에 따라 데이터 항목 1-500이 N1에 있고 501-1000이 N2에 있다고 가정합니다(그러나 데이터는 순서대로 분할되지 않고 무작위로 섞임). 대량 항목에 대해 수행된 모든 작업에서 작업은 단일 호출로 해당 노드로 전송됩니다. 클라이언트 측에서 배포 맵을 갖는 가장 큰 장점은 데이터 상주 노드에서 작업이 직접 수행되기 때문에 더 빠른 성능입니다. 작업이 전체적으로 수행되면 제어가 사용자에게 반환됩니다(추가 작업의 경우).
비동기 작업의 경우 쓰기 작업이 수행되면 작업이 백그라운드에서 계속 실행되는 동안 호출이 즉시 반환됩니다. NCache 클라이언트 작업에 영향을 주지 않는 백그라운드에서 작업 wrt 데이터를 추적하는 대기열을 유지합니다. 작업을 수행하는 데 매우 오랜 시간이 걸리는 광범위한 데이터 세트를 사용하여 큰 편안함을 제공합니다.
분할된 복제본 토폴로지
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. NCache Enterprise Edition.
In 분할된 복제본 토폴로지에서 클라이언트 작업은 할당된 노드에서 먼저 수행된 다음 사용자가 지정한 대로 동기식 또는 비동기식으로 해당 복제본에 복제됩니다.
대량 작업의 경우 동기화 모드에서는 할당된 노드에서 작업이 수행되고 응용 프로그램은 파티션의 복제본에서 복제가 발생할 때까지 기다립니다. 만약에 비동기 모드에서는 파티션 노드에서 작업이 수행되는 즉시 컨트롤이 응용 프로그램으로 반환되며 비동기식이므로 복제를 기다리지 않습니다.
비동기 작업의 경우 할당된 파티션 노드로 작업이 전송되고 지정된 동기화 모드에 관계없이 컨트롤이 사용자에게 즉시 반환됩니다.
클라이언트 캐시
주의 사항
이 기능은 다음에서만 사용할 수 있습니다. NCache Enterprise Edition.
A 클라이언트 캐시 원격 클러스터 캐시와 동기화된 로컬 캐시입니다. 이 동기화는 폴링을 통해 발생합니다. 클러스터 캐시가 기본 폴링 간격인 1초 후에 클라이언트 캐시에 대한 변경 사항을 감지하면 변경된 데이터를 폴링하도록 클라이언트 캐시에 알립니다. 그렇지 않으면 기본 간격인 10초 후에 클라이언트 캐시가 클러스터된 캐시에 변경된 데이터(있는 경우)를 제공하도록 요청합니다.
쓰기 작업의 경우 각 작업은 먼저 클라이언트 캐시에서 수행된 다음 내부 Write-Behind 메커니즘을 통해 원격 캐시에서 수행됩니다.
대량 작업의 경우 클라이언트 캐시와 원격 캐시 모두에서 작업이 수행되면 컨트롤이 애플리케이션으로 반환됩니다. 비동기 작업의 경우 캐시에서 작업이 수행된 후 콜백이 원격 캐시에서 클라이언트 캐시로 반환됩니다.
그러나 읽기 작업의 경우 먼저 클라이언트 캐시에서 키를 검색합니다. 찾을 수 없는 경우 클라이언트 캐시는 원격 캐시에서 키 항목을 가져온 다음 클라이언트에 반환합니다. 이를 통해 데이터 무결성을 손상시키지 않으면서 애플리케이션의 성능과 확장성을 최대한 높일 수 있습니다.