[riot-devel] Distributed Messaging

Kaspar Schleiser kaspar at schleiser.de
Tue Aug 13 15:51:57 CEST 2013


Heyya,

(if you're on stablizing for the release, don't read this message until 
after the release)

I've been thinking on how to implement distributed messaging, e.g., IPC 
between threads on different nodes.

One idea I had was to just launch a proxy thread per connection and then 
use the normal IPC API.

Example in Pseudocode:

proxy_tid = 
setup_distributed_ipc(<whatever_network_address_of_other_node>, 
<TID_of_target_process>)

... Starts a new thread, sends something to the other node starting a 
corresponding proxy thread in the other node. Then the proxy-thread just 
relays all messages to the other proxy_thread over network, which in 
turn relays it to <TID_of_target_process>. The other thread can send 
messages the other direction the same way.

A more sophisticated proxy thread could implement other messaging 
schemes like broadcasting.

For distributed IPC to make sense, we need to extend messaging to 
support sized messages (e.g., bigger than 4 bytes / one value), as 
pointers don't make sense in a distributed environment.

What do you think?

Cheers,
Kaspar


More information about the devel mailing list