Transferring messages from a publisher to a subscriber is the second data processing stage. Minimizing or eliminating packet re-transmission due to dropped packets is the single most important factor in maximizing Sybase RAP performance.
UDP packets can be dropped by the system for a number of reasons:
The publisher is sending packets too fast for the
network to keep up. In this case, the publishing socket SO_SNDBUF
is
too small, or the network is too slow, or the subscriber's socket SO_RCVBUF
is
too small, to keep up with the workload.
The maximum values for SO_SNDBUF
and
SO_RCVBUF can be changed by reconfiguring the operating
system. Sybase RAP publisher and subscriber software allocate the
maximum buffer space allowed by the operating system for SO_SNDBUF
and
SO_RCVBUF
buffering.
The subscriber is not loading data as fast as the data is being received. This is likely due to CPU speed, or the number of CPUs on the subscriber system. This could also be due to an improperly tuned or configured ASE or Sybase IQ server, preventing data from loading as fast as possible.
To reduce or eliminate dropped packets:
Use multiple multicast channels. Each DataStream channel defined in a publisher or subscriber is a separate multicast channel. Each channel is a multicast IP address and port number pair, and contains its own operating system buffers and network interface.
Use a high-speed network interface. The interface is specified when the channel is configured, and should reference the highest-speed network interface on your system. This interface should be at least 1gigabit/second (1000base-T/SX/LX).
Use multiple network interfaces. If you have more than one network interface in your machine, you can configure one or more Sybase RAP DataStream Channels over each of them, for maximum transmission rates. This will allow greater throughput by the network, by splitting the data channels over two or more separate high-speed interfaces.
Use multiple network interfaces. If you have more than one network interface in your machine, you can configure one or more Sybase RAP DataStream Channels over each of them, for maximum transmission rates. This will allow greater throughput by the network, by splitting the data channels over two or more separate high-speed interfaces.
Use systems with more CPUs or cores, so that the multi-threaded subscriber can process incoming data in parallel. Each DataStream Channel is managed by its own thread, and separate threads are used to load each table in ASE or Sybase IQ. Therefore, there is ample opportunity to leverage parallel processing, if sufficient CPU and cores are available on the system.
Configure your system so that the host computers for publishers and subscribers are on the same subnet, eliminating the need for packets to pass through routers.
Configure your network to allow larger MTU sizes. The Maximum Transmission Unit (MTU) is the largest size of IP datagram which may be transferred in one frame using a specific data link connection, and can be configured to be larger than the default (which is typically 1500 bytes).