自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

赵伟的计算机软件技术专栏

数据库管理系统设计与实现; MySQL、PostgreSQL、Berkeley DB内核开发; 大型软件架构设计和研发管理;

  • 博客(49)
  • 收藏
  • 关注

原创 MariaDB与MySQL对比 --- 对分布式事务的支持

这个文章是我在自己的个人微信公众号“数据库开发者” 里面首发的,现在在我的博客里面再发一遍。欢迎您扫码关注“数据库开发者” 公众号。MariaDB和MySQL两者对分布式事务的支持有所不同,总的来说MySQL的支持更好,是完备的和可靠的(也发现了一个bug),而MariaDB的支持还有诸多问题,先举例说明。本文测试用例使用MySQL-5.7.16和MariaDB-10.1.9

2016-12-05 19:45:22 4112

原创 MySQL与MariaDB功能对比 --- NULL在ALL/SOME中的处理的不同

这个文章是我在自己的个人微信公众号“数据库开发者” 里面首发的,现在在我的博客里面再发一遍。欢迎您扫码关注“数据库开发者” 公众号。在mysql5.5中,如果ALL/SOME中有NULL,那么这个NULL被忽略掉了,这是不符合SQL标准的,因为ALL/SOME 这种存在性谓词(predicate) 放到比较表达式中,则其中的每一个值都隐式地与这个比较表达式另一边的值在比较,而NULL与

2016-12-01 18:49:30 816

原创 MySQL与MariaDB功能对比 ---子查询中order by的处理

MariaDB 声称是 MySQL的drop-in replacement,也就是说可以直接替换程序就可以使用。那么,这两者的功能是不是100%完全相同呢 ? 很多用户都非常关心这个问题。其实还是有蛮多细微的差别的,后面我会发文若干篇讲一讲这些差别。本文讲一下两者在子查询中order by的处理方面的差别。

2016-11-30 19:01:36 2497

原创 语句复制(SBR)的缺陷列举

腾讯TDSQL 赵伟 数据库开发者这个文章是我在自己的个人微信公众号“数据库开发者” 里面首发的,现在在我的博客里面再发一遍。欢迎您扫码关注“数据库开发者” 公众号。MySQL [1] 的Statement Based Replication (SBR) 是一个暗坑无数的功能,可能导致主备机数据不一致,以及其它问题,所以在TDSQL中我们使用RBR。这里就列举几条SBR

2016-11-30 18:58:36 488

原创 使用MySQL如何有效地创建基于 INNODB 引擎的表

来自本人的微信公众号 ---数据库开发者,欢迎扫码关注。有用户问我们为什么下面这个建表语句会执行失败,报错是 "Row size too large ...."下面我就以这个例子出发讲一讲使用mysql如何有效地建表。本文使用的图片是从网络搜索到的,不是我自己制作的,在此感谢图片的作者和拥有者。CREATE TABLE bad_table (  col1 varchar

2016-09-06 11:26:16 1414

原创 MariaDB InnoDB表空间的bug及其解决过程

来自本人的微信公众号 ---数据库开发者,欢迎扫码关注。我前段时间发现并解决的一个innodb和xtradb的bug,这个我在MariaDB官网上面提交的bug报告:https://jira.MariaDB.org/browse/MDEV-9581这个bug页面里面有我写的详细的重现流程和错误分析以及patch,以及我与MariaDB的开发者就这个bug进行的一些技术细节的

2016-09-06 11:24:40 3224

原创 MySQL的各种网络IO超时的用法和实现

来自本人的微信公众号 --- 数据库开发者。欢迎扫码关注。 客户端C API在C API中调用mysql_options()来设置mysql_init() 所创建的连接对象的属性,使用这三个选项可以设置连接超时和读写超时,单位都是秒。读写超时达到后C API的查询发送和结果获取函数会返回超时错误。 MYSQL_OPT_CONNECT_TIMEOUTMYSQL_O

2016-09-06 09:58:48 1604

原创 多源复制(Multi-source Replication)

来自本人的微信公众号 --- 数据库开发者,欢迎扫码关注。MySQL的多源复制功能让用户从多个主机(Master)复制数据到同一个节点,这么做可以做类似数据汇总分析,数据持续备份等功能。不过要注意的是,用户自己需要负责保证数据没有冲突,并且当发生数据冲突时解决这些冲突。所以,最好每个数据源在操作完全无关的数据,比如它们位于不同的数据库中。另外

2016-09-06 09:56:29 1427

原创 方正智睿NoSQL数据库总体介绍

方正智睿NoSQL数据库总体介绍方正智睿NoSQL数据库管理系统是一个面向海量NoSQL数据存储和管理的数据库服务器软件,它可以高效地存储和管理XML数据,key-value数据,并且让用户通过标准的查询语言和高效易用的编程接口来访问这些NoSQL数据。主要功能海量XML数据的高效存储和访问与开源的XML数据库不同,智睿数据库可以单机管理TB级别的XML数据以及支持对此规模的XML

2013-05-31 17:33:42 1623

原创 智睿数据库2.0发布

经过方正智睿数据库研发团队全体人员接近1年的艰苦努力工作,智睿数据库2.0版本于5月10日正式发布。该版本不仅增加了诸多强大和有用的功能,而且在性能,稳定性和可靠性等方面都得到了大幅提升。新版本主要的新功能包括 自主研发的xquery查询引擎,基于日志复制的分布式数据库,key-value数据管理,支持ACID属性的结果集缓存,统一的内存管理机制,以及微软office文档管理,CSharp

2013-05-24 18:17:14 758

原创 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 2083

原创 方正XML数据库设计与实现---开篇

在上海方正工作快一年了,这一年非常忙碌,带团队工作比自己一个人辛苦很多,要在各个方面操心,以至于没有时间更新blog了,虽然有很多很多东西可以写。 最近稍稍有了点时间,我也很想把这一年的成果和收获在允许的范围内与大家分享,对自己也是一种总结与提高。 我会在后面接连写几篇关于我在上海方正 XML数据库的设计和实现方面的技术文章,希望大家多交流。这一年以来我们做了很多工作,目前我们的方正XML

2012-03-25 16:01:02 1406

原创 Berkeley DB 源代码分析 --- 小结

刚才贴了一些文章,都是我之前读Berkeley DB的代码时候记下来的笔记,基于Berkeley DB 4.6 ~ Berkeley DB 4.8版本的代码,不过相信与现在最新的代码差别也不大,有兴趣朋友可以看看。同时如果想要完全理解代码,那么在看我这些分析的同时,可以调试一下bdb代码,按照功能逐一调试。比如想要理解bdb的btree如何插入一条key/data pair,那么就写一小段代码调用

2012-03-25 15:59:38 2806 2

原创 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 1114

原创 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 1003

原创 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 1282

原创 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 5005

原创 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 687

原创 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 1364

原创 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 1302

原创 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 1297

原创 Berkeley DB内核源码分析

Berkeley DB是一个优秀的数据库存储引擎,虽然它比起那些大块头的DBMS来说显的很小,但是size并不与能力呈正比,Berkeley DB拥有那些大块头DBMS的存储引擎所拥有的全部功能,而且做得还不错。哪些大块头之所以大,很大程度是对于数据库管理系统的设计技术感兴趣的同行们来说,学习Berkeley DB是一个很好的开始,因为Berkeley DB全面地拥有一个DBMS的存储引擎应该

2012-03-25 15:51:11 1636

原创 The Usage of the volatile Keyword

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 the

2012-03-25 15:36:55 554

原创 直接使用Berkeley DB的Memory Pool 功能

  Normal 0 false false false MicrosoftInternetExplorer4 <!-- /* Font Definitions */ @font-face {font-family:宋体

2010-05-13 13:12:00 1107

原创 使用科学高效的软件开发过程

这是我之前写的一篇文章,一直没有最终定稿并且放上来。现在,我已经离开了Oracle,我想是时候好好总结一下在Oracle BerkeleyDB团队的这三年来的所学了,所以有了下面这篇文字。 在后面的文章当中可能还会总结以下我对于Berkeley DB这个产品本身的认识和理解。想要编写高质量的软件很不容易,因为从设计到最终定型,有太多太多容易犯错的地方,不仅仅涉及到计算机技术本身,还涉及

2010-05-13 13:10:00 901

原创 Berkeley DB 批量插入更新与删除用法示例

在Berkeley DB 4.8之前,我们可以执行的唯一的批量数据库操作是批量读取。从Berkeley DB 4.8开始,Berkeley DB支持批量插入/更新/删除,并且用法也与批量读取相似。批量插入/更新/删除对Berkeley DB的更新性能提升非常大,是一个值得认真学习的新功能。本文就以一个示例程序展示批量插入和批量删除的用法。/* 批量插入示例函数。*/void

2010-03-01 16:55:00 2294

原创 Thread Local Storage Platform Issues and Dbstl's Solutions

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 the

2009-12-03 20:25:00 10373

原创 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 913

原创 Berkeley DB示例程序详解(3.1)

/*  * 这个示例程序演示了使用Berkeley DB的replication功能的方法。 * * Berkeley DB提供了一套基本API和一套replication manager API来使用 * 它的replication功能。 * 前者有更大的灵活性,用户可以选择各种网络协议来实现数据传输,并且使用各种 * 线程库来进行多线程编程。同时由于使用最基本的API, 用户可以定制选举和 *

2009-10-04 16:28:00 1304

原创 Berkeley DB 4.8 的 dbstl API

Berkeley DB 4.8 刚刚发布,我的心情格外激动。不仅仅是因为这个版本是Berkeley DB新增了很多新功能,在很多方面有不小的增强,更因为在众多的新功能中,有主要由我设计开发的STL API。 作为增强Berkeley DB的易用性或者叫做用户友好性的重要组成部分,STL API是Berkeley DB4.8的主要的新特性之一。Berkeley DB的STL

2009-09-30 16:10:00 1433 3

原创 An Example of Mercurial Being a Distributed Version Control System

又是英文的,不好意思哈。这篇讲的是我使用mercurial时候的一些有趣的发现。We internally use mercurial as the source version control system.Mercurial is a very useful and powerful source control system, the difference from cv

2009-07-28 12:36:00 465

原创 中国人的科学技术强国梦

我们中国人在古代是最不屑科学技术的,诸如算术,物理等自然科学的研究,在古代不仅没有任何社会地位,甚至被看作是邪术,甚至到了1840年还是这样。我们古人崇尚的是精神世界的追求,以及科举,八股等混迹于官场的敲门砖。虽然我们也有不少伟大的科学和技术成就,但是总而言之,古代的中国社会并没有崇尚科学文明的风气。虽然在欧洲的中世纪,情况也差不多,但是在古罗马时期,科学和哲学是很受推崇的。到了近代文艺复兴时期,

2009-07-07 22:59:00 1151

原创 gcc4.4 issues

各位读者,很抱歉这篇文章是英文的,我当初做笔记的时候,写成英文了,这样才可以在同事之间交流。而现在确实没时间翻译过来了,还望大家理解,谢谢!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

2009-07-07 22:58:00 345

原创 Berkeley DB Performance Test

各位读者,很抱歉这篇文章是英文的,我当初做笔记的时候,写成英文了,这样才可以在同事之间交流。而现在确实没时间翻译过来了,还望大家理解,谢谢!In this article Id like to talk about the caveats and how-tos when doing performance test with Berkeley DB, when the data volu

2009-07-07 22:56:00 896

原创 C++ Template Corner Cases

各位读者,很抱歉这篇文章是英文的,我当初做笔记的时候,写成英文了,这样才可以在同事之间交流。而现在确实没时间翻译过来了,还望大家理解,谢谢!Following are some corner cases of C++ template features. A lot of the text is simply extracted from "C++ Templates: The Complete

2009-07-07 22:54:00 545

原创 Berkeley DB 示例程序详解(2)

 // File TxnGuide.cpp/** 这个例子程序是Berkeley DB的示例程序之一(DB/example_cxx/txn_guide/TxnGuide.cpp),* 它演示了如何使用Berkeley DB的事务功能,以及如何做死锁检测和处理。** 原始代码中有一些英文注释,但是对于初学者还是不够详细,我没有删除原来* 的注释,而且添加了针对每一个Berkeley DB操作的更加详

2009-07-07 22:50:00 1962

原创 Oracle Buys Sun: The Best Deal Ever

http://www.oracle.com/sun/index.html。

2009-04-23 17:26:00 574

原创 Implement Interface Mechanism Using Templates

C++ template is really a powerful gun in the entire C++ artillery, it is an important part of the defining components that make C++ so powerful, yet so difficult to learn. --- There are many ways you

2009-04-13 15:49:00 460

原创 Berkeley DB示例程序详解 (1)

 /** 这个例子程序是Berkeley DB的示例程序之一(DB/example_cxx/AccessMethod.cpp),* 它演示了如何使用Berkeley DB的基本功能,包括打开一个数据库,存入若干个* key/data pair,然后遍历数据库中的数据,最后关闭数据库。** 原始代码中有一些英文注释,但是对于初学者还是不够详细,我没有删除原来* 的注释,而且添

2009-02-26 14:24:00 3183 2

原创 英语、计算机、互联网与全球化

刚刚看到有人声称,我们中国的软件技术只落后美国两年。我不对这个落后的年限做任何猜测,不过我看到这个声明,首先想到的是,以前在读研究生的时候,很多同学不喜欢看英文的软件技术文档,虽然能看得懂,但是觉得看的太累,所以宁愿找中文的文档来看;另一方面,也有软件同行很多人在花时间把英文文档翻译成中文,供中国读者阅读。从这个翻译过程和等待译本的过程可以确信,我们与世界先进水平,是有一个时间上的差距的,因为我们

2009-01-19 12:40:00 979

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除