【发布时间】:2011-08-28 20:51:26
【问题描述】:
这是我想在 Web 应用程序中执行的两个潜在工作流程。
变化 1
- 用户发送请求
- 服务器读取数据
- 服务器修改数据
- 服务器保存修改后的数据
变体 2:
- 用户发送请求
- 服务器读取数据
- 服务器向用户发送数据
- 用户发送带有修改的请求
- 服务器保存修改后的数据
在每种情况下,我都想知道:确保对该服务的并发访问会产生正常结果的标准方法是什么? (即没有人的编辑被破坏,值对应于编辑的某些顺序等)
这种情况是假设的,但这里有一些我可能需要在实践中处理的细节:
- Web 应用程序,但未指定语言
- 可能会使用网络框架
- 数据存储是一个 SQL 关系数据库
- 所涉及的逻辑过于复杂,无法在查询中很好地表达,例如价值 = 价值 + 1
我觉得我不想在这里尝试重新发明轮子。当然,这些都是众所周知的问题以及众所周知的解决方案。请指教。
谢谢。
【问题讨论】:
标签: database web-applications concurrency race-condition