经过方正智睿数据库研发团队全体人员接近1年的艰苦努力工作,智睿数据库2.0版本于5月10日正式发布。该版本不仅增加了诸多强大和有用的功能,而且在性能,稳定性和可靠性等方面都得到了大幅提升。

新版本主要的新功能包括 自主研发的xquery查询引擎,基于日志复制的分布式数据库,key-value数据管理,支持ACID属性的结果集缓存,统一的内存管理机制,以及微软office文档管理,CSharp API和web客户端等;

其中自主研发的查询引擎支持大数据量的xquery查询处理;并且查询处理性能大幅提升,xmark标准性能测试结果全面赶上并部分超越MarkLogic数据库; 通过优化的xml数据存储和索引技术和xquery查询优化技术,达到查询执行性能的大幅提升。


基于日志复制的分布式数据库将事务日志实时复制到备机,在备机上执行恢复操作完成对备机数据的实时更新。主机可以处理数据更新和数据查询请求,备机可以处理只读的查询请求,这样通过备机可以提升系统可扩展性。 备机可以选择不同的数据一致性约束,达到性能和数据一致性的平衡。在主机down掉后,所有备机可以自动完成主机选举,新的主机接收用户的数据更新操作,集群整体并未中断运行。这样就提升了系统的可靠性和可扩展性。


key-value数据管理是把数据库内核的key-value存储引擎的功能直接公开给用户,用户与服务器建立连接以后,就可以做key-value数据的增删改查,功能和用法非常类似于hbase的功能,区别是这里的key可以是字节串也可以是数值类型,这样可以让用户更加有效地对数据做排序和查找。并且我们并不实现hbase的column/column family,每一个keyvalue表的value可以是任意的字节串,value内部的结构完全由应用程序去理解和处理。


支持事务ACID属性的结果集缓存是通过在客户端和服务器端做查询结果缓存来提升性能。但是与memcached相比,我们可以让用户获取到的缓存的查询结果不违背事务acid属性,比如如果一个xml 元素节点被一个事务T1更新,那么该节点如果被缓存在事务T2所在的用户端的话,用户下次获取该节点时如果应该看到更新后的节点的话,系统返回给用户的一定是更新后的节点。


统一的内存管理机制 的目的是提升性能和稳定性。通过系统内部的层次的内存管理器架构按照内存使用时期的长短不同,将存在于命令,事务,会话等不同生命期的对象分配在不同生命期的内存管理器所管理的内存块中。这样可以大幅减少内存碎片,提升系统稳定性;并且可以提升cpu cache命中率,降低操作系统缺页几率,从而提升性能。


我作为方正智睿数据库架构师,不仅完成了所有的系统架构设计,模块设计,详细设计工作,也参与了大量的编码工作,我会在后面用几篇文章介绍一下我们的产品中有趣和有效的技术。