2009-11-17 7 views
4

Selon la documentation de Berkeley, la version transactionnelle (TS) et la banque de données simultanée de la base de données, plusieurs threads peuvent accéder (et modifier) ​​la base de données. Est-ce que cela signifie aussi que je peux avoir 2 programmes liés au 'berkely' client et leur permettre d'accéder sans problème au même fichier de base de données?une base de données berkeley peut-elle être ouverte et accédée à partir de plusieurs programmes en même temps?

(je demande, puisque pour un serveur de base de données séparée ce serait pas un problème bien sûr, mais dans le cas de Berkeley le moteur de base de données est liée à long avec votre programme)

merci!

R

+0

Je crois me rappeler que le Berkeley DB peut être ouvert avec un drapeau de verrouillage afin que l'accès soit synchronisé. Notez que cela ne fonctionne pas si la base de données Berkeley est accessible via NFS (potentiellement par plusieurs hôtes). –

+0

Voir http://www.oracle.com/technology/documentation/berkeley-db/db/gsg/C/dbconfig.html#Locking –

+0

pp: le lien de la documentation que vous avez fourni ne donne pas de réponse à ce sujet. – Toad

Répondre

4

Some documentation semble penser que vous pouvez utiliser la même base de données simultanément à partir de plusieurs processus, ainsi que de plusieurs threads. Plus précisément:

"Plusieurs processus, ou plusieurs threads dans un seul processus, peuvent tous utiliser la base de données en même temps que chacun utilise la bibliothèque Berkeley DB." Services de bas niveau comme le verrouillage, la journalisation des transactions, la gestion de mémoire partagée gestion, et ainsi de suite sont tous gérés de manière transparente par la bibliothèque. " Une lecture superficielle n'a pas permis de comprendre ce que BDB utilise pour contrôler l'accès à partir de plusieurs processus, mais si des verrous de systèmes de fichiers sont utilisés, l'accès à partir de plusieurs processus sur un système de fichiers réseau peut être problématique.

+0

Pourriez-vous suggérer une alternative qui fonctionne correctement avec l'accès de plusieurs processus sur un système de fichiers réseau? – Yugi