- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我的实现,特定的写入必须批量完成并且没有其他干扰的机会。
我已经told以这种方式进行的两个竞争事务将导致第一个阻塞第二个,第二个可能会在第一个完成后完成,也可能不会完成。
请发布确认这一点的文档。另外,如果第一个事务阻塞,第二个事务究竟会发生什么?它会排队、失败还是某种组合?
如果无法确认,是否应该将此事务的事务隔离级别设置为SERIALIZABLE
?如果是这样,如何使用 libpqxx 准备好的语句来完成?
如果事务是序列化的,第二个事务会失败还是要排队直到第一个事务完成?
如果任一失败,如何使用 libpqxx 检测到?
最佳答案
最终防止并发影响的唯一方法是 LOCK TABLE ... IN ACCESS EXCLUSIVE MODE
每个要修改的表。
这意味着您实际上一次只做一件事。如果您不总是以相同的顺序获取锁,它还会导致有趣的死锁问题。
所以通常,您需要做的是弄清楚您希望执行的操作到底是什么,以及它们如何交互。确定您可以容忍哪些并发影响,以及如何防止您不能容忍的并发影响。
目前这个问题过于宽泛,无法有效回答。
选项包括:
独占锁定表。 (这是目前在 PostgreSQL 中进行没有并发问题的多行更新插入的唯一方法)。当心锁升级和锁顺序相关的死锁。
适当使用 SERIALIZABLE
隔离 - 但请记住,您必须能够记录您在交易期间所做的事情,并在交易中止时重试。
谨慎的行级锁定 - SELECT ... FOR UPDATE
、SELECT ... FOR SHARE
。
适当时“乐观锁定”/乐观并发控制
以对并发操作更友好的方式编写查询。例如,将读取-修改-写入周期替换为就地更新。
关于c++ - libpqxx 事务序列化和后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23046600/
在编译iPhone应用程序时,有一个针对“优化”架构(仅限armv7)与标准armv6/armv7架构的设置。 编译纯armv7架构有什么好处/后果? 最佳答案 除非您的程序需要 OpenGLES 2
例如我有这段代码: Sub Month() Dim Conn As New Data.OracleClient.OracleConnection Conn.Open() Try
使用子域在 Wordpress 或 Blogger 上托管博客是否有任何 SEO 劣势?我不想为自己的站点创建博客模块而费心——我宁愿只设置一个 CNAME 条目并将子域指向一个免费的 Wordpre
我们使用免费 API 制作简单的 501C3 map 。通常我们的地理编码使用率很低,但我们所做的更改 [oops] 触发了所有 >2500 条记录的重新请求。 我们可以等待 24 小时“超时”。 我
我在 Heroku 上有一个 Web 应用程序,它一直使用大约 300% 的允许 RAM (512 MB)。我看到我的日志充满了错误 R14(超出内存配额)[每秒一个条目]。尽管状况不佳,我的应用程序
我在我的应用程序中以 FileChannel.MapMode.READ_WRITE 模式创建/使用内存映射文件。这些文件在应用程序的整个生命周期中创建和删除。 由于 GC 不一定释放直接缓冲区以_取消
增加最大连接数有什么害处?即使使用当前设置和复制设置,我们的主服务器也会提示已经有太多客户端。 在 postgresql.conf 中将最大连接数增加到 400 是否安全,或者我的服务器是否有问题,因
我正在处理的网站存在一些小问题,我想发布一个测试版本,在其中进行一些调整以查看效果(我想在移动设备上进行测试设备也是如此,因此拥有实时版本肯定是在多个设备上进行测试的最简单方法)。 理想情况下,我想要
我正在构建一个网站,其中导航栏的元素使用 HTML5 的 Canvas 元素进行动画处理。例如,按钮是 float 的圆圈。这个想法是按钮的文本将 float 到这些圆圈的右侧。我想知道,就 SEO
我是一名优秀的程序员,十分优秀!