问题标签 [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 投票
6 回答
21523 浏览

sql - Update VERY LARGE PostgreSQL database table efficiently

I have a very large database table in PostgresQL and a column like "copied". Every new row starts uncopied and will later be replicated to another thing by a background programm. There is an partial index on that table "btree(ID) WHERE replicated=0". The background programm does a select for at most 2000 entries (LIMIT 2000), works on them and then commits the changes in one transaction using 2000 prepared sql-commands.

Now the problem ist that I want to give the user an option to reset this replicated-value, make it all zero again.

An update table set replicated=0;

is not possible:

  • It takes very much time
  • It duplicates the size of the tabel because of MVCC
  • It is done in one transaction: It either fails or goes through.

I actually don't need transaction-features for this case: If the system goes down, it shall process only parts of it.

Several other problems: Doing an

is also bad: It does a sequential scan all over the whole table which is too slow. If it weren't doing that, it would still be slow because it would be too many seeks.

What I really need is a way of going through all rows, changing them and not being bound to a giant transaction.

Strangely, an

is also slow, although it should be a good thing: Go through the table in DISK-order...

(Note that in that case there was also an index that covered this)

(An update LIMIT like Mysql is unavailable for PostgresQL)

BTW: The real problem is more complicated and we're talking about an embedded system here that is already deployed, so remote schema changes are difficult, but possible It's PostgresQL 7.4 unfortunately.

The amount of rows I'm talking about is e.g. 90000000. The size of the databse can be several dozend gigabytes.

The database itself only contains 5 tables, one is a very large one. But that is not bad design, because these embedded boxes only operate with one kind of entity, it's not an ERP-system or something like that!

Any ideas?

0 投票
2 回答
779 浏览

c++ - 为什么编译 VCC .sln 在没有标准输出的情况下在后台运行?

我正在尝试从命令行编译一个项目,如下所示:

看起来代码编译得很好,但这并不是我所需要的:

我希望能够在编译器发生时捕获输出(例如警告、错误)。不幸的是,一旦我发出上述命令,我就会返回到命令提示符。

当我查看 process-explorer 或 taskmgr.exe 时,我可以看到 devenv.exe 进程(和其他一些子进程)正在运行。如果我查看输出文件夹,我可以看到我的所有文件逐渐出现。

有没有办法让 VCC 工作起来更像 GCC - 当我发出构建命令或使用 Makefile 制作项目时,我会收到一条消息流并且控制台会阻塞,直到该过程完成。

更新:谢谢,两个出色的解决方案。我可以确认它有效。

0 投票
2 回答
319 浏览

amazon-web-services - 任何通过 Amazon SimpleDB 实现 MVCC 的客户端库?

既然 Amazon 的 SimpleDB 实现了一致性读取和条件更新/删除,就可以使用 MVCC 实现跨域事务。

有没有提供它的客户端库?

0 投票
2 回答
752 浏览

oracle - MVCC 对从 oracle 迁移到 db2 的影响

我有一个简单的(实际上是简化的:))场景,这可能是我过去几天头痛的原因......

我当前的应用程序(为 100 个用户提供服务)当前使用 Oracle 作为数据库。我没有存储过程(实际上我希望如此)。

现在,有人问我,如果我迁移到 IBM DB2 作为数据库,该产品是否可以工作。

因此,在将 Oracle 视为理所当然之后......并重新阅读了Tom关于 MVCC(多版本并发控制)的文章,并通过这篇文章指出 DB2 不是“在名单上”或“只是踮起脚尖”该区域的原样......我知道我不能确定该产品是否可以与 DB2 一起使用。

没有希望..还是我可以使用一个很好的免责声明..?

更新:至少在纸面上,DB2 加大了赌注并使它看起来不错。好吧,我将“条款”添加到我的 db2-migration-requirements 中。

DB2 许可 Postgres Plus - DB2 9.7
Enterprise DB Oracle 兼容性

0 投票
4 回答
5710 浏览

c# - 为 MVCcontrib Grid 上的每一行添加复选框

如何向 MVCcontrib 网格的每一行添加一个复选框。那么当表格发布时,找出哪些记录被选中?我在搜索这个时没有找到太多东西。谢谢

0 投票
1 回答
657 浏览

sql - 高级 Postgres 的 INSERT/UPDATE 速度下降了吗?

我知道当我UPDATE在 Pg 中有一行时,该行会被重写,而当新行被激活时,旧行会被停用。我知道这是由于 MVCC 层是如何实现的。

那么UPDATEover的优势是什么DELETE ... INSERT?关于Postgresql中的UPDATE和之间的关系,还有什么要说的吗?DELETE我找不到任何谈论这个或邮件列表帖子的文档。显然,如果有的话,它们会运行不同的用户触发器,但是在幕后会发生什么来给他们不同的性能配置文件?

0 投票
1 回答
998 浏览

database - 指数如何应对 MVCC?

问候溢出者,

  • 据我了解(我希望我不正确)对索引的更改不能被 MVCCed。
  • 我想知道大记录是否也是如此,因为副本可能很昂贵。
  • 由于记录是通过索引访问的(通常),MVCC 如何有效?
  • 例如,索引是否跟踪不同版本的 MVCCed 记录?

最近有什么关于这个主题的好读物吗?非常感谢 !

问候

0 投票
3 回答
2890 浏览

sas - 如何实现 MVCC?

我在网上找到了许多资源,提供了 MVCC(多版本并发控制)概念的一般概述,但没有关于它应该如何工作或实现的详细技术参考。是否有任何在线文档或离线书籍包含足够的理论(理想情况下还有一些实际帮助)作为实施的基础?我希望或多或少地模仿 PostgreSQL 所做的事情。

(有关信息,我将使用 SAS/Share 在 SAS 中实现它——它提供了一些锁定原语和对底层数据存储的并发读/写访问,但没有任何事务隔离或适当的 DBMS 功能。如果有人熟悉SAS/Share 并认为这是一项不可能完成的任务,请大声疾呼!)

0 投票
2 回答
1627 浏览

database - 你会在预写日志中记录什么?

为并发控制实现多版本时间戳排序的 DBMS 通常在其预写日志中包含哪些内容?之前和之后的图像,还是其中之一?时间戳?还有什么 ?

0 投票
5 回答
4902 浏览

mongodb - 是否可以在 MongoDB 之上实现多版本并发控制(MVCC)?

MongoDB 对我来说是一个很棒的数据库。但是,在某些情况下,我确实需要原子多文档事务。例如,在帐户之间转移东西(如金钱或声誉),这需要完全成功或完全失败。

我想知道是否可以通过实现多版本并发控制模式的库与 MongoDB 进行交互。

关于表演会有多糟糕?使用混合方法是否可能且有利可图,仅在必要时使用“mongo-mvcc”库,而在仅处理单个文档时使用传统的数据库连接,或者这会破坏 mvcc 的东西吗?