grafana/pkg/services/sqlstore/migrator
Sofia Papagiannaki 7b70e7db2d
AuthProxy: Optimistic lock pattern for remote cache Set (#17485)
* 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
2019-06-13 15:36:09 +02:00
..
column.go move database-specific code into dialects (#11884) 2018-05-10 16:54:21 +02:00
conditions.go fix only add column if not exists for mysql 2018-12-18 23:02:08 +01:00
dialect.go AuthProxy: Optimistic lock pattern for remote cache Set (#17485) 2019-06-13 15:36:09 +02:00
migrations.go fix only add column if not exists for mysql 2018-12-18 23:02:08 +01:00
migrator.go move log package to /infra (#17023) 2019-05-13 08:45:54 +02:00
mysql_dialect.go AuthProxy: Optimistic lock pattern for remote cache Set (#17485) 2019-06-13 15:36:09 +02:00
postgres_dialect.go AuthProxy: Optimistic lock pattern for remote cache Set (#17485) 2019-06-13 15:36:09 +02:00
sqlite_dialect.go AuthProxy: Optimistic lock pattern for remote cache Set (#17485) 2019-06-13 15:36:09 +02:00
types.go sql: added code migration type 2018-08-21 13:53:04 +02:00