ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Denis Magda (JIRA)" <j...@apache.org>
Subject [jira] [Created] (IGNITE-2715) HotSpot in GridQueryProcessor.BinaryProperty.value() method
Date Wed, 24 Feb 2016 15:38:18 GMT
Denis Magda created IGNITE-2715:

             Summary: 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
             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

View raw message