[prev in list] [next in list] [prev in thread] [next in thread]
List: postgresql-general
Subject: concurrent creation of sequences
From: Marc-Olaf Jaschke <moj () dshare ! de>
Date: 2021-03-31 16:26:52
Message-ID: F385393C-7ADD-45D6-855A-767DFD245006 () dshare ! de
[Download RAW message or body]
Hi,
I have a use case where I need to create sequences concurrently. I use sequences \
instead of a table with counters to keep lock contention for incrementing the id low. \
The creation of new sequences rarely occurs during normal application operation.
I check via information_schema.sequences if a sequence already exists and catch \
errors that occur with concurrent access if the corresponding sequence already \
exists.
I wrote a stress test that simulates the behavior with heavy concurrency. I get the \
following three different error codes: 42P07
42710
23505
I would have expected only 42710 (duplicate_object).
Is this behavior intentional?
Are there possibly other error codes that the stress test did not uncover and that I \
should consider?
"create sequence if not exists ..." does not prevent errors with concurrency.
Tested with "PostgreSQL 12.6 on x86_64-apple-darwin16.7.0, compiled by Apple LLVM \
version 8.1.0 (clang-802.0.42), 64-bit"
Best regards,
Marc-Olaf Jaschke
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic