- Mastering PostgreSQL 9.6
- Hans Jurgen Schonig
- 245字
- 2021-07-09 19:57:13
Utilizing advisory locks
PostgreSQL has a highly efficient and sophisticated transaction machinery that is capable of handling locks in a really fine grained and efficient way. Some years ago, some people came up with the idea of using this code to synchronize applications with each other. Thus, advisory locks were born.
When using advisory locks, it is important to mention that they won't go away on COMMIT as normal locks do. Therefore, it is really important to make sure that unlocking is done properly and in a totally reliable way.
If you decide to use an advisory lock, what you really lock is a number. So this is not about rows or data: it is really just a number. Here is how it works:

The first transaction will lock 15. The second transaction has to wait until this number has been unlocked again. The second session will even wait after the first one has committed. This is highly important as you cannot rely on the fact that the end of the transaction will nicely and miraculously solve things for you.
If you want to unlock all locked numbers, PostgreSQL offers the pg_advisory_unlock_all() function to do exactly that:
test=# SELECT pg_advisory_unlock_all();
pg_advisory_unlock_all
------------------------
(1 row)
Sometimes you might want to see if you can get a lock and error-out if it is not possible. To achieve that, PostgreSQL offers a couple of functions. If you use df *try*advisory*, PostgreSQL returns a list of all available functions.
- 輕松學(xué)C語言
- 大學(xué)計算機基礎(chǔ):基礎(chǔ)理論篇
- Effective DevOps with AWS
- ROS機器人編程與SLAM算法解析指南
- INSTANT Autodesk Revit 2013 Customization with .NET How-to
- 信息物理系統(tǒng)(CPS)測試與評價技術(shù)
- 分數(shù)階系統(tǒng)分析與控制研究
- Machine Learning with the Elastic Stack
- Windows Server 2008 R2活動目錄內(nèi)幕
- Photoshop CS4數(shù)碼照片處理入門、進階與提高
- 電動汽車驅(qū)動與控制技術(shù)
- Machine Learning with Spark(Second Edition)
- Hands-On Business Intelligence with Qlik Sense
- 計算機應(yīng)用基礎(chǔ)學(xué)習(xí)指導(dǎo)與練習(xí)(Windows XP+Office 2003)
- 數(shù)字多媒體技術(shù)與應(yīng)用實例