database_storage.go
3.48 KB
-
AuthProxy: Optimistic lock pattern for remote cache Set (#17485) · 7b70e7db
* Implementation of optimistic lock pattern Try to insert the remote cache key and handle integrity error * Remove transaction Integrity error inside a transaction results in deadlock * Remove check for existing remote cache key Is no longer needed since integrity constrain violations are handled * Add check for integrity constrain violation Do not update the row if the insert statement fails for other than an integrity constrain violation * Handle failing inserts because of deadlocks If the insert statement fails because of a deadlock try to update the row * Add utility function for returning SQL error code Useful for debugging * Add logging for failing expired cache key deletion Do not shallow it completely * Revert "Add utility function for returning SQL error code" This reverts commit 8e0b82c79633e7d8bc350823cbbab2ac7a58c0a5. * Better log for failing deletion of expired cache key * Add some comments * Remove check for existing cache key Attempt to insert the key without checking if it's already there and handle the error situations * Do not propagate deadlocks created during update Most probably somebody else is trying to insert/update the key at the same time so it is safe enough to ignore it
Sofia Papagiannaki committed