CN112702446B - Dns缓存在边缘网络中的分布式存储系统 - Google Patents
Dns缓存在边缘网络中的分布式存储系统 Download PDFInfo
- Publication number
- CN112702446B CN112702446B CN202011487191.0A CN202011487191A CN112702446B CN 112702446 B CN112702446 B CN 112702446B CN 202011487191 A CN202011487191 A CN 202011487191A CN 112702446 B CN112702446 B CN 112702446B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- module
- level
- dns
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及互联网域名技术领域,公开了一种DNS缓存在边缘网络中的分布式存储系统,该系统包括:位于边缘网络中的多台分布式的一级缓存服务器和位于核心网络中的二级缓存服务器,其中,所述二级缓存服务器中的缓存数据根据一致性哈希算法及同一边缘网络中的一级缓存服务器的数量同步映射到同一边缘网络中的每台所述一级缓存服务器中。本发明通过将核心网络中的缓存数据映射到边缘网络中,让DNS的查询请求能够在边缘网络中就完成,充分利用起边缘网络中闲置的带宽,同时降低核心网络的带宽压力和递归服务器的并发压力,提高DNS查询效率。
Description
技术领域
本发明涉及互联网域名技术领域,具体涉及一种DNS缓存在边缘网络中的分布式存储系统。
背景技术
域名系统(Domain Name System,简称:DNS)是互联网的一项服务。是一个将易于人类记忆的互联网域名和易于计算机识别的IP地址相互映射的分布式数据库。我们使用互联网时通常都是直接输入对应网站的域名,而不是该网站所在服务器的IP地址。域名和IP地址之间的转换就是通过运行DNS协议的DNS客户端和DNS服务器完成的。DNS服务器有DNS递归服务器和DNS权威服务器两种。
现有DNS网络拓扑图如附图1所示。我们平时使用的终端或服务器设备都是作为DNS客户端存在,而通常与之直接通信的是部署在核心网络中的DNS递归服务器。通常DNS递归服务器都配套有带超时的本地缓存数据库,用于缓存递归查询得到的DNS查询结果数据(包括:消息缓存和记录缓存)。其中,核心网络即主干网,指一种在主要连接节点之间承载快速通信流量的通信传输网络。通常它具有网格拓扑结构,可为在网络上的设备中提供任意两个之间的连接。递归服务器配套的缓存数据库在降低了DNS权威服务器压力的同时,提高了DNS递归服务器对DNS客户端的查询响应效率。DNS查询流程如下:
1.DNS客户端向DNS递归服务器发起DNS查询请求;
2.DNS递归服务器会先查询服务器本地缓存数据库中是否存在与该DNS查询请求对应的缓存结果数据,如果有则直接将缓存结果数据返回给客户端;
3.否则DNS递归服务器向对应的DNS权威服务器发起递归查询,并将递归查询结果数据返回给客户端,同时缓存递归查询结果数据到本地缓存数据库中。
随着互联网的高速发展,特别是移动互联网的高速发展。采用上述技术方案时,由于使用网络的用户越来越多,造成核心网络的带宽压力越来越大,使其基本处于满负荷,甚至超负荷运行。然而核心网络的升级改造难度较大、成本高、时间跨度也很长。但与核心网络相对的边缘网络中很多时候存在带宽闲置和计算力闲置等现象。其中边缘网络是指相对于核心网络以外的网络边缘部分。边缘网络通过核心网络在边缘侧的路由器接入到核心网络,从而形成互联互通的的互联网络。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种DNS缓存在边缘网络中的分布式存储系统,通过将核心网络中的缓存数据映射到边缘网络中,让DNS的查询请求尽可能的在边缘网络中就完成,充分利用起边缘网络中闲置的带宽,同时降低核心网络的带宽压力和递归服务器的并发压力,提高DNS查询效率。
本发明采用的技术方案如下:
一种DNS缓存在边缘网络中的分布式存储系统,该系统包括:
所述系统包括位于边缘网络中的多台分布式的一级缓存服务器和位于核心网络中的二级缓存服务器,其中,所述二级缓存服务器中的缓存数据根据一致性哈希算法及同一边缘网络的一级缓存服务器的数量同步映射到该边缘网络中的每台所述一级缓存服务器中。
进一步地,所述一级缓存服务器包括查询处理模块和一级数据缓存模块,其中,
所述查询处理模块用于接收所在边缘网络中的DNS客户端发起的DNS查询请求,向对应的所述一级数据缓存模块发起DNS查询,以及接收所述一级数据缓存模块返回的查询结果数据,将所述一级数据缓存模块返回的查询结果数据返回给DNS客户端;
所述一级数据缓存模块,接收所述查询处理模块的DNS查询请求,在其缓存数据库中匹配查询对应的缓存数据,如存在,则直接返回匹配查询到的缓存数据给查询处理模块,如不存在,则向所述二级缓存服务器的所述二级数据缓存模块发起对应的DNS查询请求。
进一步地,所述二级缓存服务器包括二级数据缓存模块和递归查询模块,其中,
所述二级数据缓存模块接收所述一级数据缓存模块发起的DNS查询请求,在其缓存数据库中匹配查询对应的缓存数据进行匹配查询,若在其缓存数据库中匹配查询到所需的缓存数据,则返回结果数据给发起所述DNS查询请求的所述一级缓存服务器的所述一级数据缓存模块,若在其缓存数据库中未匹配查询到所需的缓存数据,则向所述递归查询模块发起对应的DNS查询请求;所述二级缓存模块,还同时将从缓存数据库中查询到的结果数据,同步给发起所述DNS查询请求的所述一级缓存服务器所在边缘网络的另外的多台和该缓存数据有映射关系的一级缓存服务器的一级数据缓存模块;
所述递归查询模块,收到所述二级数据缓存模块的DNS查询请求后,向对应的权威服务器发起DNS递归查询请求,并将递归查询结果数据返回给发起所述DNS查询请求的所述二级数据缓存模块。
进一步地,设定位于所述边缘网络中的多台分布式的所述一级缓存服务器对所述二级缓存服务器返回的结果数据具有不同的查询响应权重。
进一步地,所述查询处理模块通过HASH算法查到DNS查询请求中的应答结果数据在所述同一边缘网络所映射的多台所述一级缓存服务器后,通过WLCS算法选中其中一台所述一级缓存服务器,并从该所述一级缓存服务器查询得到所述DNS查询请求对应的应答结果数据。
进一步地,所述递归查询模块在将查询到的结果数据返回所述二级数据缓存模块后,由所述二级数据缓存模块将结果数据缓存到其缓存数据库中时,设置超时机制,在所述二级数据缓存模块的缓存数据库中的缓存数据过期前一段时间内,触发所述递归查询模块重新执行DNS递归查询请求,用新的DNS递归查询结果数据更新该所述二级数据缓存模块的缓存数据库中的缓存数据,并更新超时。
进一步地,所述一级数据缓存模块收到所述查询处理模块发起的DNS查询请求时会优先匹配事先缓存的热点域名TOP100,所述二级数据缓存模块搜集和统计不同的各边缘网络的热点域名TOP100,并将该TOP100域名的查询结果数据缓存,同时实时同步到对应边缘网络的各所述一级缓存服务器的所述一级数据缓存模块中,其中,各边缘网络的热点域名TOP100根据所属边缘网络的不同而不同。
进一步地,通过所述一致性哈希算法将所述二级缓存服务器的所述二级数据缓存模块的缓存数据分块映射到各边缘网络中的不同所述一级缓存服务器上,具体包括:
对指定所述边缘网络中的所有所述一级缓存服务器,用S标示,从1开始进行累加1的编号,编号结果为1~n,则所述一级缓存服务器编号为S[y],1<=y<=n;
根据域名的hash值将缓存数据分割为n块,并将划分了的缓存数据块,用D标示,从1开始进行累加1的编号,编号结果为1~n,则所述缓存数据块编号为D[x],1<=x<=n;
将缓存数据块D[x],1<=x<=n,映射到多台所述一级缓存服务器S[y]上,并将多台所述一级缓存服务器S[y]的编号为y1、y2、y3…yk;
则映射关系为:S[y1]=D[x]、S[y2]=D[x]、S[y3]=D[x]、…、S[yk]=D[x],y1、y2、y3、…、yk的取值分别为:y1=x、y2=((x+1)>n)?((x+1)-n):(x+1)、y3=((x+2)>n)?((x+2)-n):(x+2)、…、yk=((x+(k-1))>n)?((x+(k-1))-n):(x+(k-1));
将缓存数据块D[x]根据映射关系缓存到对应的一级缓存服务器S[y]上。
进一步地,所述系统还包括:控制模块,所述控制模块实时监控所述一级缓存服务器的工作状态和负载大小,在同一所述边缘网络中的所述一级缓存服务器发生变化时,动态调整缓存数据在所述一级数据缓存模块的缓存数据块分割大小和其同所述一级缓存服务器的映射关系。
与现有技术相比,本发明提供的一种DNS缓存在边缘网络中的分布式存储系统,达到了如下技术效果:
1、DNS缓存下沉到边缘网络,使得DNS查询更多的在网络边缘侧,提高DNS查询效率,用户体验更好。
2、利用闲置的边缘网络带宽及算力,降低核心网络的压力。
3、边缘网络中的DNS缓存服务器由于辐射范围更低,所以压力更小,因而配置可以更低。可以将现有边缘网络中拥有闲置计算力的设备进行升级改造后充当一级缓存服务器的角色,保障了系统部署成本低。
附图说明
图1是现有技术中的DNS网络拓扑图。
图2是本发明实施例中的DNS网络拓扑图。
图3是本发明实施例中的分布式存储系统的架构图。
图4是本发明实施例中的一级缓存服务器的数据映射及权重划分模型的示意图。
图5是本发明实施例中的二级缓存数据映射到一级缓存数据的流程图。
图6是本发明实施例中的分布式存储系统的工作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例为实施本发明的较佳实施方式,所述描述是以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围应当以权利要求所界定者为准,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了将DNS递归服务器的缓存数据库中的缓存数据下沉到边缘网络中,本发明设计了一种DNS缓存在边缘网络中的分布式存储系统。本发明的网络拓扑图如附图2所示。参照图2所示,本发明将DNS的缓存数据分为两级存储,分别是位于边缘网络中的一级分布式缓存服务器和位于核心网络中的二级缓存服务器(包括二级缓存模块、递归查询模块)。其中,本实施例中的边缘网络主要是指靠近客户端设备(比如笔记本电脑、智能手表、平板电脑及路由器等)的网络环境。
下面来对本发明的一级分布式缓存服务器和二级缓存服务器做具体描述。
一、一级分布式缓存服务器
一级分布式缓存服务器位于边缘网络中,由多台一级缓存服务器组成,分布式设置,为了方便说明,本发明实施例仅以三台为例。
每台一级缓存服务器包括:查询处理模块和一级数据缓存模块。
其中,查询处理模块主要完成如下处理流程:
1、接收所在边缘网络中的DNS客户端发起的DNS查询请求;
2、向本查询处理模块所在一级缓存服务器的一级数据缓存模块匹配查询热点域名TOP100。如果查询匹配到了热点域名TOP100,则直接将匹配的热点域名TOP100的应答结果作为查询应答结果返回给DNS客户端。其中,热点域名TOP100可以根据用户的喜好自定义设置或者按照实际大量用户使用后的大数据排名进行设置。
3、对DNS客户端查询的域名应用HASH算法,得到所在本边缘网络中的映射的用于缓存该域名查询缓存结果数据的3台服务器信息。如果本查询处理模块所在的服务器包含在所映射的3台服务器中,则直接向本模块所在一级缓存服务器的一级数据缓存模块发起DNS匹配查询请求;如果本模块所在的一级缓存服务器不包含在映射的3台服务器中,则应用WLCS算法选举得到3台服务器中的一台作为目标服务器,并向选举得到的目标服务器中的一级数据缓存模块发起DNS匹配查询请求。
4、将一级数据缓存模块查询到的结果数据返回给DNS客户端。
一级数据缓存模块主要完成如下处理流程:
1、接收查询处理模块发送的DNS匹配查询请求;
2、在本模块的缓存数据库中匹配查询对应的缓存数据;
3、如果在本模块的缓存数据库中找到了对应的缓存数据,则直接将该缓存数据作为查询结果数据返回给查询处理模块;
4、如果在本模块的缓存数据库中没有找到对应的缓存数据,则本模块向二级缓存服务器中的二级数据缓存模块发起对应的DNS匹配查询请求。并将二级数据缓存模块返回的匹配查询结果数据返回给向本模块发起DNS匹配查询请求的查询处理模块,同时将该查询结果数据缓存到本模块的缓存数据库中,并设置超时。
5、在本模块的缓存数据库中的缓存数据过期前的一段时间内,从二级缓存服务器的二级数据缓存模块预取缓存数据,并刷新缓存数据和超时时间。
6、接收二级缓存服务器的二级数据缓存模块主动向本模块发起的缓存数据的同步,将同步的缓存数据缓存到本模块的缓存数据库中,并设置超时。
7、为提高热点域名的查询效率,在本模块中缓存有所在边缘网络的热点域名TOP100。
其中,每台一级缓存服务器中的缓存数据是二级缓存服务器中缓存数据的一块数据子集的映射,该映射关系由HASH算法和同一边缘网络中的一级缓存服务器数量共同决定。其中HASH算法即一致性哈希算法。一致性哈希算法,是一种特殊的哈希算法,目的是解决分布式缓存的问题,其解决了简单哈希算法在分布式哈希表(Distributed Hash Table,DHT)中存在的动态伸缩等问题。
二级缓存服务器中的每份数据会同时映射到同一边缘网络中的3台一级缓存服务器中,且这3台一级缓存服务器对该份数据拥有不同的查询响应权重。数据映射和权重划分模型如附图4所示,其中:
模型中默认将所有缓存数据均分为n块(实际部署中对一级缓存中数据块的划分可能受设备性能的影响而不均匀),每块数据的大小为x。每台一级缓存服务器上存储了3块不同的大小为x的数据,使得每份数据在同一个边缘网络的一级分布式缓存服务器中有3份副本对应于3台不同的一级缓存服务器上。同一块数据的在3台一级缓存服务器上被访问的权重是不同,默认权重比例为6:2:2(实际部署应用中这个权重值可以根据设备性能有所调整,且可以让不同缓存数据块的权重比例不同)。查询处理模块通过HASH算法找到DNS请求中的域名的应答结果所映射的3台一级缓存服务器后,通过WLCS算法选中其中一台一级缓存服务器,并从该一级缓存服务器查询得到DNS请求对应的应答结果数据。其中,WLCS算法即加权最小连接调度算法(英文名称:Weight Least-Connection Scheduling,简称WLCS)。WLCS算法是LCS(最小连接调度,英文名称:Least-Connection Scheduling)算法的超集,各个一级缓存服务器用相应的权值表示其处理性能。WLCS在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。
二、二级缓存服务器
二级缓存服务器位于核心网中,包括二级数据缓存模块和递归查询模块两个主要功能模块。两个主要功能模块的功能如下:
其中,二级数据缓存模块主要完成如下处理流程:
1、接收各边缘网络的一级分布式缓存服务器的各一级缓存服务器的一级数据缓存模块发起的DNS匹配查询请求;
2、在本模块的缓存数据库中匹配查询对应的缓存数据;
3、如果在本模块的缓存数据库中匹配查询到了对应的缓存数据,则将该缓存数据返回给发起该DNS匹配查询请求的一级缓存服务器的一级数据缓存模块,同时将该缓存数据同步给发起该DNS匹配查询请求的一级缓存服务器所在边缘网络的另外2台和该缓存数据有映射关系的一级缓存服务器的一级数据缓存模块,因为在本模块的缓存数据库中的缓存数据可能是由其它边缘网络中的一级缓存服务器的一级数据缓存模块发起的DNS匹配查询请求触发DNS递归查询后缓存到本模块的缓存数据库中的。系统同一边缘网络的一级分布式缓存服务器中的缓存数据本着有对应DNS查询请求时才从二级缓存服务器同步的原则,在所在边缘网络没有对对应的DNS查询请求时,二级缓存服务器的二级数据缓存模块不会主动向该边缘网络的一级缓存服务器的一级数据缓存模块同步缓存数据;
4、如果在本模块的缓存数据库中未匹配查询到对应的缓存数据,则向递归查询模块发起对应的DNS递归查询请求。将递归查询模块返回的DNS递归查询应答结果返回给发起该DNS匹配查询请求的一级缓存服务器的一级数据缓存模块,同时将该查询应答结果同步给发起该DNS匹配查询请求的一级缓存服务器所在边缘网络的另外2台和该查询结果数据有映射关系的一级缓存服务器的一级数据缓存模块,同时将该查询应答结果缓存到本模块的缓存数据库中,并设置超时。
5、在本模块的缓存数据库中的缓存数据过期前一段时间内,触发递归查询模块重新进行对应的DNS递归查询,用新的DNS递归查询结果数据更新本模块的缓存数据库中的缓存数据,并更新超时。
6、搜集和统计各边缘网络的热点域名TOP100,并将该TOP100域名的查询结果数据缓存到本模块中,同时实时同步到各对应边缘网络的一级分布式缓存服务器的各一级缓存服务器的一级数据缓存模块中,不同边缘网络的热点域名TOP100不同,所以按照边缘网络来区分搜集和统计。
7、在本模块中缓存的某边缘网络的热点域名TOP100的缓存数据过期前一段时间内,触发递归查询模块对热点域名TOP100中的对应域名重新进行对应的DNS递归查询,用新的递归查询结果数据更新本模块本地缓存的该边缘网络的热点域名TOP100的缓存数据,同时将新的热点域名TOP100缓存数据同步到对应的边缘网络的一级分布式缓存服务器的各台一级缓存服务器中。
递归查询模块的处理流程如下:
1、接收二级数据缓存模块发起的DNS递归查询请求;
2、向相关DNS权威服务器进行域名的递归查询;
3、将递归查询结果数据返回二级数据缓存模块。
为了配合一级缓存服务器和二级缓存服务器中的数据传输的控制,本发明还设置有控制模块。
其中,控制模块的主要处理流程包括如下:
1、通过HASH算法将二级缓存服务器的二级数据缓存模块的缓存数据库中的缓存数据分块映射到各边缘网络中的不同一级缓存服务器上。功能流程如附图5所示:
①对指定边缘网络中的所有一级缓存服务器(用S标示)从1开始进行累加1的编号。编号结果为1~n,则一级数据缓存服务器编号为S[y],1<=y<=n;
②根据域名的hash值将缓存数据分割为n块,并将划分好的缓存数据块(用D标示)从1开始进行累加1的编号,编号结果为1~n,则缓存数据块编号为D[x];
③将缓存数据块D[x](1<=x<=n)映射到3台一级数据缓存服务器S[y]上,并将3台一级数据缓存服务器S[y]的编号为y1/y2/y3。
则映射关系为:S[y1]=D[x]、S[y2]=D[x]、S[y3]=D[x]。y1/y2/y3取值为:
y1=x、y2=((x+1)>n)?((x+1)-n):(x+1)、y3=((x+2)>n)?((x+2)-n):(x+2);
④将缓存数据块D[x]根据映射关系缓存到对应的一级缓存服务器S[y]上;
2、在某个边缘网络中的一级缓存服务器的数量发生改变时(增加或减少),动态调整缓存数据在该边缘网络缓存数据的数据块大小和各数据块在该边缘网络的一级缓存服务器上的映射关系。
3、在同一边缘网络中的一级缓存服务器的负载分配严重不均衡时,通过动态调整一级缓存服务器对DNS匹配查询响应权重、动态调整缓存数据在一级缓存服务器上的缓存数据块大小、动态调整缓存数据在一级缓存服务器上的缓存数据块映射关系等方式,来达到动态调整该边缘网络中各一级缓存服务器的负载分配。
4、实时同步二级缓存服务器中的缓存数据和指定边缘网络的所有一级缓存服务器的映射关系到该指定边缘网络的所有一级缓存服务器。
5、实时监控各边缘网络中的一级缓存服务器的状态和负载等情况,并将实时统计结果通过对应的图形界面反馈给管理员。同时还可以在系统发生异常时向管理员报警。
6、定时同步同一边缘网络中的各一级缓存服务器的负载情况到该边缘网络的所有一级缓存服务器,以便应用WLCS算法正确高效的调度一级缓存服务器完成DNS的匹配查询。
通信模块用于系统内部的查询处理模块、一级数据缓存模块、二级数据缓存模块、递归查询模块、控制模块等功能模块之间的数据传输,使得系统内各模块之间可以简洁高效的进行数据传输。本模块可以,但不局限于,使用标准的DNS协议作为其承载网络协议。
参照图6所示,以一次DNS查询为例,本发明实施例中的DNS缓存在边缘网络中的分布式存储系统工作流程作如下:
1.DNS客户端向一级缓存服务器的查询处理模块发起某域名的DNS查询请求;
2.查询处理模块向同服务器上的一级数据缓存模块查询是否查询请求域名匹配热点域名TOP100。如果匹配热点域名TOP100,则直接返回客户端匹配的查询结果数据;否则跳转到步骤3。
3.查询处理模块将请求的域名使用HASH算法计算后得到一个哈希值,根据哈希值查询得到该哈希值所映射的3台一级缓存服务器;
4.如果步骤3中得到的3台服务器中包含收到该DNS查询请求的查询处理模块所在的一级缓存服务器,则直接向该一级缓存服务器的一级数据缓存模块发起DNS匹配查询请求。若在该一级数据缓存模块的缓存数据库中匹配查找到对应结果数据,则将该结果数据通过发起该DNS匹配查询请求的查询处理模块返回给客户端,否则向二级数据缓存模块发起对应的DNS匹配查询请求,跳到步骤6;
5.如果步骤3中得到的3台服务器中不包含收到的该DNS查询请求的查询处理模块所在的一级缓存服务器,则对步骤3中得到的3台一级缓存服务器应用WLCS算法选择其中一台一级缓存服务器的作为目标服务器,向选中的一级缓存服务器的一级数据缓存模块发起DNS匹配查询请求。若在选中的一级缓存服务器的一级数据缓存模块的缓存数据库中匹配查找到对应结果数据,则将该结果数据通过发起该DNS匹配查询请求的查询处理模块返回给客户端;否则向二级数据缓存模块发起对应的DNS匹配查询请求,跳到步骤6;
6.二级数据缓存模块收到一级数据缓存模块发起的DNS匹配查询请求后,在二级数据缓存模块的缓存数据库中匹配查询是否存在对应的缓存数据(因为可能存在二级数据缓存模块的缓存数据库中的缓存数据是由其它边缘网络查询操作触发DNS递归查询后缓存到该缓存数据库中的)。若在二级数据缓存模块的缓存数据库中匹配查找到对应结果数据则将该结果数据返回给发起该DNS匹配查询的一级数据缓存模块;否则向递归查询模块发起对应的DNS递归查询请求,跳到步骤7。
7.递归查询模块收到二级数据缓存模块发起的DNS递归查询请求后,向对应DNS权威服务器发起对应域名的递归查询,将递归查询结果数据返回给二级数据缓存模块,跳到步骤8。
8.二级数据缓存模块收到递归查询模块返回的对应域名的递归查询结果数据后,将该结果数据返回给向本模块发起该域名的DNS匹配查询的一级数据缓存模块,同时将该结果数据主动同步到和向本模块发起该域名的DNS匹配查询的一级数据缓存模块所在边缘网络中和该域名数据缓存有映射关系的另外2台一级缓存服务器的一级数据缓存模块,同时将该结果数据缓存到本模块的缓存数据库中,并设置超时,跳到步骤9。
9.发起域名DNS匹配查询的一级数据缓存模块收到二级数据缓存模块返回的该域名的DNS匹配查询结果数据后,将该结果数据发送给发起该域名的DNS匹配查询请求的查询处理模块,同时将该结果数据缓存到本模块的缓存数据库中,并设置超时,跳到步骤10。接收步骤8中二级数据缓存模块主动同步缓存数据的另外2台一级缓存服务器的一级数据缓存模块在收到该域名的DNS匹配查询结果数据后,将该结果数据缓存到本模块的缓存数据库中,并设置超时。
10.发起域名DNS匹配查询的查询处理模块收到该域名的DNS匹配查询结果数据后,将该结果数据返回给发起该域名的DNS查询请求的DNS客户端。
与现有技术相比,本发明实施例中的DNS缓存在边缘网络中的分布式存储系统,首先,DNS缓存下沉到边缘网络,使得DNS查询更多的在网络边缘侧,提高DNS查询效率,用户体验更好;其次,利用闲置的边缘网络带宽及算力,降低核心网络的压力;最后,边缘网络中的DNS缓存服务器由于辐射范围更低,所以压力更小,因而配置可以更低,可以将现有边缘网络中拥有闲置计算力的设备进行升级改造后充当一级缓存服务器的角色,保障了系统部署的低成本。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (8)
1.一种DNS缓存在边缘网络中的分布式存储系统,其特征在于,所述系统包括位于边缘网络中的多台分布式的一级缓存服务器和位于核心网络中的二级缓存服务器,其中,所述二级缓存服务器中的缓存数据根据一致性哈希算法及同一边缘网络中的一级缓存服务器的数量同步映射到同一边缘网络中的每台所述一级缓存服务器中;
对指定所述边缘网络中的所有所述一级缓存服务器,用S标示,从1开始进行累加1的编号,编号结果为1~n,则所述一级缓存服务器编号为S[y],1<=y<=n;
根据域名的hash值将缓存数据分割为n块,并将划分了的缓存数据块,用D标示,从1开始进行累加1的编号,编号结果为1~n,则所述缓存数据块编号为D[x],1<=x<=n;
将缓存数据块D[x],1<=x<=n,映射到多台所述一级缓存服务器S[y]上,并将多台所述一级缓存服务器S[y]的编号为y1、y2、y3、…、yk;
则映射关系为:S[y1]=D[x]、S[y2]=D[x]、S[y3]=D[x]、…、S[yk]=D[x],y1、y2、y3、…、yk的取值分别为:y1=x、y2=((x+1)>n)?((x+1)-n):(x+1)、y3=((x+2)>n)?((x+2)-n):(x+2)、…、yk=((x+(k-1))>n)?((x+(k-1))-n):(x+(k-1));
将缓存数据块D[x]根据映射关系缓存到对应的一级缓存服务器S[y]上;
且所述一级缓存服务器包括查询处理模块和一级数据缓存模块,所述二级缓存服务器包括二级数据缓存模块,其中,
所述查询处理模块用于接收所在边缘网络中的DNS客户端发起的DNS查询请求,向对应的所述一级数据缓存模块发起DNS匹配查询,以及接收所述一级数据缓存模块返回的查询结果数据,将所述一级数据缓存模块返回的查询结果数据返回给DNS客户端;
所述一级数据缓存模块,接收所述查询处理模块的DNS查询请求,在其缓存数据库中匹配查询对应的缓存数据,如存在,则直接返回匹配查询到的缓存数据给查询处理模块,如不存在,则向所述二级缓存服务器的所述二级数据缓存模块发起对应的DNS查询请求。
2.根据权利要求1所述的系统,其特征在于,所述二级缓存服务器还包括递归查询模块,其中,
所述二级数据缓存模块,接收所述一级数据缓存模块发起的DNS查询请求,在其缓存数据库中匹配查询对应的缓存数据,若在其缓存数据库中匹配查询到对应的缓存数据,则返回结果数据给发起所述DNS查询请求的所述一级缓存服务器的所述一级数据缓存模块,若在其缓存数据库中未匹配查询到对应的缓存数据,则向所述递归查询模块发起对应的DNS查询请求;所述二级数据缓存模块,还同时将从其缓存数据库中查询到的结果数据,同步传输给发起所述DNS查询请求的所述一级缓存服务器所在边缘网络的另外的多台和该缓存数据有映射关系的一级缓存服务器的一级数据缓存模块;
所述递归查询模块,接收所述二级数据缓存模块的DNS查询请求后,向对应的权威服务器发起DNS递归查询,并将递归查询结果数据返回给发起所述发起DNS查询请求的所述二级数据缓存模块。
3.根据权利要求1所述的系统,其特征在于,设定位于所述同一边缘网络中的多台分布式的所述一级缓存服务器对所述二级缓存服务器返回的结果数据具有不同的查询响应权重。
4.根据权利要求1所述的系统,其特征在于,所述查询处理模块通过HASH算法查到所述DNS查询请求中的应答结果数据在所述同一边缘网络所映射的多台所述一级缓存服务器后,通过WLCS算法选中其中一台所述一级缓存服务器,并从该所述一级缓存服务器的所述一级数据缓存模块查询得到所述DNS查询请求对应的应答结果数据。
5.根据权利要求2所述的系统,其特征在于,所述递归查询模块在将查询到的结果数据返回所述二级数据缓存模块后,由所述二级数据缓存模块将结果数据缓存到其缓存数据库中时,设置超时机制,在所述二级数据缓存模块的缓存数据库中的缓存数据过期前一段时间内,触发所述递归查询模块重新执行DNS递归查询请求,用新的DNS 递归查询结果数据更新该所述二级数据缓存模块的缓存数据库中的缓存数据,并更新超时。
6.根据权利要求1所述的系统,其特征在于,所述一级数据缓存模块收到所述查询处理模块发起的DNS查询请求时会优先匹配事先缓存的热点域名TOP100,所述二级数据缓存模块搜集和统计不同的各边缘网络的热点域名TOP100,并将该TOP100域名的查询结果数据缓存,同时实时同步到对应所述边缘网络的各所述一级缓存服务器的所述一级数据缓存模块中,其中,各边缘网络的热点域名TOP100根据所属边缘网络的不同而不同。
7.根据权利要求2~6 任一权利要求所述的系统,其特征在于,所述系统还包括:控制模块,所述控制模块实时监控所述一级缓存服务器的工作状态和负载大小,在同一所述边缘网络中的所述一级缓存服务器发生变化时,动态调整缓存数据在该所述边缘网络中的缓存数据块分割大小和缓存数据同所述一级缓存服务器的映射关系。
8.根据权利要求7所述的系统,其特征在于,所述系统还包括:通信模块,所述通信模块用于所述查询处理模块、一级数据缓存模块、二级数据缓存模块、递归查询模块、控制模块之间的数据传输。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011487191.0A CN112702446B (zh) | 2020-12-16 | 2020-12-16 | Dns缓存在边缘网络中的分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011487191.0A CN112702446B (zh) | 2020-12-16 | 2020-12-16 | Dns缓存在边缘网络中的分布式存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112702446A CN112702446A (zh) | 2021-04-23 |
CN112702446B true CN112702446B (zh) | 2022-11-01 |
Family
ID=75508524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011487191.0A Active CN112702446B (zh) | 2020-12-16 | 2020-12-16 | Dns缓存在边缘网络中的分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112702446B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127570B (zh) * | 2021-05-18 | 2022-11-04 | 上海莉莉丝科技股份有限公司 | 分布式服务器的数据操作方法、系统、设备及存储介质 |
CN113687964B (zh) * | 2021-09-09 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701957A (zh) * | 2014-01-14 | 2014-04-02 | 互联网域名系统北京市工程研究中心有限公司 | Dns递归方法及其系统 |
CN104935680A (zh) * | 2015-06-18 | 2015-09-23 | 中国互联网络信息中心 | 一种多层级共享缓存的递归域名服务系统和方法 |
CN105791460A (zh) * | 2016-03-03 | 2016-07-20 | 中国科学院信息工程研究所 | 基于多维度聚合的dns代理缓存优化方法和系统 |
WO2017088225A1 (zh) * | 2015-11-23 | 2017-06-01 | 中国互联网络信息中心 | Dns递归服务器分层缓存方法和系统 |
CN108111639A (zh) * | 2018-03-08 | 2018-06-01 | 华东师范大学 | 一种提高域名系统可用性的方法及系统 |
CN111327714A (zh) * | 2018-12-17 | 2020-06-23 | 中国电信股份有限公司 | 域名递归查询方法、系统以及服务器、dns系统 |
-
2020
- 2020-12-16 CN CN202011487191.0A patent/CN112702446B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103701957A (zh) * | 2014-01-14 | 2014-04-02 | 互联网域名系统北京市工程研究中心有限公司 | Dns递归方法及其系统 |
CN104935680A (zh) * | 2015-06-18 | 2015-09-23 | 中国互联网络信息中心 | 一种多层级共享缓存的递归域名服务系统和方法 |
WO2017088225A1 (zh) * | 2015-11-23 | 2017-06-01 | 中国互联网络信息中心 | Dns递归服务器分层缓存方法和系统 |
CN105791460A (zh) * | 2016-03-03 | 2016-07-20 | 中国科学院信息工程研究所 | 基于多维度聚合的dns代理缓存优化方法和系统 |
CN108111639A (zh) * | 2018-03-08 | 2018-06-01 | 华东师范大学 | 一种提高域名系统可用性的方法及系统 |
CN111327714A (zh) * | 2018-12-17 | 2020-06-23 | 中国电信股份有限公司 | 域名递归查询方法、系统以及服务器、dns系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112702446A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100791628B1 (ko) | 이동망 시스템의 능동적 캐쉬 제어 방법, 그 기록 매체 및그 시스템 | |
CN112702446B (zh) | Dns缓存在边缘网络中的分布式存储系统 | |
CN102006330B (zh) | 分布式缓存系统、数据的缓存方法及缓存数据的查询方法 | |
EP3114588B1 (en) | Dynamic cache allocation and network management | |
CN113497817B (zh) | 流量调度方法、装置、cdn网络的边缘节点及服务器 | |
CN111327714A (zh) | 域名递归查询方法、系统以及服务器、dns系统 | |
CN103701957A (zh) | Dns递归方法及其系统 | |
CN110830565B (zh) | 资源下载方法、装置、系统、电子设备及存储介质 | |
CN110661862A (zh) | 一种预热资源文件的方法和中心管理系统 | |
CN113452808B (zh) | 域名解析方法、装置、设备及存储介质 | |
CN103905572A (zh) | 域名解析请求的处理方法及装置 | |
US9876873B1 (en) | Caching techniques | |
CN114513488B (zh) | 资源访问方法、装置、计算机设备和存储介质 | |
CN106385426B (zh) | 节点内容的命中方法及装置 | |
CN109639748A (zh) | Dns服务器的缓存更新方法、装置、系统及域名系统 | |
CN110557464A (zh) | Dns解析方法、权威dns服务器和dns解析系统 | |
JP2002525749A (ja) | インターネットキャッシングシステム、方法およびそのシステムの構成 | |
US20140222988A1 (en) | Method for adaptive content discovery for distributed shared caching system | |
KR20130087810A (ko) | 이동통신 시스템에서 협력적 캐슁 방법 및 장치 | |
CN107682281B (zh) | 一种sdn交换机和sdn交换机的应用管理方法 | |
CN105681489A (zh) | 一种域名系统dns查询的方法及装置 | |
Jayapal et al. | Enhanced service discovery protocol for MANET by effective cache management | |
Hattab et al. | A survey of replacement policies for mobile web caching | |
KR100347985B1 (ko) | 인터넷 주소 부가정보 제공 시스템 및 방법 | |
Mokhtarian | Content management in planet-scale video CDNs |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |