Apache Derby 是一个以 IBM 的 Cloudscape 为起点的纯 Java 开源关系型数据库。在过去的几个星期里,它有两个很大的实质性改进,第一就是为即将发布的 10.3 版制作了一个 beta 版本。在 10.3 中主要包括安全性方面的增强、基于语言的排序、一些 Bug 的修复、性能提升以及其他一些特性。第二,挪威科技大学(the Norwegian University of Science and Technology)的学生 Egil Sørensen 提交了关于复制、可用性的论文和一个原型实现。
Apache Derby 的 10.3 版计划于 6 月 16 日发布。现在已发布了一个 Beta 版,除了在性能提升和 Bug 修复之外,还包括有以下这些主要特性:
- DBA 的权力——一些像关闭服务器、加密,以及对数据库的升级的操作只限于数据库的所有者才有权执行,任何被授权的用户都不再被允许进行这样的操作。
- Secure Server——Network Server 默认是与 Java 安全管理器一起运行的。
- 基于语言的排序——使用了对区域敏感的比较方法而不是基于 Unicode 字符码的简单排序。
还有一些小特性:
- ALTER TABLE 允许对列进行 DROP 和 RENAME 操作;
- 服务器与客户端允许通过 SSL/TLS 进行通信;
- 可以在不改变应用的情况下进行客户端跟踪;
- 支持导入 / 导出数据表的 clob、blob 以及其它的二进制类型字段;
- JDBC 自动生成关键字的方法已经实现;
- 可以通过子查询生成新的空数据表;
Egil Sørensen 已经提交了关于向 Derby 添加热备份(Hot Standby)复制功能的硕士论文:
通过 Apache Derby 中实现一个热备份的方案以后,一些特性就被添加了进来。数据库的内容可以在运行时复制到另一个在线实时备份点。由于热备份可以接管有问题的服务 器,可用性就得到了很大的提升。一旦服务器崩溃,客户端就可以立刻连接到热备份机器上继续工作,这样一来,崩溃对于客户端来讲就是不可见的了。另外还可以 立即停用这个数据库,进行软件和硬件的在线升级。升级以后,服务器就完成了同步动作,便可以立即重新上线而无需等待。项目中已经有了一个热备份方案的完整功能原型,是使用逻辑日志、fail-fast 接管和对崩溃一刻的信息进行内部恢复和重连之后进行逻辑补偿(logical catchup)这些途径来创建的。
这个原型产品已经作为 10.2.2.0(也就是最近的一次产品发布)的一个补丁包提交了,同时也已经被移植到项目的 trunk 中。由于还有一个问题需要加入复制功能后才能解决,所以这个补丁可能会到10.4 版时添加进去。
查看英文原文: Apache Derby Releases 10.3 Beta and Gains Experimental Hot Standby Replication
译者简介:张海龙,现就职于 Ethos ,注重对项目管理的过程建立和优化、设计模式的理解和实践。与 InfoQ 中文站分享内容,请邮件至 china-editorial[at]infoq[dot]com
评论