Advertisement

GonzoNet - high level library for large scale robust networking

Started by December 07, 2014 12:45 PM
12 comments, last by MatsK 9 years, 10 months ago

Also, you should include a license in the repository or the code is technically unusable (I see that you have license headers on some files, but not others; it would be clearer if you simply had a LICENSE.md file in the root, or something).

Josh Petrie, thanks for pointing out the license issues. I updated the headers for the files that were missing it, and sent a couple mails to the people who wrote the code for the ones where I deliberately didn't put a license.

If they don't reply, can I put in License.md that these files are NOT covered by the license?

As for your MMO question, Project Dollhouse is an MMO - or rather a remake of one. The userbase is such that the I'll probably never get above 1000 simultaneous players, but I'm absolutely confident that GonzoNet could handle more. I'm going to write a test case to prove that.

Advertisement
Keep in mind that at scale things rarely behave linearly. Just because you have headroom with 300 doesn't mean you can scale past 3000, just as an example. At scale things typically behave stepwise: you're fine until you hit the wall, at which point you are very much not fine anymore.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

So I rewrote GonzoNet and my servers to use BlockingCollection instead of ArrayList and ConcurrentDictionary instead of Dictionary.

However, I'm pretty sure I read on MSDN somewhere (I can't find the article right now) that I should be using BlockingCollection.GetConsumingEnumerable() when doing a foreach loop, because the standard foreach iterator will block threads.

So... how would I then readd items into the collection after I'm done consuming them?

Could I add them to a temp collection and replace the original one with the temp? Would that be safe?

This topic is closed to new replies.

Advertisement