【问题标题】:Multiuser XML document "database" for asp.net app用于 asp.net 应用程序的多用户 XML 文档“数据库”
【发布时间】:2011-02-11 14:10:13
【问题描述】:

我正在考虑一种允许多个用户在 asp.net 应用程序中对 XML 文档进行 CRUD 访问的方法。这些操作显然必须在多线程环境的假设下进行。

出于性能原因,缓存文档并在该缓存版本上使用互斥锁是否有意义?何时将更改刷新到物理 XML 文档?

感谢任何和所有建议(不幸的是,此时“使用数据库”也不是一个选项)

【问题讨论】:

  • 我知道你说数据库不是一个选项,但是轻量级对象数据库呢,比如 db4o 呢?无需安装,单个文件中的数据,以及您对并发和存储的许多担忧。

标签: .net asp.net xml multithreading mutex


【解决方案1】:

缓存 XML 文档当然是有意义的,因此您不需要为每个用户/请求从磁盘读取它。您应该同步对它的访问。一个好主意是将访问封装在一个类中,并使用ReaderWriterLockSlim 进行同步。读取数据时,获取读锁并从内存中读取。写入时,获取写锁,写入数据,替换内存中的副本。

【讨论】:

    【解决方案2】:

    您可以在每次事务后将缓存版本的 DB 对象序列化到磁盘(作为二进制文件),并且只在特定时间间隔写入 XML。

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-02
      • 2012-06-23
      • 2011-12-26
      相关资源
      最近更新 更多