• Oops! it seems that I left out an important part of the log.. the queries! Sorry about that. I'm attaching a small log extraction with more info.

    I apologize for not describing the context more clearly. INFO_LOG is a table that holds a transaction log so various threads execute updates against it simultaneously. The deadlock occurs at random, and after some minutes of processing, so some transactions are lost, but the rest of the transactions continue working.

    By looking at the sql debug output, isn't the deadlock occurring between two threads executing the same update query?

    What is your transaction isolation level?

    The isolation level is Read committed, but we don't use of transactions, the queries are executed directly.

    While running the update have you gone into activity monitor and seen if the process is being blocked? In Activity monitor there is a column "blocked by."

    Because of what I explained before, processing 50 transactions per second, seing something in the monitor is kind of hard.