Re: [WIP] Zipfian distribution in pgbench

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Alik Khilazhev <a.khilazhev@postgrespro.ru>
Cc: PostgreSQL Developers <pgsql-hackers@postgresql.org>
Date: 2017-09-06T06:42:15Z
Lists: pgsql-hackers
Hello Alik,

Applies, compiles, works for me.

Some minor comments and suggestions.

Two typos:
  - "usinng" -> "using"
  - "a rejection method used" -> "a rejection method is used"

I'm not sure of "least_recently_used_i", this naming style is not used in 
pgbench. "least_recently_used" would be ok.

"..nb_cells.. != ZIPF_CACHE_SIZE", ISTM that "<" is more logical,
even if the result is the same?

I would put the parameter value check in getZipfianRand, so that if 
someone reuse the function elsewhere the check is also performed. That 
would also simplify a bit the already very large expression evaluation 
function.

When/if the pgbench tap test patch get through, coverage tests should
be added.

Maybe the cache overflow could be counted, to allow for a possible warning 
message in the final report?

-- 
Fabien.


Commits

  1. Add approximated Zipfian-distributed random generator to pgbench.