自己的gitignore文件

摘要: *.bak*.txt*.vm.gitignore#svn.svn/# built application files*.apk*.ap_# files for the dex VM*.dex# Java class files*.class# generated filesbin/gen/# Local configuration file (sdk path, etc)local.properties# Eclipse project files.classpath.project# Proguard folder generated by Eclipseproguard/# Intelli 阅读全文
posted @ 2013-12-25 19:14 施文涛 阅读(1977) 评论(0) 推荐(0) 编辑

mysql 死锁检查

摘要: 今天看了一篇关于死锁检查的blog.Advanced InnoDB Deadlock Troubleshooting – What SHOW INNODB STATUS Doesn’t Tell You, and What Diagnostics You Should be Looking AtOne common cause for deadlocks when using InnoDB tables is from the existence of foreign key constraints and the shared locks (S-lock) they acquire on r 阅读全文
posted @ 2013-12-15 16:59 施文涛 阅读(5932) 评论(0) 推荐(1) 编辑

mysql的mvcc(多版本并发控制)

摘要: 我们知道,mysql的innodb采用的是行锁,而且采用了多版本并发控制来提高读操作的性能。什么是多版本并发控制呢 ?其实就是在每一行记录的后面增加两个隐藏列,记录创建版本号和删除版本号,而每一个事务在启动的时候,都有一个唯一的递增的版本号。1、在插入操作时 : 记录的创建版本号就是事务版本号。比如我插入一条记录, 事务id 假设是1 ,那么记录如下:也就是说,创建版本号就是事务版本号。id name create version delete version 1test 12、在更新操作的时候,采用的是先标记旧的那行记录为已删除,并且删除版本号是事务版本号,然后插入一行新的记录的方... 阅读全文
posted @ 2013-12-05 21:52 施文涛 阅读(16220) 评论(4) 推荐(4) 编辑

maven依赖的全局排除

摘要: 今天遇到要全局排除一个maven依赖,因为Maven本身没有全局排除依赖的办法,参考了同事人英写的一篇博文(可以看这里http://my.oschina.net/liuyongpo/blog/177301)总结下来是两种办法:1、在maven服务器部署一个需要排除的依赖的空jar .2、使用maven-enforcer-plugin加排除黑名单。 阅读全文
posted @ 2013-12-04 15:40 施文涛 阅读(7022) 评论(0) 推荐(0) 编辑

volatile 关键字的复习

摘要: 今天早上看何登成的微博(http://hedengcheng.com/?p=725) 对volatile 关键字语意进行了深入分析。看完之后,用自己的话总结如下:1、c/c++ volatile中的volatile关键字的语意:1)保证volatile修饰的变量在多线程的内存可见性,也就是volatile变量本身的含义(易变性)。 保证这种易变性的原理就是 :写volatile 变量要从寄存器同步到内存,而读volatile变量则要从内存同步到寄存器。2)保证对多个用volatile修饰符修饰的变量进行的读写操作,编译器不会做指令优化 。 但是不保证volatile和非volatile变量读写 阅读全文
posted @ 2013-12-03 09:41 施文涛 阅读(318) 评论(0) 推荐(0) 编辑

从解决一个精卫数据同步问题想到的

摘要: 今天,同事武杨发现使用精卫做一个商品排期表的数据同步有问题,问题表现在重新排期的商品在一个终搜查询系统里面查不到记录了。1、分析精卫中间件的数据同步机制,它是分析mysql binlog ,解析成RowChangeEvent以后,包装成消息通过消息中间件Meta发送消息到消息网关MetaServer,然后再由消息订阅者消费消息,解析消息中的RowChangeEvent以后,同步到搜索系统的。2、而从业务逻辑上看,排期操作是先逻辑删除旧的排期记录,再插入一条新的排期记录,update和insert是在一个事务的。 示意如下:set autocommit =0 ;#这条update操作因为有KEY 阅读全文
posted @ 2013-05-23 23:10 施文涛 阅读(2060) 评论(0) 推荐(0) 编辑

来自正明的一句很有启发的话。

摘要: @淘宝正明对刚入行的技术人员的建议,找到自己感兴趣的,花时间进去,通过实践出来的知识积累,比光看书本有用得多。“I hear and I forget. I see and I remember. I do and I understand"这句话给我留下非常深刻的印象。是荀子说的“不闻不若闻之,闻之不若见之,见之不若知之,知之不若行之” 阅读全文
posted @ 2013-03-29 06:53 施文涛 阅读(314) 评论(0) 推荐(0) 编辑

从数据库丢失更新想到的一些知识

摘要: 最近在做聚划算商品的更新接口,商品有一个字段存储了商品的一些扩展属性,以键值对数组的形式存放,格式如下:key1:value1;key2:value2;在根据商品id对商品属性进行更新的时候,业务上需要把客户端传入的新的键值对数组和数据库中已经有的键值对数组进行合并,伪代码如下:select old_attributes from table where primary_key = ? ---step1attributes = merge(old_attributes,new_attributes) ----step2update table set attributes_column=... 阅读全文
posted @ 2013-03-28 19:08 施文涛 阅读(3386) 评论(0) 推荐(1) 编辑

HSF源码阅读笔记(三)

摘要: HSF基于tbremoting进行网络通信,下面分析一下tbremoting的机制。1、tbremoting服务器的启动:先通过UML类图整体看一下tbremoting的server整体结构: 阅读全文
posted @ 2013-01-28 22:26 施文涛 阅读(1756) 评论(0) 推荐(0) 编辑

HSF源码阅读笔记(二)

摘要: 昨天讲到了HSF容器的启动 。 HSF容器启动以后,通过osgi的bundleContext拿到了一组需要暴露给hsf容器外部使用的类,以及基于这些类的urlclassLoader. 这里面有两个关键的类:HSFSpringConsumerBean 和HSFSpringProviderBean ,HSFSpringProviderBean负责启动RPC服务器 ,并把HSF服务信息发布到配置中心(淘宝的config server) .HSFConsumerBean负责从配置中心获取HSF接口的服务器列表,生成接口的代理类,由这个代理类承担RPC请求。整个系统结构图如下 :整个过程描述如下:1、H 阅读全文
posted @ 2013-01-23 22:12 施文涛 阅读(4160) 评论(0) 推荐(0) 编辑