6
回答
PostgreSQL提供的锁接口在哪里?如何实现自主控制锁?
华为云实践训练营,热门技术免费实践!>>>   

    PostgreSQL并发控制一章里讲到:“ PostgreSQL同时也提供了接口让应用程序显式对数据进行加锁操作。这些接口支持表级锁和行级锁。此外,还提供了建议锁(advisory lock)这样的锁机制,使得应用程序能够完全自主地控制得到和释放锁的时间。”,那么我要实现自主控制锁,对数据行的查询、更新、插入等操作实现读写锁控制,该如何实现呢?我现在还找不到PostgreSQL的这些接口。

    或者说有其他的办法实现我的需求吗?比如修改PostgreSQL的部分代码,或进行Linux内核线程同步编程?

    说实话,我还是菜鸟一名。希望有大侠回复,谢谢了。

举报
牛得天下
发帖于7年前 6回/389阅
共有6个答案 最后回答: 7年前

引用来自#4楼“鉴客”的帖子

当然不是,一般的SQL语句执行数据库都会自动进行锁处理,无需你手工操作。

 也就是说,当对postgresql数据库进行大规模并发读写操作时,它是自动处理这些操作的,比如说自动给读操作加上读锁,支持其并发执行;给写操作加上写锁,每次只允许一次写操作,其他写操作要排队才能得到写锁?

引用来自#6楼“鉴客”的帖子

也就是说大部分的场景下,你根本不需要手工去处理锁的问题,这是数据库基本的功能之一。

 恩,只是我想实现一些高端特性,比如说支持多用户大规模并发操作,那么数据库本身的多版本并发控制等方法就不够用了,最多支持几百个并发连接。

而且我的数据文件是作为外部文件保存的,数据库本身的MVCC用不上。

这样的话,我想应该自己加一个读写锁控制,但是我不知道该怎么加。

顶部