CN109525662A - 为热点内容设置副本的方法 - Google Patents
为热点内容设置副本的方法 Download PDFInfo
- Publication number
- CN109525662A CN109525662A CN201811355782.5A CN201811355782A CN109525662A CN 109525662 A CN109525662 A CN 109525662A CN 201811355782 A CN201811355782 A CN 201811355782A CN 109525662 A CN109525662 A CN 109525662A
- Authority
- CN
- China
- Prior art keywords
- server
- copy
- load
- name
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
为热点内容设置副本的方法,包括:步骤1:大数据***具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0‑()的哈希空间环上,其中K=32;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K。
Description
技术领域
本发明属于大数据的负载均衡领域。
背景技术
一致性哈希算法(Consistent Hashing Algorithm)是一种分布式算法,常用于负载均衡。Memcached client也选择这种算法,解决将key-value均匀分配到众多Memcachedserver上的问题。它可以取代传统的取模操作,解决了取模操作无法应对增删MemcachedServer的问题(增删server会导致同一个key,在get操作时分配不到数据真正存储的server,命中率会急剧下降)。
但现有技术中,采用一致性哈希算法和虚拟节点的方式,做到了将数据大致均匀的分布到各个节点上,但是没有考虑数据之间的冷热性。而现实的应用中,数据的冷热差异很大,从而导致对各个节点的访问量是不均匀的。当连接数过大时,***将无法提供服务。从而导致负载不均衡的问题出现。
发明内容
为热点内容设置副本的方法,包括:
步骤1:大数据***具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0 - ()的哈希空间环上,其中K=32;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K;
步骤2:大数据***开始运行后,监控器周期性监测各个服务器的负载参数,具体方式为:在时刻t服务器i的负载为,其中是采样时间间隔,每隔监控器向各个服务器发送请求,服务器将本节点当前的值返回给监控器,监控器会保存上次计算负载时的返回值;
步骤3:计算t时刻服务器群的平均负载为:;
步骤4:计算t时刻服务器群的负载方差为:;步骤5:如果未超过预定值,则返回步骤2,否则执行步骤6;
步骤6:从所有服务器中找到负载最大的服务器;
步骤7:从该负载最大的服务器上找到最近一段时间(例如是1天)内被访问次数最多的m个内容文件,例如可以预先将m设定为10;
步骤8:为这m个内容文件设置副本名称。优选的方式是在原始文件名后添加副本号,例如原始文件名为:file name,则副本名可以设置为file name #1。如果已经存在了一个副本,副本名为file name #1,后续还需要再增加副本时,可以将副本名设置为file name #2。
步骤9:计算副本名的哈希值,根据一致性哈希算法,将该副本存入相对应的服务器上。所有的副本信息都存放到一个负载服务器上,当用户需要访问某个文件内容时,先向负载服务器发送请求,负载服务器通过查询发现该内容没有设置副本,则直接根据现有的处理流程处理直接去访问原始内容,如果发现了存在副本,则从原始内容和副本内容中随机选择一个内容进行访问。从而实现了热门内容的多副本设置,降低单个服务器的访问压力。
步骤10:返回到步骤2。
为热点内容设置副本的方法,包括:
步骤1:所述大数据***中具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0 - ()的哈希空间环上,其中K= 31+;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K;
步骤2:大数据***开始运行后,监控器周期性监测各个服务器的负载参数,具体方式为:在时刻t服务器i的负载为,其中是采样时间间隔,每隔监控器向各个服务器发送请求,服务器将本节点当前的值返回给监控器,监控器会保存上次计算负载时的返回值;
步骤3:计算t时刻服务器群的平均负载为:;
步骤4:计算t时刻服务器群的负载方差为:;步骤5:如果未超过预定值,则返回步骤2,否则执行步骤6;
步骤6:从所有服务器中找到负载最大的服务器;
步骤7:从该负载最大的服务器上找到最近一段时间(例如是1天)内被访问次数最多的m个内容文件,例如可以预先将m设定为10;
步骤8:为这m个内容文件设置副本名称。优选的方式是在原始文件名后添加副本号,例如原始文件名为:file name,则副本名可以设置为file name #1。如果已经存在了一个副本,副本名为file name #1,后续还需要再增加副本时,可以将副本名设置为file name #2。
步骤9:计算副本名的哈希值,根据一致性哈希算法,将该副本存入相对应的服务器上。所有的副本信息都存放到一个负载服务器上,当用户需要访问某个文件内容时,先向负载服务器发送请求,负载服务器通过查询发现该内容没有设置副本,则直接根据现有的处理流程处理直接去访问原始内容,如果发现了存在副本,则从原始内容和副本内容中随机选择一个内容进行访问。从而实现了热门内容的多副本设置,降低单个服务器的访问压力。
步骤10:返回到步骤2。
本发明的优点是根据服务器负载的均方差,来确定是否要为负载最大的服务器上的热门内容设置副本,从而达到分担负载,减轻单个服务器负载压力的问题。
附图说明
图1是根据本发明实施例的原理图1;
图2是根据本发明实施例的原理图2;
图3是根据本发明实施例的原理图3;
图4是根据本发明实施例的原理图4。
具体实施方式
一致性哈希原理
简单来说,一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0 - ()(即哈希值是一个K位无符号整形)。下面以K=32来举例说明。
整个哈希空间环如图1所示,整个空间按顺时针方向组织。0和()在零点中方向重合。
下一步将各个服务器使用H进行一个哈希,具体可以选择服务器的ip或主机名作为关键字进行哈希,这样每台机器就能确定其在哈希空间环上的位置,这里假设将上文中三台服务器使用ip地址哈希后在环空间的位置如图2所示。
接下来使用如下算法定位数据访问到相应服务器:将数据key使用相同的函数H计算出哈希值h,通根据h确定此数据在环上的位置,从此位置沿环顺时针“行走”,第一台遇到的服务器就是其应该定位到的服务器。
例如我们有A、B、C、D四个数据对象,经过哈希计算后,在环空间上的位置如图3所示:根据一致性哈希算法,数据A会被定为到Server 1上,D被定为到Server 3上,而B、C分别被定为到Server 2上。
虚拟节点原理
为了解决这种数据倾斜问题,一致性哈希算法引入了虚拟节点机制,即对每一个服务节点计算多个哈希,每个计算结果位置都放置一个此服务节点,称为虚拟节点。具体做法可以在服务器ip或主机名的后面增加编号来实现。例如上面的情况,我们决定为每台服务器计算三个虚拟节点,于是可以分别计算“Memcached Server 1#1”、“Memcached Server 1#2”、“Memcached Server 1#3”、“Memcached Server 2#1”、“Memcached Server 2#2”、“Memcached Server 2#3”的哈希值,于是形成六个虚拟节点,如图4所示。
实施例1
为热点内容设置副本的方法,包括:
步骤1:大数据***具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0 - ()的哈希空间环上,其中K=32;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K;
步骤2:大数据***开始运行后,监控器周期性监测各个服务器的负载参数,具体方式为:在时刻t服务器i的负载为,其中是采样时间间隔,每隔监控器向各个服务器发送请求,服务器将本节点当前的值返回给监控器,监控器会保存上次计算负载时的返回值;
步骤3:计算t时刻服务器群的平均负载为:;
步骤4:计算t时刻服务器群的负载方差为:;步骤5:如果未超过预定值,则返回步骤2,否则执行步骤6;
步骤6:从所有服务器中找到负载最大的服务器;
步骤7:从该负载最大的服务器上找到最近一段时间(例如是1天)内被访问次数最多的m个内容文件,例如可以预先将m设定为10;
步骤8:为这m个内容文件设置副本名称。优选的方式是在原始文件名后添加副本号,例如原始文件名为:file name,则副本名可以设置为file name #1。如果已经存在了一个副本,副本名为file name #1,后续还需要再增加副本时,可以将副本名设置为file name #2。
步骤9:计算副本名的哈希值,根据一致性哈希算法,将该副本存入相对应的服务器上。所有的副本信息都存放到一个负载服务器上,当用户需要访问某个文件内容时,先向负载服务器发送请求,负载服务器通过查询发现该内容没有设置副本,则直接根据现有的处理流程处理直接去访问原始内容,如果发现了存在副本,则从原始内容和副本内容中随机选择一个内容进行访问。从而实现了热门内容的多副本设置,降低单个服务器的访问压力。
步骤10:返回到步骤2。
为热点内容设置副本的方法,包括:
步骤1:所述大数据***中具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0 - ()的哈希空间环上,其中K= 31+;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K;
步骤2:大数据***开始运行后,监控器周期性监测各个服务器的负载参数,具体方式为:在时刻t服务器i的负载为,其中是采样时间间隔,每隔监控器向各个服务器发送请求,服务器将本节点当前的值返回给监控器,监控器会保存上次计算负载时的返回值;
步骤3:计算t时刻服务器群的平均负载为:;
步骤4:计算t时刻服务器群的负载方差为:;步骤5:如果未超过预定值,则返回步骤2,否则执行步骤6;
步骤6:从所有服务器中找到负载最大的服务器;
步骤7:从该负载最大的服务器上找到最近一段时间(例如是1天)内被访问次数最多的m个内容文件,例如可以预先将m设定为10;
步骤8:为这m个内容文件设置副本名称。优选的方式是在原始文件名后添加副本号,例如原始文件名为:file name,则副本名可以设置为file name #1。如果已经存在了一个副本,副本名为file name #1,后续还需要再增加副本时,可以将副本名设置为file name #2。
步骤9:计算副本名的哈希值,根据一致性哈希算法,将该副本存入相对应的服务器上。所有的副本信息都存放到一个负载服务器上,当用户需要访问某个文件内容时,先向负载服务器发送请求,负载服务器通过查询发现该内容没有设置副本,则直接根据现有的处理流程处理直接去访问原始内容,如果发现了存在副本,则从原始内容和副本内容中随机选择一个内容进行访问。从而实现了热门内容的多副本设置,降低单个服务器的访问压力。
步骤10:返回到步骤2。
Claims (4)
1.为热点内容设置副本的方法,包括:
步骤1:大数据***具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0 - ()的哈希空间环上,其中K=32;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K;
步骤2:大数据***开始运行后,监控器周期性监测各个服务器的负载参数,具体方式为:在时刻t服务器i的负载为,其中是采样时间间隔,每隔监控器向各个服务器发送请求,服务器将本节点当前的值返回给监控器,监控器会保存上次计算负载时的返回值;
步骤3:计算t时刻服务器群的平均负载为:;
步骤4:计算t时刻服务器群的负载方差为:;步骤5:如果未超过预定值,则返回步骤2,否则执行步骤6;
步骤6:从所有服务器中找到负载最大的服务器;
步骤7:从该负载最大的服务器上找到最近一段时间(例如是1天)内被访问次数最多的m个内容文件,例如可以预先将m设定为10;
步骤8:为这m个内容文件设置副本名称,优选的方式是在原始文件名后添加副本号,例如原始文件名为:file name,则副本名可以设置为file name #1,如果已经存在了一个副本,副本名为file name #1,后续还需要再增加副本时,可以将副本名设置为file name #2;
步骤9:计算副本名的哈希值,根据一致性哈希算法,将该副本存入相对应的服务器上;
步骤10:返回到步骤2。
2.为热点内容设置副本的方法,包括:
步骤1:所述大数据***中具有n个服务器,采用一致性哈希算法,将这n个服务器放置到哈希函数的值空间为0 - ()的哈希空间环上,其中K= 31+;具体方式是对各个服务器的服务名执行哈希算法,输出的哈希值的长度为K;
步骤2:大数据***开始运行后,监控器周期性监测各个服务器的负载参数,具体方式为:在时刻t服务器i的负载为,其中是采样时间间隔,每隔监控器向各个服务器发送请求,服务器将本节点当前的值返回给监控器,监控器会保存上次计算负载时的返回值;
步骤3:计算t时刻服务器群的平均负载为:;
步骤4:计算t时刻服务器群的负载方差为:;步骤5:如果未超过预定值,则返回步骤2,否则执行步骤6;
步骤6:从所有服务器中找到负载最大的服务器;
步骤7:从该负载最大的服务器上找到最近一段时间(例如是1天)内被访问次数最多的m个内容文件,例如可以预先将m设定为10;
步骤8:为这m个内容文件设置副本名称,优选的方式是在原始文件名后添加副本号,例如原始文件名为:file name,则副本名可以设置为file name #1,如果已经存在了一个副本,副本名为file name #1,后续还需要再增加副本时,可以将副本名设置为file name #2;
步骤9:计算副本名的哈希值,根据一致性哈希算法,将该副本存入相对应的服务器上;
步骤10:返回到步骤2。
3.一种计算机程序,用来执行方法1-2中任意一个方法。
4.为热点内容设置副本的***,包括:中央处理器,存储器,所述存储器上包括计算机程序,所述计算机程序,用来执行方法1-2中任意一个方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811355782.5A CN109525662A (zh) | 2018-11-14 | 2018-11-14 | 为热点内容设置副本的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811355782.5A CN109525662A (zh) | 2018-11-14 | 2018-11-14 | 为热点内容设置副本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109525662A true CN109525662A (zh) | 2019-03-26 |
Family
ID=65777683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811355782.5A Withdrawn CN109525662A (zh) | 2018-11-14 | 2018-11-14 | 为热点内容设置副本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525662A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
CN102624922A (zh) * | 2012-04-11 | 2012-08-01 | 武汉大学 | 一种网络gis异构集群服务器负载均衡方法 |
CN106572181A (zh) * | 2016-11-08 | 2017-04-19 | 深圳市中博睿存科技有限公司 | 基于集群文件***的对象存储接口负载均衡方法和*** |
CN107302561A (zh) * | 2017-05-23 | 2017-10-27 | 南京邮电大学 | 一种云存储***中热点数据副本放置方法 |
CN107463342A (zh) * | 2017-08-28 | 2017-12-12 | 北京奇艺世纪科技有限公司 | 一种cdn边缘节点文件的存储方法及装置 |
CN107483519A (zh) * | 2016-06-08 | 2017-12-15 | Tcl集团股份有限公司 | 一种Memcache负载均衡方法及其*** |
CN107508758A (zh) * | 2017-08-16 | 2017-12-22 | 北京云端智度科技有限公司 | 一种热点文件自动扩散的方法 |
-
2018
- 2018-11-14 CN CN201811355782.5A patent/CN109525662A/zh not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102244685A (zh) * | 2011-08-11 | 2011-11-16 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
CN102624922A (zh) * | 2012-04-11 | 2012-08-01 | 武汉大学 | 一种网络gis异构集群服务器负载均衡方法 |
CN107483519A (zh) * | 2016-06-08 | 2017-12-15 | Tcl集团股份有限公司 | 一种Memcache负载均衡方法及其*** |
CN106572181A (zh) * | 2016-11-08 | 2017-04-19 | 深圳市中博睿存科技有限公司 | 基于集群文件***的对象存储接口负载均衡方法和*** |
CN107302561A (zh) * | 2017-05-23 | 2017-10-27 | 南京邮电大学 | 一种云存储***中热点数据副本放置方法 |
CN107508758A (zh) * | 2017-08-16 | 2017-12-22 | 北京云端智度科技有限公司 | 一种热点文件自动扩散的方法 |
CN107463342A (zh) * | 2017-08-28 | 2017-12-12 | 北京奇艺世纪科技有限公司 | 一种cdn边缘节点文件的存储方法及装置 |
Non-Patent Citations (1)
Title |
---|
王诚等: "基于贪心算法的一致性哈希负载均衡优化", 《南京邮电大学学报(自然科学版)》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10185721B2 (en) | Distributed data set storage and retrieval | |
JP6643760B2 (ja) | ショートリンクの処理方法、デバイス、及びサーバ | |
KR101503202B1 (ko) | 데이터 동기화 | |
Loesing et al. | Stormy: an elastic and highly available streaming service in the cloud | |
JP5664098B2 (ja) | 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム | |
CN107251017B (zh) | 经由基数估计的有效联结路径确定 | |
WO2021003935A1 (zh) | 数据集群存储的方法、装置及计算机设备 | |
Zheng et al. | BatchFS: Scaling the file system control plane with client-funded metadata servers | |
CA3169394C (en) | Distributed data set encryption and decryption | |
CN104063501B (zh) | 基于hdfs的副本平衡方法 | |
CN109451069B (zh) | 基于分布式存储的网络数据文件库存储及查询方法 | |
US20080270483A1 (en) | Storage Management System | |
CN109525662A (zh) | 为热点内容设置副本的方法 | |
CN104219163A (zh) | 一种基于动态副本法和虚拟节点法的节点动态前移的负载均衡方法 | |
Huang et al. | Optimizing data partition for scaling out NoSQL cluster | |
CN109246250A (zh) | 根据服务器数量的改变而调整虚拟节点数量的方法 | |
JP2022153422A (ja) | クラスタ化されたデータベース環境でのデータのパーティショニング | |
JP6259408B2 (ja) | 分散処理システム | |
WO2017045545A1 (zh) | 多存储盘负载管理方法、装置、文件***及存储网络*** | |
CN104468823B (zh) | 一种集群负载均衡调度方法及*** | |
US9794326B1 (en) | Log information transmission integrity | |
Ying et al. | Consistent hashing algorithm based on slice in improving Scrapy-Redis distributed crawler efficiency | |
US10489401B2 (en) | Efficient aggregation in a parallel system | |
Sun et al. | RPCC: A Replica Placement Method to Alleviate the Replica Consistency under Dynamic Cloud | |
Tech et al. | A view on load balancing of NoSQL databases (Couchbase, Cassandra, Neo4j and Voldemort) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190326 |