Understanding WHY big worldedit changes crash the server.
Why can I use worldedit in single player to place 90,000 blocks of TNT, set them off and not have it crash completely? It comes down to logging. Every block placed or removed in world currently is logged. These actions, the user, coordinates and so forth are stored in a MySQL database.
When you make large changes the anti-grief logging starts feeding this data, query by query to the database. Now, a single large SQL query can execute pretty quickly. When you feed the database lots of small discrete queries performance degrades significantly. I seriously doubt the logging mod has been written to take advantage of the single query performance so that when many blocks are changed at once, this is fed as one huge single query or split into a few large queries.
So why does this matter? Because roly has the logging table setup as MyISAM this means that every write, update, delete (and some others) query fed to the database causes the ENTIRE table to be 'locked'. What does this mean? Locking (in this context) the table means that no other query can WRITE or READ from the table. This means that if you change 100,000 blocks, you create a queue 100,000 queries long. That means the table is going to be LOCKED, WRITTEN and UNLOCKED an absolute minimum of 100,000 times. As you can imagine this is going to take some time. Here's some stats from one of my databases (not minecraft related):
Queries:
Total: 291 M
ø per hour: 41.26 k
ø per minute: 687.64
ø per second: 11.46
Now that runs fine and fast for me for a few reasons. One, most of my database queries are reads not writes. Two, the server is running a RAID 10 array of WD RE3 drives, blisteringly fast. Third, I've done considerable optimisation to make the database fast for my query profiles. On tables where I do most of my writes and updates I use InnoDB which only locks the row of the database that it needs to, leaving the rest of the table open for reads and writes. This means everything doesn't grind to a halt just because there's a few writes pending but there are other downsides (MyISAM has better performance in some respects along with full text indexing).
I suspect where the crashing or just lag comes into play is that the database isn't responding to READ requests in a timely manner because its busy trying to write the queue to the disk. The write queue processes slow because the hard disks now can't keep up with the write requests. Now you start to cause other problems. Because the disks cant keep up, the minecraft server starts having troubles writing its own database of block values. Also, the process threads that are trying to write or read data to either of the databases become essentially locked. They're waiting for data that's going to take a while to get to them which means if all the threads get locked the servers no longer sending data to the players and thus you get "End of Stream" or just java socket errors.
I don't mean to be presumptuous in this post and tell you all how to run the server. I'm not an admin, that's not my role. I felt it necessary to express the concerns some other players have discussed with me as a fellow player. I thought the best way to address this might be attempting to explain what happens behind the scenes when these incidents happen. You should take pride in helping to maintain a stable, lag free server. When you have Op's powers, you're no longer a luser and you need to treat these powers with the respect they deserve. Double check your commands before you commit them. How big was that area I just selected? Could I have mistyped the coordinates? That command I just commited didn't seem to do anything? Then you should probably //undo because you can bet your bottom dollar it DID make a change even if you cant see it. If you don't understand world edit commands properly (and I'm not going to profess to be an expert with them either) download single player mods and play around with them offline. It can be a learning curve but don't force others suffer through your mistakes
Hopefully this helps in understanding why what you're doing causes crashes and/or lag and think about how you might avoid these problems in future.
tl;dr version: Don't change massive amounts of blocks. Use //size if you're not sure how much you've selected. If you MUST make huge changes, discuss with roly how the best way to go about it would be. This might involve taking the server offline while its quiet, making the changes and then bringing it live again.
Cheers