Quote from ModulusFE:
RMD Server is a separate C++ library, not part of M4.
There's a C# data server included with M4 but it's main purpose is to broadcast data to thousands of clients. It's not built for the same level of disk IO speed.
Gotcha. It just seems that RMD Server also has the capability to redistribute data. I am not certain as to why they overlap in functionality. It seems as is there is lots of duplication between RMD server and M4, and lots of things they do separately that no other product does.
1) Was the thinking that RMD server is meant mostly for C++ programmers, and M4 for C# programmers, and the duplication between them is natural?
2) Also, it seems as if you are calling it a library, but both are far more than that (Administrative interfaces, etc)?
3) Can one use your scripting language against RMD server, or is that mostly for use with M4?
4) Does it make sense to get both M4 and RMD Server? In what case?
5) Does RMD Server handle aggregation? So if I have two+ feeds, and each has quotes for the exact same symbol, [how] does RMD Server aggregate the quotes? Do you have a program that displays the aggregation (for debug purposes or even for functionality?)
Although.. now days one can easily do memory mapped files using C#. Since IO is the main bottleneck, it should be ok to use C# for this purpose:
http://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx
Using that assembly with SSDs would produce something that would be screaming fast.
There's also an algorithm in RMD that makes seeks very fast. Basically, we use Julian dates for the keys and triangulate to the correct record. It's a bit more complicated but that's roughly what we do. ]
Right. Thanks for the insight.