You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It is best practice to implement retry logic for transactions that are aborted because of deadlocks or timeouts. This makes such method available inside the DBAL and also adds detection for errors where retrying makes sense in the different database drivers.
Deadlocks and timeouts are caused by lock contention and you often can design your application to reduce the likeliness that such an error occurs. But it's impossible to guarantee that such error conditions will never occur. This is why implementing retrying logic for such errors is actually a must when you have to ensure the application does not fail in edge cases or high load.
Some references where something similar has already been implemented:
I chose the name retryable because it is consistent with transactional. I think the implementation is quite straight forward and fits very well with the DBAL design.
The text was updated successfully, but these errors were encountered:
Ocramius
changed the title
DBAL-1035: [GH-718] implement method for retrying database queries/transactions
DBAL-1035 #718 implement method for retrying database queries/transactions
Jul 22, 2017
Ocramius
changed the title
DBAL-1035 #718 implement method for retrying database queries/transactions
DBAL-1035 #718 Identify retryable transaction errors and cause them to raise specific exception type
Jul 22, 2017
Jira issue originally created by user @doctrinebot:
This issue is created automatically through a Github pull request on behalf of Tobion:
Url: #718
Message:
It is best practice to implement retry logic for transactions that are aborted because of deadlocks or timeouts. This makes such method available inside the DBAL and also adds detection for errors where retrying makes sense in the different database drivers.
Deadlocks and timeouts are caused by lock contention and you often can design your application to reduce the likeliness that such an error occurs. But it's impossible to guarantee that such error conditions will never occur. This is why implementing retrying logic for such errors is actually a must when you have to ensure the application does not fail in edge cases or high load.
Some references where something similar has already been implemented:
I chose the name
retryable
because it is consistent withtransactional
. I think the implementation is quite straight forward and fits very well with the DBAL design.The text was updated successfully, but these errors were encountered: