Hi Steven,
App Engine's technology has seen huge improvements since we first wrote this library. For small scoreboards, what you've described should work great. After playing around for a bit on Code Jam, I have the following numbers from using just one primary score:
- If we're dealing with a total of ~100,000 rows, and you query rank 20,000, it takes about 0.9 seconds.
- If you query rank 84,000, it takes about 4.5 seconds (+/- 1.5 seconds).
This is vaguely linear, so I'd say you can get the count of about 20k rows per second. For a prototype, an early-stage product or a product that you don't expect to scale beyond 2,000 people per ranklist, your solution is probably better: it takes less time to implement, and it's less complex. If you want something that runs fast at scale, the ranklist looks like the better option.
Note: The numbers I pulled are for one app, running on non-high-replication. YMMV.
Cheers,