Any progress on improvements?

Feb 27, 2008 at 12:22 PM
First of all, as it is, this program/framework seems to be very good. I am working on re-writing a proprietary framework for trading financial markets and I'm considering using this as part of my solution. So I have a few questions I was hoping you could answer:

1) In your paper you mention improving the solution by writing it in unmanaged code and also by moving away from the heirarchical structure, do you have any plans to do this in the forseeable future?
2) For events I'm not too worried about security (although I am for other areas), but still it would be good to have. I haven't looked at the source yet, but I'm assuming these are not secure sockets? Do you think that using secure sockets of some type would inhibit performance significantly?
3) How do you think your solution would stack-up performance-wise to using events over WCF?

Thanks again for the interesting software.

BW
Coordinator
Feb 28, 2008 at 5:10 PM
1. For the last ~6 months, we have been running the event system on a couple of microsoft.com production servers to support a real-time application monitoring application. During this time, I have been making performance improvements. At this point, performance is much better than I thought it could be when I wrote the paper. So the need to move to unmanaged code really doesn't exist. So I don't see this happening.

The desire to move from a hierarchical topology is for reliability. The hierarchical topology performs quite well but people's immediate reaction is it's a single point of failure. The reality is the network in the data center is very stable and this has never been an issue during the last 6 months. There is a certain level of fault tolerance in the current system which has been more than sufficient. Still, I plan to make some improvements in this area. I am much more pleased with the hierarchical topology than I initially thought I would be. So I am questioning whether to change to a full mesh topology which would add a lot more complexity or to make the current system cluster-aware. If I make the current system cluster-aware then it could run in an active-passive mode. I think this would be just as reliable as a full mesh and without all the complexity. For a couple of thousand servers, you would only need a few of the machines to be running in active-passive cluster config.

2. I haven't been worried about security up to this point because there are so many needs where security isn't an issue. It's the rare case where security has popped up. I think I would put it in the serialize/deserialize methods though rather than secure sockets. Any application can do this today with the system by controlling their own serialization. This is an area I will be looking at improving in the future.

3. It's been about 2 years since I did any comparison and WCF has been enhanced some since then. At the time, I was quite a bit faster. The main problem was WCF couldn't solve the scenarios I needed to solve. For instance, having many publishers of an event and many subscribers of that event on the same box, WCF didn't handle the scenario.

Keith



bwilhite wrote:
First of all, as it is, this program/framework seems to be very good. I am working on re-writing a proprietary framework for trading financial markets and I'm considering using this as part of my solution. So I have a few questions I was hoping you could answer:

1) In your paper you mention improving the solution by writing it in unmanaged code and also by moving away from the heirarchical structure, do you have any plans to do this in the forseeable future?
2) For events I'm not too worried about security (although I am for other areas), but still it would be good to have. I haven't looked at the source yet, but I'm assuming these are not secure sockets? Do you think that using secure sockets of some type would inhibit performance significantly?
3) How do you think your solution would stack-up performance-wise to using events over WCF?

Thanks again for the interesting software.

BW