51CTO博客开发
方正智睿NoSQL数据库总体介绍方正智睿NoSQL数据库管理系统是一个面向海量NoSQL数据存储和管理的数据库服务器软件,它可以高效地存储和管理XML数据,key-value数据,并且让用户通过标准的查询语言和高效易用的编程接口来访问这些NoSQL数据。主要功能海量XML数据的高效存储和访问与开源的XML数据库不同,智睿数据库可以单机管理TB级别的XML数据以及支持对此规模的XML数据的查询和更新
经过方正智睿数据库研发团队全体人员接近1年的艰苦努力工作,智睿数据库2.0版本于5月10日正式发布。该版本不仅增加了诸多强大和有用的功能,而且在性能,稳定性和可靠性等方面都得到了大幅提升。新版本主要的新功能包括 自主研发的xquery查询引擎,基于日志复制的分布式数据库,key-value数据管理,支持ACID属性的结果集缓存,统一的内存管理机制,以及微软office文
需求分析随着W3C(1)制定的XML标准从上世纪90年代开始逐步推广,XML文档的应用越来越广泛。首先XML(2)文档被很多领域应用作为数据标准化的方式,也就是用来定义行业标准数据格式。这里http://en.wikipedia.org/wiki/List_of_XML_markup_languages 是一系列基于XML定义的标准数据格式,在国内的医疗,出版等很多行业也使用了XML定义的数据标准
在上海方正作为方正智睿NoSQL数据库架构师工作快一年了,这一年非常忙碌,带团队工作比自己一个人辛苦很多,要在各个方面操心,以至于没有时间更新blog了,虽然有很多很多东西可以写。 最近稍稍有了点时间,我也很想把这一年的成果和收获在允许的范围内与大家分享,对自己也是一种总结与提高。我会在后面接连写几篇关于我在上海方正 XML数据库的设计和实现方面的技术文章,希望大家多交流。这一年以来我们做了很多工
刚才贴了一些文章,都是我之前读Berkeley DB的代码时候记下来的笔记,基于Berkeley DB 4.6 ~ Berkeley DB 4.8版本的代码,不过相信与现在最新的代码差别也不大,有兴趣朋友可以看看。同时如果想要完全理解代码,那么在看我这些分析的同时,可以调试一下bdb代码,按照功能逐一调试。比如想要理解bdb的btree如何插入一条key/data pair,那么就
这篇和上篇一样,也是含有一些wiki格式控制字符,看的时候直接忽略这些格式字符。= Logging subsystem === Architecture ==Log subsystem consists of one log buffer, and several log files, each has a unique file number. &n
这篇文字原来是贴在wiki里面的,所以有一些wiki系统使用的格式标记,大家将就看吧,不好意思哈。= Memory Pool subsystem === Architecture ==mpool is the underlying cache for all access methods (AMs). It provides pages to AMs,
这是我根据列存储的需求以及Berkeley DB的技术特征做的一个列存储设计方案。有兴趣的朋友可以研究一下,并且在Berkeley DB的基础上面实现出来。有问题可以联系我,我尽量抽时间回答。Column store improvements:0. Store column metadata and table metadata. Column metadata including
Locking Subsystem Learning Notes0. locking API__db_lput/__db_lget are txnal lock put/get, often __TLPUT is called instead,and __TLPUT calls __db_lput internally. __db_lput will downgrade the lockratht
1. in nested txns, when child txns of any level commit, __txn_child logs are always written, no matter the child txn commits explicitly or implicitly by its parent's commit. 2. Read only txns don&
__bam_ditemIn btree we store on-page duplicate key/data pairs this way: 1. we only put the key onto the page once, since it's duplicated, there is no meaning puttingidentical keys multiple times.
II. Type Dictionary1. BTREEThe DB handle's DB->bt_internal structure, stores per-process and per-dbhandlebtree info and function pointers.2. BTMETAThe btree meta page structure shared b
I. General Notes1. use a cursor to access db internally. cursor connects lock/txn/logging/AM, etc.To get a page, first create a cursor if don't have one, then call __db_lget to lock the pa
Berkeley DB是一个优秀的数据库存储引擎,虽然它比起那些大块头的DBMS来说显的很小,但是size并不与能力呈正比,Berkeley DB拥有那些大块头DBMS的存储引擎所拥有的全部功能,而且做得还不错。哪些大块头之所以大,很大程度是对于数据库管理系统的设计技术感兴趣的同行们来说,学习Berkeley DB是一个很好的开始,因为Berkeley DB全面地拥有一个DBMS的
很久没有上来更新blog了,大家快把我忘记了吧,呵呵。其实这一年多在Teradata做了很多事情,可以写blog的东西很多很多,不过由于自己过于繁忙,没时间写东西,而且公司政策限制,我所做的东西不可以写到这里来,有点遗憾。现在我已经离开了Teradata,加入了上海方正数字出版技术有限公司作为XML数据库项目技术负责人,带领团队从事XML数据库开发。下面我就大概地总结一下我这一年的
Following are my notes and understanding from the two referenced documents listed at the end of the article.0. The volatile keyword tells compiler to turn off optimization for code accessing
本文是一个示例,展示了如何直接使用BerkeleyDB的memory pool功能。BerkeleyDB对外开放了它的memory pool, logging,mutex 和 lock子系统,应用程序开发者可以使用mpool来管理其他文件,按页对那些文件做读写操作,还可以同时使用lock子系统实现互斥。同时你还可以注册你自己的日志读写和恢复函数并且使用logging API写日志或者操纵日志文件和
这是我之前写的一篇文章,一直没有最终定稿并且放上来。现在,我已经离开了Oracle,我想是时候好好总结一下在Oracle BerkeleyDB团队的这三年来的所学了,所以有了下面这篇文字。 在后面的文章当中可能还会总结以下我对于Berkeley DB这个产品本身的认识和理解。想要编写高质量的软件很不容易,因为从设计到最终定型,有太多太多容易犯错的地方,不仅仅涉及到计算机技术本身,还涉及到软件开发过
在Berkeley DB 4.8之前,我们可以执行的唯一的批量数据库操作是批量读取。从Berkeley DB 4.8开始,Berkeley DB支持批量插入/更新/删除,并且用法也与批量读取相似。批量插入/更新/删除对Berkeley DB的更新性能提升非常大,是一个值得认真学习的新功能。本文就以一个示例程序展示批量插入和批量删除的用法。/* 批量插入示例函数。*/void *run_bulk_i
1. OverviewThread local storage(tls) is a feature provided by most modern operatingsystems(OS) that allow multiple threads within a process to have its own "global" data, but the scope of th
/* * Perform command line parsing and common replication setup for the repmgr * and base replication example programs. */intcommon_rep_setup(dbenv, argc, argv, setup_info) DB_ENV *dbenv; int argc; cha
/* * 这个示例程序演示了使用Berkeley DB的replication功能的方法。 * * Berkeley DB提供了一套基本API和一套replication manager API来使用 * 它的replication功能。 * 前者有更大的灵活性,用户可以选择各种网络协议来实现数据传输,并且使用各种 * 线程库来进行多线程编程。同时由于使用最基本的API, 用户可以定制选举和 *
刚才看了央视4套的汉字五千年,详细地了解了汉字在近170年的命运,真是感慨万千。自秦汉以来,中华民族在文化上一直走在世界前列,引领世界文化和科学技术的发展。汉语、汉字作为中华文明的载体,一直是其他国家争相学习的语言文字,那时的古人,从来不需要学习什么外语,因为他们就是世界的中心!我们祖先的这种在文明、文化上的优越感和自信心,也反过来对内促进了中华文明的发展,对外扩大了中华文明的影响力。虽然在南北朝
今天看到一个文章,谈到Berkeley DB与eXtreamDB的性能对比,可惜两者的数据集不同,没多大可比性,以后有时间,我把那个程序修改一下,使用相同的数据集对比下,把结果贴出来给大家看看。我很有信心:Berkeley DB不会输给eXtreamDB. 看了官网才发现,eXtreamDB是如此的与Berkeley DB相似,但是它不是开源产品,所以从使用者的规模来看,我相信无法与Berkele
Berkeley DB 4.8 刚刚发布,我的心情格外激动。不仅仅是因为这个版本是Berkeley DB新增了很多新功能,在很多方面有不小的增强,更因为在众多的新功能中,有主要由我设计开发的STL API。 作为增强Berkeley DB的易用性或者叫做用户友好性的重要组成部分,STL API是Berkeley DB4.8的主要的新特性之一。Berkeley DB的STL API也叫做dbstl或
这篇讲的是我使用mercurial时候的一些有趣的发现。We internally use mercurial as the source version control system.Mercurial is a very useful and powerful source control system, the difference from cvs/svn is that, mercuri
各位读者,很抱歉这篇文章是英文的,我当初做笔记的时候,写成英文了,这样才可以在同事之间交流。而现在确实没时间翻译过来了,还望大家理解,谢谢!If your code builds well using gcc4.3 and below, it may not build with gcc4.4, which was released in April 2009.Following are some
各位读者,很抱歉这篇文章是英文的,我当初做笔记的时候,写成英文了,这样才可以在同事之间交流。而现在确实没时间翻译过来了,还望大家理解,谢谢!In this article I'd like to talk about the caveats and how-to's when doing performance test with Berkeley DB, when the dat
各位读者,很抱歉这篇文章是英文的,我当初做笔记的时候,写成英文了,这样才可以在同事之间交流。而现在确实没时间翻译过来了,还望大家理解,谢谢!Following are some corner cases of C++ template features. A lot of the text is simply extracted from "C++ Templates: The Comp
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号