数据库内核

热衷于分享开源数据库使用、内核源码等相关技术,包括但不限于 MySQL/PostgreSQL/Greenplum/TiDB 等。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2021年9月21日

摘要: 本文首发于 2014-07-21 15:35:30 6. 附录 6.1. 字节序与网络序 6.1.1. 字节序 字节序,顾名思义就是字节的高低位存放顺序。 对于单字节,大部分处理器以相同的顺序处理比特位,因此单字节的存放和传输方式一般相同。 对于多字节数据,如整型(32位机中一般占4字节),在不同的 阅读全文
posted @ 2021-09-21 16:06 DBKernel 阅读(71) 评论(0) 推荐(0) 编辑

摘要: 本文首发于 2014-07-10 10:00:41 代码 #include <stdio.h> #include <stdlib.h> #include <glob.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> 阅读全文
posted @ 2021-09-21 15:54 DBKernel 阅读(57) 评论(0) 推荐(0) 编辑

摘要: 本文首发于 2014-07-10 09:48:48 代码 #include <stdio.h> #include <mntent.h> #include <string.h> #include <sys/vfs.h> static const unsigned long long G = 1024* 阅读全文
posted @ 2021-09-21 15:50 DBKernel 阅读(64) 评论(0) 推荐(0) 编辑

摘要: 本文首发于 2014-03-12 21:27:30 Linux 内存地址映射图 后文中 图:XXX 指的就是上图中对应区域。 地址映射(图:左中) inux 内核使用页式内存管理,应用程序给出的内存地址是虚拟地址,它需要经过若干级页表一级一级的变换,才变成真正的物理地址。 想一下,地址映射还是一件很 阅读全文
posted @ 2021-09-21 15:44 DBKernel 阅读(137) 评论(0) 推荐(0) 编辑

摘要: 本文首发于 2014-01-10 19:48:48 1. getopt 该函数用来解析命令行参数。 1.1. 函数定义 int getopt(int argc, char * const argv[], const char *optstring); #include <unistd.h> 前两个参 阅读全文
posted @ 2021-09-21 15:32 DBKernel 阅读(151) 评论(0) 推荐(0) 编辑

2021年8月22日

摘要: 技术分享 | 如何为你的代码选择一个合适的开源协议? 作者:卢文双 资深数据库内核研发 近期公司全面拥抱开源,在选择开源协议方面遇到了一些问题,查阅了很多资料,特此总结~~ 阅读全文
posted @ 2021-08-22 12:15 DBKernel 阅读(447) 评论(0) 推荐(1) 编辑

2021年3月7日

摘要: 作者:卢文双 资深数据库内核研发 近期线上MySQL 5.7.20集群不定期(多则三周,短则一两天)出现主库mysql crash、触发主从切换问题,堆栈信息如下; 从堆栈信息可以明显看出,在调用try_acquire_lock_impl时触发的crash。 阅读全文
posted @ 2021-03-07 19:08 DBKernel 阅读(108) 评论(0) 推荐(0) 编辑

2020年8月27日

摘要: 作者:卢文双 资深数据库内核研发 近期在给 radondb/xenon 适配 percona xtrabackup 8.0时,遇到了一些问题,经过多日调研、尝试终于解决,特此分享。 阅读全文
posted @ 2020-08-27 14:50 DBKernel 阅读(1521) 评论(0) 推荐(1) 编辑

2020年8月13日

摘要: 本文转自我司大神 BohuTANG的博客 。 很多人看到标题还以为自己走错了夜场,其实没有。 ClickHouse 可以挂载为 MySQL 的一个从库 ,先全量再增量的实时同步 MySQL 数据,这个功能可以说是今年最亮眼、最刚需的功能,基于它我们可以轻松的打造一套企业级解决方案,让 OLTP 和 阅读全文
posted @ 2020-08-13 23:01 DBKernel 阅读(1239) 评论(0) 推荐(1) 编辑

2017年7月17日

摘要: 本文首发于 2014-08-04 17:56:55 第一章 词法“陷阱” 1. =不同于== if(x = y) break; 实际上是将y赋给x,再检查x是否为0。 如果真的是这样预期,那么应该改为: if((x = y) != 0) break; 2. &和| 不同于 && 和 || 3. 词法 阅读全文
posted @ 2017-07-17 22:27 DBKernel 阅读(267) 评论(0) 推荐(0) 编辑

2016年6月2日

摘要: 开发板上运行可执行程序报出错误: line1: 1: Syntax error: word unexpected (expecting ")") 解决思路: 1.编译器的问题 用arm-linux-gcc编译,可能原来是用gcc编译的。 假如是脚本,#!/bin/sh 改 #!/bin/bash试试 阅读全文
posted @ 2016-06-02 17:11 DBKernel 阅读(6570) 评论(0) 推荐(0) 编辑

摘要: 删除用户默认配置文件 由于在默认清空下,配置文件是系统自动生成的用户设备配置文件保存在/etc/udev/rule.d/下面:# cp /etc/udev/rule.d /etc/udev/rule.d.bak.0 -R# rm /etc/udev/rule.d/* 修改网卡配置文件,添加多IP配置 阅读全文
posted @ 2016-06-02 17:04 DBKernel 阅读(5474) 评论(0) 推荐(0) 编辑

摘要: 本文首发于 2014-07-21 15:32:28 1. 引言 考虑下面的结构体定义: typedef struct{ char c1; short s; char c2; int i; }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始地址是0,则s的地址就是1,c2的地址是3 阅读全文
posted @ 2016-06-02 15:13 DBKernel 阅读(12995) 评论(0) 推荐(0) 编辑

摘要: strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息。 可谓是 linux 下的调试利器,不仅可以用来找程序错误,系统为什么挂死了,命令为什么报错,还可以用来查找哪些程序占用系统资源。 命令实例 比如想跟踪程序webService调用情况: 第一 阅读全文
posted @ 2016-06-02 14:21 DBKernel 阅读(4964) 评论(0) 推荐(0) 编辑

摘要: 本文首发于 2014-07-10 11:51:10 前言 本文把 makefile 分成了三份:生成可执行文件的 makefile,生成静态链接库的 makefile,生成动态链接库的 makefile。 这些 makefile 都很简单,一般都是一看就会用,用法也很容易,只需要把它们拷贝到你的代码 阅读全文
posted @ 2016-06-02 11:13 DBKernel 阅读(22859) 评论(6) 推荐(6) 编辑

摘要: 1. 准备工作 (1)libmp3lame库 下载: wget http://downloads.sourceforge.net/lame/lame-3.99.tar.gz 解压 编译: ./configure --prefix=/usr/local/arm --host=arm-none-linu 阅读全文
posted @ 2016-06-02 11:08 DBKernel 阅读(2453) 评论(0) 推荐(0) 编辑

2016年4月24日

摘要: 1、指向类的数据成员的指针: 声明格式如下: <类型说明符> <类名>::* <指针变量名>; 2、指向类的成员函数的指针: 声明格式如下: <类型说明符> (<类名>::*<指针名>)(<参数表>); 如: class A { private: int a; public: int c; publ 阅读全文
posted @ 2016-04-24 18:25 DBKernel 阅读(11997) 评论(0) 推荐(0) 编辑

2016年4月20日

摘要: 一直希望在尘世间有一个安静的地方,比如在竹林的深处,有一间干净清爽的竹屋,我可以坐在竹椅上,闻着一股清新的竹香味,品着一杯幽香的绿茶,听着雨滴轻轻的滑落在竹叶上,洗去奔波的疲惫,让心灵有一个宁静的安歇之处。 竹林听雨需一份闲情,在名利纷争的俗世中,淡然人生的风风雨雨,正如苏东坡在《定风波》中所道:“ 阅读全文
posted @ 2016-04-20 21:11 DBKernel 阅读(378) 评论(3) 推荐(0) 编辑