[ https://issues.apache.org/jira/browse/IGNITE-2715?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladimir Ozerov closed IGNITE-2715. ----------------------------------- > HotSpot in GridQueryProcessor.BinaryProperty.value() method > ----------------------------------------------------------- > > Key: IGNITE-2715 > URL: https://issues.apache.org/jira/browse/IGNITE-2715 > Project: Ignite > Issue Type: Bug > Affects Versions: 1.5.0.final > Reporter: Denis Magda > Assignee: Vladimir Ozerov > Priority: Blocker > Labels: community, important > Fix For: 1.6 > > > The hotspot was detected in the following scenario. > 1) Start a server node(s) with CacheConfiguration that stores binary objects > of type T and has field A in the indexes; > 2) Start client node that creates objects of type T using BinaryObjectBuilder > but doesn't set value for field A at all; > 3) Client populates the cache with created objects using IgniteDataStreamer > at high rate. > If you connect to the server using Visual VM you'll see that threads from the > public thread pull spend a lot of time waiting for a monitor and that > {{GridQueryProcessor.BinaryProperty.value()}} is a hotspot. > The reason why the method above is the hotspot is because it calls > {{U.warn(log, "Neither key nor value have property " + > "[propName=" + propName + ", key=" + key + ", > val=" + val + "]");}} > all the time converting a binary object to String. The warning is called > because field A is not set in the binary representation. > This warning must be reworked in one of the following way: > - just print the name of the field that is not found; > - print the warning for the debug level only because cases there can be cases > when a binary object doesn't have a field that is set in the indexes. > In addition revisit the rest of the code removing conversion of BinaryObject > to String at places that could lead to performance degradation. -- This message was sent by Atlassian JIRA (v6.3.4#6332)