View Single Post
Doing a bunch of operations on a bunch of small files is going to have substantially more overhead, both in terms of network data and cpu usage, than doing a big block read or write of a comparable amount of data. Then there's the latency factor to consider. Do a Finder copy of a bunch of small files (for that matter, you could open up your OmniFocus.ofocus file with Show Package Contents and drag the lot to an empty folder on the WebDAV server for something more resembling an apples to apples comparison) and see what sort of throughput you get.

The flip side of this is that once the bulk of the database is on the server, only small portions of it need to be changed (except during compaction). I don't think anyone's iPhone is going to be getting upload speeds like the 470kb/s you mention, so incremental changes instead of writing the whole thing as a single file are likely to be a good thing!

The first sync (where the database gets copied to the server) and any subsequent compactions will be slow compared to the typical syncs where the client is just adding a few small files to the package. You might be able to arrange for the MBP to be the client doing the compactions by syncing the iPhone first. With its much faster CPU and network access, it should be able to do all the compaction work faster than the iPhone. This also assumes that the WebDAV server on the other end isn't a bottleneck when doing lots of operations.

How big is your database? You can get an item count by doing the following in the Terminal:

Code:
sqlite3 ~/Library/Caches/com.omnigroup.omniFocus/OmniFocusDatabase2 'select count(*) from Task';