问题标签 [mvcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
283 浏览

postgresql - 是否有可能在死锁或序列化错误期间两个事务都回滚?

在 PostgreSQL(和其他 MVCC 数据库)中,事务可能由于死锁或序列化错误而回滚。假设两个事务当前正在运行,是否有可能两个事务,而不是一个事务,由于这种错误而失败?

我问的原因是我正在编写一个重试实现。如果两个事务都可能失败,如果两个事务都立即重试,我们可能会陷入永无止境的重试循环。如果只有一个事务可能失败,我认为尽快重试没有任何害处。

0 投票
1 回答
3508 浏览

postgresql - Postgres pg_dump 对生产数据库的影响

是否可以查询 db 中有多少多版本行?

我们想测量pg_dump对生产数据库的影响,并在需要时暂停它:它是否创建了太多的多版本行?

提前致谢

0 投票
1 回答
35 浏览

postgresql - 如何在 PostgreSQL 中通过多个并行会话展示 MVCC 的工作?

我需要借助将同时访问同一个表的并行会话来演示 MVCC 在 PostgreSQL 中的工作。

我不知道该怎么做。请告诉我。

0 投票
1 回答
69 浏览

postgresql - 给定交易中其他交易的可见性

Postgres 如何根据隔离级别决定哪些事务对给定事务可见?

我知道 Postgres 使用xminandxmax并将其与 进行比较xid,但我没有找到具有适当详细信息的文章。

你知道引擎盖下的过程吗?

0 投票
1 回答
812 浏览

postgresql - 为什么 PostgreSQL 中的 xmin 和 xmax 值相同?

我一直在 PostgreSQL 中学习 MVCC。据我了解,当更新行时,将添加一个新行xmax,旧行中的值将具有xmin新添加行的值。当我在我的 Postgres DB 中的表中检查它时,xminxmax值是相同的。这是什么意思?

0 投票
1 回答
27 浏览

mysql - Innodb 中的 MySQL min() 行为

当您SELECT MIN(x) FROM blah;同时执行一个表时,MySQL 的行为如何,该表正在经历数千次DELETE操作?

min() 的结果是否会显示已删除的条目?如果不是,它如何防止从已删除的条目中返回值?

这是因为我们有一个大型数据库,其中 min() 运行了几个小时,但在此期间不断发生删除。

0 投票
2 回答
257 浏览

postgresql - 导致膨胀的数组的重复 Postgres 更新?

我正在运行一个 Python 脚本,它处理许多不同指标的时间序列数据,然后将结果写入 Postgres 数据库。

时间序列假设 40 个 epoch,作为real[40]数组列存储在数据库中。

当一次将所有 40 个 epoch 的输出写入表时,(所有行的批量更新),一切似乎都运行良好。IE

但是,将各个时期的结果迭代地写入阵列中的每个位置似乎会占用硬盘驱动器上的所有可用空间,例如

迭代策略的原因是为了容纳更多的行,40 个 epoch 的结果不能同时放入内存。

据我所知,UPDATE查询会在某些情况下删除和重写行数据,但我不清楚这种情况何时发生以及这可能与数组有什么关系。有没有办法在不导致数据库膨胀的情况下迭代地更新大量行的数组?

0 投票
1 回答
48 浏览

hyperledger-fabric - 我如何识别 MVCC Aboard?

我试图用超级账本结构查看 MVCC 的问题,但是当我调用使用相同键修改和读取相同变量的事务时,它可以工作。

突出显示 MVCC 需要进行哪些更改?

0 投票
3 回答
286 浏览

postgresql - 尝试了解 MVCC

我正在尝试了解 MVCC,但无法理解。例如。Transaction1 (T1) 尝试读取一些数据行。在同一时间 T2 更新同一行。

交易流程为

T1 开始 -> T2 开始 -> T2 提交 -> T1 提交

因此,第一个事务获取数据库的快照并返回用户结果,他将在该结果上构建其他计算。但据我了解,客户获得旧数据价值?据我了解 MVCC,在 T1 事务开始后,该事务不知道其他一些事务更改数据。因此,如果现在用户在那之后进行一些计算(不涉及数据库),他是在对错误的数据进行计算吗?还是我不对,第一笔交易有一些机制可以知道该行已更改?

现在让我们更改交易流程。

T2beg -> T1beg -> T2com -> T1com

在 2PL 中,用户因为锁而获取更新版本的数据(T1 必须等待排他锁释放)。但在 MVCC 的情况下,它仍然是旧数据,因为我了解 postgresql MVCC 模型。所以我可以用过时的数据来换取速度。我对吗?还是我错过了什么?

谢谢

0 投票
2 回答
24 浏览

c# - 使用模型对象进行 mvc 连接

我有以下架构:

在我的后端,我有一封电子邮件作为输入,我正在尝试检查是否有任何提供该电子邮件的提供商。我尝试使用以下代码:

但我有一个空指针异常..

我知道我可以使用 linku 语法:

有什么方法可以使用模型上下文来做到这一点?而不是链接