Forum Stats

  • 3,874,744 Users
  • 2,266,769 Discussions
  • 7,911,962 Comments

Discussions

overriding Coherence packet size

User_L0XYY
User_L0XYY Member Posts: 8 Red Ribbon
edited Oct 16, 2017 4:05PM in Coherence Support

I want to provide a system property that can be used to override the packet publisher packet size, but in the event that the system property is not set, I don't want to disturb the default behavior in 12.x that determines the packet size based on the MTU.

For example, an override like this will set the value to 1468 by default, but that value can be overridden if -Dtangosol.coherence.packet.size=NNNN is specified on the command line.

  <cluster-config>

    <packet-publisher>

      <packet-size system-property="tangosol.coherence.packet.size">1468</packet-size>

    </packet-publisher>

  </cluster-config>

However, I do not want to explicitly specify a default value and want Coherence's default logic of using the MTU size to set the packet size if the system property is not set on the command line.

Does anyone know if defining the system property, but not setting a value will accomplish what I want?  Example:

  <cluster-config>

    <packet-publisher>

      <packet-size system-property="tangosol.coherence.packet.size"></packet-size>

    </packet-publisher>

  </cluster-config>

or...

  <cluster-config>

    <packet-publisher>

      <packet-size system-property="tangosol.coherence.packet.size" />

    </packet-publisher>

  </cluster-config>

Thanks for your help.

Best Answer

Answers

  • Shyam Radhakrishnan-Oracle
    Shyam Radhakrishnan-Oracle Member Posts: 80
    edited Oct 12, 2017 9:46AM Answer ✓

    Yes, if you do not specify a null(blank) value like you have mentioned, it will use the default property.

  • User_L0XYY
    User_L0XYY Member Posts: 8 Red Ribbon
    edited Oct 12, 2017 9:52AM

    Thank you Shyam.  By the way, I didn't experiment with this myself ahead of time without asking for some confirmation that it would work because I cannot find an mbean attribute that will tell me what the packet size is.  Can you confirm that there isn't a way outside of running a network trace to see what the multicast packet size is?

  • Shyam Radhakrishnan-Oracle
    Shyam Radhakrishnan-Oracle Member Posts: 80
    edited Oct 12, 2017 10:54AM

    If you sysout CacheFactory.getClusterConfig() after the cluster has started, I think you should be able to see the actual cluster config being used.

  • User_L0XYY
    User_L0XYY Member Posts: 8 Red Ribbon
    edited Oct 12, 2017 2:19PM

    Printing CacheFactory.getClusterConfig() prints a lot of information --including the packet-publisher element.  But the packet size element is not included.

    I have proven via negative testing (i.e. setting my added system property value to a very small number) that the system property is working, but it sure would be nice to see what the resultant packet size is.

  • Mfalco-Oracle
    Mfalco-Oracle Member Posts: 503
    edited Oct 16, 2017 3:14PM

    You can verify your setting as follows:

    1. Start the coherence console java -cp $PATH_TO_YOUR_OVERRIDE:coherence.jar com.tangosol.net.CacheFactory

    2. from within the console run:

         &getCluster.getPublisher.getPreferredPacketLength

         &getCluster.getPublisher.getMaximumPacketLength

    I'm curious what you've encountered that is necessitating changing either of these values.

    thanks,

    Mark

    Oracle Coherence

  • User_L0XYY
    User_L0XYY Member Posts: 8 Red Ribbon
    edited Oct 16, 2017 4:05PM

    >> I'm curious what you've encountered that is necessitating changing either of these values.

    We are in the middle of a server refresh project.  Three of the servers in the cluster running storage-enabled nodes as well as all of the storage client application servers are "older" servers with an MTU of 1500.  There are also three "new" servers in the cluster running storage nodes that have an MTU of 9000.  This has proven to be unstable with nodes constantly dropping out of the cluster and coming back in.  A mutlicast test confirms that the packets sent out by the "new" servers are not reaching the "old" servers.  If we shut down the "new" servers, the cluster returns to its previous stable state.

    So until we can get all servers in the cluster to share a common MTU, I am going to use the packet size properties to set all nodes to the lowest common denominator of 1500 - 32.

This discussion has been closed.