database - 可以同时从多个程序打开和访问 berkeley 数据库吗?

标签 database concurrency process berkeley-db

根据 Berkeley 文档的事务 (TS) 和数据库的并发数据存储版本,多个线程可以访问(和更改)数据库。

这是否也意味着我可以将 2 个程序链接到 berkely“客户端”并让它们毫无问题地访问同一个数据库文件?

(我问,因为对于单独的数据库服务器,这当然没有问题,但在 Berkeley 的情况下,数据库引擎与您的程序链接很长)

谢谢!

R

最佳答案

Some documentation似乎认为您可以从多个进程以及多个线程同时使用同一个数据库。具体来说:

“多个进程或单个进程中的多个线程都可以同时使用数据库,因为每个进程都使用 Berkeley DB 库。低级服务,如锁定、事务日志、共享缓冲区管理、内存管理和等等都由图书馆透明地处理。”

粗略阅读并没有阐明 BDB 使用什么来控制来自多个进程的访问,但是如果使用文件系统锁,来自网络文件系统上的多个进程的访问很可能会出现问题。

关于database - 可以同时从多个程序打开和访问 berkeley 数据库吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1749885/

相关文章:

java - 自学专业java技能

java - 在 sqlite 数据库中插入信息不起作用

java - 使用线程更新 JLabel

c# - 如何实现允许工作人员重新排队工作的有限并发工作队列

c - putenv()/setenv() 如何在不移动整个用户堆栈的情况下工作?

java - 在一定时间段后中断未知的长时间运行的函数

Mysql - 访问同一服务器中不同位置的两个数据库

database - WCF 服务不模拟客户端

java - ConcurrentHashMap put 与 putIfAbsent

groovy - 从 Katalon Studio 中的测试自动化 Groovy 脚本终止进程