11月第2周系统升级录:历史悠久的嵌入式数据库系统-Berkeley DB

原创
系统
在本期的系统升级录中将向大家介绍一个历史悠久的嵌入式数据库系统——Berkeley DB。主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能。在系统服务方面,MySQL与Firebird几款数据库相继更新。本周值得注意的是红帽企业级Linux RHEL 6发布,作为一款老牌的企业级Linux发行版来说本次更新一共增添了1800个新特性,解决了14000多个bug,作为一个企业管理员需要引起重视。

本周值得注意的是红帽企业级Linux RHEL 6发布,作为一款老牌的企业级Linux发行版来说本次更新一共增添了1800个新特性,解决了14000多个bug,作为一个企业管理员需要引起重视。在桌面端,Firefox 4.0推出了Beta 7,KDE SC 也在本周更新到了4.5.3。

在本期的系统升级录中将向大家介绍一个历史悠久的嵌入式数据库系统——Berkeley DB。主要应用在UNIX/LINUX操作系统上,其设计思想是简单、小巧、可靠、高性能。在系统服务方面,MySQL与Firebird几款数据库相继更新。

下面向大家介绍的是具有悠久历史的嵌入式数据库系统——Berkeley DB。在本周Java版本的Berkeley DB更新到 4.1.6。

Berkeley DB

UNIX/LINUX平台下的数据库种类非常多。通常,我们在设计UNIX/LINUX平台下的应用软件时,如果数据种类繁多,数据与数据之间关系比较复杂,就会选用一些大型的企业级数据库系统,如DB2,ORACLE、SYBASE等,如果软件规模不大,就倾向选用如MYSQL、POSTGRESQL等中小型数据库。例如使用PHP/PERL + MYSQL/POSTGRESQL设计网站基本上是一个很常规的做法。但是,当应用软件管理的数据类型较少(特别注意:这并不是说需要管理的数据量小),数据管理本身不复杂,且对数据操作要求高效率,则由大名鼎鼎的Berkeley(美国加州大学伯克利分校)开发的 Berkeley DB可能是一个很明智的选择。

DB综述

DB最初开发的目的是以新的HASH访问算法来代替旧的hsearch函数和大量的dbm实现(如AT&T的dbm,Berkeley的ndbm,GNU项目的gdbm),DB的第一个发行版在1991年出现,当时还包含了B+树数据访问算法。在1992年,BSD UNIX第4.4发行版中包含了DB1.85版。基本上认为这是DB的第一个正式版。在1996年中期,Sleepycat软件公司成立,提供对DB的商业支持。在这以后,DB得到了广泛的应用。

DB支持几乎所有的现代操作系统,如LINUX、UNIX、WINDOWS等,也提供了丰富的应用程序接口,支持C、C++、JAVA、PERL、TCL、PYTHON、PHP等。DB的应用十分广泛,在很多知名的软件中都能看到其身影。例如参考资料2中作者谈到利用DB在LINUX下实现内核级文件系统;参考资料3中通过实际测试数据说明DB提高了OPENLDAP的效率。LINUX下的软件包管理器RPM也使用DB管理软件包相关数据,可以使用命令file查看RPM数据目录/var/lib/rpm下的文件,则有形式如下的输出:

Dirnames: Berkeley DB (Btree, version 9, native byte-order)
Filemd5s: Berkeley DB (Hash, version 8, native byte-order)

值得注意的是DB是嵌入式数据库系统,而不是常见的关系/对象型数据库,对SQL语言不支持,也不提供数据库常见的高级功能,如存储过程,触发器等。

DB的设计思想

DB的设计思想是简单、小巧、可靠、高性能。如果说一些主流数据库系统是大而全的话,那么DB就可称为小而精。DB提供了一系列应用程序接口(API),调用本身很简单,应用程序和DB所提供的库在一起编译成为可执行程序。这种方式从两方面极大提高了DB的效率。

第一:DB库和应用程序运行在同一个地址空间,没有客户端程序和数据库服务器之间昂贵的网络通讯开销,也没有本地主机进程之间的通讯;

第二:不需要对SQL代码解码,对数据的访问直截了当。

DB对需要管理的数据看法很简单,DB数据库包含若干条记录,每一个记录由关键字和数据(KEY/VALUE)构成。数据可以是简单的数据类型,也可以是复杂的数据类型,例如C语言中结构。DB对数据类型不做任何解释, 完全由程序员自行处理,典型的C语言指针的"自由"风格。如果把记录看成一个有n个字段的表,那么第1个字段为表的主键,第2--n个字段对应了其它数据。DB应用程序通常使用多个DB数据库,从某种意义上看,也就是关系数据库中的多个表。DB库非常紧凑,不超过500K,但可以管理大至256T的数据量。

DB的设计充分体现了UNIX的基于工具的哲学,即若干简单工具的组合可以实现强大的功能。DB的每一个基础功能模块都被设计为独立的,也即意味着其使用领域并不局限于DB本身。例如加锁子系统可以用于非DB应用程序的通用操作,内存共享缓冲池子系统可以用于在内存中基于页面的文件缓冲。

DB核心数据结构

数据库句柄结构DB:包含了若干描述数据库属性的参数,如数据库访问方法类型、逻辑页面大小、数据库名称等;同时,DB结构中包含了大量的数据库处理函数指针,大多数形式为 (dosomething)(DB , arg1, arg2, …)。其中最重要的有open,close,put,get等函数。

数据库记录结构DBT:DB中的记录由关键字和数据构成,关键字和数据都用结构DBT表示。实际上完全可以把关键字看成特殊的数据。结构中最重要的两个字段是 void data和u_int32_t size,分别对应数据本身和数据的长度。

数据库游标结构DBC:游标(cursor)是数据库应用中常见概念,其本质上就是一个关于特定记录的遍历器。注意到DB支持多重记录(duplicate records),即多条记录有相同关键字,在对多重记录的处理中,使用游标是最容易的方式。

数据库环境句柄结构DB_ENV:环境在DB中属于高级特性,本质上看,环境是多个数据库的包装器。当一个或多个数据库在环境中打开后,环境可以为这些数据库提供多种子系统服务,例如多线/进程处理支持、事务处理支持、高性能支持、日志恢复支持等。

DB中核心数据结构在使用前都要初始化,随后可以调用结构中的函数(指针)完成各种操作,最后必须关闭数据结构。从设计思想的层面上看,这种设计方法是利用面向过程语言实现面对对象编程的一个典范。

DB数据访问算法

在数据库领域中,数据访问算法对应了数据在硬盘上的存储格式和操作方法。在编写应用程序时,选择合适的算法可能会在运算速度上提高1个甚至多个数量级。大多数数据库都选用B+树算法,DB也不例外,同时还支持HASH算法、Recno算法和Queue算法。接下来,我们将讨论这些算法的特点以及如何根据需要存储数据的特点进行选择。

B+树算法:B+树是一个平衡树,关键字有序存储,并且其结构能随数据的插入和删除进行动态调整。为了代码的简单,DB没有实现对关键字的前缀码压缩。B+树支持对数据查询、插入、删除的常数级速度。关键字可以为任意的数据结构。

HASH算法:DB中实际使用的是扩展线性HASH算法(extended linear hashing),可以根据HASH表的增长进行适当的调整。关键字可以为任意的数据结构。

Recno算法: 要求每一个记录都有一个逻辑纪录号,逻辑纪录号由算法本身生成。实际上,这和关系型数据库中逻辑主键通常定义为int AUTO型是同一个概念。Recho建立在B+树算法之上,提供了一个存储有序数据的接口。记录的长度可以为定长或不定长。

Queue算法:和Recno方式接近, 只不过记录的长度为定长。数据以定长记录方式存储在队列中,插入操作把记录插入到队列的尾部,相比之下插入速度是最快的。

对算法的选择首先要看关键字的类型,如果为复杂类型,则只能选择B+树或HASH算法,如果关键字为逻辑记录号,则应该选择Recno或Queue算法。当工作集关键字有序时,B+树算法比较合适;如果工作集比较大且基本上关键字为随机分布时,选择HASH算法。Queue算法只能存储定长的记录,在高的并发处理情况下,Queue算法效率较高;如果是其它情况,则选择Recno算法,Recno算法把数据存储为平面文件格式。

本周,Java 版的 Berkeley DB 4.1.6进行了更新。此版本下载地址:http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html

#p#

数据库与服务器的更新

MySQL Connector/ODBC 5.1.8

MySQL Connector/ODBC 是 MySQL 数据库官方提供的 ODBC 驱动程序,支持跨平台。

该版本修复了不少的bug,另外一个不知什么原因的改动,那就是从该版本开始不再提供 chm 和 hlp 格式的帮助文档。

MySQL Connector/ODBC 5.1.8下载地址:http://dev.mysql.com/downloads/connector/odbc/5.1.html

Firebird 2.5

Firebird是一个跨平台的关系数据库系统,目前能够运行在Windows、linux和各种Unix操作系统上,提供了大部分SQL-99标准的功能。它既能作为多用户环境下的数据库服务器运行,也提供嵌入式数据库的实现。

Firebird 2.5 主要是对底层进行全面改造,引入一个新的线程架构,大大提升了性能。

Firebird 2.5下载地址:http://www.firebirdsql.org/index.php?op=files

ImpressCMS 1.2.3 RC2

ImpressCMS是一个数据库(MySQL)驱动,模块化的内容管理系统.网站内容由各自独立的内容模块/Web应用进行管理.可以按照自己的需求来安装相应的模块,当前可用的模块包括:新闻发布,论坛,相册和其它非常多的第三方模块供选择.

该版本最重要的改进就是核心模块和库完全兼容 PHP 5.3

ImpressCMS 1.2.3 RC2下载地址:http://sourceforge.net/projects/impresscms/files/

Hiawatha 7.4

Hiawatha 是一个Linux/UNIX下安全的Web服务器,其设计的最主要的目的就是安全,当然它也是快速的而且易于配置。

该版本修复了两个重要的bug,其中一个是 HideProxy 相关的,另外一个是 XSLT 模块的内存泄漏问题,没有引入新功能。

Hiawatha 7.4下载地址:http://www.hiawatha-webserver.org/download

OpenNMS 1.8.6

OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台。OpenNMS是你管理网络的绝好工具,它能够显示你网络中各中终端和服务器的状态和配置,为你方便地管理网络提供有效的信息。

OpenNMS 1.8.6下载地址:http://www.opennms.org/wiki/New_and_Noteworthy

Cherokee 1.0.9

Cherokee 号称是目前最快的 Web 服务器软件,在性能上,甚至比 Nginx 还略胜一筹。

Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。

该版本带来了很多新功能和改进,可针对每条规则定义不同的缓存策略和独立的header;重定向错误处理可接受一个 default 参数;支持复杂的虚拟主机匹配规则,包括每个IP一个虚拟主机的 SSL/TLS 方案;反向代理支持 SVN和 WebDAV连接;增加一个选项用来禁用管理接口的SSLv2。

强烈建议升级!!!

Cherokee 1.0.9下载地址:http://www.cherokee-project.com/downloads.html

Djigzo 1.4.1

Djigzo是一个用来对传入的邮件进行解密以及传出的邮件进行加密的邮 件服务器(MTA)。Djigzo作为一般的SMTP邮件服务器,它可以与任何现有电子邮件基础设施一起使用,轻松地放在现有的电子邮件服务器之前或之 后。 Djigzo通常安装为“存储和转发”服务器。电邮因此只能暂时储存到它转交给它的最终目的地。 Djigzo目前支持两种加密标准:的S/MIME和PDF加密。

Djigzo 1.4.1下载地址:http://www.djigzo.com/downloads.html

#p#

Linux发行版的更新

红帽企业 Linux 6.0

新版带来了一个完全重写的进程调度器和一个全新的多处理器锁定机制,并利用NVIDIA图形处理器的优势对GNOME和KDE做了重大升级,新的系统安全 服务守护程序(SSSD)功能允许集中身份管理,而SELinux的沙盒功能允许管理员更好地处理不受信任的内容。

RHEL 6内置的新组件有GCC 4.4(包括向下兼容RHEL 4和5组件)、OpenJDK 6、Tomcat 6、Ruby 1.8.7和Rails 3、PHP 5.3.2与Perl 5.10.1,数据库前端有PostgreSQL 8.4.4, MySQL 5.1.47和SQLite 3.6.20。

发行说明:http://www.redhat.com/about/news/prarchive/2010/new-standard.html

试用下载:http://www.redhat.com/wapps/eval/index.html?evaluation_id=1008

版本比较:http://www.redhat.com/rhel/server/compare/

VLOS 2.2 Beta 1

Vidalinux Desktop操作系统是一份强大的、稳定的、易用的Linux发行。其桌面组件基于开源社区的最出色项目,包括GNOME桌面环境、 OpenOffice Ximian产品套件、Mozilla浏览器、Evolution邮件及日历客户端,Gentoo Linux系统及portage包管理器。Vidalinux Desktop操作系统是面向家庭用户而包含额外多媒体应用软件的最合适的系统,这包括了媒体播放软件、浏览器Flash插件、RealPlayer、 PDF阅读器、媒体及图像创作和管理工具。

发行说明:http://vidalinux.org/component/content/article/1-latest-news/94-vlos-22beta1

VLOS 2.2 Beta 1下载地址:http://os.vidalinux.org/index.php/Download

Salix OS 13.1.2 "Xfce"

Salix OS是基于Slackware的Linux发行,它简单、快捷、易于使用,并且与Slackware Linux兼容。Salix OS为桌面应用而优化,其特性包括每项任务只装备一种应用程序、用户软件仓库、支持依赖关系的高级软件包管理、本地化的系统管理工具及富有新意的美工。

发行说明:http://www.salixos.org/forum/viewtopic.php?t=1528&p=10601

Salix OS 13.1.2 "Xfce"下载地址:http://www.salixos.org/wiki/index.php?title=Download

IPFire 2.7 Core 41

IPFire是一份Linux发行,它注重轻松的装备、方便的操作和高级别的安全。它通过一份直观的基于网页的界面来进行操作管理,该界面为新手级及老练 的系统管理员提供很多直观的配置选项。IPFire由一群关注安全及经常更新该产品以保持其安全的开发者来维护。IPFire带有一份定制的叫做 Pakfire的包管理器,系统也可以通过各种附件来进行扩展。

发行说明:https://www.redhat.com/archives/rhelv5-announce/2010-November/msg00000.html

IPFire 2.7 Core 41下载地址:http://www.ipfire.org/en/download

NetBSD 5.1

NetBSD 是一个免费的,具有高度移植性的 UNIX-like 操作系统,可以在许 多平台上执行,从 64bit alpha 服务器到掌上型的设备。由于简洁的设计 和先进的特征,使得它在生产和研究方面,都有卓越的表现,而且它也有受 使用者支持的完整的原始码。许多应用程序也是易于移植的。

NetBSD 5.1下载地址:http://www.netbsd.org/releases/

#p#

桌面端应用的更新

Firefox 4.0 Beta 7 RC

经过一次次的跳票,Mozilla北京时间昨天中午悄然在其FTP服务器上发布了Firefox 4.0 Beta 7 RC版,但直到晚上还不允许下载。今天早上起来一看,可以下载了,大家赶紧试试吧,这次应该集成了新内核。

下载地址:ftp://ftp.mozilla.org/pub/firefox/nightly/4.0b7-candidates/build1/

KDE SC 4.5.3

KDE 社区不久前发布了 KDE SC 4.5.3 。这次更新包含了 Plasma Desktop (桌面)和 Netbook workspaces (上网本) 两个平台的 KDE 桌面环境,KDE 平台核心和 KDE 的应用软件在都在这个版本中有所更新。这次更新是 KDE 4.5 系列中第3的次更新, 社区建议正在使用 KDE SC 4.5  或者更老版本的 KDE 用户升级到此版本,因为它修正了很多已经知的bug,并且对各个国家的语言支持也更加完善。

KDE SC 4.5.3下载地址:http://download.kde.org/download.php

Firebug 1.7a5

Firebug是Firefox下的一款开发类插件,现属于Firefox的 五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和 Ajax的得力助手。Firebug如同一把精巧的瑞士军刀,从各个不同的角度剖析Web页面内部的细节层面,给Web开发者带来很大的便利。

除了修复一些bug外,该版本引入两个新特性:

Firebug 命令行的自动完成
更好兼容 Firefox 4.0

Firebug 1.7a5下载地址:http://getfirebug.com/downloads

【系统频道本周热点文章】

  1. PC机的云时代 Chrome OS能否取代Windows
  2. 嘘…其实Opera掌握了互联网上最珍贵的资源
  3. 红帽企业级Linux RHEL 6发布 新增1800个新特性
  4. 所有现代的Windows系统管理员都需要的工具
  5. 敏捷的独角鲸——Ubuntu 11.04开发进程
  6. 红帽RHEL团队:操作系统也可以按摩尔定律发展
  7. 探秘:Linux在纳斯达克的应用
  8. 系统管理员之企业生存守则
  9. Windows中的脚本技术-Windows Powershell

 

责任编辑:张浩 来源: 51CTO.com
相关推荐

2010-08-13 13:20:15

2011-02-18 19:18:22

系统升级

2010-11-26 17:10:34

系统升级

2009-08-11 13:35:13

C# Berkeley

2010-08-20 15:43:33

系统升级录Vim

2010-06-25 14:14:50

Exchange Se

2010-11-05 15:31:29

2014-06-19 13:59:55

2011-03-11 21:24:47

系统升级

2010-07-09 15:00:50

Linux内核系统升级录

2011-03-18 17:45:51

系统升级录

2010-11-19 17:15:24

2010-06-18 15:08:18

2010-08-06 15:05:39

2010-02-24 16:02:45

PerstSilverlight

2011-02-25 19:15:39

2010-08-27 13:17:51

系统升级

2010-09-03 15:08:35

系统升级

2010-09-10 15:56:08

2021-07-09 12:36:44

项目业务敏捷
点赞
收藏

51CTO技术栈公众号