-
memcached的分布式算法–一致性hash
2017-12-08 10:19:57memcached的分布式是什么意思? 下面假设memcached服务器有node1~node3三台,应用程序要保存键名为”tokyo”、”kanagawa”、”chiba”、”saitama”、”gunma”的数据。 首先向memcached中添加“tokyo”。将...memcached的分布式是什么意思?
下面假设memcached服务器有node1~node3三台,应用程序要保存键名为”tokyo”、”kanagawa”、”chiba”、”saitama”、”gunma”的数据。
首先向memcached中添加“tokyo”。将“tokyo”传给客户端程序库后,客户端实现的算法就会根据”键”来决定保存数据的memcached服务器。服务器选定后,即命令它保存”tokyo”及其值。
同样,”kanagawa”、”chiba”、”saitama”、”gunma”都是先选择服务器再保存。接下来获取保存的数据。获取时也要将要获取的键”tokyo”传递给函数库。函数库通过与数据保存时相同的算法,根据“键”选择服务器。使用的算法相同,就能选中与保存时相同的服务器,然后发送get命令。只要数据没有因为某些原因被删除,就能获得保存的值。
这样,将不同的键保存到不同的服务器上,就实现了memcached的分布式。memcached服务器增多后,键就会分散,即使一台memcached服务器发生故障无法连接,也不会影响其他的缓存,系统依然能继续运行。
根据余数计算分散Memcached的分布式方法简单来说,就是“根据服务器台数的余数进行分散”。求得键的整数哈希值,再除以服务器台数,根据其余数来选择服务器。
余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或移除服务器时,缓存重组的代价相当巨大。添加服务器后,余数就会产生巨变,这样就无法获取与保存时相同的服务器,从而影响缓存的命中率。
一致性hash(Consistent Hashing)一致性hash(Consistent Hashing)如下所示:首先求出memcached服务器(节点)的哈希值,并将其配置到0~232的圆(continuum)上。然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。
从上图的状态中添加一台memcached服务器。余数分布式算法由于保存键的服务器会发生巨大变化而影响缓存的命中率,但一致性hash(Consistent Hashing)中,只有在continuum上增加服务器的地点逆时针方向的第一台服务器上的键会受到影响。
因此,一致性hash(Consistent Hashing)最大限度地抑制了键的重新分布。而且,有的一致性hash(Consistent Hashing)的实现方法还采用了虚拟节点的思想。使用一般的hash函数的话,服务器的映射地点的分布非常不均匀。因此,使用虚拟节点的思想,为每个物理节点(服务器)在continuum上分配100~200个点。这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布。通过下文中介绍的使用一致性hash(Consistent Hashing)算法的memcached客户端函数库进行测试的结果是,由服务器台数(n)和增加的服务器台数(m)计算增加服务器后的命中率计算公式如下:(1 n/(n+m)) * 100
-
合伙人变更决定书.doc
2021-01-15 20:26:11合伙人变更决定书 变更的意思是改变和更动。合伙人进行变更时就会有变更决定书。下面小编给大家带来合伙人变更决定书,供大家参考!合伙人变更决定书范文篇一 变更决定书出席会议合伙人: 新增合伙人: 根据《合伙... -
与上级和下属达成一致
2007-01-02 14:20:00只要别人不是你肚子里的蛔虫,他就不会清楚的...坚持一致的方向很重要,如果你在开始执行的时候发现了错误要在第一时间提出来,并与上级达成一致,如果实在不能认同也要尊重上级的决定,并且按照他的意思执行,因为他不是傻子只要别人不是你肚子里的蛔虫,他就不会清楚的知道你的想法,同样你也不可能完全知道别人的想法,这时候,沟通和达成共识就很重要了,有时候一件事情的对错的后果不会立刻呈现出来,如果在公司里面大家的想法不能朝一个方向去,那么这样的公司还能开多久?坚持一致的方向很重要,如果你在开始执行的时候发现了错误要在第一时间提出来,并与上级达成一致,如果实在不能认同也要尊重上级的决定,并且按照他的意思执行,因为他不是傻子他也会想问题,他的任务是做决策,如果他一再坚持,那么说明他在这个事情上已经想清楚了,而你只是站在你的角度考虑问题,你如果能站在他的角度去考虑问题说不定也和他做同样的决定.
同样,如果你自己开公司也会碰到同样的问题,你的下属认为你在某件事情的时候欠妥当,向你提出来的时候你却依然坚持,那么这个时候应该是你已经对这个事情想得比较清楚了,那么你会觉得你得下属会怎么想,有可能你会和他说我是这样这样想的,所以才会做出这样的决定,但是你难道不认为应该花更多的时间在做决策上面吗?因为你的下属是执行者!!而你是决策人,大家分工不一样,要不然你开公司干什么,一个人全干了不就可以了?
在达成一致以后就不应该再有情绪,按照一致的意见去执行,哪怕这个决定是错误的(当然这是在你看来是错误的),其实这时候也是一个积累经验的好机会,执行后得到的结果可以作为自己开公司的铺路石(如果是不好的结果,那么下次同样的情况下就要小心一点了,如果是好的结果,那么自己就知道原来这样错误的方法也是行得通的) -
比特币 挖矿什么意思
2018-09-28 21:34:30认知能力的边界决定了信息的利用效率,而结构或者制度决定了信息的传播效率。所以,判断一个区块链的社群是否有价值,信息的维度是第一个判断标准。 我们看到新古典经济学中对信息的假设是认为市场信息是完全对称...认知能力的边界决定了信息的利用效率,而结构或者制度决定了信息的传播效率。所以,判断一个区块链的社群是否有价值,信息的维度是第一个判断标准。
我们看到新古典经济学中对信息的假设是认为市场信息是完全对称透明的,而事实上这个假设并不成立。信息不仅是不对称的,而且信息的价值对每个个体来说也是不一致的。
我们看到信息所形成的网络中,信息的价值和价格有着非常有趣的内在关联:
第一,有价值信息的生产成本实际上是很高的,但是传播成本是很低的。
第二,信息的定价应该取决于信息的价值,而非信息的成本。这是我们理解互联网商业或者区块链的商业模式的基本出发点,因此通过网络中流动的信息的价值来判断区块链网络的价值是最基本的一个出发点。
从网络价值角度来思考。
我们知道区块链技术作为互联网基本协议的革命和升级,网络经济学的研究是必不可少的。
实际上,我们从更广义的社会网络来看的话,2005年获得诺贝尔经济学奖的阿西莫格鲁就是讲授“社会网络科学”的大师。
我们研究区块链经济学,一定要从网络的角度来看,将个体放在群体(社群)之内来研究,了解网络结构对个体行为的影响而不是把单个个体隔离开来。因此,区块链的技术的价值,需要对网络进行研究,事更准确的说,是对网络经济学中的量化异质的效用进行研究。由于网络经济学的研究的基础是对网络经济的内生复杂性进行研究,我们看到跟传统经济学中对效用的追求不一致,而是对复杂性效用(异质效用)进行研究。简单的解释,传统经济学中的效用是针对选择的结果的,而异质效用则是针对过程的。对于网络中每个个体来说,效用的概念是针对非个性化的需求,而异质效用针对的是个性化需求。
因此,区块链网络是否能够为每个个体的个性化需求提供足够满意的效用,是衡量区块链价值的重要依据。
-
最佳员工表彰决定范文.doc
2021-01-18 18:41:41最佳员工表彰决定范文 表彰,词性是动词,意思是表扬并嘉奖。 以下是小编整理的关于最佳员工表彰决定范文,欢迎阅读。最佳员工表彰决定范文1 公司各部门: 20xx年,是公司实现跨越式发展的关键年。半年来,公司... -
经典Hash一致性算法
2014-05-27 11:04:14memcached的分布式是什么意思? 下面假设memcached服务器有node1~node3三台,应用程序要保存键名为”tokyo”、”kanagawa”、”chiba”、”saitama”、”gunma”的数据。 首先向memcached中添加“tokyo...memcached的分布式是什么意思?
下面假设memcached服务器有node1~node3三台,应用程序要保存键名为”tokyo”、”kanagawa”、”chiba”、”saitama”、”gunma”的数据。
首先向memcached中添加“tokyo”。将“tokyo”传给客户端程序库后,客户端实现的算法就会根据”键”来决定保存数据的memcached服务器。服务器选定后,即命令它保存”tokyo”及其值。
同样,”kanagawa”、”chiba”、”saitama”、”gunma”都是先选择服务器再保存。接下来获取保存的数据。获取时也要将要获取的键”tokyo”传递给函数库。函数库通过与数据保存时相同的算法,根据“键”选择服务器。使用的算法相同,就能选中与保存时相同的服务器,然后发送get命令。只要数据没有因为某些原因被删除,就能获得保存的值。
这样,将不同的键保存到不同的服务器上,就实现了memcached的分布式。memcached服务器增多后,键就会分散,即使一台memcached服务器发生故障无法连接,也不会影响其他的缓存,系统依然能继续运行。
根据余数计算分散Memcached的分布式方法简单来说,就是“根据服务器台数的余数进行分散”。求得键的整数哈希值,再除以服务器台数,根据其余数来选择服务器。
余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或移除服务器时,缓存重组的代价相当巨大。添加服务器后,余数就会产生巨变,这样就无法获取与保存时相同的服务器,从而影响缓存的命中率。
一致性hash(Consistent Hashing)一致性hash(Consistent Hashing)如下所示:首先求出memcached服务器(节点)的哈希值,并将其配置到0~232的圆(continuum)上。然后用同样的方法求出存储数据的键的哈希值,并映射到圆上。然后从数据映射到的位置开始顺时针查找,将数据保存到找到的第一个服务器上。如果超过232仍然找不到服务器,就会保存到第一台memcached服务器上。
从上图的状态中添加一台memcached服务器。余数分布式算法由于保存键的服务器会发生巨大变化而影响缓存的命中率,但一致性hash(Consistent Hashing)中,只有在continuum上增加服务器的地点逆时针方向的第一台服务器上的键会受到影响。
因此,一致性hash(Consistent Hashing)最大限度地抑制了键的重新分布。而且,有的一致性hash(Consistent Hashing)的实现方法还采用了虚拟节点的思想。使用一般的hash函数的话,服务器的映射地点的分布非常不均匀。因此,使用虚拟节点的思想,为每个物理节点(服务器)在continuum上分配100~200个点。这样就能抑制分布不均匀,最大限度地减小服务器增减时的缓存重新分布。通过下文中介绍的使用一致性hash(Consistent Hashing)算法的memcached客户端函数库进行测试的结果是,由服务器台数(n)和增加的服务器台数(m)计算增加服务器后的命中率计算公式如下:(1 n/(n+m)) * 100
-
python中tab键是什么意思
2020-12-17 08:53:40在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了。空格不会出现这个问题,因为空格就占一个字符的位置。 众所周知,Tab在ASCII码中,编码是9,而空格是32... -
http-equiv=“X-UA-Compatible“是什么意思?
2020-10-12 09:10:08为了帮助确保网页在将来的 Internet Explorer 版本中具有一致的外观,Internet Explorer 8 引入了文档兼容性。文件兼容性用于定义IE如何渲染网页。怎么查看当前网页在IE下的兼容性模式: 在浏览器中按F12打开IE开发... -
【操作系统】记录的成组误区
2017-12-07 21:38:04记录的成组与分解1、记录的成组与分解的原因:由于磁盘块的大小是预先划分好的,大小固定,而逻辑记录的大小是用户文件性质决定的,不一定和块大小一致。2、记录的成组:把若干个逻辑记录存入一个块的工作称为“记录... -
磁盘的成组与分解技术
2016-10-19 14:02:44记录的成组与分解1、记录的成组与分解的原因:由于磁盘块的大小是预先划分好的,大小固定,而逻辑记录的大小是用户文件性质决定的,不一定和块大小一致。2、记录的成组:把若干个逻辑记录存入一个块的工作称为“记录... -
如何设计出高可用、高性能的接口
2018-04-12 10:43:28特别是非互联网行业的人,这里没有歧视的意思。因为互联网行业和传统行业太多不一致性决定了这种思想的产生。 接口是项目里面的最小粒度的单元,接口设计需要注意点很多,需要的考虑方方面面,很多人... -
Java中的final关键字【详解】
2021-02-10 12:03:25目录 一、Java中的final关键字 1、final关键字 ...跟在Java中的功能一致; 2、final关键字修饰类 被final关键字修饰的类是最终类,意思就是不能有子类; “太监类”、“断子绝孙类”,比如String类; .. -
Java中重载和重写的区别
2017-01-15 14:59:23如构造方法的重载,有了重载,就可以让一个名字具有多种意思或者用途,意味着操作的多样性,这种机制允许程序员用相同的名字来完成不同的功能,而且这种灵活性是在运行时临时决定的,并不是在编译时决定的。... -
【新的开始】记录每天背的单词,准备考研。(6月10日)
2020-06-10 20:48:19与其沉醉于回不回校学习,还不如静下心来复习考研,前段时间我一直患得患失,整个人浑浑噩噩的不知道干嘛,焦虑的翻看是否有返校通知,结果发现是徒劳无益的,回不回校不是由我们这些学生做决定的,这学期回校的可能... -
保险合同生效的法律范文.doc
2021-01-15 19:56:21“要约”一方当事人以缔结合同为目的,向对方当事人所作的意思表示。“承诺”是指受要约人同意接受要约的全部条件的意思表示。在保险业务中,一般将投保人填写保险单视为要约,保险人签发保单被认为是对投保人要约的... -
UIView阴影和圆角的关系
2015-03-26 13:28:00UIView 的 clipsToBounds属性和CALayer的setMasksToBounds属性表达的意思是一致的。 取值:BOOL(YES/NO) 作用:决定了子视图的显示范围。具体的说,就是当取值为YES时,剪裁超出父视图范围的子视图部分;当... -
MapReduce:Combiner,partition的作用
2020-12-12 21:39:33它在Map 端把同一个key的键值对合并在一起并计算,计算规则与reduce一致,所以combiner也可以看作特殊的Reducer。 Partition作用 partition意思为分开,划分。它分割map每个节点的结果,按照key分别映射给不同的... -
座谈会中的语言技巧.doc
2021-01-15 11:19:50座谈会中的语言技巧 ·座谈会中的语言技巧 为了使自己的语言能够更好地表达出自己的本来意思或者思想,除了讲究说话的原则外,领导者在座谈会中的语言表达还应力求达到以下几个方面的要求。 (1)说话要有逻辑性。 ... -
smoke.js:与javascript无关的框架式警报系统-源码
2021-02-23 05:03:33SMOKE.JS-0.1.3 快速,时尚地通知或获得用户的批准。 此警报系统使用CSS动画和背景(因此没有... (不确定[Android,Blackberry,Windows]的广泛移动支持(我的意思是,它可能有效,但我不能这么说)) 当前用户通知 -
聘任书和劳动合同书的区别.doc
2021-01-19 11:38:37劳动合同是当事人双方意思表示一致的协议,其内容由双方在自愿平等的基础上进行协商而达成的,是一种双方法律行为,必须由双方签字或盖章后方能生效。聘任书是由企业单方作出的文书,是劳动者和用人单位在... -
关于NoSuchMethodException的错误
2011-09-20 14:03:43出此状况,一般情况下检查调用的方法名是否一致。 有时候往往问题并非来自程序的逻辑本身。 恰恰是一个字母无意间流失或者键盘敲的太顺了,多了几个后者少了几个字母。 兄弟们,细节决定成败! -
你必须知道的495个C语言问题
2015-10-16 14:14:281.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只... -
你必须知道的495个C语言问题.pdf
2013-01-20 14:30:541.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了... -
《你必须知道的495个C语言问题》
2010-03-20 16:41:181.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 13 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 13 声明问题 14 ... -
你必须知道的495个C语言问题(中文高清版)
2013-03-20 13:28:281.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 ... -
[你必须知道的495个C语言问题]人民邮电出版社
2012-08-18 19:02:28数组大小 1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 ...
-
基于FPGA的verilog语言的数码管显示计数程序
-
Python实验日志-经典协议-监控ospf邻居状态
-
使用Chrome快速实现数据的抓取(一)——概述
-
Vue.js中$router和$route的区别
-
python 计算列表中某个元素连续出现的次数
-
linux c can总线通信 源代码
-
51单片机电子时钟设计.rar
-
华为1+X——网络系统建设与运维(高级)
-
信息安全风险评估服务手册.doc
-
springboot之yml配置文件信息加密.docx
-
setup_clover@3.5.4.rar
-
leetcode 977 有序数组的平方 [双指针]
-
发送无证书的HTTPS请求
-
MySQL NDB Cluster 负载均衡和高可用集群
-
最近在写毕业论文
-
VMware vSphere ESXi 7 精讲/VCSA/VSAN
-
weex图片铺满整个屏幕
-
集合
-
stm32库移植样例程序.rar
-
索引类型