Monthly Archives: October 2010

The iPad Backup that took a long time…

This saturday I decided to create a full backup of my iPad. To cut a long story short: it took a long time. A very long time. A very very very very long time. In total the backup my iPad 16GB, which was filled with about 7GB of data, took a shocking:

18 hours, 22 minutes and 19 seconds!

Unbelievable. If you Google with Bing you can find a lot of users experiencing similar long backup times. As it turns out Apple has devised a backup mechanism, whereby backup duration is heavily dependent on the number of files it has to backup. Each file apparently takes several seconds to process, so backing up several thousand files can easily take hours.

I just had to investigate which apps caused these huge backup times. Analysis of the directory where iTunes had placed my backup showed that it basically contains pairs of two types of files: *.mdinfo and *.mddata. As these extensions imply, the *.mddata file contains the actual backup data and the related *.mdinfo file contains some meta data about that data file.

The *.mdinfo files are binary, but when opened with a text editor like NotePad they contain some readable elements. One of the more interesting things in this file is a text string beginning with the word "AppDomain". This looks like a unique identifier for an iPad app. I noticed that many files have the same AppDomain identifier in them, which leads to the conclusion that they all belong to the same app.

Based on this analysis I came up with the following scheme:

  1. Collect the AppDomain identifier for every *.mdinfo file in the iPad backup directory.
  2. Group all these files based on their AppDomain identifier.
  3. Sort these groupings, based on the total file count.

I wrote a quick C# console application for this and below are the results. First a little pie chart:

iPad App File Count

As you can see from the pie chart there are two apps that have claimed a really large number of files:

The winner (or better: loser) is the Wired app, the iPad version of Wired Magazine. It somehow needs 4947 files to operate. For the record: I installed the Wired app and did an in-app purchase of the issue featuring Toy Story 3. I didn’t buy any other issue.

The runner-up is the NU.nl app, which is an app that shows news content from the popular Dutch news website www.nu.nl. It’s a fantastic app, but I really haven’t got the faintest clue why it would need 3596 files to operate, since it should fetch its content live from the website.

The third place actually surprised me. For these files no AppDomain identifier could be identified. They did contain the string "MediaDomain", but I didn’t investigate in its meaning. However, since this group of files finished third, I’ve definitively needed to include them in my list.

Below you’ll find the full breakdown. Deleting this list’s top five apps from my iPad dramatically decreased backup times.

So, in the end I guess both app developers and Apple can learn something from this. App developers need to make sure their apps only use a limited number of files. And Apple needs to seriously fix their stupid backup mechanism.

AppDomain File Count
AppDomain-com.condenet.wiredmag 4947
AppDomain-nl.sanomadigital.nuhd 3596
*Unknown* 824
AppDomain-nl.veronica.veronicamagazine 659
AppDomain-se.illusionlabs.labyrinth2 504
AppDomain-com.nytimes.editorschoice 367
AppDomain-com.linkedin.LinkedIn 338
AppDomain-com.outfit7.talkingtomipad 314
AppDomain-com.vsallaccess.vsaaipad 240
AppDomain-com.tunaverse.iPadCinq 199
AppDomain-com.chillingo.cuttheropehd 154
AppDomain-com.isignz.aanbieding 121
AppDomain-uk.co.guardian.Eyewitness 113
AppDomain-nl.tvgids.app.ipad 86
AppDomain-org.pogi.dp 77
AppDomain-com.NewspaperDirect.PRiphone 73
AppDomain-com.atebits.Tweetie2 70
AppDomain-se.illusionlabs.touchgrind 64
AppDomain-com.concretesoftware.acestrafficpackipad 43
AppDomain-com.vitotechnology.StarWalkiPad 36
AppDomain-com.apple.Keynote 30
AppDomain-com.melodis.soundhound.free 24
AppDomain-com.dawikihoodcom 21
AppDomain-com.apple.Numbers 20
AppDomain-BibleReader 19
AppDomain-com.ikmultimediaus.amplitubepadfull 19
AppDomain-com.flipboard.flipboard 18
AppDomain-com.skype.skype 18
AppDomain-com.firemint.flightcontrolipad 17
AppDomain-com.davidme.soundpaper 16
AppDomain-com.goodiware.GoodReaderIPad 16
AppDomain-com.spotify.client 15
AppDomain-com.trautvetter.atomicbrowser 15
AppDomain-com.mobilepioneers.tvgidslite 13
AppDomain-com.smule.magicpiano 13
AppDomain-wefwef 13
AppDomain-com.chillingo.angrybirdsipad 12
AppDomain-com.evernote.iPhone.Evernote 12
AppDomain-com.amazon.Lassen 11
AppDomain-com.apple.iBooks 9
AppDomain-com.apple.Pages 9
AppDomain-com.booking.BookingApp 9
AppDomain-com.mobilepond.ipadphotogene 9
AppDomain-pocketinformantiPad 9
AppDomain-osfoora.hd 8
AppDomain-ch.graphicarteservice.newspaper.nrc 7
AppDomain-com.com2us.sliceit 7
AppDomain-com.ea.recklessracing.ipad.bv 7
AppDomain-com.fotopedia.heritage 7
AppDomain-com.layar.Layar 7
AppDomain-com.tmsoft.FartCushion 7
AppDomain-com.truphone.ipad 7
AppDomain-com.ebay.core.ipad 6
AppDomain-com.marcoarment.instapaperpro 6
AppDomain-com.teamviewer.teamviewerhd 6
AppDomain-com.ted.TED 6
AppDomain-com.aemotion.magworld 5
AppDomain-com.mythpeople.SparkleHD 5
AppDomain-com.natenai.glowhockey4ipad 5
AppDomain-com.sqrt3innovations.calculatorpad 5
AppDomain-nl.hyves.hyves 5
AppDomain-nl.telegraaf.krant.ipad 5
AppDomain-nl.vpro.3voor12.luisterpaal 5
AppDomain-at.co.hlw.itaprdpclient 4
AppDomain-ca.jubilo.ipadflickr 4
AppDomain-com.bryandev.GearedHD 4
AppDomain-com.Buienradar.BuienradarHD 4
AppDomain-com.gameprom.software.ThePinball 4
AppDomain-com.getdropbox.Dropbox 4
AppDomain-com.idealbinary.rumpel 4
AppDomain-com.imdb.imdb 4
AppDomain-com.jellyfilledstudios.AmzngDiceHD 4
AppDomain-com.laya.osiris.wikipanion.ipad 4
AppDomain-com.tarsin.Dilbert 4
AppDomain-com.thinkfun.rushhour 4
AppDomain-com.wolframalpha.wolframalpha 4
AppDomain-org.pogi.tigmatching 4
AppDomain-com.appshopper.app 3
AppDomain-com.europeandirectories.dtgipad 3
AppDomain-com.handypadsoft.deviceinfo 3
AppDomain-com.johnmoff.PocketPondHD 3
AppDomain-com.lucasarts.miseipad 3
AppDomain-com.vitotechnology.SolarWalk 3
AppDomain-com.wireddevelopments.rocketeeripad 3
AppDomain-de.meteogroup.WeatherProHD 3
AppDomain-fr.febo.multipong 3
AppDomain-com.appbc.touchable 2
AppDomain-nl.mangrove.Nozzman 2
AppDomain-com.tiogadesigns.bigcalculatorfree 1