можно ли открыть базу данных Беркли и получить к ней доступ из нескольких программ одновременно? - PullRequest
4 голосов
/ 17 ноября 2009

в соответствии с документацией Беркли, Транзакционной (TS) и параллельной версией Базы данных, несколько потоков могут обращаться к базе данных (и изменять ее).

Означает ли это также, что я могу иметь 2 программы, связанные с клиентом berkely, и иметь доступ к одному и тому же файлу базы данных без проблем?

(Я спрашиваю, поскольку для отдельного сервера базы данных это, конечно, не будет проблемой, но в случае Беркли ядро ​​базы данных долго связано с вашей программой)

спасибо!

R

Ответы [ 2 ]

4 голосов
/ 19 октября 2011

Глава 16: Подсистема блокировки из справочника выглядит многообещающе.

4 голосов
/ 18 ноября 2009

В некоторой документации кажется, что вы можете использовать одну и ту же базу данных одновременно из нескольких процессов, а также из нескольких потоков. В частности:

"Несколько процессов или несколько потоков в одном процессе могут использовать базу данных одновременно, так как каждый использует библиотеку Berkeley DB. Низкоуровневые сервисы, такие как блокировка, ведение журнала транзакций, управление общим буфером, управление памятью и все это прозрачно обрабатывается библиотекой. "

Беглое чтение не пролило свет на то, что BDB использует для управления доступом из нескольких процессов, но если используются блокировки файловой системы, доступ из нескольких процессов в сетевых файловых системах может быть проблематичным.

...