OpenSplice DDS V6 offers the choice of two memory modes, Shared Memory and Single Process, which should I use?
OpenSplice DDS is highly configurable and when you are deploying your application you can choose to use either a shared memory architecture or a single process architecture. Both deployment modes support a configurable set of services. The choice of mode will depend on your exact requirements and the deployment scenario.
Single Process Mode
This standalone single process deployment option is most useful in environments where shared memory is unavailable or undesirable.It uses dynamic heap memory and there is no need to pre-configure a shared memory segment. This can be seen as an advantage.
If you have muliple DDS application running on a single node then this mode is not a good choice. Each DDS application will have its own services running. This results in extra resource usage and network overhead. As OpenSplice is started with your application, the life-cycle of the services are directly related to your application. With each restart of your application a entirely new instance of OpenSplice starts. Inter-node communications are done via the loop-back interface, so other than the added overheads within the services, there would be no added application traffic.
The single process mode uses the default ospl.xml configuration file which is in the OpenSplice installation/etc/config directory. See Vortex OpenSplice DDS configuration for more information on these files.
Shared Memory Mode
In shared memory mode data is physically present only once on any machine. Smart administration is used to provide each subscriber with its own private view of this data. The OpenSplice daemon creates the shared memory on start up and both the DDS applications and OpenSplice administration interface directly with it.