* 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
Name |
Last commit
|
Last Update |
---|---|---|
.. | ||
database_storage.go | Loading commit data... | |
database_storage_test.go | Loading commit data... | |
memcached_storage.go | Loading commit data... | |
memcached_storage_integration_test.go | Loading commit data... | |
redis_storage.go | Loading commit data... | |
redis_storage_integration_test.go | Loading commit data... | |
remotecache.go | Loading commit data... | |
remotecache_test.go | Loading commit data... | |
testing.go | Loading commit data... |