Re: General purpose hashing func in pgbench - Mailing list pgsql-hackers

From Daniel Verite
Subject Re: General purpose hashing func in pgbench
Date
Msg-id 9fe2a29e-ea38-4971-ade9-86161bd90ce9@manitou-mail.org
Whole thread Raw
In response to Re: General purpose hashing func in pgbench  (Fabien COELHO <coelho@cri.ensmp.fr>)
Responses Re: General purpose hashing func in pgbench
List pgsql-hackers
    Fabien COELHO wrote:

> Most "permutation" functions are really cryptographic cyphers which are
> quite expensive, and require powers of two, which is not what is needed.
> ISTM that there are some constructs to deal with arbitrary sizes based on
> cryptographic functions, but that would make it too expensive for the
> purpose.

FWIW, you might have a look at the permuteseq extension:
  https://pgxn.org/dist/permuteseq
It permutes an arbitrary range of 64-bit integers into itself,
with a user-supplied key as the seed.
Outputs are coerced into the desired range by using the
smallest possible power of two for the Feistel cypher's
block size, and then cycle-walking over the results.


Best regards,
--
Daniel Vérité
PostgreSQL-powered mailer: http://www.manitou-mail.org
Twitter: @DanielVerite


pgsql-hackers by date:

Previous
From: Arthur Zakirov
Date:
Subject: Re: [HACKERS] Flexible configuration for full-text search
Next
From: Thomas Munro
Date:
Subject: PathNameCreateTemporaryDir() vs concurrency