Re: pgbench - add pseudo-random permutation function
Suzuki Hironobu <hironobu@interdb.jp>
From: Hironobu SUZUKI <hironobu@interdb.jp>
To: Fabien COELHO <coelho@cri.ensmp.fr>
Cc: PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2018-09-18T17:15:51Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
pgbench: Function to generate random permutations.
- 6b258e3d688d 14.0 landed
-
Add basic support for using the POPCNT and SSE4.2s LZCNT opcodes
- 711bab1e4d19 12.0 cited
-
Further improve code for probing the availability of ARM CRC instructions.
- a7a7387575b8 11.0 cited
Hi Fabian-san, I reviewed 'pgbench-prp-func/pgbench-prp-func-4.patch'. I could apply it and did the TAP test successfully. I could not find typo in the documentations and comments. To make sure, I checked the new routine which contains the __builtin_popcountll() function on Linux + gcc 7.3.1 and I confirmed that it works well. I thinks this patch is fine. Best regards, On 2018/09/16 21:05, Fabien COELHO wrote: > > Hello Hironobu-san, > > Here is a v4, based on our out-of-list discussion: > - the mask function is factored out > - the popcount builtin is used if available > >> Attached a v3, based on your fix, plus some additional changes: >> - explicitly declare unsigned variables where appropriate, to avoid casts >> - use smaller 24 bits primes instead of 27-29 bits >> - add a shortcut for multiplier below 24 bits and y value below 40 bits, >> which should avoid the manually implemented multiplication in most >> practical cases (tables with over 2^40 rows are pretty rare...). >> - change the existing shortcut to look a the number of bits instead of >> using 32 limits. >> - add a test for minimal code coverage with over 40 bits sizes >> - attempt to improve the documentation >> - some comments were updates, hopefully for the better >