В эти дни я провел несколько экспериментов по загрузке loadCache, localLoadCache и данным запроса из кеша. Однако я все больше и больше озадачивался. Вот мои загадки. Пожалуйста, помогите мне, если вы знаете, как объяснить.loadCache() и localLoadCache() и данные хранения внутреннего хранилища логики
- В чем разница между loadCache и localLoadCache?
Какова логика хранения данных в кеше? Например, я запускаю узел с именем «
A
», чей кеш хранит некоторые данные (предположим 10 элементов) из таблицы Person вDB
. И затем внутри кода я позволяю ему запрашивать данные из кеша за 5 секунд. Затем я запускаю новый узел с именем «B
», в кеше которого хранится 20 других данных элементов из таблицы Person вDB
, а также позволяет запрашивать данные из кеша за 5 секунд. Однако почему запрос данных из «A
» и «B
» - это 30 элементов данных (сумма 10 + 20)?Если я позволю
B
поместить данные нового элемента в кеш, а затем 'A
' также может запросить новые данные? Когда я закроюB
, тогдаA
запросит 10 элементов данных, что означает, что он такой же, как первый. Зачем?
Спасибо за ваше терпение и доброту. 1. И как кеш решает, принадлежит ли конкретная пара ключ-значение локальному узлу? С некоторыми алгоритмами? 2. Как вы сказали, loadCache инициирует загрузку распределенных данных. А как насчет localLoadCache Будет ли это инициировать распределенную загрузку данных? –
1. Для этого по умолчанию используется алгоритм хэширования Randezvous: https://en.wikipedia.org/wiki/Rendezvous_hashing. 2. 'localLoadCache' загружается только локально. Но обычно не имеет смысла загружать только один узел, потому что вы не будете загружать всю таблицу. Метод существует для случаев, когда пользователь по какой-либо причине хочет инициировать процесс на всех узлах вручную. –