【发布时间】:2015-01-05 05:18:49
【问题描述】:
我们正在考虑在我们的应用程序中实施审核日志,但不确定如何正确执行。
我知道 django-reversion 可以工作并且效果很好,但是使用它是有成本的。
即使保存在同一个事务中,Web 服务器在保存记录时也必须对数据库进行两次往返,因为至少在 postgres 中,更改会写入数据库并且提交事务会使更改可见。
因此,如果我们不使用当前的异步 I/O,这将阻止 Web 服务器,直到将修订保存到数据库中。即使我们使用异步 I/O 生成修订数据也会占用 CPU 时间,这又会阻止 Web 服务器处理其他请求。
我们可以改用数据库触发器,但我们的 DBA 声称将此类工作卸载到数据库将使用用于处理更多事务的资源。 对这类工作使用数据库触发器是个坏主意吗?
我们可以使用负载平衡器扩展 Web 服务器,也可以使用读/写副本扩展数据库。
我们在这里是否缺少任何权衡?
什么可以帮助我们做出决定?
【问题讨论】:
标签: django database postgresql architecture