
算法
陶辉
www.taohui.pub
展开
-
利用cpu缓存实现高性能程序
我们选购电脑时,CPU处理器的配置会有缓存大小,它是CPU性能的重要指标。为什么呢?因为CPU计算速度与访问主存速度非常不匹配!先来看计算速度。单颗CPU计算速度目前在2GHz-4GHz之间,以2.5GHz计即每秒钟计算25亿次,每个时钟周期耗时1/2.5GHz==0.4纳秒。当前所有的计算机都遵循冯诺依曼结构,所以执行任何指令(例如加法操作)的流程必然遵循下图:所以,做一次加...原创 2018-09-05 08:51:45 · 5554 阅读 · 4 评论 -
分布式环境Raft一致性共识算法解读
Raft是分布式环境下的一致性算法,它通过少数服从多数的选举来维持集群内数据的一致性。它与RBFT算法名称有点像,然而Raft算法里不能存在拜占庭节点,而RBFT则能容忍BFT节点的存在。Raft非常类似于paxos协议(参见我的这篇文章《paxos算法如何容错的–讲述五虎将的实践》),然而它比paxos协议好理解许多(因为paxos协议难以具体实现,所以zookeeper参考paxos实现了它自...原创 2018-06-03 16:16:32 · 19864 阅读 · 1 评论 -
区块链开源实现hyperledger fabric架构详解
hyperledger fabric是区块链中联盟链的优秀实现,主要代码由IBM、Intel、各大银行等贡献,目前v1.1版的kafka共识方式可达到1000/s次的吞吐量。本文中我们依次讨论:区块链的共通特性、fabric核心概念、fabric的交易执行流程。本文来源于笔者欲对公司部分业务上链而进行培训的PPT,故图多文字少,不要怕太长。1、区块链解决方案的特性1.1 分布式帐本区块...原创 2018-05-26 10:34:44 · 106012 阅读 · 28 评论 -
区块链开源实现fabric快速部署及CLI体验
本文描述fabric快速部署的步骤,及演示基于官方example02的智能合约进行CLI命令行体验。区块链涉及服务很多,且大量使用docker容器技术,所以请严格遵守以下步骤去部署,以减少各种问题的出现,方便我们先对联盟链有个大概的感觉。本文描述环境是centos7操作系统,请其他版本更正相关的安装工具(如ubuntu操作系统请把yum命令换成apt-get)。1、搭建e2e_cli环境快速部署f...原创 2018-05-22 09:53:41 · 6526 阅读 · 5 评论 -
区块链技术学习笔记
上周末参加了一个区块链技术培训班,大致搞明白了以下问题:1、比特币为什么会衍生出挖矿、矿机这套产业链?为什么那么多人炒币?2、公有链、联盟莲、私有链的区别在此做个简单分享。1、比特币这种公有区块链的技术支撑实际上大量做服务器端开发的程序员,都对zookeeper有些熟悉,当我们为一个分布式集群寻找一致性解决方案时都会想到它。zookeeper实际使用了paxos的简化版算法(如果试图说清楚这个算法原创 2017-07-04 09:49:01 · 4627 阅读 · 0 评论 -
坑爹的list容器size方法--为了splice居然把复杂度设计为O(N)?
最近在做一个性能要求较高的项目,有个服务器需要处理每秒2万个udp包,每个包内有40个元素(当然这是高峰期)。服务器需要一个链表,算法中有个逻辑要把每个元素添加到链表末尾(只是这个元素对象的指针,不存在对象复制的问题),再从链表中把这些元素取出(另一个时间点)。就是一个单线程在做这件事。既然逻辑这么简单,我自然选用了C++的标准STL容器List(Linux GNU,sgi的实现),想原创 2013-02-05 17:27:29 · 15657 阅读 · 20 评论 -
详解rsync算法--如何减少同步文件时的网络传输量
先看下图中的场景,客户端A和B,以及服务器server都保存了同一个文件,最初,A、B和server上的文件内容都是相同的(记为File.1)。某一时刻,B修改了文件内容,上传到SERVER上(记为File.2)。客户端A这时试图向服务器SERVER更新文件到最新内容,也就是File.1更新为File.2。上面这个场景很常见,例如现在流行的网盘。假设我有一个文件a.txt在网盘上,上班原创 2012-02-28 17:02:56 · 40310 阅读 · 32 评论 -
paxos分布式一致性算法--讲述诸葛亮的反穿越
0、引子一日,诸葛亮找到刘备,突然献上一曲《独角戏》,而后放声大哭。刘备正沉醉于新曲,暗叹孔明大才,竟作得如此不凡仙乐,看到孔明忽而大悲,慌问:“水,何事悲恸?” 诸葛亮止住抽泣:“亮自主公三顾茅庐出山以来,蒙主公厚爱,自比如鱼得水,敢不尽力?然每日击鼓升帐,皆亮一人在上唱独角戏,众将在下唯唯诺诺,只是照亮的安排做事。如此下去,亮日后定会被司马懿那厮累死呀。”刘备眨着充满问号的大眼原创 2012-02-14 11:15:23 · 30571 阅读 · 26 评论 -
paxos算法如何容错的--讲述五虎将的实践
(本文包括章节:1、由来,2、算法简单回顾,3、演习道具,4、演习,5、算法提出者Leslie的八卦。hoho)1、由来:刘备接受了诸葛亮的提议,决定将paxos算法的思想应用到蜀帝国的决策机制上。然而,玄德生性谨慎,决定先行试点,实践下可行性。孔明提议,由蜀国五大肌肉男:关羽、张飞、赵云、马超、黄忠,做为决策者,而廖化、周仓、魏延分别无序的提出关于同一件事的水火不容的三个提案,孔明坚信:原创 2012-02-22 19:33:16 · 16665 阅读 · 20 评论 -
《数学之美》与算法
原文链接:https://www.taohui.pub/2019/02/23/%e3%80%8a%e6%95%b0%e5%ad%a6%e4%b9%8b%e7%be%8e%e3%80%8b%e4%b8%8e%e7%ae%97%e6%b3%95/《数学之美》是一本非常好的算法进阶书,它与吴军老师从事的工作领域密切相关,所以工程性很强。半年时间断断续续读完此书,这里做个笔记,也希望能帮助还未读过本书...原创 2019-02-23 18:02:13 · 3570 阅读 · 0 评论