Adding "special" support for intra JVM communication between PTC -s running on the same machine
Submitted by Kristof Szabados
Link to original bug (#569210)
Description
On the C side there is a feature called "unix domain sockets", that is not directly available from Java. This feature lets unix processes exchange network messages without the messages ever touching the network cards, if they are located in the same machine.
While Java is not able to use this feature ... thanks to the architecture of how PTC -s are started on Titan's Java side, it might be possible to create a similar alternative. For PTC -s running inside the same JVM it might be possible to realize, that they are inside the same JVM (as we have an outside view on the setup during execution) and could create connections between them, that exchange message without sending them out to the network cards. This could create some measurable performance for inter-PTC communication (when they are on the same JVM). And actually might also be useful in practice:
- in the case of smaller tests, all PTC -s might be running on the same machine/JVM for cost reasons.
- in case of larger, more distributed test scenarios, where there are many PTC -s running in parallel ... there is a good chance that some of them will be on the same machine (user can also affect this intentionally), leting us reduce the overhead of internal communications significantly.
Version: 7.1.0