Hello,
I am going to do my master thesis in discovery message to reduce to improve its scalability. As far as I know, DDS main concept is to targeting the large scale system that required multi-computer to send each publisher-subscriber message each other.
Unfortunately, I have limited amount of computer to use. I'm thinking using VM (virtual machine) but I think It is not possible because my plan is to implement over a ten thousand publisher and subscriber number. I want to know how to simulate large scale system on the one computer.
Thanks for your time and answer.
Hi,
You can run multiple DDS applications(participants) in a single machine, and the participants will exchange discovery messages over shared memory or loopback interface (if you disable shared memory). If you measure the number of discovery messages, simulating a large number of DDS entities in a single machine or limited number of machines would work. If you face an issue when you create many DDS applications in a machine, please take a look at this link.
https://community.rti.com/kb/what-causes-rtiosapisharedmemorymutexcreateos-semget-failure-error-0x1c-error-message.
When I run more than 1000 DDS entities in a machine, it worked. However, I am not sure running 10000 entities in a single machine, but it should work if your machine has enough resources to run them.
Regarding the idea of using VM, of course, you can run multiple VMs to emulate multiple machines, but I believe VMs also exchange their network packets over virtual network interfaces and possibly shared memory between VMs if they are deployed in the same machine. Therefore, it may not make any differences in terms of network behaviors.
Kyoungho
I think I get an idea from your answer. Thanks kyoungho
Hi,
This link that you mentioned here doesn't work. I also need it. Would you please give me the correct link?
Regards,
Ehsan
Hi,
The link had a trailing "." in it. I fixed it on the message above so it should work now.
Gerardo