Dns缓存信息处理方法、设备及系统的制作方法

文档序号:6543003阅读:148来源:国知局
Dns缓存信息处理方法、设备及系统的制作方法
【专利摘要】本发明提供了一种DNS缓存信息处理方法、设备及系统。其中,该方法包括:当接收到客户端请求,解析得到客户端请求的域名信息;在数据库中查询与域名信息对应的数据结构;查询到数据结构时,获取与数据结构对应的读锁信息,其中,读锁信息为能够对存储于数据结构中的缓存信息执行读取操作的权限信息;利用读锁信息的权限在数据结构中读取缓存信息,并将读取到的缓存信息发送至客户端请求的发送方。采用本发明实施例能够达到提高相应速度以及缓存信息吞吐量,并且提高缓存信息灵活性,提升存储信息质量的有益效果。
【专利说明】DNS缓存信息处理方法、设备及系统
【技术领域】
[0001]本发明涉及互联网应用领域,特别是涉及一种DNS缓存信息处理方法、设备及系统。
【背景技术】
[0002]在人们的日常生活中,使用网络进行资料或者数据或者信息进行查询时,通常接收到利用域名系统(Domain Name System,以下简称DNS)技术缓存的结果。但是,DNS缓存结果具有一定的时效性,即在有效时间内,应答结果是不变的,因此可以放在服务器设备的高速缓存中,这样可以在极短时间内返回给客户端请求的结果。在有效时间过期后,系统去外部网络进行该域名的查询,并将结果更新在高速缓存中。
[0003]现有技术中,通常使用读写锁将对共享资源的访问者划分为读者和写者。读者仅对共享资源进行读访问,写者则需要对共享资源执行写操作。现有技术中,由于在写缓存时,读缓存线程无法读取数据,导致该线程的等待。因此,现有技术中,不同的域名缓存信息彼此相互影响,一个域名更新信息时,导致其他域名信息也无法被读取。当存在大量的更新操作,现有技术导致读取可能长时间推迟,响应速度会大大降低。另外,现有技术中,缓存更新不智能。现有技术中,缓存只是根据有效时间去决定是否更新,无法针对很多特殊要求的域名进行自动的缓存管理,无法更好的提高答应请求的质量。
[0004]综上,现有技术中对缓存信息进行处理时,存在不同缓存信息彼此影响,导致线程等待,降低相应速度的问题,以及没有预更新功能和更新控制策略,导致对缓存信息的更新不智能,缓存信息质量低下的问题,并且可能导致同一时间更新数量过多,影响用户的正常访问。

【发明内容】

[0005]鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的DNS缓存信息处理方法、设备以及相应的系统。
[0006]依据本发明的一个方面,提供了一种DNS缓存信息处理方法,包括:当接收到客户端请求,解析得到所述客户端请求的域名信息;在数据库中查询与所述域名信息对应的数据结构;查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;利用所述读锁信息的权限在所述数据结构中读取缓存信息,并将读取到的所述缓存信息发送至所述客户端请求的发送方。
[0007]可选地,在数据库中查询与所述域名信息对应的数据结构,包括:对所述域名信息进行哈希值运算,得到所述域名信息的哈希值;根据所述域名信息的哈希值在哈希表中查询与所述域名信息对应的数据结构。
[0008]可选地,在数据库中查询与所述域名信息对应的数据结构之后,还包括:若所述数据库中不存在与所述域名信息对应的数据结构,根据所述域名信息在服务器进行查询,并获取查询结果;发送所述查询结果至所述客户端请求的发送方,并将所述查询结果写入所述数据库。
[0009]可选地,将所述查询结果写入所述数据库,包括:在所述数据库设置与所述域名信息对应的数据结构;根据所述域名信息对所述数据结构进行初始设置;将所述查询结果写入所述数据结构,转换为所述数据结构存储的缓存信息。
[0010]可选地,根据所述域名信息对所述数据结构进行初始设置,包括:对所述域名信息进行分类;根据分类结果设置所述数据结构的加锁信息,其中,所述加锁信息为对所述缓存信息执行相应操作的权限信息,包括所述读锁信息以及写锁信息。
[0011]可选地,对与所述域名信息进行分类之后,还包括:根据所述分类结果设置对所述缓存信息进行更新的预设规则,其中,所述预设规则包括根据所述域名信息的级别和/或对所述域名信息访问量的统计设置对所述缓存信息的更新时间。
[0012]可选地,将所述缓存信息发送至所述客户端请求的发送方之后,还包括:根据对所述缓存信息进行更新的预设规则判断是否对所述缓存信息进行更新;若是,在所述服务器获取更新后的所述缓存信息,并写入所述数据库;若否,保持所述缓存信息不变。
[0013]可选地,将更新后的所述缓存信息写入所述数据库,包括:触发存储所述缓存信息的数据结构的写锁信息的获取操作;获取到所述写锁信息时,将更新后的所述缓存信息写入所述数据库。
[0014]依据本发明的另一个方面,还提供了一种DNS缓存信息处理设备,包括:接收器,配置为接收客户端请求;解析器,配置为解析得到所述客户端请求的域名信息;查询器,配置为在数据库中查询与所述域名信息对应的数据结构;获取器,配置为所述查询器查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;读取器,配置为利用所述读锁信息的权限在所述数据结构中读取缓存信息;发送器,配置为将读取到的所述缓存信息发送至所述客户端请求的发送方。
[0015]可选地,所述DNS缓存信息处理设备还包括:所述解析器还配置为,对所述域名信息进行哈希值运算,得到所述域名信息的哈希值;所述查询器还配置为,根据所述域名信息的哈希值在哈希表中查询与所述域名信息对应的数据结构。
[0016]可选地,所述DNS缓存信息处理设备还包括:所述查询器还配置为,若所述数据库中不存在与所述域名信息对应的数据结构,根据所述域名信息在服务器进行查询,并获取查询结果;所述发送器还配置为,发送所述查询结果至所述客户端请求的发送方;写入器,配置为将所述查询结果写入所述数据库。
[0017]可选地,所述写入器配置为按照如下步骤将所述查询结果写入所述数据库:在所述数据库设置与所述域名信息对应的数据结构;根据所述域名信息对所述数据结构进行初始设置;将所述查询结果写入所述数据结构,转换为所述数据结构存储的缓存信息。
[0018]可选地,所述写入器还配置为:对所述域名信息进行分类;根据分类结果设置所述数据结构的加锁信息,其中,所述加锁信息为对所述缓存信息执行相应操作的权限信息,包括所述读锁信息以及写锁信息。
[0019]可选地,所述写入器还配置为:根据所述分类结果设置对所述缓存信息进行更新的预设规则,其中,所述预设规则包括根据所述域名信息的级别和/或对所述域名信息访问量的统计设置对所述缓存信息的更新时间。
[0020]可选地,所述DNS缓存信息处理设备还包括:更新器,配置为,当所述发送器将所述缓存信息发送至所述客户端请求的发送方之后,根据对所述缓存信息进行更新的预设规则判断是否对所述缓存信息进行更新;若是,在所述服务器获取更新后的所述缓存信息,并触发所述写入器将所述更新后的缓存信息写入所述数据库;若否,保持所述缓存信息不变。
[0021]可选地,所述写入器还配置为按照如下步骤将更新后的所述缓存信息写入所述数据库:触发存储所述缓存信息的数据结构的写锁信息的获取操作;获取到所述写锁信息时,将更新后的所述缓存信息写入所述数据库。
[0022]依据本发明的另一个方面,还提供了一种DNS域名解析系统,包括上述的DNS缓存信息处理设备,客户端以及域名解析设备,其中,所述客户端,配置为发送客户端请求至所述DNS缓存信息处理设备;所述DNS缓存信息处理设备,配置为当接收到所述客户端请求,解析得到所述客户端请求的域名信息;在数据库中查询与所述域名信息对应的数据结构;查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;利用所述读锁信息的权限在所述数据结构中读取缓存信息,并将读取到的所述缓存信息发送至所述客户端请求的发送方;域名解析设备,配置为根据所述缓存信息对所述域名信息对应的域名进行解析。
[0023]本发明实施例中,当接收到客户端请求,解析得到客户端请求的域名信息,并在数据库中查询与域名信息对应的数据结构。查询到数据结构时,本发明实施例获取与数据结构对应的读锁信息,并利用读锁信息的权限在数据结构中读取缓存信息,进而将缓存信息发送至客户端请求的发送方。依据本发明实施例提供的DNS缓存信息处理方法,能够使用与缓存信息一一对应的读锁对缓存信息进行读取。并且,对该缓存信息的读取不会影响到对其他缓存信息的操作,解决了现有技术中对所有域名信息对应的数据结构的整体设置加锁信息,导致对不同域名信息对应的缓存信息进行的操作相互影响,导致相应速度降低的问题,能够更加准确快速地对缓存信息执行操作。同样,本发明实施例中,获取与缓存信息对应的写锁,并根据写锁对缓存信息执行写操作,而不影响对其他缓存信息执行操作。另夕卜,本发明实施例中,设置对缓存信息的更新策略,对缓存信息进行主动更新,避免现有技术中,仅根据时间是否失效对缓存信息进行更新导致缓存信息质量低下的问题。综上,采用本发明实施例能够达到提高相应速度以及缓存信息吞吐量,并且提高缓存信息灵活性,提升存储信息质量的有益效果。
[0024]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
[0025]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
【专利附图】

【附图说明】
[0026]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:[0027]图1示出了根据本发明一个实施例的DNS缓存信息处理方法的处理流程图;
[0028]图2示出了根据本发明一个实施例的DNS缓存信息处理设备的结构示意图;
[0029]图3示出了根据本发明一个优选实施的DNS缓存信息处理设备的结构示意图;
[0030]图4示出了根据本发明一个实施例的DNS域名解析系统的结构示意图;以及
[0031]图5示出了根据本发明一个优选实施例的DNS域名解析系统的架构图。
【具体实施方式】
[0032]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0033]相关技术中提及,对缓存信息进行处理时,存在不同缓存信息彼此影响,导致线程等待,降低相应速度的问题,以及没有预更新功能和更新控制策略,导致对缓存信息的更新不智能,缓存信息质量低下的问题,并且可能导致同一时间更新数量过多,影响用户的正常访问。
[0034]为解决上述技术问题,本发明实施例提供了一种DNS缓存信息处理方法。图1示出了根据本发明一个实施例的DNS缓存信息处理方法的处理流程图。参见图1,该流程至少包括步骤S102至步骤S108。
[0035]步骤S102、当接收到客户端请求,解析得到客户端请求的域名信息。
[0036]步骤S104、在数据库中查询与域名信息对应的数据结构。
[0037]步骤S106、查询到数据结构时,获取与数据结构对应的读锁信息,其中,读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息。
[0038]步骤S108、利用读锁信息的权限在数据结构中读取缓存信息,并将读取到的缓存信息发送至所述客户端请求的发送方。
[0039]本发明实施例中,当接收到客户端请求,解析得到客户端请求的域名信息,并在数据库中查询与域名信息对应的数据结构。查询到数据结构时,本发明实施例获取与数据结构对应的读锁信息,并利用读锁信息的权限在数据结构中读取缓存信息,进而将缓存信息发送至客户端请求的发送方。依据本发明实施例提供的DNS缓存信息处理方法,能够使用与缓存信息一一对应的读锁对缓存信息进行读取。并且,对该缓存信息的读取不会影响到对其他缓存信息的操作,解决了现有技术中对所有域名信息对应的数据结构的整体设置加锁信息,导致对不同域名信息对应的缓存信息进行的操作相互影响,导致相应速度降低的问题,能够更加准确快速地对缓存信息执行操作。同样,本发明实施例中,获取与缓存信息对应的写锁,并根据写锁对缓存信息执行写操作,而不影响对其他缓存信息执行操作。另夕卜,本发明实施例中,设置对缓存信息的更新策略,对缓存信息进行主动更新,避免现有技术中,仅根据时间是否失效对缓存信息进行更新导致缓存信息质量低下的问题。综上,采用本发明实施例能够达到提高相应速度以及缓存信息吞吐量,并且提高缓存信息灵活性,提升存储信息质量的有益效果。
[0040]上文提及,本发明实施例中,能够解析接收到的客户端请求,得到客户端请求的域名信息,并根据域名信息在数据库中查询与域名信息对应的数据结构。优选地,本发明实施例中,能够对解析得到的域名信息进行哈希值运算,得到域名信息的哈希值。进而根据域名信息的哈希值在哈希表中查询与域名信息对应的数据结构。其中,哈希表是根据关键码值能够直接进行访问的数据结构的列表。即,哈希表通过将关键码值映射到表中一个位置来访问记录。因此,使用哈希表能够加快查找速度。另外,将关键码值映射到表中一个位置进行访问的映射函数可以被称为散列函数,因此,哈希表可以被称为散列表。
[0041]缓存信息通过哈希运算存放在数据结构中,而在获取到客户端请求之后,本发明实施例对客户端请求的域名信息同样进行哈希运算,进而根据获取的哈希值查询对应的数据结构。若查找到对应的数据结构,即存在存储于数据结构中的缓存信息,则获取读锁,利用获取到的读锁的权限对缓存信息进行读取。读取之后,能够将缓存信息发送至客户端请求的发送方。若无法查找到对应的数据结构,则本发明实施例根据域名信息在服务器中进行查询。获取到查询结果之后,将查询结果发送至客户端请求的发送方,并将查询结果写入数据库。
[0042]在将在服务器中查询到的查询结果写入数据库时,本发明实施例根据与查询结果对应的域名信息,在数据库设置对应的数据结构,并根据域名信息对数据结构进行初始设置。对数据结构进行初始设置时,首先对域名信息进行分类,例如,能够根据域名信息是否属于恶意攻击的域名信息进行分类,根据域名信息是否属于包含特殊信息的域名信息进行分类,和/或根据域名信息是否存在特殊要求对域名信息进行分类。其中,可以设置符合攻击特征的包信息作为域名信息中的特殊信息对域名信息进行分类。其次,根据对域名信息的分类对数据结构设置加锁信息。本发明实施例中,对数据结构设置的加锁信息包括读锁信息,包括写锁信息,还可以包括其他能够对查询结果进行操作的权限信息,本发明实施例对此并不加以限定。
[0043]根据上文对数据结构进行初始设置之后,将在服务器中获取到的查询结果写入数据结构,则查询结果转换为缓存至数据结构的缓存信息。当接收到针对该缓存信息的其他客户端请求时,能够在获取读锁之后,直接读取该缓存信息,并将缓存信息发送至客户端请求的发送方。另外,本发明实施例还可以根据对域名信息的分类,对缓存信息设置进行更新的预设规则。例如,本发明实施例能够根据域名信息为恶意攻击类型的域名信息设置对缓存信息的预设规则为,每隔五分钟对缓存信息进行更新,接收到针对该缓存信息的客户端请求超过三次之后,对缓存信息进行更新。再例如,本发明实施例能够根据域名信息的重要级别和/或对域名信息访问数量的统计对域名信息进行分类。如对域名信息访问数量统计并排序之后,获取访问数量为前100名的域名信息作为同一类别的域名信息,并对该类别的域名信息设置如下更新的预设规则:在生存时间(Time To Live,以下简称TTL)过期的前五秒钟,对该类域名信息对应的缓存信息进行更新。其中,TTL表示记录在数据库上缓存时间。
[0044]当接收到客户端请求,经过解析获取域名信息,并进一步查询到对应的数据结构之后,获取读锁对缓存信息进行读取。读取之后,根据设置的对缓存信息进行更新的预设规贝U,判断是否需要对缓存信息进行更新。例如,上文提及的示例中,当缓存信息对应的域名信息为恶意攻击类的域名信息时(如根据域名信息中的请求类型或者域名信息中的请求附加信息确定域名信息是否为恶意攻击类的域名信息),将缓存信息发送至客户端请求发送方之后,根据对缓存信息设置的更新的预设规则,判断出缓存信息存在时间已经超过五分钟,则在服务器中获取与域名信息对应的查询结果,并将查询结果更新至对应的数据结构,作为更新后的缓存信息。更新时,首先获取与数据结构对应的写锁。其次,利用写锁的权限将更新后的缓存信息写入数据结构。当再次接受到客户端请求时,将更新后的缓存信息发送至客户端请求的发送方。当发送缓存信息至客户端发送方之后,根据对缓存信息设置的更新的预设规则,不需要对缓存信息进行更新,则保持缓存信息不变。
[0045]上文提及,本发明实施例中,将在服务器中获取的查询结果通过哈希运算存放于数据库(如哈希表)中的数据结构中。当接收到客户端请求时,根据对客户端请求的解析得到域名信息,进而根据对域名信息进行哈希运算能够得到域名信息的哈希值,进一步在数据库中查找到对应的数据结构。在数据结构中能够获取缓存信息,并发送至客户端请求的发送方。若未能查找到数据结构,则在服务器中进行查询。获取到查询结果之后,将查询结果发送至客户端请求的发送方,并且将查询结果写入数据库。因此,接收到下一个客户端请求时能够将缓存信息及时发送至客户端请求的发送方,达到快速应答的有益效果。
[0046]存储缓存信息的数据库在实际应用中通常运行在多核服务器上。其中,多核服务器指在一枚处理器中集成两个或者多个完整的计算机引擎(即内核)。因此,在多核服务器的数据库中能够语序各种操作多线程同时进行。因此,同一时间对数据库中不同的数据结构存在多个读操作或者写操作。为保证读操作和/或写操作的正确性,对数据结构进行加锁设置,保证同一时间仅能够由获得锁的线程对数据结构中的缓存信息进行操作。即对数据结构进行的加锁设置为对数据结构中的缓存信息进行操作的权限信息。
[0047]由于现有技术中,对数据库中的一个数据结构获取读锁,进而对数据结构中的缓存信息进行读取不会对操作其他数据结构中的缓存信息造成影响,但对数据库中的一个数据结构获取写锁,进而对数据结构中的缓存信息进行写操作将延迟对其他数据结构中缓存信息的操作。因此,现有技术中,仅能够通过提高读锁的使用量,降低写锁的使用量提高系统性能。本发明实施例中,针对每一个数据结构设置对应的写锁以及读锁,能够保证对单一数据结构的操作对其他任意数据结构无法造成影响,提高系统的性能以及操作效率,提升用户体验。
[0048]基于上文各优选实施例提供的DNS缓存信息处理方法,基于同一发明构思,本发明实施例提供了一种DNS缓存信息处理设备,用于实现上述DNS缓存信息处理方法。
[0049]图2示出了根据本发明一个实施例的DNS缓存信息处理设备的结构示意图。参见图2,本发明实施例的DNS缓存信息处理设备至少包括:接收器210、解析器220、查询器230、获取器240、读取器250以及发送器260。
[0050]现介绍本发明实施例的DNS缓存信息处理设备的各器件或组成的功能以及各部分间的连接关系:
[0051]接收器210,配置为接收客户端请求;
[0052]解析器220,配置为解析得到客户端请求的域名信息;
[0053]查询器230,配置为在数据库中查询与域名信息对应的数据结构;
[0054]获取器240,配置为查询器230查询到数据结构时,获取与数据结构对应的读锁信息,其中,读锁信息为能够对存储于数据结构中的缓存信息执行读取操作的权限信息;
[0055]读取器250,配置为利用读锁信息的权限在数据结构中读取缓存信息;[0056]发送器260,配置为将读取到的缓存信息发送至客户端请求的发送方。
[0057]一个优选的实施例中,还包括:
[0058]解析器220还配置为,对域名信息进行哈希值运算,得到域名信息的哈希值;
[0059]查询器230还配置为,根据域名信息的哈希值在哈希表中查询与域名信息对应的数据结构。
[0060]图3示出了根据本发明一个优选实施的DNS缓存信息处理设备的结构示意图。参见图3,一个优选的实施例中,还包括:
[0061]查询器230还配置为,若数据库中不存在与域名信息对应的数据结构,根据域名信息在服务器进行查询,并获取查询结果;
[0062]发送器260还配置为,发送查询结果至客户端请求的发送方;
[0063]写入器280,配置为将查询结果写入数据库。
[0064]一个优选的实施例中,写入器280配置为按照如下步骤将查询结果写入数据库:
[0065]在数据库设置与域名信息对应的数据结构;
[0066]根据域名信息对数据结构进行初始设置;
[0067]将查询结果写入数据结构,转换为数据结构存储的缓存信息。
[0068]一个优选的实施例中,写入器280还配置为:
[0069]对域名信息进行分类;
[0070]根据分类结果设置数据结构的加锁信息,其中,加锁信息为对缓存信息执行相应操作的权限信息,包括读锁信息以及写锁信息。
[0071]一个优选的实施例中,写入器280还配置为:
[0072]根据分类结果设置对缓存信息进行更新的预设规则。
[0073]如图3所示,一个优选的实施例中,还包括:
[0074]更新器270,配置为,
[0075]当发送器260将缓存信息发送至客户端请求的发送方之后,根据对缓存信息进行更新的预设规则判断是否对缓存信息进行更新;
[0076]若是,在服务器获取更新后的缓存信息,并触发写入器280将更新后的缓存信息写入数据库;
[0077]若否,保持缓存信息不变。
[0078]—个优选的实施例中,写入器280还配置为按照如下步骤将更新后的缓存信息写入数据库:
[0079]触发存储缓存信息的数据结构的写锁信息的获取操作;
[0080]获取到写锁信息时,将更新后的缓存信息写入数据库。
[0081]基于上文各优选实施例提供的DNS缓存信息处理方法及设备,基于同一发明构思,本发明实施例提供了一种DNS域名解析系统。图4示出了根据本发明一个实施例的DNS域名解析系统的结构示意图。参见图4,本发明实施例提供的DNS域名解析系统至少包括:客户端410、DNS缓存信息处理设备420以及域名解析设备430。需要说明的是,图4仅示出了一个客户端410,实际操作中,客户端410可以是任意整数个,本发明实施例对此并不加以限定。
[0082]现介绍本发明实施例的DNS域名解析系统中各组成的功能以及各部分间的连接关系:
[0083]客户端410,配置为发送客户端请求至DNS缓存信息处理设备420。
[0084]DNS缓存信息处理设备420,与客户端410相耦合,配置为当接收到客户端请求,解析得到客户端请求的域名信息;在数据库中查询与域名信息对应的数据结构;查询到数据结构时,获取与数据结构对应的读锁信息,其中,读锁信息为能够对存储于数据结构中的缓存信息执行读取操作的权限信息;利用读锁信息的权限在数据结构中读取缓存信息,并将读取到的缓存信息发送至客户端请求的发送方。
[0085]域名解析设备430,与DNS缓存信息处理设备420相耦合,配置为根据缓存信息对域名信息对应的域名进行解析。
[0086]图5示出了根据本发明一个优选实施例的DNS域名解析系统的架构图。参见图5,上海电信、北京电信、上海联通以及北京联通的用户发出客户端请求。针对上海电信用户,其DNS域名解析系统位于上海电信服务器群(图5中的上海电信的云状图标)中,该系统内的DNS缓存信息处理设备能够使用读写锁对缓存信息进行读操作和/或写操作。并且,对单一缓存信息的操作不会影响到对其他缓存信息的操作,避免对不同域名信息对应的缓存信息进行操作的相互影响。因此,该系统的DNS缓存信息处理设备提高对客户端请求的相应速度,能够更加准确快速地对缓存信息执行操作。另外,该系统内的DNS缓存信息处理设备能够设置对缓存信息的更新策略,对缓存信息进行主动更新,避免缓存信息指令低下的问题。
[0087]同理,针对北京电信用户,其DNS域名解析系统位于北京电信服务器群(图5中的北京电信的云状图标)中,该系统内的DNS缓存信息处理设备执行上述操作。而针对上海联通用户而言,其DNS域名解析系统位于上海联通服务器群(图5中的上海联通的云状图标)中,该系统内的DNS缓存信息处理设备执行上述操作。以及,针对北京联通用户而言,其DNS域名解析系统位于北京联通服务器群(图5中的北京联通的云状图标)中,该系统内的DNS缓存信息处理设备执行上述操作。
[0088]本发明实施例系统内的DNS缓存信息处理设备能够根据客户端请求查找到对应的缓存信息并发送至对应的客户端请求发送方。并且,在发送之后,能够根据预设规则对缓存信息进行及时更新。因此,在如图5所示的域名解析系统中的DNS缓存信息处理设备能够采用缓存存取优化和/或预更新等手段降低解析时延,进而能够提高解析效率,优化系统性能。
[0089]参见图5,各DNS域名解析系统另一侧与RCS集群以及灾备系统相连,通过RCS集群以及灾备系统与递归DNS连接。其中,递归DNS根据地域划分可以分为北京递归DNS、上海递归NDS、广东递归DNS等等。
[0090]根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
[0091]本发明实施例中,当接收到客户端请求,解析得到客户端请求的域名信息,并在数据库中查询与域名信息对应的数据结构。查询到数据结构时,本发明实施例获取与数据结构对应的读锁信息,并利用读锁信息的权限在数据结构中读取缓存信息,进而将缓存信息发送至客户端请求的发送方。依据本发明实施例提供的DNS缓存信息处理方法,能够使用与缓存信息一一对应的读锁对缓存信息进行读取。并且,对该缓存信息的读取不会影响到对其他缓存信息的操作,解决了现有技术中对所有域名信息对应的数据结构的整体设置加锁信息,导致对不同域名信息对应的缓存信息进行的操作相互影响,导致相应速度降低的问题,能够更加准确快速地对缓存信息执行操作。同样,本发明实施例中,获取与缓存信息对应的写锁,并根据写锁对缓存信息执行写操作,而不影响对其他缓存信息执行操作。另夕卜,本发明实施例中,设置对缓存信息的更新策略,对缓存信息进行主动更新,避免现有技术中,仅根据时间是否失效对缓存信息进行更新导致缓存信息质量低下的问题。综上,采用本发明实施例能够达到提高相应速度以及缓存信息吞吐量,并且提高缓存信息灵活性,提升存储信息质量的有益效果。
[0092]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0093]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0094]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0095]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0096]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的DNS缓存信息处理设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0097]应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0098]至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
[0099]本发明实施例还公开了 Al.—种DNS缓存信息处理方法,包括:
[0100]当接收到客户端请求,解析得到所述客户端请求的域名信息;
[0101]在数据库中查询与所述域名信息对应的数据结构;
[0102]查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;
[0103]利用所述读锁信息的权限在所述数据结构中读取缓存信息,并将读取到的所述缓存信息发送至所述客户端请求的发送方。
[0104]A2.根据Al所述的方法,其中,在数据库中查询与所述域名信息对应的数据结构,包括:
[0105]对所述域名信息进行哈希值运算,得到所述域名信息的哈希值;
[0106]根据所述域名信息的哈希值在哈希表中查询与所述域名信息对应的数据结构。
[0107]A3.根据Al或A2所述的方法,其中,在数据库中查询与所述域名信息对应的数据结构之后,还包括:
[0108]若所述数据库中不存在与所述域名信息对应的数据结构,根据所述域名信息在服务器进行查询,并获取查询结果;
[0109]发送所述查询结果至所述客户端请求的发送方,并将所述查询结果写入所述数据库。
[0110]A4.根据A3所述的方法,其中,将所述查询结果写入所述数据库,包括:
[0111]在所述数据库设置与所述域名信息对应的数据结构;
[0112]根据所述域名信息对所述数据结构进行初始设置;
[0113]将所述查询结果写入所述数据结构,转换为所述数据结构存储的缓存信息。
[0114]A5.根据A4所述的方法,其中,根据所述域名信息对所述数据结构进行初始设置,包括:
[0115]对所述域名信息进行分类;
[0116]根据分类结果设置所述数据结构的加锁信息,其中,所述加锁信息为对所述缓存信息执行相应操作的权限信息,包括所述读锁信息以及写锁信息。
[0117]A6.根据A5所述的方法,其中,对与所述域名信息进行分类之后,还包括:
[0118]根据所述分类结果设置对所述缓存信息进行更新的预设规则,其中,所述预设规则包括根据所述域名信息的级别和/或对所述域名信息访问量的统计设置对所述缓存信息的更新时间。
[0119]A7.根据A6所述的方法,其中,将所述缓存信息发送至所述客户端请求的发送方之后,还包括:
[0120]根据对所述缓存信息进行更新的预设规则判断是否对所述缓存信息进行更新;
[0121]若是,在所述服务器获取更新后的所述缓存信息,并写入所述数据库;
[0122]若否,保持所述缓存信息不变。
[0123]AS.根据A7所述的方法,其中,将更新后的所述缓存信息写入所述数据库,包括:
[0124]触发存储所述缓存信息的数据结构的写锁信息的获取操作;
[0125]获取到所述写锁信息时,将更新后的所述缓存信息写入所述数据库。
[0126]本发明实施例还公开了 B9.—种DNS缓存信息处理设备,包括:
[0127]接收器,配置为接收客户端请求;
[0128]解析器,配置为解析得到所述客户端请求的域名信息;
[0129]查询器,配置为在数据库中查询与所述域名信息对应的数据结构;
[0130]获取器,配置为所述查询器查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;
[0131]读取器,配置为利用所述读锁信息的权限在所述数据结构中读取缓存信息;
[0132]发送器,配置为将读取到的所述缓存信息发送至所述客户端请求的发送方。
[0133]B10.根据B9所述的设备,其中,还包括:
[0134]所述解析器还配置为,对所述域名信息进行哈希值运算,得到所述域名信息的哈希值;
[0135]所述查询器还配置为,根据所述域名信息的哈希值在哈希表中查询与所述域名信息对应的数据结构。
[0136]Bll.根据B9或BlO所述的设备,其中,还包括:
[0137]所述查询器还配置为,若所述数据库中不存在与所述域名信息对应的数据结构,根据所述域名信息在服务器进行查询,并获取查询结果;
[0138]所述发送器还配置为,发送所述查询结果至所述客户端请求的发送方;
[0139]写入器,配置为将所述查询结果写入所述数据库。
[0140]B12.根据Bll所述的设备,其中,
[0141]所述写入器配置为按照如下步骤将所述查询结果写入所述数据库:
[0142]在所述数据库设置与所述域名信息对应的数据结构;
[0143]根据所述域名信息对所述数据结构进行初始设置;
[0144]将所述查询结果写入所述数据结构,转换为所述数据结构存储的缓存信息。
[0145]B13.根据B12所述的设备,其中,所述写入器还配置为:
[0146]对所述域名信息进行分类;
[0147]根据分类结果设置所述数据结构的加锁信息,其中,所述加锁信息为对所述缓存信息执行相应操作的权限信息,包括所述读锁信息以及写锁信息。
[0148]B14.根据B13所述的设备,其中,所述写入器还配置为:[0149]根据所述分类结果设置对所述缓存信息进行更新的预设规则,其中,所述预设规则包括根据所述域名信息的级别和/或对所述域名信息访问量的统计设置对所述缓存信息的更新时间。
[0150]B15.根据B14所述的设备,其中,还包括:
[0151]更新器,配置为,
[0152]当所述发送器将所述缓存信息发送至所述客户端请求的发送方之后,根据对所述缓存信息进行更新的预设规则判断是否对所述缓存信息进行更新;
[0153]若是,在所述服务器获取更新后的所述缓存信息,并触发所述写入器将所述更新后的缓存信息写入所述数据库;
[0154]若否,保持所述缓存信息不变。
[0155]B16.根据B15所述的设备,其中,
[0156]所述写入器还配置为按照如下步骤将更新后的所述缓存信息写入所述数据库:
[0157]触发存储所述缓存信息的数据结构的写锁信息的获取操作;
[0158]获取到所述写锁信息时,将更新后的所述缓存信息写入所述数据库。
[0159]本发明实施例还公开了 C17.—种DNS域名解析系统,包括B9至B16任一项所述的DNS缓存信息处理设备,客户端以及域名解析设备,其中,
[0160]所述客户端,配置为发送客户端请求至所述DNS缓存信息处理设备;
[0161]所述DNS缓存信息处理设备,配置为当接收到所述客户端请求,解析得到所述客户端请求的域名信息;在数据库中查询与所述域名信息对应的数据结构;查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;利用所述读锁信息的权限在所述数据结构中读取缓存信息,并将读取到的所述缓存信息发送至所述客户端请求的发送方;
[0162]所述域名解析设备,配置为根据所述缓存信息对所述域名信息对应的域名进行解析。
【权利要求】
1.一种DNS缓存信息处理方法,包括: 当接收到客户端请求,解析得到所述客户端请求的域名信息; 在数据库中查询与所述域名信息对应的数据结构; 查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息; 利用所述读锁信息的权限在所述数据结构中读取缓存信息,并将读取到的所述缓存信息发送至所述客户端请求的 发送方。
2.根据权利要求1所述的方法,其中,在数据库中查询与所述域名信息对应的数据结构,包括: 对所述域名信息进行哈希值运算,得到所述域名信息的哈希值; 根据所述域名信息的哈希值在哈希表中查询与所述域名信息对应的数据结构。
3.根据权利要求1或2所述的方法,其中,在数据库中查询与所述域名信息对应的数据结构之后,还包括: 若所述数据库中不存在与所述域名信息对应的数据结构,根据所述域名信息在服务器进行查询,并获取查询结果; 发送所述查询结果至所述客户端请求的发送方,并将所述查询结果写入所述数据库。
4.根据权利要求3所述的方法,其中,将所述查询结果写入所述数据库,包括: 在所述数据库设置与所述域名信息对应的数据结构; 根据所述域名信息对所述数据结构进行初始设置; 将所述查询结果写入所述数据结构,转换为所述数据结构存储的缓存信息。
5.根据权利要求4所述的方法,其中,根据所述域名信息对所述数据结构进行初始设置,包括: 对所述域名信息进行分类; 根据分类结果设置所述数据结构的加锁信息,其中,所述加锁信息为对所述缓存信息执行相应操作的权限信息,包括所述读锁信息以及写锁信息。
6.根据权利要求5所述的方法,其中,对与所述域名信息进行分类之后,还包括: 根据所述分类结果设置对所述缓存信息进行更新的预设规则,其中,所述预设规则包括根据所述域名信息的级别和/或对所述域名信息访问量的统计设置对所述缓存信息的更新时间。
7.根据权利要求6所述的方法,其中,将所述缓存信息发送至所述客户端请求的发送方之后,还包括: 根据对所述缓存信息进行更新的预设规则判断是否对所述缓存信息进行更新; 若是,在所述服务器获取更新后的所述缓存信息,并写入所述数据库; 若否,保持所述缓存信息不变。
8.根据权利要求7所述的方法,其中,将更新后的所述缓存信息写入所述数据库,包括: 触发存储所述缓存信息的数据结构的写锁信息的获取操作; 获取到所述写锁信息时,将更新后的所述缓存信息写入所述数据库。
9.一种DNS缓存信息处理设备,包括:接收器,配置为接收客户端请求; 解析器,配置为解析得到所述客户端请求的域名信息; 查询器,配置为在数据库中查询与所述域名信息对应的数据结构; 获取器,配置为所述查询器查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息; 读取器,配置为利用所述读锁信息的权限在所述数据结构中读取缓存信息; 发送器,配置为将读取到的所述缓存信息发送至所述客户端请求的发送方。
10.一种DNS域名解析系统,包括权利要求9所述的DNS缓存信息处理设备,客户端以及域名解析设备,其中, 所述客户端,配置为发送客户端请求至所述DNS缓存信息处理设备; 所述DNS缓存信息处理设备,配置为当接收到所述客户端请求,解析得到所述客户端请求的域名信息;在数据库中查询与所述域名信息对应的数据结构;查询到所述数据结构时,获取与所述数据结构对应的读锁信息,其中,所述读锁信息为能够对存储于所述数据结构中的缓存信息执行读取操作的权限信息;利用所述读锁信息的权限在所述数据结构中读取缓存信息,并将读取到的所述缓存信息发送至所述客户端请求的发送方; 所述域名解析设备,配置为根据所述缓存信息对所述域名信息对应的域名进行解析。
【文档编号】G06F17/30GK103957239SQ201410135732
【公开日】2014年7月30日 申请日期:2014年4月4日 优先权日:2014年4月4日
【发明者】濮灿 申请人:上海聚流软件科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1