本发明专利技术实施例涉及数据处理领域,公开了一种数据存储方法及缓存服务器。数据存储方法应用于包括用户态程序与内核态模块的缓存服务器,该数据存储方法包括:在与源服务器建立通信连接后,内核态模块创建与通信连接对应的文件,并将文件的路径信息发送至用户态程序;在接收到源服务器通过通信连接发送的数据时,内核态模块将数据复制到文件中;用户态程序基于路径信息控制内核态模块将文件中的数据存入缓存服务器的存储设备。在本申请中,不再需要通过将数据从内核态模块复制至用户态程序后,再由用户态程序解析数据并控制内核态模块将数据存入存储设备,节省了缓存服务器的处理器资源以及内存资源,加快了数据完成接收的速度。度。度。
【技术实现步骤摘要】
数据存储方法及缓存服务器
[0001]本专利技术实施例涉及数据处理领域,特别涉及数据存储方法及缓存服务器。
技术介绍
[0002]随着多媒体时代的来临,网络中的数据量呈爆发式增长,在内容分发网络中需要传输和存储越来越多的文件。在内容分发网络中,缓存服务器承担了数据接收、处理和存储的多重任务,为了应对数据量爆发式增长,减少缓存服务器从开始接收数据到最终将数据存入存储设备的时间以及减少整个过程中的缓存服务器的处理器资源消耗和内存资源消耗已经成为缓存服务器性能优化的重要目标。
[0003]目前,缓存服务器的内核态在接收到需要存入存储设备的数据后,需要将数据复制至缓存服务器的用户态,以供用户态对数据进行解析,并通过调用内核态中的文件系统写函数控制内核态将数据存入存储设备,实现了数据的持久化。然而,将数据从内核态复制至用户态,再由内核态复制到用户态,消耗了缓存服务器的处理器资源,同时增加了数据的传输时间,降低了数据完成接收的速度;同时,同一份数据同时存在于内核态与用户态,占用了缓存服务器的内存资源。
技术实现思路
[0004]本专利技术实施方式的目的在于提供一种数据存储方法及缓存服务器,节省了缓存服务器的处理器资源,减少了数据的传输时间,同时节省了缓存服务器的内存资源。
[0005]为解决上述技术问题,本专利技术的实施方式提供了一种数据存储方法,应用于包括用户态程序与内核态模块的缓存服务器,包括以下步骤:在缓存服务器与源服务器建立通信连接后,内核态模块创建与通信连接对应的文件,并将文件的路径信息发送至用户态程序;在接收到源服务器通过通信连接发送的数据时,内核态模块将数据复制到文件中;用户态程序基于路径信息控制内核态模块将文件中的数据存入缓存服务器的存储设备。
[0006]本专利技术的实施方式还提供了一种缓存服务器,包括:用户态程序与内核态模块;内核态模块用于在缓存服务器与源服务器建立通信连接后,创建与通信连接对应的文件,并将文件的路径信息发送至用户态程序;内核态模块还用于在接收到源服务器通过通信连接发送的数据时,将数据复制到文件中;用户态程序用于基于路径信息控制内核态模块将文件中的数据存入缓存服务器的存储设备。
[0007]本专利技术的实施方式还提供了一种缓存服务器,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,处理器包括用户态程序与内核态模块;存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述实施方式所述的数据存储方法。
[0008]本专利技术实施方式相对于现有技术而言,缓存服务器在与源服务器建立通信连接后,内核态模块会在文件系统中创建与通信连接对应的文件,并将文件的路径信息发送至用户态程序;在接收到源服务器通过通信连接发送的数据时,内核态模块将数据复制到文
件中,从而用户态程序可以根据接收到的文件的路径信息,控制内核态模块将文件中的数据存入缓存服务器的存储设备;即,用户态程序通过内核态模块发送的文件的路径信息来控制内核态模块将文件中的数据存入缓存服务器的存储设备中,仅需在内核态模块的内存中缓存接收到的数据,用户态程序与内核态模块之间仅需交互文件的路径信息,减少了数据在内核态模块与用户态程序之间的拷贝过程,节省了缓存服务器的处理器资源以及内存资源;同时,由于简化了缓存服务器从数据接收到最终将数据存入存储设备进行持久化的过程,在一定程度上加快了数据完成接收的速度。
[0009]另外,文件包括至少一个内核页面,内核态模块将数据复制到文件中,包括:内核态模块将数据复制到文件的内核页面中,并将缓存有数据的内核页面置脏;用户态程序基于路径信息控制内核态模块将文件中的数据存入缓存服务器的存储设备,包括:用户态程序基于路径信息控制内核态模块将被置脏的内核页面中的数据存入存储设备。本实施例中,提供了内核态模块将数据复制到文件中的一种具体实现方式,在将数据缓存到文件的内核页面时,将内核页面置脏,后续可以仅将被置脏的内核页面中的数据存入存储设备,保证了存入存储设备的数据的完整性。
[0010]另外,用户态程序基于路径信息控制内核态模块将被置脏的内核页面中的数据存入存储设备,包括:用户态程序在判定满足预设条件时,基于路径信息控制内核态模块将被置脏的内核页面中的数据存入存储设备;预设条件为以下任意之一:缓存服务器的可用内存小于预设阈值、被置脏的内核页面在内核态模块的内存中存储的时间大于预设时间、接收到用户端发送的存入指令。本实施例提供了用户态程序控制内核态模块将被置脏的内核页面中的数据存入存储设备的具体场景。
[0011]另外,在内核态模块创建与通信连接对应的文件之前,还包括:在与源服务器建立通信连接之前,用户态程序向内核态模块发送资源获取请求;其中,资源获取请求包含路径信息;内核态模块创建与通信连接对应的文件,包括:内核态模块根据资源获取请求中的路径信息创建与通信连接对应的文件。本实施方式提供了文件的路径信息的一种获取方式。
[0012]另外,内核态模块创建与通信连接对应的文件,包括:内核态模块生成通信连接对应的文件的路径信息,并根据生成的路径信息创建与通信连接对应的文件。本实施方式提供了文件的路径信息的另一种获取方式。
[0013]另外,将文件的路径信息发送至用户态程序,包括:内核态模块在创建与通信连接对应文件成功时,将文件的路径信息发送至用户态程序;内核态模块在创建与通信连接对应文件失败时,发送表征文件创建失败的第一通知信息给用户态程序;数据存储方法,还包括:用户态程序在接收到第一通知信息时,控制内核态模块关闭通信连接。
[0014]另外,在用户态程序基于路径信息控制内核态模块将文件中的数据存入缓存服务器的存储设备之后,还包括:内核态模块在判定通信连接异常关闭时,删除已存入存储设备中的文件中的数据。本实施方式中,避免异常关闭的通信连接的数据存储在缓存服务器的存储设备中,减小了缓存服务器的存储资源的占用。
[0015]另外,数据存储方法还包括:内核态模块在接收源服务器发送的数据或者将文件中的数据存入存储设备的过程中出现异常时,将包括错误信息的异常状态信息同步至文件系统;用户态程序在读取到文件系统中的异常状态信息时,根据异常状态信息中的错误信息判断是否进行重试,并在判定进行重试时,控制内核态模块进行重试。
[0016]另外,将文件的路径信息发送至用户态程序,包括:内核态模块将文件对应的控制句柄发送至用户态程序;其中,控制句柄包含路径信息和操作句柄;用户态程序基于路径信息控制内核态模块将文件中的数据存入缓存服务器的存储设备,包括:用户态程序基于控制句柄中的路径信息,利用操作句柄控制内核态模块将文件中的数据存入缓存服务器的存储设备。
[0017]另外,内核态模块包括:持久化系统与文件系统;持久化系统用于在缓存服务器与源服务器建立通信连接后,在文件系统中创建与通信连接对应的文件,并将文件的路径信息发送至用户态程序;持久化系统用于在接收到源服务器通过通信连接发送的数据时,将数据复制到文件中。
附图说本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种数据存储方法,其特征在于,应用于包括用户态程序与内核态模块的缓存服务器;所述方法包括:在所述缓存服务器与源服务器建立通信连接后,所述内核态模块创建与所述通信连接对应的文件,并将所述文件的路径信息发送至所述用户态程序;在接收到所述源服务器通过所述通信连接发送的数据时,所述内核态模块将所述数据复制到所述文件中;所述用户态程序基于所述路径信息控制所述内核态模块将所述文件中的所述数据存入所述缓存服务器的存储设备。2.根据权利要求1所述的数据存储方法,其特征在于,所述文件包括至少一个内核页面,所述内核态模块将所述数据复制到所述文件中,包括:所述内核态模块将所述数据复制到所述文件的所述内核页面中,并将缓存有所述数据的所述内核页面置脏;所述用户态程序基于所述路径信息控制所述内核态模块将所述文件中的所述数据存入所述缓存服务器的存储设备,包括:所述用户态程序基于所述路径信息控制所述内核态模块将被置脏的所述内核页面中的所述数据存入所述存储设备。3.根据权利要求2所述的数据存储方法,其特征在于,所述用户态程序基于所述路径信息控制所述内核态模块将被置脏的所述内核页面中的所述数据存入所述存储设备,包括:所述用户态程序在判定满足预设条件时,基于所述路径信息控制所述内核态模块将被置脏的所述内核页面中的所述数据存入所述存储设备;所述预设条件为以下任意之一:所述缓存服务器的可用内存小于预设阈值、被置脏的所述内核页面在所述内核态模块的内存中存储的时间大于预设时间、接收到用户端发送的存入指令。4.根据权利要求1所述的数据存储方法,其特征在于,在所述内核态模块创建与所述通信连接对应的文件之前,还包括:在与所述源服务器建立所述通信连接之前,所述用户态程序向所述内核态模块发送资源获取请求;其中,所述资源获取请求包含所述路径信息;所述内核态模块创建与所述通信连接对应的文件,包括:所述内核态模块根据所述资源获取请求中的路径信息创建与所述通信连接对应的所述文件。5.根据权利要求1所述的数据存储方法,其特征在于,所述内核态模块创建与所述通信连接对应的文件,包括:所述内核态模块生成所述通信连接对应的文件的路径信息,并根据生成的所述路径信息创建与所述通信连接对应的所述文件。6.根据权利要求1所述的数据存储方法,其特征在于,所述将所述文件的路径信息发送至所述用户态程序,包括:所述内核态模块在创建与所述通信连接对应所述文件成功时,将所述文件的路径信息发送至所述用户态程序;所述内核态模块在创建与所述通信连接对应所述文件失败时,发送表征所述文件创建
失败的第一通知信息给所述用户态程序;所述数据存储方法,还包括:所述用户...
【专利技术属性】
技术研发人员:陈骁,林烽,陈文生,
申请(专利权)人:网宿科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。