I am using gemfire as my cache. The cache heap size is well above 100GB. I discovered that when we put data in gemfire cache from client, it would serialize the data and send to server, and on server the data is stored in serialized form. Problems:
- When i try to execute any on-server function call, it then starts deserializing the data and it is really time consuming, some times it takes more than an hour just to iterate through the objects in cache. (Number of objects are close to 6 million).
- I tried using gemfire custom serialization (DataSerializer class). And the amount of memory it takes after all the data is in cache is about 60GB which is the same if I were to use Java default serialization.
- I tried using a library called Kryo https://github.com/EsotericSoftware/kryo and that does helps a lot, but i still don't understand why gemfire serialization doesn't help me as i am serializing each attribute of the class individually so there shouldn't be any burden to write class headers and any other meta data.
Any help would be really appreciated.