4

PostgreSQL 支持异步提交——也就是说,即使数据库没有完成预写日志同步,数据库引擎也可以配置为报告成功。

http://www.postgresql.org/docs/8.3/static/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT

这在运行某些查询之间提供了一种有用的折衷方案,以保证在数据库崩溃的情况下,它会保持一致的状态,但是,一些据称已提交的事务看起来好像它们已被彻底中止。

显然,对于某些事务,提交保持最终状态是至关重要的——这就是为什么可以为每个事务配置标志的原因。

如何在 django 中利用此功能?

4

1 回答 1

3

首先我第二次弗兰克的笔记。这就是这样做的方法。

但是,如果您这样做,您可能希望有一个函数在每个可能提交的 API 上设置它。这对我来说似乎很容易出错,所以我可能不会弄乱它,而是会努力将事务批处理到同一个事务中,以达到有意义的程度。我建议在您的模型中进一步使用一种方法来显示设置 ( SHOW synchronous_commit),以便您可以正确地进行单元测试。

再次因为这是一个会话设置,我觉得以这种方式玩有点危险,但如果你采取必要的预防措施,它可以做到。

于 2012-10-13T12:39:32.617 回答