iOS 7’s Coalesced Updates: Finally Everyone Stops to Pee at the Same Time

| Dave Hamilton's Blog

"Alright, time for everyone to use the bathroom," my father used to say on road trips. "But I don't have to," was the inevitable whine from (at least) one of us kids. Dad's reply was always the same: "It wasn't a question."

My dad was focused on being as efficient as possible, of course. Instead of stopping for just one person to pee and then getting back on the road, it makes way more sense to have everyone pee at each stop. That at least prevents the inevitable inefficiency introduced ten minutes later when the next person feels nature urging them along.

As obvious as this all sounds, iOS has always operated under the least effecient method here, at least until iOS 7 – and apps designed for it – come out. As it stands now when one app needs to get on the network, it simply gets on the network. If it finishes and then two minutes later another app needs to get on the network, that app does so, and so on and so forth.

The problem is that waking up an app and getting on the network is an energy-expensive process. Once you've got a network connection open, you want to use it as much as you need to, and then shut it (and, if possible, the apps using it) down. This is exactly what iOS 7's coalesced updates allows. Applications will soon be able to register with the OS and say, "hey – I want to get on the network again in about an hour. I don't need anything for about 45 minutes, but anytime after that and before an hour, I'm good to go online." The OS can then look at all of these requests and decide the best time to get online. When it does, it alerts all of these apps that the connection is open and tells them it's time to process their requests. As with the aforementioned rest stop, it's not a question.

Of course, the user can (unknowingly) trigger this, too. If you happen to fire up your iPhone and launch Safari to look up a web page, iOS 7 will notice this and say, "hey – looks like we've got an open network connection now. Wake up everybody and... do your business."

Finally with iOS 7 we will be able to have smart background updates happening for all apps – third-party included. This means that if you use some alternate mail client, for example, it will be able to check for mail in the background just like the built-in Mail.app does. The best part is that your iPhone's battery will likely last longer due to the fact that these apps' network requests are all coordinated with uber-efficiency. Just like us kids were on all those car trips.

Comments

ctopher

Great analogy!

Tim Robertson 1

Crap, now I have to pee

Tomas Gallucci

@Tim Robertson 1 Do you have to crap or do you have to pee?

Laurie Fleming

No need to wait until the fillibuster is finished, when you’re filled to bursting, to empty the buffers.

How far can we take this scatology?

StationStops

iOS has never enabled apps to wake themselves up and load data before , so its not a matter of an existing system betting more efficient, but entirely new functionality.

Tim Robertson 1

@Tomas Gallucci why does it have to be either/or?

Alfonso Armenta Fernández

Interesting, but if a ‘network’ update is triggered when I launch the browser, won’t this ruin my internet experience as a dozen apps try to use the same bloated 3G pipe at the same time?

Marc Lachance

@Alfonso Armenta Fern├índez I think the answer is (in human terms) that the browser says “hey, I’m going to open this network connection. Once I’m done any of you who need it can do what you need to do.” More like going to the kitchen to cook something, and then telling people that as long as the oven is still warm they can heat up their snacks as well.

lhamrowct

And that really is the way it was
- Dave’s Dad

Rick 1

If the inefficiency is prevented, in what sense is it inevitable?

Log-in to comment