Re: pgbench - add pseudo-random permutation function

Suzuki Hironobu <hironobu@interdb.jp>

From: Hironobu SUZUKI <hironobu@interdb.jp>
To: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Cc: Fabien COELHO <coelho@cri.ensmp.fr>
Date: 2018-10-24T14:55:57Z
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 →
  1. pgbench: Function to generate random permutations.

  2. Add basic support for using the POPCNT and SSE4.2s LZCNT opcodes

  3. Further improve code for probing the availability of ARM CRC instructions.

Hi Fabian-san,

I reviewed 'pgbench-prp-func/pgbench-prp-func-10.patch'.


On 2018/10/24 12:55, Fabien COELHO wrote:
> 
> Hello Hironobu-san,
> 
>> In pseudorandom_perm(), `modular_multiply() + (key >> LCG_SHIFT)` may 
>> overflow if the result of modular_multiply() is large. Therefore, I've 
>> improved it.
> 
>> Also, I've simplified Step 5 in modular_multiply().
> 
> Attached is a v10, where I have:
>   - updated some comments
>   - the + cannot overflow because size is taken from a signed int
>     and the added value is small thanks to the shift.
>     I have put back the simple formula and added a comment about it.
>   - added a few test cases, and fix the associated checks
> 

I agree your discussion before.

I checked the tests you added in this patch and I confirmed that there 
is no problem.

I thinks this patch is fine.

Best regards,