Многопользовательский XML-документ «база данных» для приложения asp.net - PullRequest
2 голосов
/ 23 апреля 2010

Я думал о том, как разрешить нескольким пользователям получать CRUD-доступ к XML-документу в приложении asp.net.Очевидно, что операции должны выполняться в предположении многопоточной среды.

По соображениям перфекта, имеет ли смысл кэшировать документ и использовать мьютекс в этой кэшированной версии?Когда будут внесены изменения в физический XML-документ?

Любые и все рекомендации приветствуются (к сожалению, на данный момент «использовать базу данных» не вариант)

Ответы [ 2 ]

0 голосов
/ 23 апреля 2010

Вы можете сериализовать вашу кэшированную версию вашего объекта БД на диск (как двоичный файл) после каждой транзакции и записывать XML только через определенные интервалы.

0 голосов
/ 23 апреля 2010

Конечно, имеет смысл кэшировать XML-документ, поэтому вам не нужно читать его с диска для каждого пользователя / запроса. Вы должны синхронизировать доступ к нему. Хорошей идеей будет инкапсулировать доступ в одном классе и использовать ReaderWriterLockSlim для синхронизации. При чтении данных установите блокировку чтения и считывание из памяти. При записи получите блокировку записи, запишите данные и замените копию в памяти.

...