Search code examples
c#ignitegridgain

How to fix Ignite startup warnings


The following configuration creates a list of warnings on ignite startup. How can fix it?

<?xml version="1.0" encoding="utf-8"?>
<igniteConfiguration localhost="127.0.0.1" autoGenerateIgniteInstanceName="true" peerAssemblyLoadingMode="CurrentAppDomain" 
                    xmlns="http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection">
  <discoverySpi type="TcpDiscoverySpi">
    <ipFinder type="TcpDiscoveryMulticastIpFinder">
      <endpoints>
        <string>127.0.0.1:47500..47502</string>
      </endpoints>
    </ipFinder>
  </discoverySpi>
  <jvmOptions>
    <string>-DIGNITE_QUIET=true</string>
    <string>-DIGNITE_PERFORMANCE_SUGGESTIONS_DISABLED=true</string>
  </jvmOptions>
  <logger type="Apache.Ignite.NLog.IgniteNLogLogger, Apache.Ignite.NLog" />
</igniteConfiguration>

Warnings are as follows.

  1. org.apache.ignite.internal.util.typedef.G, Ignite work directory is not provided, automatically resolved to....

    Do we need to have a unique directory exclusively for each node including client and server? does the igniteConfiguration workDirectory='..' supports relative path? and in the case of asp.net web deployment is it required to set ignite_home?

  2. org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi, Message queue limit is set to 0 which may lead to potential OOMEs when running cache operations in FULL_ASYNC or PRIMARY_SYNC modes due to message queues growth on sender and receiver sides.

    When we set the messaequeuelimit as 1024(default) value, do we need to explicitly set the slowClientQueueLimit value as less than messaequeuelimit? (communicationSpi type='TcpCommunicationSpi' messageQueueLimit='1024') refering to the thread Ignite TcpCommunicationSpi : Can slowClientQueueLimit be set to same value as messageQueueLimit as per docs?

  3. org.apache.ignite.spi.checkpoint.noop.NoopCheckpointSpi, Checkpoints are disabled (to enable configure any GridCheckpointSpi implementation)

    Can we ignore this warning when ignite is configured to run pure in-memory and persistence is OFF?

  4. org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing, Serialization of Java objects in H2 was enabled.

  5. org.apache.ignite.internal.processors.platform.PlatformProcessorImpl, Marshaller is automatically set to o.a.i.i.binary.BinaryMarshaller (other nodes must have the same marshaller type).


Solution

    1. You may provide the same directory for all of your nodes, Ignite will create a sub-directory for each node inside this directory. This warning is just about: be careful, you do not provide a work directory explicitly, an ignite will resolve this directory automatically and you should put in some effort to find it in your file system if you will need it.

    2. If you omit msgQueueLimit, the default value will be 0 and you will have this warning. If you set this parameter explicitly, it will be better to set explicitly slowClientQueueLimit.

    3. This warn is not about checkpoints from IgnitePersistenceStorage. This is about checkpoints from ComputeGrid (just collision in terms). It is a mechanism to store the intermediate result of a job. You may ignore this warning.

    4. According Ignite and H2 sources [1] Ignite checks "h2.javaObjectSerializer" system property from h2 engine, by default it is true. And if it is true, prints this warnign and sets it to false any way. To avoit this warn you can jus set this system property to false explicitly.

    5. This is just a warning that you do not configure marshaller explicitly, and Ignite uses a default marshaller, and be sure you have the same marshaller on each node. To hide this warn, you may set the same marshaller (org.apache.ignite.internal.binary.BinaryMarshaller) explicitly.

    [1] https://github.com/apache/ignite/blob/master/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java#L2095