So Regis and I disagree on the merit of maintaining indices. Actually disagreeing on such things is generally healthy since mobile/Android prefers simplicity and memory efficiency, whereas serverside prefers high throughput. Yet I still feel that the index optimizations were misguided, particularly since more effective, simpler optimizations were left on the table (and now live in my patch).
Regardless, I'd prefer to focus on getting the noncontroversial changes checked in. Alongside some controversial stuff, the patch I attached on Monday includes fixes for a keyset liveness bug. It also saves some unnecessary object allocation. Please apply some or all of the patch. Or let me know how I can improve it, so that you'd be inclined to do so. Thanks!