zeromq / netmq

A 100% native C# implementation of ZeroMQ for .NET
Other
2.97k stars 746 forks source link

PGM #9

Closed somdoron closed 12 years ago

somdoron commented 12 years ago

pgm is still not supported, there are actually two ways to implement that, microsoft implement pgm as part of msmq. we can also use the original openpgm that zeromq is using and that way it will compatible with zeromq pgm.

you can check out at this project how to use pgm with .net http://code.google.com/p/emcaster/

tobi-tobsen commented 12 years ago

I found the following info on the openpgm website:

OpenPGM can interoperate with Microsoft's PGM implementation found in Windows XP and newer platforms, hence called MS-PGM. Microsoft's stack is currently limited to PGM/IPv4, with no support UDP encapsulation or IPv6.

Imo we should try that out first and the emcaster example suggests that it is not very difficult.

I guess using the openpgm implementation from .net and mono is somewhat more complicated but for portability we should definitely keep that in mind and finally have that on the roadmap.

sustrik commented 12 years ago

IIRC MS implementation of PGM suffers from not having a push-back. If data are sent faster than they can be pushed to the network the memory usage grows without bound. However, this is a pretty old observation (~4 years old), the problem may have been fixed in the meantime. You should check before spending too much time on it.

somdoron commented 12 years ago

@sustrik how can we test that?

sustrik commented 12 years ago

Just push data to PGM socket as fast as possible and check whether it will completely exhaust the memory.

somdoron commented 12 years ago

thanks.

somdoron commented 12 years ago

pgm is working :-), still have some stuff to complete so i'm not doing pull request yet. it should be compatible with zeromq openpgm.

implemented with ms-pgm. if you want to take a look you can find it at: https://github.com/somdoron/netmq/tree/PGM