分布式系统
文章平均质量分 52
hellochenlu
这个作者很懒,什么都没留下…
展开
-
云计算的三种服务模式:IaaS,PaaS和SaaS
从用户(开发者或应用)的角度来看,无所谓什么PaaS、IaaS,用户使用的就是服务(统一的服务生命周期管理、资源管理、API等),如何分层、服务架构怎样,是底层平台的事情。从服务提供商的角度来看,使用偏底层的资源(计算、存储、网络等)所构建的服务,一般称之为IaaS,典型的如虚机服务、存储服务、负载均衡服务等;而使用底层资源之上的其他资源所构建的服务,一般称为PaaS,如中间件资源(应用服务器原创 2016-11-22 11:08:13 · 2462 阅读 · 0 评论 -
golang中net包用法
func Listen(net, laddr string) (Listener, error) //返回在一个本地网络地址laddr上监听的Listener。网络类型参数net必须是面向流的网络:"tcp"、"tcp4"、"tcp6"、"unix"或"unixpacket"。具体参见Dial函数获取laddr的语法。type Listener //Listener是一个用于面向流转载 2016-08-05 19:14:47 · 1982 阅读 · 0 评论 -
ViewService——一种保证客户端与服务端同步的方法
原文链接:https://segmentfault.com/a/1190000004846986转载 2016-08-05 10:16:02 · 1020 阅读 · 0 评论 -
数据库日志——Undo | Redo
原文链接:http://www.cnblogs.com/Bozh/archive/2013/03/18/2966494.html00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么转载 2016-06-22 17:13:43 · 279 阅读 · 0 评论 -
在项目中部署maven
1、在eclipse中新建maven项目,具体方法见链接:http://www.linuxidc.com/Linux/2015-02/113103.htm2、根据提供的依赖关系,修改pom文件,具体操作就是在pom的dependencies的节点添加dependency。 junit junit 3.8.1 test原创 2016-06-19 20:55:14 · 294 阅读 · 0 评论 -
linux 中的eclipse安装maven
1.打开eclipse,help->install new software add: name:maven名字随便取;Location:http://download.eclipse.org/technology/m2e/releases , (参考http://www.eclipse.org/m2e/download/).等待安装下载安装完毕。2.原创 2016-06-18 22:03:11 · 540 阅读 · 0 评论 -
数据库事务原子性、一致性是怎样实现的?
转自知乎,原文链接:https://www.zhihu.com/question/30272728/answer/71927112讨论数据库的事务原子性,先看最极端的情况,即全局一把锁,所有事务排队执行,这种情况下没有原子性问题,因为所有事务看到的都是在自己之前已经提交的数据。为了提高性能,充分利用多核,我们需要让多个事务能够并行的执行,但是还要保证这些事务“看起来”是串行执行转载 2016-06-14 15:05:19 · 2846 阅读 · 0 评论 -
守护进程
守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的,同时,守护进程还能完成许多系统任务,例如,作业规划进程crond、打印进程lqd等(这里的结尾字母d就是Daemon的原创 2016-06-06 19:57:04 · 259 阅读 · 0 评论 -
散列表(哈希表)的定义
原文链接:http://www.nowamagic.net/academy/detail/3008010到了有序表(已排序的表)査找时,我们可以利用a[i]与key的“”,来折半査找,直到相等时査找成功返回i。反正我们的目标就是要找到那个 i 值,是不是还有其它好点的方法呢?一个小故事试想这样的场景,你很想学太极拳,听说学校有个叫张三丰的人打得特别好,于是你到学校学生处找人转载 2016-06-11 17:00:28 · 634 阅读 · 0 评论 -
Redis
redis是高性能键值对存储系统,支持数据持久化,能将操作纪录保存在硬盘中,支持更多的数据类型,与memcached相比更接近数据库的角色。 Libevent。和Memcached不同,Redis并没有选择libevent。Libevent为了迎合通用性造成代码庞大(目前Redis代码还不到libevent的1/3)及牺牲了在特定平台的不少性能。Redis用libeve原创 2016-06-04 20:12:40 · 188 阅读 · 0 评论 -
golang中的RPC调用服务器方法
原文链接,参考Golang中文文档:http://docscn.studygolang.com/pkg/net/rpc/#NewServerrpc 包提供了一个方法来通过网络或者其他的I/O连接进入对象的外部方法. 一个server注册一个对象, 标记它成为可见对象类型名字的服务。注册后,对象的外部方法就可以远程调用了。一个server可以注册多个 不同类型的对象,但是却不可以注册多个转载 2016-08-05 20:29:56 · 4182 阅读 · 0 评论 -
golang语言中map的初始化及使用
原文链接:http://studygolang.com/articles/2379// 先声明mapvar m1 map[string]string// 再使用make函数创建一个非nil的map,nil map不能赋值m1 = make(map[string]string)// 最后给已声明的map赋值m1["a"] = "aa"m1["b"] = "bb"// 直接创建m转载 2016-08-06 11:30:33 · 1619 阅读 · 1 评论 -
Leveldb 实现原理
LevelDB详细介绍:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html转载 2016-12-12 20:35:42 · 265 阅读 · 0 评论 -
vector clock向量时钟算法简介
原文链接:http://blog.chinaunix.net/uid-27105712-id-5612512.html一、使用背景先说一下需要用到向量时钟的场景。我们在写数据时候,经常希望数据不要存储在单点。如db1,db2都可以同时提供写服务,并且都存有全量数据。而client不管是写哪一个db都不用担心数据写乱问题。但是现实场景中往往会碰到并行同时修改。导致db1和db2数据不转载 2016-11-21 21:26:32 · 22414 阅读 · 2 评论 -
乐观锁和悲观锁的区别
原文链接:http://blog.csdn.net/hongchangfirst/article/details/26004335悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,转载 2016-11-21 15:37:50 · 284 阅读 · 0 评论 -
多版本并发控制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 阅读 · 0 评论 -
分布式系统MIT 6.824学习资源
https://www.douban.com/note/546338838/原创 2016-08-07 15:18:02 · 8713 阅读 · 0 评论 -
集群(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 阅读 · 0 评论 -
MySQL事务隔离级别详解
参考文章:http://xm-king.iteye.com/blog/770721SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离原创 2016-11-29 16:54:19 · 229 阅读 · 0 评论 -
Spanner的分布式事务实现
原文链接:https://zhuanlan.zhihu.com/p/20868175转载 2016-11-28 21:05:24 · 1008 阅读 · 0 评论 -
[Golang]Map的一个绝妙特性
原文链接:http://studygolang.com/articles/2494好了,现在回来看看这个文章。过去几周,我看到的人们对Go语言的热情和语言的发展势头真是让我无比惊叹。这里面的一部分原因可能是和Gophercon 2014有关,在我写这篇文章的时候,刚刚举办完。我对那些能参加的人真是羡慕,嫉妒,恨啊!从会议计划和讨论话题来看,会议确实很棒。另外能够去和Ro转载 2016-08-06 12:04:08 · 4794 阅读 · 0 评论 -
storm学习1
Apache Storm是一个开源的、分布式、流式计算系统。非实时计算几乎都基于MapReduce计算框架,但MapReduce并不是万能的。对于搜索应用环境中的某些现实问题,MapReduce并不能很好地解决问题。商用搜索引擎,像Google、Bing和Yahoo!等,通常在用户查询响应中提供结构化的Web结果,同时也插入基于流量的点击付费模式的文本广告。为了在页面上最佳位置原创 2016-06-25 20:49:58 · 252 阅读 · 0 评论 -
TCP滑动窗口机制
原文转自:http://blog.sina.com.cn/s/blog_5ec353710101g5a7.html我们可以大概看一下上图的模型:首先是AB之间三次握手建立TCP连接。在报文的交互过程中,A将自己的缓冲区大小(窗口大小)3发送给B,B同理,这样双方就知道了对端的窗口大小。A开始发送数据,A连续发送3个单位的数据,因为他知道B的缓转载 2016-06-04 16:16:00 · 369 阅读 · 0 评论 -
内存一致性中的release consistency
Release consistency is one of the consistency models used in the domain of the concurrent programming (e.g. in distributed shared memory, distributed transactions etc.).Systems of this kind are char转载 2016-05-27 15:10:40 · 1345 阅读 · 0 评论 -
多核与多个CPU啥区别
处理器如今已经成为影响人们购买IT产品的重要因素,无论是PC、手机还是服务器市场,处理器的型号直接影响到产品的出售情况。对于手机和PC等消费产品来说,用户可以从CPU频率、核心数等要素分辨出处理器性能的优劣。但是对于多核心的服务器产品来说,如何来分辨多核心与多个CPU产品的性能呢?要分辨出多核心处理器与多个CPU有何区别,我们首先需要了解一下CPU的发展历史。英特尔是处理器市场的霸主,CP转载 2016-05-26 16:01:43 · 9694 阅读 · 0 评论 -
Base 128 Varints 编码
Google Protobuf里面提出了“Base 128 Varints”编码,这是一种变字节长度的编码,官方描述为:varints是用一个或多个字节序列化整形的一种方法。我理解要点有三个(1)操作是序列化(2)操作对象是整形(3)变长编码。重点是最后一点,他是如何编码的呢? (1)除了最后一个字节,varint中的每个字节的最高位设为1,表示后面还有字节出现转载 2016-05-13 15:47:54 · 3662 阅读 · 1 评论 -
page fault handler
Minor Page Fault:If the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory, then it is called a minor or soft转载 2016-05-25 21:58:22 · 911 阅读 · 0 评论 -
内存一致性模型
内存一致性模型描述的是程序在执行过程中内存操作正确性的问题。内存操作包括读操作和写操作,每一操作又可以用两个时间点界定:发出(Invoke)和响应(Response)。在假定没有流水线的情况下(即单个处理器内指令的执行是按顺序执行的),设系统内共有N个处理器,每个处理器可发出个内存操作(读或写),那么总共有:种可能的执行顺序。内存一致性模型描述的就是这些操作可能的执行顺序中那些是正确的。转载 2016-05-25 20:27:29 · 493 阅读 · 0 评论 -
为什么程序员需要关心顺序一致性(Sequential Consistency)而不是Cache一致性(Cache Coherence?)
原文转自:http://www.parallellabs.com/2010/03/06/why-should-programmer-care-about-sequential-consistency-rather-than-cache-coherence/本文所讨论的计算机模型是Shared Memory Multiprocessor,即我们现在常见的共享内存的多核CPU。本文适合的对象是想用转载 2016-05-25 16:52:14 · 1449 阅读 · 0 评论 -
Paxos分析
转自:http://www.cnblogs.com/endsock/p/3480093.html转载 2016-05-12 11:53:42 · 307 阅读 · 0 评论 -
Paxos协议
Paxos 算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。(待更新)转载 2015-10-08 13:49:26 · 509 阅读 · 0 评论 -
Remus和Xen
Remus provides transparent high availability to ordinary virtual machines running on Xen. It does this by continually live migrating a copy of a running VM to a backup server, which automatically acti原创 2016-05-14 21:25:42 · 594 阅读 · 0 评论 -
数组切片
转自:Go语言编程 32页在前一节里我们已经提过数组的特点:数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。显然这种数据结构无法完全满足开发者的真实需求。不用失望,Go语言提供了数组切片(slice)这个非常酷的功能来弥补数组的不足。初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变转载 2016-05-15 17:06:31 · 7896 阅读 · 0 评论 -
memcached和redis
mongodb和memcached不是一个范畴内的东西。mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据。mongodb和memcached不存在谁替换谁的问题。和memcached更为接近的是redis。它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存。在我们团队的项目中转载 2016-06-04 10:04:54 · 284 阅读 · 0 评论 -
Linux--进程组、会话、守护进程
原文链接:http://www.cnblogs.com/forstudy/archive/2012/04/03/2427683.html进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp()eg:显示子进程与父进程的进程组id#include #include转载 2016-06-07 16:43:19 · 253 阅读 · 0 评论 -
分布式锁服务
简介 如果我们的需求很简单,例如对于用户的账户资金,要保证原子性操作。并且不同的客户端在同一时间内只能提交一个对象操作。lock、单例?!在单台上还可以,但是大型web项目上,负载均衡是常用的技术手段手段,同一意义的对象可能存在不同的副本,这时我们又如何保证排他操作。数据库的事务!除了这个,接下来我们引出本章的主题、分布式锁服务。 一个简单的锁服务实现起来并不难,甚至利用m原创 2016-05-20 21:52:13 · 348 阅读 · 0 评论 -
rlimit
在Linux下的进程资源的限制(struct rlimit)详解在Linux系统中,Resouce limit指在一个进程的执行过程中,它所能得到的资源的限制,比如进程的core file的最大值,虚拟内存的最大值等。Resouce limit的大小可以直接影响进程的执行状况。其有两个最重要的概念:soft limit和 hard limit。struct rlimit{原创 2016-06-07 15:21:22 · 3864 阅读 · 0 评论 -
Bigtable 具体是怎样一个东西?和 MapReduce, Google File System 之间的关系是什么?
转自知乎,侵删。Hadoop是很多组件的集合,主要包括但不限于MapReduce,HDFS,HBase,ZooKeeper。MapReduce模仿了Google MapReduce,HDFS模仿了Google File System,HBase模仿了Google BigTable,ZooKeeper或多或少模仿了Google Chubby(没有前3个出名),所以下文就只提MapRedu转载 2016-05-09 22:17:08 · 1030 阅读 · 0 评论 -
分布式一致性协议Raft原理与实例
分布式一致性协议Raft原理与实例1.Raft协议1.1 Raft简介Raft是由Stanford提出的一种更易理解的一致性算法,意在取代目前广为使用的Paxos算法。目前,在各种主流语言中都有了一些开源实现,比如本文中将使用的基于JGroups的Raft协议实现。关于Raft的原理,强烈推荐动画版Raft讲解。1.2 Raft原理在Raft中,每个结点转载 2016-06-02 11:26:22 · 944 阅读 · 0 评论 -
搜索引擎技术
转自知乎,侵删明确回复题主:百度还可以更无耻,也不可能有新的搜索引擎代替!题主问这样的问题,说明你还没有真正理解搜索引擎的本质,更进一步地,你还没有理解百度存在的意义。首先声明一下,我告诉你,我对百度厌恶已久。十几年前,当时有个反百度联盟,我就加入的这个联盟,无偿为反百度事业添砖加瓦。没错,在十几年前,百度还是大学生们心中的圣地,李老板还是大学生们心中的偶像,那时我们已转载 2016-05-08 20:44:16 · 362 阅读 · 0 评论