自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hellochenlu的博客

分布式系统/前端开发

  • 博客(19)
  • 资源 (1)
  • 问答 (10)
  • 收藏
  • 关注

原创 Raft一致性协议实现源码

Leader.gofunc (rf *Raft) leaderCommit() { if rf.role != LEADER { return } // find the first entry in current term minIdx := 0 for i := len(rf.log) - 1; i > 0; i-- { if rf.log[i].Term == rf.

2016-11-10 21:54:30 3058 1

原创 MySQL事务隔离级别详解

参考文章:http://xm-king.iteye.com/blog/770721SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)       在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离

2016-11-29 16:54:19 229

转载 Spanner的分布式事务实现

原文链接:https://zhuanlan.zhihu.com/p/20868175

2016-11-28 21:05:24 1008

原创 云计算的三种服务模式:IaaS,PaaS和SaaS

从用户(开发者或应用)的角度来看,无所谓什么PaaS、IaaS,用户使用的就是服务(统一的服务生命周期管理、资源管理、API等),如何分层、服务架构怎样,是底层平台的事情。从服务提供商的角度来看,使用偏底层的资源(计算、存储、网络等)所构建的服务,一般称之为IaaS,典型的如虚机服务、存储服务、负载均衡服务等;而使用底层资源之上的其他资源所构建的服务,一般称为PaaS,如中间件资源(应用服务器

2016-11-22 11:08:13 2462

转载 win 7 下 引导时出现 Try hd(0,0): NTFS5: No wubildr 解决办法

本文旨在给出在ubuntu启动时遇到以下问题的解决方法。不需重装系统,几分钟内可以搞定。try(hd0,0):ntfs5:no wubildr try(hd0,1):ntfs5:no wubildr try(hd0,2):extended: try(hd0,3):ntfs5:no wubildr try(hd0,4):ntfs5:no wubildr try(hd0,5):

2016-11-22 10:41:20 7431

转载 vector clock向量时钟算法简介

原文链接:http://blog.chinaunix.net/uid-27105712-id-5612512.html一、使用背景先说一下需要用到向量时钟的场景。我们在写数据时候,经常希望数据不要存储在单点。如db1,db2都可以同时提供写服务,并且都存有全量数据。而client不管是写哪一个db都不用担心数据写乱问题。但是现实场景中往往会碰到并行同时修改。导致db1和db2数据不

2016-11-21 21:26:32 22415 2

转载 乐观锁和悲观锁的区别

原文链接:http://blog.csdn.net/hongchangfirst/article/details/26004335悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,

2016-11-21 15:37:50 284

转载 多版本并发控制MVCC(Multi-Version Concurrency Control )

参考文章:http://www.pgcon.org/2008/schedule/attachments/54_PGCon2008-HOT.ppthttp://www.cnblogs.com/gaojian/p/3295951.html图1:事务T1改变数据V1,将其改为数据V2,在堆中,数据如下图图2:事务T3改变了V2,将其改为V3,在堆中,数据如下图:目前事

2016-11-19 11:41:24 608

转载 GO语言延迟函数defer用法分析

defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理、释放资源、清理数据、记录日志等。这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一。代码1:了解 defer 的执行顺序package mainimport "fmt"func fn(n int) int { de

2016-11-16 15:04:04 1352

转载 bson json区别

bson,Binary JSON,二进制的json,主要用于MongoDB简单的说,json是像字符串一样存储的,bson是按结构存储的(像数组 或者说struct),存储空间bson>json,解析的话bson也会快。(比如,遍历查找:json需要扫字符串,而bson可以直接定位;修改:json也要大动大移,bson就不需要)

2016-11-14 15:14:32 870

转载 database中的执行和提交

当执行commit()的时候什么也别想,此时已经将数据库更新完毕,打个比方吧,假如你的事务是要对信息更新一条信息和删除一条信息,删除无异常,更新无异常,而此时执行了commit则数据库也已经执行过更新和删除了,因为在之前已经在数据库执行过你那两个操作了,只是执行结果存在sql临时文件里了,试想一下,不然vs编辑器怎么会知道你那两个操作会报异常而进行回滚呢,这个时候已经在数据库执行了,但是却没对你的

2016-11-10 22:15:34 1103

原创 数据库实现参考资料

Go语言版本:https://github.com/qw4990/NYADB2https://www.zhihu.com/question/35382593/answer/102269843?from=profile_answer_card

2016-11-08 15:25:59 989

原创 动态规划资料

左程云:http://www.nowcoder.com/discuss/1888http://www.nowcoder.com/discuss/1861

2016-11-07 21:49:00 281

转载 缓存算法(页面置换算法)-FIFO、LFU、LRU

在前一篇文章中通过leetcode的一道题目了解了LRU算法的具体设计思路,下面继续来探讨一下另外两种常见的Cache算法:FIFO、LFU1.FIFO算法FIFO(First in First out),先进先出。其实在操作系统的设计理念中很多地方都利用到了先进先出的思想,比如作业调度(先来先服务),为什么这个原则在很多地方都会用到呢?因为这个原则简单、且符合人们的惯性思维,具备公平

2016-11-05 21:01:06 548

原创 近期笔面试总结

UNIX系统下有一个行编辑器ed,它每次只对一行文本做删除一个字符、插入一个字符或替换一个字符三种操作。例如某一行的内容是“ABC”,经过把第二个字符替换成“D”、删除第一个字符、末尾插入一个字符“B”,这三步操作后,内容就变成了“DCB”。即“ABC”变成“DCB”需要经过3步操作,我们称它们的编辑距离为3。现在给你两个任意字符串(不包含空格),请帮忙计算它们的最短编辑距离。

2016-11-05 20:14:51 336

原创 c++二维向量初始化

问:比如我建立了一个class叫做card,然后定义下面的一个vector的vector,vector > AIcards;想给它初始化了,因为维数是已经确定了的,于是我想这么做,vector > AIcards(4)(13);可是编译的时候会报错,报错信息是:missing type specifier - int assumed. Note: C++ does not suppor

2016-11-05 15:55:22 9663

转载 算法运行时间、logN、NlogN 之间的比较

原文链接:http://blog.csdn.net/richardysteven/article/details/5872672 1 大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。 logN  如果一个程序的运行时间是对数级的,则随着N的增大程序会渐渐慢下来,如果一个程序将一个大的

2016-11-03 16:55:49 4702

原创 伸展树:双层伸展

双层伸展构思精髓:向上追溯两层,而非一层反复考察祖孙三代:g = parent(p),p = parent(v),v根据它们的相对位置,经两次旋转使得 v上升两层,成为(子)树根节点v的位置的四种可能性zig-zag / zag-zig与AVL树双旋完全等效与逐层伸展别无二致。颠倒次序后,局部的细微差异,将彻底地改变整体...折叠效果

2016-11-03 16:47:39 692

转载 集群(Cluster),节点(Node),分片(Shard),Indices(索引),replicas(备份)之间是什么关系

转自知乎:https://www.zhihu.com/question/26446020cluster是整个集群包含n个nodenode通常掌控独立的资源,cpu内存什么的一台机器可以多个nodeshard一般是从数据角度来说的1000条数据按id分,存10份,就是10个shardshards分散在多个node上副本好理解同样的数据再来一份

2016-11-01 21:03:31 1485

linux function

提供了linux环境下,c语言的API,各种函数的解释

2012-10-14

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除