CN109525662A - 为热点内容设置副本的方法 - Google Patents

为热点内容设置副本的方法 Download PDF

Info

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
Application number
CN201811355782.5A
Other languages
English (en)
Inventor
程桂平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201811355782.5A priority Critical patent/CN109525662A/zh
Publication of CN109525662A publication Critical patent/CN109525662A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols 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中任意一个方法。
CN201811355782.5A 2018-11-14 2018-11-14 为热点内容设置副本的方法 Withdrawn CN109525662A (zh)

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)

* Cited by examiner, † Cited by third party
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 北京云端智度科技有限公司 一种热点文件自动扩散的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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