Re: pgbench - add pseudo-random permutation function

Fabien COELHO <coelho@cri.ensmp.fr>

From: Fabien COELHO <coelho@cri.ensmp.fr>
To: Hironobu SUZUKI <hironobu@interdb.jp>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, David Steele <david@pgmasters.net>
Date: 2019-05-23T14:45:43Z
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.

Attachments

Hello Hironobu-san,

Here is a v15 which is a rebase, plus a large simplification of the modmul 
function if an int128 type is available, which is probably always…

Could you have a look and possibly revalidate?

> Sorry for the late reply. I reviewed this patch.
>
> Function nbits(), which was previously discussed, has been simplified by 
> using the function pg_popcount64().
>
> By adding the mathematical explanation, it has been easier to understand the 
> operation of this function.
>
> I believe that these improvements will have a positive impact on maintenance.
>
> The patch could be applied successfully and the tests passed without 
> problems.
>
> So, I think the latest patch is fine.
>
>
> Best regards,
>
>
>
>> On 3/3/19 12:55 PM, Fabien COELHO wrote:
>>> 
>>>> Indeed, the patch needs a rebase & conflit resolution. I'll do it. Later.
>>> 
>>> Here is an update:
>>> 
>>>   - take advantage of pg_bitutils (although I noted that the "slow"
>>>     popcount there could be speeded-up and shorten with a bitwise operator
>>>     implementation that I just removed from pgbench).
>>> 
>>>   - add comments about the bijective transformations in the code.
>>> 
>>> As already stated, this function makes sense for people who want to test 
>>> performance with pgbench using non uniform rands. If you do not want to do 
>>> that, you will probably find the function pretty useless. I can't help it.
>>> 
>>> Also, non uniform rands is also a way to test pg lock contention behavior.
>> 
>> You have signed up as a reviewer for this patch.  Do you know when you'll 
>> have time to do the review?
>> 
>> Regards,
>
>

-- 
Fabien Coelho - CRI, MINES ParisTech