2010-04-23 29 views
2

我想了一種方法來允許多個用戶在一個asp.net應用程序中獲得對XML文檔的CRUD訪問權限。顯然必須在多線程環境假設下進行操作。用於asp.net應用程序的多用戶XML文檔「數據庫」

由於性能的原因,緩存文檔是否有意義,並在該緩存版本上使用互斥鎖?何時將更改刷新到物理XML文檔?

任何和所有的建議表示讚賞(也稱「使用數據庫」是不是在這一點上不幸的選項)

+2

我知道你說數據庫不是一個選項,但是輕量級對象數據庫如db4o呢?無需安裝,單個文件中的數據以及許多關於併發和存儲的問題都將得到解決。 – driis 2010-04-23 15:35:16

回答

0

這當然是有道理的緩存XML文檔,這樣你就不會需要從閱讀磁盤爲每個用戶/請求。你應該同步訪問它。一個好主意是將訪問封裝在一個類中,並使用ReaderWriterLockSlim進行同步。讀取數據時,獲取讀取鎖定並從內存中讀取。寫入時,獲取寫入鎖定,寫入數據並替換內存中的副本。

0

您可以在每次事務之後將您的DB對象的緩存版本序列化到磁盤(以二進制形式),並且只以特定的時間間隔寫入XML。

相關問題