- 博客(8)
- 资源 (3)
- 收藏
- 关注
原创 slave_exec_mode对slave影响
slave_exec_mode 主要是控制mysql 主从复制中 insert 出现 duplicate-key, update 出现 no-key-found 情况下的处理方式做控制。stop slave;set global slave_exec_mode=idempotentstart slave;#idempotent 模式影响: 主机
2016-08-24 17:15:52 2262
原创 COM_BINLOG_DUMP_GTID 报文分析
COM_BINLOG_DUMP_GTID 备机向主机发起拉取binlog的命令( 主备开启gtid 模式)官方定义:http://dev.mysql.com/doc/internals/en/com-binlog-dump-gtid.htmlIf the binlog-filename is empty, the server will send the binlog-stream
2016-08-23 14:25:51 3574
原创 go database/sql 源码分析 -题外篇
第一篇go database/sql 源码分析 的文章对其作者(Brad Fitzpatrick大神 memcached的作者 go语言项目组成员)给予高度评价,但是个人认为go database/sql 的实现不是完美无瑕的优点:接口设计简单,清晰,一致,友好:应用层的调用接口和驱动层的实现接口几乎一致,使用者毫无压力;缺点:包内部实现异常复杂、杂乱,给人一种错觉
2016-08-05 13:25:49 1432 2
原创 go database/sql 源码分析(四)sql.Stmt数据结构
#sql.Stmt是sql包暴露给程序调用者的可见实体,一般通过db.Open函数获得DB实例后的下一步就是调用func (db *DB) Prepare 方法的的Stmt#其内部通过 css []connStmt 来绑定相关的连接和驱动层driver.Stmt#其内部不是引用driverConn,而是引用一个css []connStmt #sql包中有两个方式能够创建Stm
2016-08-04 20:21:12 2745
原创 go database/sql 源码分析(三)sql.DB数据结构
package sql 中最核心的的数据结构是sql.DB, 其为上层应用程序提供一个统一的抽象体,它不代表一个数据库连接,也不代表一个连接池,其是sql的包的作者为了实现:并发访问安全控制,连接池等诸多功能而设计的一个综合抽象数据结构。具体见代码注释221 type DB struct {#通过driverName获取driver,通过driver的Open()方法获得到DB的原始连
2016-08-04 20:13:25 2280
原创 go database/sql 源码分析(二)driver包设计哲学
驱动接口设计特点驱动层设计很简单,没有并发锁的控制驱动层的设计是基于单个连接的,没有考虑连接池驱动层事务Tx和Stmt是独立分离的,Tx只有两个简单的方法就是Commit() 和Rollback()驱动的具体实现者只需要在单个连接上实现驱动层的API接口即可driver包的数据结构调用关系驱动注册具体的数据库驱动只需要按照接口层的定义
2016-08-04 20:07:57 1897
原创 go database/sql 源码分析(一)sql包设计哲学
database/sql设计哲学非常优雅,但是内部实现又非常复制,本节从顶层来去分析下database/sql的实现思想对上层应用提供一个标准的API对驱动层定义一个标准接口层隔离具体的数据库各个具体的数据库驱动实现该套接口即可被使用应用层调用逻辑不依赖具体的数据库,其使用的是sql提供的标准API三大功能在内部实现一个连接池内部通过锁实现并发访问的
2016-08-04 19:53:40 2294
原创 go vendor 介绍
go vendor 是go 1.5 官方引入管理包依赖的方式,1.6正式引入其基本思路是,将引用的外部包的源代码放在当前工程的vendor目录下面,go 1.6以后编译go代码会优先从vendor目录先寻找依赖包;1.解决的问题:将源码拷贝到当前工程的vendor目录下,这样打包当前的工程代码到任意机器的$GOPATH/src下都可以通过编译,避免项目代码外部依赖过多,
2016-08-04 19:14:25 33002 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人