ADLINK-IST / opensplice

This is the Vortex OpenSplice Community Edition source repository. For our commercial offering see
https://www.adlinktech.com/en/vortex-opensplice-data-distribution-service
Apache License 2.0
259 stars 155 forks source link

Participant number limitation #152

Closed leonfg closed 4 years ago

leonfg commented 4 years ago

Opensplice community 6.9.181127OSS, Python interface, Win10 x64. The pub_multi.py creates several publisher subprocesses to simulate a multiple publisher scenario. If there are more than 9 subprocesses, sub.py will not receive all publishers‘ data. And there will be some log "rtps_init: failed to find a free participant index for domain 0" in ospl-error.log. Is that means the participant must be no more than 10 (9 publisher and 1 subscriber) in a domain? Is there any way to increase the limitation?

pgangula-src commented 4 years ago

Hello, In your publisher application you are not just creating 9 publishers but at the same time 9 domain participants which leads to creating equal number of DDSI instances while in Single Process. The default max number of DDSI instances per single node is 9 and this is clearly being exceeded as you totally have (9 + 1) DDSI instances running at same time. Firstly, I would change the pub application to use single domain participant and several publishers in subprocesses and this should resolve the issue.

Secondly, if you would at some point-of-time planning to run several single process applications on a single node then you could change the default limitation of 9 DDSI instances to an higher value in your configuration (More in link below). But, in this case, it is better to explore shared memory architecture (available in commercial version only) as there would only be 1 DDSI instance per federation and multiple applications can co-locate, this would benefit in reduced discovery overhead and better performance in many technical grounds (More in link below).

http://download.prismtech.com/docs/Vortex/html/ospl/DeploymentGuide/guide.html#id438 (Maximum DDSI participant index)

http://download.prismtech.com/docs/Vortex/html/ospl/DeploymentGuide/overview.html#shared-memory-architecture (Shared Memory Architecture)

Best Regards Phani

leonfg commented 4 years ago

Thank you! The purpose of the pub_multi is to simulate a multiple publisher scenario. The real application environment is a multiple machine system and publishers will be running on different machines. Considering each individual publisher code needs to do DomainParticipant, I want to confirm if there is same participant index limitation in multiple machine environment. Or how can I make publishers in different machines belong to same one participant?

pgangula-src commented 4 years ago

There is no such limitation in a distributed environment.

Cheers Phani

leonfg commented 4 years ago

Thank you!