【发布时间】:2010-08-13 10:00:24
【问题描述】:
在我编写服务器的应用程序中,将使用 XML 数据库获取有关用户的信息。管理员用户也将能够写入/读取这些文件的信息。 如何处理对这些文件的并发访问? 用户/管理员读取/写入这些文件的唯一方法是向服务器请求(套接字、TCP 连接),因此服务器必须处理此问题。 我能做些什么?我可以同步服务器方法,但我不想在管理员写入 USER B 文件时避免 USER A 访问他的文件。
【问题讨论】:
在我编写服务器的应用程序中,将使用 XML 数据库获取有关用户的信息。管理员用户也将能够写入/读取这些文件的信息。 如何处理对这些文件的并发访问? 用户/管理员读取/写入这些文件的唯一方法是向服务器请求(套接字、TCP 连接),因此服务器必须处理此问题。 我能做些什么?我可以同步服务器方法,但我不想在管理员写入 USER B 文件时避免 USER A 访问他的文件。
【问题讨论】:
我的第一个建议是使用数据库而不是文件,它们已经处理了锁。
您应该发布文件结构的示例。如果用户 A 在 fileA.xml 中有他的数据,而用户 b 在 fileB.xml 中有他的数据,则可以通过锁定给定文件并基于该文件进行同步来完成。
【讨论】:
正如 Jes 所说,使用数据库。
MySQL 支持 XML:http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html
大多数数据库都支持 XML,或者您可以简单地使用足够长的 VARCHAR 并获取数据并将其放入其中。如果这是您的计划,那么也许 NoSQL 解决方案也可以工作,它只是一个支持记录锁定以及其他功能的持久 HashMap。
听起来用户之间没有冲突,您还可以做一个管理员修改文件的区域,您可以每天将其复制到用户读取数据的位置。
【讨论】: