У меня есть сетка данных Ignite из пяти серверов (скажем, A, B, C, D и E). Разделенный кеш был распределен между этими пятью серверами с количеством резервных копий, установленным как 1.Ввод записей кэша на конкретный сервер Ignite
Я хочу сохранить 100 миллионов записей в этом многораздельном кеше. Но я хочу контролировать разбиение записей кэша на серверы Ignite.
Возможно ли, что я могу направить моего клиента Ignite, чтобы поместить запись кэша на конкретный сервер (скажем, E)?
Я на самом деле пытаюсь использовать Apache Ignite для создания фильтра цветения, для которого требуется распределенный массив из 100 миллиардов бит. Поскольку Ignite не поддерживает структуру данных распределенного массива, я пытаюсь разбить массив на небольшие битовые множества и сохранить их в виде записей в кеше. Я хотел контролировать дистрибутив, так как это помогло мне решить, какой сервер имеет конкретную запись в кеше и направлять мои вычислительные задания (используя сетку Ignite Compute) на этот конкретный сервер. Есть ли способ, которым я могу получить UUID узла на сервере с определенным ключом? –
Я только что обнаружил, что можно получить раздел, на котором присутствует конкретный ключ, с помощью функции CacheConfiguration(). GetAffinityFunction(). Partition (Object key). Можете ли вы сказать мне, что можно найти UUID сервера Ignite с этим разделом? –
Это должно быть сделано через API Affinity, который можно получить с помощью метода Ignite.affinity(). Но для отправки закрытого закрытия вы можете просто использовать 'IgniteCompute.affinityRun()' и 'IgniteCompute.affinityCall()' методы. –