Warning: this reply is long and many can find it useless, so just skip it if you want
Since I misread this topic, i feel like I owe you a response, it might be useless but here it is:
Saving every pokemon a player catches may (I think will is better here) create an overhead to the server performance and it may get stuck just saving newly caught pokemon which in the end freeze the server (As Borgore said).
You're talking about low stability (as the problem) and you're suggesting lowering the performance as a solution.
Well, this trade off in Client/Server model is what everyone afraid of. we may need to sacrifice losing some data after a server crash just to maintain good performance when the game is running (Maybe I'm mistaken in this point and there is a good solution for it).
But every solution to maintain stability, performance and reliability will cost more than a simple fix can do, for example, lets make this scenario as solution:
- All what you do igame is to be recorded (logged) in your hard disk, and when the system call for a save it just send this file or synchronise with the client using it (isn't it what the current system do?!).
- When the client loses its connection to the server or the connection freezes for some time, the client saves all data to this log file and closes it.
- When the server come back up and the client wishes to connect to the server, the client synchronize with the server (so even if the server crashed, your latest data will be stored in the log file and you'll not lose any information).
So what would such bad solution require?
- First, it will require new client with logging capabilities.
- When the client starts negotiation with the server to start the game, it sends the server the last edit date it logged, if the server matched this date with the date of the last save (will require server modification and maybe database modification) it synchronizes with the client, otherwise it refuse to synchronize.
- What if a player found this log file? Wouldn't he/she modify it to have some advantages?
okay let's encrypt this file using public/private key pair and the server verifies the log file whenever the client requests for synchronization so that any modification can be noticed (how about performance? probably will not affects the server a lot as it happens only during authentication at the beginning).
bottom line is, we may need a lot of changes just not to sacrifice some lost data and the effort that will be spent to do it may be more useful if it was directed to other problems like fixing bugs that leads to this instability, which I guess is what is being currently done (As Fonty said).
Sorry for making such a long and useless reply but I just threw what was in my mind