2015-07-16 3 views
0

Мне нужно архитектовать и реализовать многопользовательское приложение на C#, в котором слой persistence состоит из файлов - а не базы данных. Файлы будут находиться в общей файловой системе, доступной для чтения/записи всем клиентам приложения. Таким образом, возникает проблема контроля параллелизма и согласованности данных. Если на уровне хранилища была база данных, поставщик базы данных позаботился бы об этой головной боли, но теперь в хранилище на основе файлов, как я могу обеспечить согласованность данных в многопользовательской среде? А также, если один клиент меняет данные в файле, как уведомляется другой клиент, который, возможно, уже открыл файл. Не могли бы вы указать мне на ресурсы, которые помогут мне решить эти проблемы. СпасибоКонтроль параллелизма при хранении в файлах (а не в базе данных)

+3

Трудно диагностировать без понимания домена. Каковы недостатки потери параллелизма? Кроме того, почему вы не можете использовать db? – Matt

+0

Вы можете заставить эксклюзивность в файле, есть различные способы сделать это. –

+0

Не уверен, что буду стремиться использовать многопользовательское решение для работы с файлами. Как архитектор, у вас есть возможность ... предложить альтернативные проекты? –

ответ

0

Вы можете попробовать FileSystemWatcher И реализовать рисунок фиксатора Reader-Writer. Когда кто-то хочет читать данные, они открывают его для чтения только при совместном чтении, быстро читаемом, затем закрываются и при необходимости прослушивают изменения. Когда кто-то хочет записать данные - открыть файл с доступом для записи без совместного использования.

Смежные вопросы