Я использую gemfire как свой кеш. Размер кучи кеша значительно превышает 100 ГБ. Я обнаружил, что, когда мы помещаем данные в кеш-гейм-код от клиента, он будет сериализовывать данные и отправлять их на сервер, а на сервере данные хранятся в сериализованной форме. Проблемы:
Любая помощь могла бы быть полезна.
Вы изучали использование параметра read-serialized=true
в файле cache cache.xml? Установка этого атрибута в значение true позволит серверу выполнять операции с кэшированными объектами без необходимости десериализации сначала. Узнайте больше об этом в документации Pivotal.
Вивек,
если размер объекта слишком велик, это поможет использовать функцию распространения Delta Gemfire https://pubs.vmware.com/vfabric5/index.jsp?topic=/com.vmware.vfabric.gemfire.6.6/getting_started/quickstart_examples/delta_propagation.html
Это все равно будет иметь сериализацию/десериализацию, но разница будет с клиентской стороны, которую вы только отправляете "то, что изменилось в объекте" на сервер, и теоретически это то, что реплицируется на другие серверы и клиенты, если вы иметь список интересов, зарегистрированный на клиентах.
Я также обнаружил, что нормальный PUT в кэше клиента намного более эффективен, чем использование выполнения функции (onRegion или onServers и т.д.),
read-serialized=true
.