On Fri, Sep 20, 2024 at 4:47 PM Tom Lane <t...@sss.pgh.pa.us> wrote:
> veem v <veema0...@gmail.com> writes: > > Able to reproduce this deadlock graph as below. Now my question is , > this > > is a legitimate scenario in which the same ID can get inserted from > > multiple sessions and in such cases it's expected to skip that (thus "On > > conflict Do nothing" is used) row. But as we see it's breaking the code > > with deadlock error during race conditions where a lot of parallel > threads > > are operating. So how should we handle this scenario? > > Do you have to batch multiple insertions into a single transaction? > If so, can you arrange to order them consistently across transactions > (eg, sort by primary key before inserting)? > That's exactly what I did back in the day. Because of database buffering, sorting the data file at the OS level made the job 3x as fast as when the input data was random. -- Death to <Redacted>, and butter sauce. Don't boil me, I'm still alive. <Redacted> crustacean!