Использование общих файлов в качестве базы данных - PullRequest
1 голос
/ 03 января 2011

В качестве проекта для моих классов баз данных я создал простую объектно-ориентированную базу данных (написанную на C ++).БД управляет параллелизмом, используя файл шлюза, который предоставляет доступ на чтение / запись ко всей БД.Для доступа к одной и той же БД на разных машинах вы используете общие папки.

Я создал небольшое приложение для викторины.Все отлично работает в одной системе с несколькими пользователями, а также в сети из 3 компьютеров в моем доме.Но когда он запускается в сети моего университета, я продолжаю получать непоследовательное повреждение данных в виде неверных контрольных сумм (в моей базе данных, а не на диске), заголовков файлов, несовместимых с данными файлов, и других странных ошибок, которые я не могуотслеживать.Сеть проблематична - иногда некоторые узлы в сети становятся недоступными, а иногда копирование файла занимает много времени. Это неоправданно много времени.

Иногда я получаю сообщение об ошибке «Ошибка отложенной записи Windows', поэтому я думаю, что проблемы вызваны проблемами с общим доступом к файлам по сети.Из некоторого анализа кажется, что данные кэшируются, и поэтому я не знаю, действительно ли я знаю, успешна ли запись на диск.

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

Спасибо.

1 Ответ

2 голосов
/ 03 января 2011

Нет, это не надежно. Именно поэтому CVS отключил режим, в котором для хранилища использовались общие файлы. Решение состоит в том, чтобы создать сервер (например, простой сервер TCP / IP).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...