Использование общих файлов в качестве базы данных

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

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

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

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

Благодарю.

1 ответ

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

Другие вопросы по тегам