I've been doing some comparative testing on different cloud platform's hosting of PostgreSQL. And one of the deficiencies in this effort is the only benchmarking tool I have is pgbench, which doesn't reflect the kinds of workloads people would want to run on cloud hosting. Don't get me wrong, pgbench does everything you could imagine with the simple Wisconsin benchmark, including statistics and sampling. But the core benchmark is still something which doesn't look much like the kind of Rails and Django apps I deal with on a daily basis.
There's also TPCC-js, which is more sophisticated, but is ultimately still a transactional, back-office OLTP benchmark.
So I'm thinking of developing a "webapp" benchmark. Here's what I see as concepts for such a benchmark:
There's also TPCC-js, which is more sophisticated, but is ultimately still a transactional, back-office OLTP benchmark.
So I'm thinking of developing a "webapp" benchmark. Here's what I see as concepts for such a benchmark:
- Read-mostly
- No multi-statement transactions
- Defined "users" concept with logins and new user registration
- Needs a "sessions" table which is frequently updated
- Read-write, read-only and session database connections should be separable, in order to test load-balancing optimization.
- Queries counting, sorting and modifying content
- Measured unit of work is the "user session" which would contain some content lookups and minor updates ("likes").