
数据库技术
文章平均质量分 80
david_zhao_wei
资深数据库内核开发者。现在腾讯公司做TDSQL分布式强一致数据库的MariaDB/MySQL 研发。 曾在 ORACLE公司 MYSQL 研发部门任职 Principal Software Engineer 曾任 方正 智睿NoSQL数据库 高级架构师负责方正NoSQLXMLKEY-VALUEGRAPH数据库的设计和研发曾任TeraData公司 Senior Database Kernel Developer负责Jupiter的存储引擎研发曾任Oracle 公司软件工程师负责Berkeley DB嵌入式数据库的开发
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据库通用基础实现技术---多进程共享信息
Berkeley DB数据库以程序库的方式链接到应用程序中,而应用程序可以以多线程、多进程的方式访问同一个数据库环境中的所有数据库。注意,这里的数据库环境(Database Environment, DB_ENV)是Berkeley DB的一个术语,相当于关系数据库中的一个“数据库”,我们知道这个“数据库”中有很多个“关系表”。而Berkeley DB当中用“数据库”("Database")来指代原创 2009-01-18 13:15:00 · 1219 阅读 · 0 评论 -
Berkeley DB 源代码分析 (5) --- 事务锁模块
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 loc原创 2012-03-25 15:55:56 · 5118 阅读 · 0 评论 -
Berkeley DB 源代码分析 (7) --- 事务和日志 (2)
这篇和上篇一样,也是含有一些wiki格式控制字符,看的时候直接忽略这些格式字符。= Logging subsystem === Architecture ==Log subsystem consists of one log buffer, and several log files, each has a unique file number. Log buffer原创 2012-03-25 15:57:48 · 1093 阅读 · 0 评论 -
Berkeley DB 源代码分析 --- 小结
刚才贴了一些文章,都是我之前读Berkeley DB的代码时候记下来的笔记,基于Berkeley DB 4.6 ~ Berkeley DB 4.8版本的代码,不过相信与现在最新的代码差别也不大,有兴趣朋友可以看看。同时如果想要完全理解代码,那么在看我这些分析的同时,可以调试一下bdb代码,按照功能逐一调试。比如想要理解bdb的btree如何插入一条key/data pair,那么就写一小段代码调用原创 2012-03-25 15:59:38 · 2953 阅读 · 2 评论 -
XML数据库管理系统 ---需求与目标
需求分析随着W3C(1)制定的XML标准从上世纪90年代开始逐步推广,XML文档的应用越来越广泛。首先XML(2)文档被很多领域应用作为数据标准化的方式,也就是用来定义行业标准数据格式。这里http://en.wikipedia.org/wiki/List_of_XML_markup_languages 是一系列基于XML定义的标准数据格式,在国内的医疗,出版等很多行业也使用了XML定义的数据原创 2012-03-25 16:02:07 · 2162 阅读 · 0 评论 -
智睿数据库2.0发布
经过方正智睿数据库研发团队全体人员接近1年的艰苦努力工作,智睿数据库2.0版本于5月10日正式发布。该版本不仅增加了诸多强大和有用的功能,而且在性能,稳定性和可靠性等方面都得到了大幅提升。新版本主要的新功能包括 自主研发的xquery查询引擎,基于日志复制的分布式数据库,key-value数据管理,支持ACID属性的结果集缓存,统一的内存管理机制,以及微软office文档管理,CSharp原创 2013-05-24 18:17:14 · 836 阅读 · 0 评论 -
方正智睿NoSQL数据库总体介绍
方正智睿NoSQL数据库总体介绍方正智睿NoSQL数据库管理系统是一个面向海量NoSQL数据存储和管理的数据库服务器软件,它可以高效地存储和管理XML数据,key-value数据,并且让用户通过标准的查询语言和高效易用的编程接口来访问这些NoSQL数据。主要功能海量XML数据的高效存储和访问与开源的XML数据库不同,智睿数据库可以单机管理TB级别的XML数据以及支持对此规模的XML原创 2013-05-31 17:33:42 · 1709 阅读 · 0 评论 -
MySQL的各种网络IO超时的用法和实现
来自本人的微信公众号 --- 数据库开发者。欢迎扫码关注。 客户端C API在C API中调用mysql_options()来设置mysql_init() 所创建的连接对象的属性,使用这三个选项可以设置连接超时和读写超时,单位都是秒。读写超时达到后C API的查询发送和结果获取函数会返回超时错误。 MYSQL_OPT_CONNECT_TIMEOUTMYSQL_O原创 2016-09-06 09:58:48 · 1731 阅读 · 0 评论 -
语句复制(SBR)的缺陷列举
腾讯TDSQL 赵伟 数据库开发者这个文章是我在自己的个人微信公众号“数据库开发者” 里面首发的,现在在我的博客里面再发一遍。欢迎您扫码关注“数据库开发者” 公众号。MySQL [1] 的Statement Based Replication (SBR) 是一个暗坑无数的功能,可能导致主备机数据不一致,以及其它问题,所以在TDSQL中我们使用RBR。这里就列举几条SBR原创 2016-11-30 18:58:36 · 548 阅读 · 0 评论 -
MySQL与MariaDB功能对比 ---子查询中order by的处理
MariaDB 声称是 MySQL的drop-in replacement,也就是说可以直接替换程序就可以使用。那么,这两者的功能是不是100%完全相同呢 ? 很多用户都非常关心这个问题。其实还是有蛮多细微的差别的,后面我会发文若干篇讲一讲这些差别。本文讲一下两者在子查询中order by的处理方面的差别。原创 2016-11-30 19:01:36 · 2597 阅读 · 0 评论 -
Berkeley DB 源代码分析 (2) --- Btree的实现 (1)
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 by原创 2012-03-25 15:52:53 · 1410 阅读 · 0 评论 -
Berkeley DB 列存储设计方案
这是我根据列存储的需求以及Berkeley DB的技术特征做的一个列存储设计方案。有兴趣的朋友可以研究一下,并且在Berkeley DB的基础上面实现出来。有问题可以联系我,我尽量抽时间回答。Column store improvements:0. Store column metadata and table metadata. Column metadata including:原创 2012-03-25 15:58:38 · 1182 阅读 · 0 评论 -
Berkeley DB的动态散列技术
本文最初贴在我在百度空间的blog(http://hi.baidu.com/dazhao_dbblog),现在把它也发布到这里。 一个Berkeley DB数据库(也就是关系数据库中的一个表)存储的数据是key/data pair(键/值)对的集合,这些key/data pairs原本可以是任何结构、模式和意义的数据,Berkeley DB不理会它们的结构和意义,只把他们当作字原创 2009-01-18 13:20:00 · 2115 阅读 · 1 评论 -
Berkeley DB概况
说实话,在我进入Oracle之前一个月,也是拿到Oracle的Offer 5个月之后,我才得到我未来经理的电话通知(我不是怪他通知的晚,事实上我非常感谢他给我机会进入这个产品组---这纯属机缘巧合,让我来到一个崭新的世界),说我在Berkeley DB产品组,这之前我从来没听说过它,我的第一印象,Berkeley的DB不是postgresl吗?仔细一查,才知道它是Oracle的嵌入式数据库,而嵌入原创 2009-01-18 13:26:00 · 1892 阅读 · 0 评论 -
Berkeley DB示例程序详解(3.2)
/* * 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原创 2009-10-04 16:33:00 · 988 阅读 · 0 评论 -
Berkeley DB 源代码分析 (1) --- 代码特征与游标的实现
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 page, then原创 2012-03-25 15:52:06 · 1397 阅读 · 0 评论 -
Berkeley DB 源代码分析 (6) 缓存模块
这篇文字原来是贴在wiki里面的,所以有一些wiki系统使用的格式标记,大家将就看吧,不好意思哈。= Memory Pool subsystem === Architecture ==mpool is the underlying cache for all access methods (AMs). It provides pages to AMs, and writes原创 2012-03-25 15:56:57 · 1414 阅读 · 0 评论 -
方正XML数据库设计与实现---开篇
在上海方正工作快一年了,这一年非常忙碌,带团队工作比自己一个人辛苦很多,要在各个方面操心,以至于没有时间更新blog了,虽然有很多很多东西可以写。 最近稍稍有了点时间,我也很想把这一年的成果和收获在允许的范围内与大家分享,对自己也是一种总结与提高。 我会在后面接连写几篇关于我在上海方正 XML数据库的设计和实现方面的技术文章,希望大家多交流。这一年以来我们做了很多工作,目前我们的方正XML原创 2012-03-25 16:01:02 · 1477 阅读 · 0 评论 -
Berkeley DB 源代码分析 (3) --- Btree的实现 (2)
__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 tim原创 2012-03-25 15:54:00 · 1502 阅读 · 0 评论 -
Berkeley DB 源代码分析 (4) --- 事务和日志
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原创 2012-03-25 15:54:45 · 761 阅读 · 0 评论 -
Berkeley DB内核源码分析
Berkeley DB是一个优秀的数据库存储引擎,虽然它比起那些大块头的DBMS来说显的很小,但是size并不与能力呈正比,Berkeley DB拥有那些大块头DBMS的存储引擎所拥有的全部功能,而且做得还不错。哪些大块头之所以大,很大程度是对于数据库管理系统的设计技术感兴趣的同行们来说,学习Berkeley DB是一个很好的开始,因为Berkeley DB全面地拥有一个DBMS的存储引擎应该原创 2012-03-25 15:51:11 · 1752 阅读 · 0 评论 -
MariaDB与MySQL对比 --- 对分布式事务的支持
这个文章是我在自己的个人微信公众号“数据库开发者” 里面首发的,现在在我的博客里面再发一遍。欢迎您扫码关注“数据库开发者” 公众号。MariaDB和MySQL两者对分布式事务的支持有所不同,总的来说MySQL的支持更好,是完备的和可靠的(也发现了一个bug),而MariaDB的支持还有诸多问题,先举例说明。本文测试用例使用MySQL-5.7.16和MariaDB-10.1.9原创 2016-12-05 19:45:22 · 4241 阅读 · 0 评论