Archive: 2016/2

Vector Clock

在一些分布式数据库中,如Dynamo,Project Voldemort,为了控制同一record的不同版本,常常会使用Vector Clock这样的概念。 向量时钟(vector clock)实际上是一个(node,counter)对列表(即(节点,计数器)列表)。 矢量锁是与每个对象的每个版本相关联。通过审查其向量时钟,我们可以判断一个对象的两个版本是平行分枝或有因果顺序。如果第一个时钟对象上

别把自己当个超人

—-给初级程序员的一点小小建议—-原文地址:http://www.ituring.com.cn/article/62907 有一天我和朋友Simone一起喝咖啡,期间我们聊起一些工作上的事情。我们俩都管理着一些员工,为了说明给初级职员分派任务时出现的问题,她打了一个绝妙的比方。 这就像你让他们挂一幅画,但他们从来没有干过这样的活。你明白你要做什么——只要让他们这么做就行了。事实上,你认为有些东西不

乐观锁VS悲观锁

锁机制解决的并发导致的数据更新问题: 更新丢失:一个事务的更新覆盖了其他事务的更新结果. 脏读:用户AB看到的值都是6,B把值改成了2,但是用户A读到的值仍为6. 为了解决这些问题,必须引入并发控制机制,及锁。 悲观锁:顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多

使用ID3生成决策树

ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。缺点:可能会产生过度匹配问题。适用数据类型:数值型和标称型 例如我

MySQL连接问题123

首先要排查网络问题和防火墙的问题这个是必须的, 你要是MySQL的服务器都连不上,那还访问什么? 怎么检查呢?ping 192.168.0.11,如果ping 的通的话, 再去检查一下 3306端口是不是被防火墙给挡掉了,telnet 192.168.0.11 3306 或者干脆把防火墙关掉,service iptables stop (Redhat) 或 ufw disable(ubuntu)

LMAX Distruptor

LAMAX Distruptor是一个高性能,低延迟的producer-consumer框架。到底有多吊呢,可以参考Github上给出的性能测试结果:https://github.com/LMAX-Exchange/disruptor/wiki/Performance-Results 其核心就是RingBuffer这个东东, 感兴趣的同学可以参考下面的链接了解更多:http://mechaniti

P-Unit结合JUnit做并发性能测试

JUnit大家一定都很熟悉了,这里就不做多的介绍。我们重点说一下p-unit的应用。p-unit是一款开源的测试框架,支持在多线程中跑同样的测试用例.比如你有如下JUnit的测试代码:12345678910public class sampleTest { @Test public void test1() { //some logic and asser

K-近临算法

K-近临算法,有叫KNN算法,机器学习常用的一种算法,用于对多个维度的信息进行归类,打标签, 指纹识别,手写数字识别,人脸识别等。算法的特点是简单易懂, 适用数据范围是数值型和标称型,缺点是效率不高。 基本思路如下: 遍历样本中的每一条信息,并计算与当前待分类信息的距离。这里利用的是欧氏距离公式。 按照距离递增次序排序 选取与当前点距离最小的K个点 确定前K个点所在类别的出现频率 返回前N个点出

Hexo + Github搭建自己的博客

之前试过wordpress,博客园等,都觉得不是很爽 wordpress.com国内被墙,wordpress.org又需要自己部署 博客园个人感觉又比较丑。。。。 其次基于程序猿喜欢折腾的本性,hexo + github感觉更高大上一些,其次可以方便的在github上放一些自己的代码,作为以后做项目的一些参考。 前期准备 安装git client 1brew install git 创建Gih