in reply to A distributed design challenge

Ovid,

I asked something similar (but different) in the past, and BrowserUk came up with a client/server set of scripts which emphasizes the extraordinary performance improvement using persistent connections for inter-task or inter-machine communications. His scripts are here: Re^7: How to maintain a persistent connection over sockets?. You may want to download them and play with them. The results are quite interesting!

Also BrowserUk's suggestion about the design of the server is right on. I would just enhance it to be 2 machines at two different locations (redundancy and disaster recovery). But you could always improve that later.

Others have already stated some really good ideas, but I'm confused by one thing.

To scale, you need to have all machines/cores/etc. sharing the work-load not duplicating the process.

On the other hand that was done by the IBM Watson computer ( Jeopardy fame ), but that was to see how many different processes returned similar or exact responses, so that a master task would tally the results and 'speak' with the 'best' answer.

Good Luck, it sounds like a fun project...Ed

"Well done is better than well said." - Benjamin Franklin

Replies are listed 'Best First'.
Re^2: A distributed design challenge
by SuicideJunkie (Vicar) on Jul 05, 2012 at 13:49 UTC

    As I understand it, it would not be the same request, but similar requests.

    EG:

    • 2pm : Ad budget has $0.10 left, typical bid is 5 cents
    • 2pm + 5 ms : Box 3 gets a request to bid on an ad slot at foo.com
    • 2pm + 6 ms : Box 8 gets a request to bid on an ad slot at bar.com
    • 2pm + 7 ms : Box 13 gets a request to bid on an ad slot at baz.com
    • ...
    • 2pm + 750 ms : Box 3's bid wins - Budget = $0.05
    • 2pm + 751 ms : Box 8's bid wins - Budget = $0.00
    • 2pm + 752 ms : Box 13's bid wins - Budget = -$0.05
    • ...