Hi!

Ignite prints stacktrace of an internal thread if it detects that thread
runs the same task (single get response in your case) for a long time,
which is 30 seconds by default.

Of course, getting large objects from remote nodes is expensive. Can you
please estimate the value size?

Possible ways of speeding up the application:
1. Refactor object model to reduce values size
2. use org.apache.ignite.IgniteCache#withKeepBinary - this will return
IgniteCache that will not deserialize binary objects, therefore there will
be no deserialization. Take a look at this page for info -
https://apacheignite.readme.io/docs/binary-marshaller
3. use org.apache.ignite.IgniteCache#invoke(K,
org.apache.ignite.cache.CacheEntryProcessor<K,V,T>, java.lang.Object...)
instead of pure get() providing the processor that will not be altering the
value, but return only some part of the object (e.g. tuple of last name and
city instead of returning the entire User object).
4. confiure NearCache - https://apacheignite.readme.io/docs/near-caches and
set copy on read
(org.apache.ignite.configuration.CacheConfiguration#isCopyOnRead) to false
- however, bringing large objects to client may overload the client and
introduce new problems.

I would first try 1-3. Please let us know the results.

--Yakov

Reply via email to