【发布时间】:2019-01-23 09:38:30
【问题描述】:
我认为以下应该是一个很常见的模式:
- 数据库用于存储文件路径
- 文件本身存储在文件系统中
说我们要修改文件路径时可能会出现问题:我们需要同时修改 数据库文件路径并在文件系统中移动文件。重要的是,这是“原子地”完成的。实际上,当我们进行修改时,另一个进程可能会尝试读取数据数据库中的文件路径,然后尝试访问文件系统中的文件。我们应该确保元组
("文件路径", "实际文件位置")
始终保持一致。
有没有一种规范/简单的方法可以通过 Postgres/Linux 实现这一点?
【问题讨论】:
-
很难说没有更多的上下文。 “简单”的方法是在您访问文件时锁定数据库记录以防止更新。这对你来说有多实用(以及它对并发性有多大的灾难性)很大程度上取决于你的应用程序。
标签: database postgresql file filesystems atomic