iTunes Needs to Become a Server

What does this mean? iTunes has not been designed to be a multi-user system. It has a proprietary database that one user can access at a time. This is terribly inefficient. I have almost 15,000 items in all my libraries (music, movies, etc.). The total size of the files is almost 440Gb. The database file is 38.7Mb. This file is the heart of iTunes. It’s where iTunes maps the location of all your files and stores your playlists and audit data, CD tags, etc.

Whenever I make a change in iTunes (change one character in any tag, add album art, sync audit data, delete an item, etc.), the whole database is written every time. If two or three actions are being done at the same time, every action is slowed down dramatically. My machine is getting old and really could do with more memory, but I think when it takes a second or two just to register a mouse click, there is a software performance issue, not simply a hardware one.

To make the database better, iTunes needs to be able to read and write records individually, not as a whole file each time. The performance boost just by this one change would be enormous. Another feature that ties into this is multi-user. If a database can be written to on a record-by-record basis, then more than one user could use it at a time. Users could share a single library, with multiple CDs being ripped at the same time, etc. Multi-user makes it more complicated, but I’m sure Apple could figure it out. Maybe individual profiles on machines that stored different audit data and iTunes Store keys. Luckily, I’m not in that boat but the performance issue is key in any case.

I really hope Apple makes this change. I’ve left them feedback to the effect. If you want a better iTunes database experience, I suggest you do too.


6 Responses to iTunes Needs to Become a Server

  1. tunegardener says:

    I believe it’s going to have to come to this. Library sharing is iTunes’ achilles heel.

  2. Jeff Medcalf says:

    I’ve suggested this to Apple as well. There are two problems I am trying to solve. The first is performance, and the second is library sharing. You see, we have a very large music library (over 10000 tracks), and using it across the network is required: we simply don’t have the disk space to store each track on every machine. But this requires a periodic audit to ensure that no one has added in anything to the library that you don’t want to show up in your account, because iTunes doesn’t just find it.

    What needs to happen is that the library file needs to be converted to a database, and there needs to be a server component and a client component. The client would default to the server on the same machine (which would launch with iTunes), but could be pointed to a remote server instead (the same way you choose a different library location now). The iTMS keys for the DRM would be stored locally to each machine, but all the other data (playlists, ratings, etc) would be stored in the server’s database. All users would see all files in the database, and any user could choose to share their playlists, ratings and so on.

    That is how iTunes should work, anyway, for a family with a central server.

  3. […] (4 years old) and the database design. I think the database design is the key factor. I’ve posted earlier that it needs to […]

  4. James C says:

    I think he’s refering to recompiling in the context of re-adding everything to his main library of media. I suppose theoretically it would allow iTunes to re-map all of the connections it maintains to each file, which would in turn speed up it’s performance.

    He mentions his method of using sub-libraries to manage his performance issues, so he might be gradually adding those sub-libraries into the main library, and then recompiling the whole lot each time.

    This whole issue is part of the reason I’m not converting my video media collection into h264, in order to manage it through iTunes. I store all my videos in my ~Movies folder, and access it through Front Row (Videos -> Movies) using Perian as a plugin for Quicktime. It’s kind of annoying to not be able to use (Videos -> TV Shows) as a menu in Front Row to access my TV shows, but I can live with that if it means I don’t have to convert all my media to H264.

  5. tunegardener says:

    That’s a great article. He’s much on the same wavelength as myself.

    I’ve heard of recompiling. Does that mean optimisation of the iTunes database? How is it done?

  6. James C says:

    I read an interesting article about this need to have a iTunes Pro from Glenn Wolsey’s blog, available here. His iTunes library database file is ~ 282 MB and it takes him 3-4 minutes to bring up the metadata tab for a song. He only recompiles a few times a year!

    Personally, I think it’s a great idea. As people’s media collections expand, this kind of problem is going to become more and more prevalent. Apple will definitely need to address this at some point. A multi-user, server-based version of iTunes would be awesome.

    I’d also like to see Leopard’s new ‘Mac at Home’ feature to allow iTunes to stream media from one computer to a remote connection, or to a mobile device (iPhone maybe?) a la Slingbox. That would rule.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: