BerkeleyDB是一个开源的嵌入式的数据管理程序库,可以向应用程序提供可扩展的,高可靠的,以及具有完整事务语义的数据管理服务.
开源是指BerkeleyDB是开放源代码的, 但是与许多的开源项目不同的是, BerkeleyDB的新版本开发过程中, 代码并不开放, 而在新版本发布后, 用户可以从Oracle的官网上获得该新版本的全部源代码.
嵌入式是指, BerkeleyDB的与运行是嵌入在程序中的, 而不像Oracle, Mysql等具有自己单独的服务进程. 这样的好处是没有进程间通信的代价. 所以在存取数据时可以具有很高的速度.
可扩展是指, BerkeleyDB可以在多进程和多线程环境下工作的很好. 而多线程/多进程是提高CPU利用率的常用手段.
高可靠性是指, 应用可以搭建起一个BerkeleyDB的集群, 使得当其中一个节点崩溃(磁盘坏了,机器关机等)时, 可以使用其他的节点, 以保证99.99999%的可靠性.
完整的事务语义是指BerkeleyDB提供事务的ACID特性, 使得所有对数据的修改具有原子性, 一致性, 隔离性和持久性.
BerkeleyDB可以运行在许多的平台上, 包含绝大多数的主流Unix(Solaris, AIX, HP-UX等), Linux各种发行版, BSD的各种版本(FreeBSD, NetBSD, OpenBSD等), Cygwin, Windows 2000以上各种版本及Windows Mobile 6以上, QNX, VxWorks, IOS和Android.
根据商业support license的不同, BerkeleyDB提供四种不同产品:
Data Store: 提供高性能的存储服务, 支持多线程和多进程的数据访问. 但是由于不提供锁的功能, 所以不保证多进程/线程情况下数据的正确性. 当应用只对数据进行只读访问或者应用可以保证在同时只有一个线程/进程更新数据时, 该产品才适用.
Concurrent Data Store: 在Data Store的基础上, 保证任何时候都只有一个进程/线程在更改数据, 或者可以有多个线程/进程同时在读数据. 该产品内置了锁和并发访问, 但是仍然只允许一个更新线程/进程. 当应用程序主要以读数据为主, 但是有时需要修改数据又不愿意自己实现并发控制时, 可以使用该产品.
Transaction Data Store: 在Data Store基础上提供事务支持和恢复支持. 该产品适合那些需要工业强度的数据存储服务, 主要指能够正确的同时处理高并发的读写操作, 能够简单有效的取消错误操作, 能够在系统崩溃时恢复数据库到正常状态.
High Availability: 在Transaction Data Store的基础上, 提供集群支持. 该集群支持单个写和多个读, 写的节点将修改向其他节点分发. 当写节点崩溃时, 其他的读节点中的某个将自动成为新的写节点, 处理数据的更新操作.
这四种产品主要差别在于商业技术支持上, 即当只购买Data Store的license, 是不能获得Transaction Data Store的商业支持的.
在使用功能和源代码上, 没有这种划分. 从Oracle官网下的源代码里面包含全部这四种产品的功能. 所以, 如果不需要商业技术支持的话, 这四种产品的区别对用户来说就没有意义.
下一章: BerkeleyDB的基本概念
阅读(2808) | 评论(0) | 转发(0) |