You can translate the question and the replies:

ERROR: Deadlock Detected - Does Denodo have any workarounds for error?

Hello, When we run views based on Greenplum/Postgresql we receive the ERROR: Deadlock Detected. In some cases we can resolve this issue by rearranging the logic/ordering of our views; however in many cases such an option is not feasible because the logical order the views are in need to stay as is. Does Denodo have any suggestions or workarounds to resolve ths issue? We have checked the autocommit in the datasource and it is on. The report I am working right now has multiple steps and need to go in order. Could a possible solution be to not allow one view to run until another view completes? Any help in finding a workaround other than rearranging the logic would be extremely helpful. We have just started creating views from Greenplum/Postgresql, so with that being the case we expect to run into this issue in the future. Thanks!
06-08-2019 09:52:22 -0400

3 Answers

Hi, This behavior is usually related to different types of constraints at the data source. It could be due to inserting duplicate values in the same index, concurrency limits and order of transactions to name a few. [Greenplum Deadlock Detection with Resource Queue]( gives some information about how the situation works behind the scenes. I suggest you execute the query through another client to check if the issue persists. If it does, you need to figure out how to fine tune your query to make sure that PostGres does not enter in deadlock situation. In Denodo terms, it could either mean: 1. Rearranging the query 2. Changing the join type. You can refer to [Optimizing Join Operations]( for more details 3. Prohibitting simultaneous query executions Since this has to be seen on a case by case basis, I suggest that if you are a Denodo customer, you should open a support case if you have a valid support account, so that the views and logs can be analyzed to check what is causing this contention and how each use case needs to be addressed. Hope this helps!
Denodo Team
07-08-2019 10:43:16 -0400
Thanks for the information. How do you does one go about prohibitting simultaneous query executions?
07-08-2019 11:12:58 -0400
Hi, You can change the value of EXHAUSTEDACTION parameter for the connection pool of the JDBC data source to 0 or 1, based on the way you want new queries to be taken care of, when a query is already running on the data source. [Parameters of the connection pool of a JDBC data source]( explains how to alter this value in detail. Hope this helps!
Denodo Team
14-08-2019 03:26:02 -0400
You must sign in to add an answer. If you do not have an account, you can register here