2011-01-03 2 views
1

En tant que projet pour mes classes de base de données, j'ai construit une simple base de données orientée objet (codée en C++). Le DB gère la concurrence en utilisant un fichier passerelle, qui accorde un accès en lecture/écriture à la totalité du DB. Pour accéder au même DB sur différentes machines, vous utilisez des dossiers partagés.Utilisation de fichiers partagés en tant que base de données

J'ai construit une petite application de quizz en plus de cela. Tout fonctionne bien sur un seul système avec plusieurs utilisateurs ainsi que sur un réseau de 3 ordinateurs chez moi. Mais quand il fonctionne sur le réseau de mon université, je continue d'obtenir une corruption incohérente des données sous la forme de mauvais CRC (dans ma base de données, pas sur le disque), les en-têtes de fichiers sont incompatibles avec les fichiers. traquer. Le réseau est problématique - parfois certains nœuds du réseau deviennent inaccessibles, et parfois la copie d'un fichier sur le réseau prend un temps démesuré. De temps en temps, j'obtiens un message d'erreur "L'écriture différée de Windows a échoué", donc je pense que les problèmes sont causés par des problèmes de partage de fichiers sur le réseau. De certaines analyses, il semble que les données sont en cache, et donc je ne sais pas vraiment si une écriture sur disque est réussie.

Est-ce que quelqu'un a déjà utilisé des fichiers partagés en tant que bases de données? Je veux savoir si l'utilisation de fichiers partagés est fiable, et si je devrais regarder les bogues dans mon code comme la cause des problèmes.

Merci.

Répondre

2

Non, ce n'est pas fiable. C'est la raison pour laquelle CVS a désactivé le mode utilisant des fichiers partagés pour le référentiel. La solution consiste à créer un serveur (par exemple un serveur TCP/IP simple).

+0

Merci. Des pointeurs pour savoir pourquoi il n'est pas fiable et pourquoi un serveur TCP/IP serait plus fiable? –

Questions connexes