wesnothd re-work
Moderator: Forum Moderators
wesnothd re-work
I've committed a hugely re-worked version of wesnothd to SVN. This contains a new, stripped-down, to the metal WML implementation which is much faster than the WML used in Wesnoth.
I haven't done a large-scale test of it yet (and indeed there may still be bugs to get worked out), but my small-scale tests indicate it is much faster.
I've also written a design document detailing many of the changes: http://www.wesnoth.org/wiki/WesnothdDesign
I'd like to get this tested thoroughly as the SVN server, and then if it proves successful be used to alleviate the problems we're having with the 1.4 server.
David
I haven't done a large-scale test of it yet (and indeed there may still be bugs to get worked out), but my small-scale tests indicate it is much faster.
I've also written a design document detailing many of the changes: http://www.wesnoth.org/wiki/WesnothdDesign
I'd like to get this tested thoroughly as the SVN server, and then if it proves successful be used to alleviate the problems we're having with the 1.4 server.
David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
Re: wesnothd re-work
Think the document was clear to read if one knows programming.
One thing I would like to point out that its probably better to have N shards where N is a function of the number of games or users for it to scale gracefully. Dynamically allocation and creating new shards should not be a big problem I think.
So which are the server adress so I can test it out ?
One thing I would like to point out that its probably better to have N shards where N is a function of the number of games or users for it to scale gracefully. Dynamically allocation and creating new shards should not be a big problem I think.
So which are the server adress so I can test it out ?
Re: wesnothd re-work
On the contrary, changing the number of shards dynamically would be rather complicated. You'd have to migrate sockets from one shard to another, and make sure they are synchronized as you do it. This would not be trivial at all.vetgirig wrote: One thing I would like to point out that its probably better to have N shards where N is a function of the number of games or users for it to scale gracefully. Dynamically allocation and creating new shards should not be a big problem I think.
Also, there is no need to do it. Just set the number of shards to an appropriate amount for the upper end of the number of users you want the server to support. It won't hurt anything much (except some extra memory usage and sleeping threads) when there are fewer users, and you'll get the benefits when there are many users.
David
“At Gambling, the deadly sin is to mistake bad play for bad luck.” -- Ian Fleming
-
- Posts: 41
- Joined: December 17th, 2007, 12:38 pm
- Location: Berlin, Alexanderplatz
Re: wesnothd re-work
What's the difference, more concretely, between regular WML and Simple_WML? Is it maybe something like the difference between postscript & pdf, where one can represent high-level document abstractions and the other stays close to what a printer will do with the document?
Re: wesnothd re-work
The term "simple_wml" is a bit misleading.
It's really a different (less flexible) version the config class which is optimized for a particular usage pattern (the wesnoth server). It avoids making unnecessary copies of strings and avoids unnecessary work on parsing unmodified content for output. On the downside, it has a more difficult syntax and could easily be used incorrectly. Also, when used in some different circumstances than intended, it could be less efficient than a normal config.
It's really a different (less flexible) version the config class which is optimized for a particular usage pattern (the wesnoth server). It avoids making unnecessary copies of strings and avoids unnecessary work on parsing unmodified content for output. On the downside, it has a more difficult syntax and could easily be used incorrectly. Also, when used in some different circumstances than intended, it could be less efficient than a normal config.
http://www.wesnoth.org/wiki/User:Sapient... "Looks like your skills saved us again. Uh, well at least, they saved Soarin's apple pie."
-
- Posts: 41
- Joined: December 17th, 2007, 12:38 pm
- Location: Berlin, Alexanderplatz
Re: wesnothd re-work
Ah, I see! Thanks.Sapient wrote:The term "simple_wml" is a bit misleading.
It's really a different (less flexible) version the config class which is optimized for a particular usage pattern (the wesnoth server). It avoids making unnecessary copies of strings and avoids unnecessary work on parsing unmodified content for output. On the downside, it has a more difficult syntax and could easily be used incorrectly. Also, when used in some different circumstances than intended, it could be less efficient than a normal config.
- DEATH_is_undead
- Posts: 960
- Joined: March 4th, 2007, 3:00 pm
- Location: Northern United States
Re: wesnothd re-work
How much of the WML is changed?Dave wrote:This contains a new, stripped-down, to the metal WML implementation which is much faster than the WML used in Wesnoth.
Edit: i mean, are the changes internal in the engine, the way it reads it, or is this going to change the code as well?
3P MP Scenario - Great Dwarves Escape
The best way to learn is to follow. In order to learn WML, you have to follow other's work, and check their codes.
The best way to learn is to follow. In order to learn WML, you have to follow other's work, and check their codes.
Re: wesnothd re-work
some features (like preprocessor) that are part of the main WML, but are not used in client->server communication are not available to simple WML
this has no impact on WML authors
this has no impact on WML authors
Fight key loggers: write some perl using vim
- DEATH_is_undead
- Posts: 960
- Joined: March 4th, 2007, 3:00 pm
- Location: Northern United States
Re: wesnothd re-work
Thats all I sawBoucman wrote:no impact on WML authors
3P MP Scenario - Great Dwarves Escape
The best way to learn is to follow. In order to learn WML, you have to follow other's work, and check their codes.
The best way to learn is to follow. In order to learn WML, you have to follow other's work, and check their codes.