Let me tell you a little story. The names have been changed to protect the not-so-innocent and it's vague because I'm not really so great with specifics.
Let's call the subject of this story Steve. Steve sent out a message asking how he could set up his corporate email on his iPad. Unfortunately, instead of sending that message out to the proper person or mailing list in his company, he figured "bigger is better" and sent it out to as many people as he could - 4000 users seemed to be the limit, so Steve was sure to use up all the resources he could.
In 1989, it would have been a lot of paper.
The problem starts out simple. Let's do a thought experiment so we can see the repercusions of this one message.
Let's assume that the mail server can do only one thing at a time, and that copying this first message to each user's mailbox and transmitting the message to the mail client takes about 500ms on average (it's got a lot of addresses, so there's a lot of text and transmitting it takes some time). So for this first message, we're looking at roughly 30 minutes of the server's time to process and fully deliver the message. Even if the server is provisioned to just handle normal traffic, this small spike will normalize reasonably quickly.
It's more like an "Oh, darn!" sort of problem at this point.
Of course nobody is content to be spammed like this and let it go, so somebody has to reply-all and ask to be removed from the conversation. Now the message is about 750KB. We're looking at 90 minutes at this point - to deliver one single message. Keep in mind that each one of these is going to have a cumulative impact, so we're REALLY slowing down the server at this point.
Now we have to have the series of people complaining about people replying to all (quite ironically) by replying to all.
This picture is irony.
All in all, at least a dozen separate messages were sent, the biggest of which was about 7 replies deep. It's about 1.7MB in total size. Sent to 4000 addresses. Probably 10,000 recipients. Even if every one of those recipients is on a 1Mbps connection, it's going to take about 15 total seconds per recipient just to transfer it - not to mention copying it to each mailbox. This will ultimately end up costing about 17GB of space on the server - and that's just the ONE message. It's not crazy to think that the rapidly filling disk on this server is only going to exacerbate the problem.
It's like crashing a train by screaming out questions about your seat belt.
At 4:30 PM people were still getting their other messages (you know, the important ones that don't have anything to do with how to set up an iPad) from 10:30 AM.
I really hope Steve didn't figure out how to get his email set up on his iPad - with two ways to send messages he might black out the entire continent.
Comments
Post a Comment