2009年2月6日星期五

Berkeley DB: C 语言访问从0开始 中文版 Chap1-4

Environment 环境


本手册致力于提供对Berkeley DB函数库的一个介绍。实际上,它描述了如何创建一个非常简单的单线程的应用程序。而且不经意的是,本手册忽略了许多创建简单应用程序所不需要知道重要的DB的数据库引擎的特性。有一个特性是如此重要不可忽视,需要在此进行概要性的介绍: 环境.

虽然环境对于字节锱铢计较的嵌入式环境下的应用程序来说使用可能性极低,但是对于许多其他的应用程序来说并不在乎这么一点小事。环境从本质上来说,是一个或者多个数据库的封装。
打开一个环境之后,你将可以在那个环境之中打开数据库,数据库将因此相对于环境所配置的HOME目录来进行创建和定位。

环境提供了许多单独的数据库服务器所不能提供的特性:

* 多数据库文件

DB可以在磁盘上的一个物理文件中创建多个数据库。这种设计是为了能够使得应用程序能够打开少量的数据库。然而,为了能够使用该特性,你的应用程序必须使用环境文件。

* 多线程和多进程支持
在使用环境文件的时候, DB设置在内存中的缓冲和锁能够被所有在该环境文件中打开的数据库所共享。环境文件使你能够使用DB提供给多线程/进程访问DB数据库的子系统。例如,你可以使用一个环境文件来 使用 CDS (并发数据存储) , 锁子系统, 或者 共享内存缓冲池。

* 事务处理
DB 提供了事务子系统,为数据库写入提供了完整的ACID保护。(what is ACID-protection??) 在环境文件中设置使用事务子系统, 然后序列性的获取事务ID.

* 高可用性(复用)支持

DB 提供了一个复用子系统,使得单个的MASTER数据库能够复用多个只读的复用数据的拷贝。环境文件用于配置和管理这个子系统。

* 日志子系统

DB 为应用程序提供了预写式日志作为高度的灾难恢复对策。一旦激活了该功能,日志子系统允许应用程序通过日志文件中所包含的信息进行两种恢复(普通和catastrophic)

以上所有主题,都在 Berkeley DB Programmer's Reference Guide 中有描述。

没有评论: