CloudServices/Sync/FxSync/Performance

From MozillaWiki
Jump to: navigation, search

NOTE: This is not likely to be a 100% comprehensive plan. I fully expect that once we address these known areas, we'll find some more stuff to optimize. Nothing is perfect, but we're going to iterate closer and closer.

Known Areas

Sync Crypto

Crypto off main thread

Tracked by bug 608156

  • We've had to drop our first approach due to JS engine changes. We're re-rolling as fast as we can.
  • There is some question about whether this is absolutely required once we kill the RSA bits.

Simplify Crypto

Tracked by bug 603489

  • RSA is expensive and slow. We're just going to use AES everywhere, and dispense with a layer of wrapping while we're at it.

Places

Places lock contention issues

Tracked by bug 606353

  • This is a known issue with Places (bug 563538) that we are tripping. The proposed solution is to add async APIs to Places and use those in Sync in an attempt to resolve this.

Places GUIDs

Tracked by bug 607107

  • Places has to add GUIDs for history items, and query using GUIDs for history and bookmark items. Both of these are complicated and expensive queries.
  • The goal here is to make GUIDs a universal attribute of places items, so that Sync doesn't need to insert them, and so queries are faster to insert and remove items.

Disk I/O

Tracked by bug 608617

  • I/O on main thread sucks, so we need to not do that.