Как получить значение из IMAP (hazelcast) по списку ключей?

Проблема, которую мы пытаемся решить: дайте список ключей, как лучше всего получить значение из IMap, учитывая, что количество записей составляет около 500 000?

Также нам нужно отфильтровать значения на основе полей.

Вот пример карты, которую мы пытаемся прочитать.

Учитывая IMap[String, Object] Мы используем protobuf для сериализации объекта Объект можно сказать

Message test{ Required mac_address eth_mac = 1, ….// size can be around 300 bytes }

person nocturnal    schedule 27.06.2018    source источник


Ответы (1)


Вы можете использовать IMap.getAll(keySet), если заранее знаете ключи. Это намного лучше, чем однократное получение, поскольку при массовой операции будет намного меньше сетевых отключений.

Для фильтрации вы можете использовать предикаты для IMap.values(predicate), IMap.entryset(predicate) или IMap.keyset(predicate) в зависимости от того, что вы хотите отфильтровать.

Подробнее: http://docs.hazelcast.org/docs/latest/manual/html-single/index.html#distributed-query

person sertug    schedule 27.06.2018