요즘 나는 캐시에서 loadCache, localLoadCache 및 쿼리 데이터에 대한 몇 가지 실험을했습니다. 그러나 나는 점점 더 혼란에 빠져 들었다. 여기 내 퍼즐이 있습니다. 설명하는 방법을 알고 있다면 도와주세요.loadCache() 및 localLoadCache()와 캐시의 데이터를 저장하는 논리
- loadCache와 localLoadCache의 차이점은 무엇입니까?
캐시의 데이터를 저장하는 논리는 무엇입니까? 예를 들어, '
A
'노드를 시작합니다.이 노드의 캐시는 테이블 Person의 일부 데이터 (10 항목이라고 가정)를DB
에 저장합니다. 그런 다음 코드 내부에서 5 초마다 캐시의 데이터를 쿼리합니다. 그런 다음 'B
'이라는 새 노드를 시작합니다.이 노드의 캐시는 테이블 Person의 다른 20 개의 항목 데이터를DB
에 저장하고 5 초마다 캐시에서 데이터를 쿼리합니다. 그러나 'A
'및 'B
'의 데이터를 쿼리하는 것이 30 개 항목 데이터 (10 + 20의 합계) 인 이유는 무엇입니까?B
새 항목 데이터를 캐시에 넣고 'A
'도 새 데이터를 쿼리 할 수 있습니까?B
을 닫으면A
은 10 개의 항목 데이터를 쿼리합니다. 즉 첫 번째 것과 동일합니다. 왜?
양해 해 주셔서 감사합니다. 1. 캐시가 특정 키 - 값 쌍이 로컬 노드에 속하는지 여부를 결정하는 방법은 무엇입니까? 일부 알고리즘이 있습니까? 2. 말했듯이, loadCache는 분산 데이터 로딩을 트리거합니다. 그리고 localLoadCache는 분산 데이터 로딩을 트리거할까요? –
1. 기본적으로 Randezous hashing 알고리즘이 사용됩니다 (https://en.wikipedia.org/wiki/Rendezvous_hashing). 2.'localLoadCache'는 로컬에서만로드됩니다. 그러나 일반적으로 전체 테이블을로드하지 않으므로 하나의 노드에서만로드하는 것이 적절하지 않습니다. 이 방법은 사용자가 어떤 이유로 든 모든 노드에서 수동으로 프로세스를 트리거하려고하는 경우에 사용됩니다. –