[发明专利]数据处理方法、装置、电子设备及计算机存储介质在审
申请号: | 202111617693.5 | 申请日: | 2021-12-27 |
公开(公告)号: | CN114296962A | 公开(公告)日: | 2022-04-08 |
发明(设计)人: | 贾建容;郭忍东 | 申请(专利权)人: | 阿里巴巴新加坡控股有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F16/16;G06F16/17;G06F16/176 |
代理公司: | 北京合智同创知识产权代理有限公司 11545 | 代理人: | 李杰;赵海娇 |
地址: | 新加坡珊顿道*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据处理 方法 装置 电子设备 计算机 存储 介质 | ||
本申请实施例提供了一种数据处理方法、装置、电子设备及计算机存储介质。数据处理方法,包括:通过加载有文件管理库的主进程,向操作系统发送请求打开目标文件的第一打开请求,并获取所述操作系统返回的、打开的所述目标文件的文件描述符,所述主进程对应多个子进程;若通过所述主进程接收到对应的子进程发送的、请求打开所述目标文件的第二打开请求,则将所述主进程对应的文件描述符发送至所述子进程,以使所述主进程和所述子进程共享同一所述文件描述符。该方法可以减少资源占用。
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备及计算机存储介质。
背景技术
随着技术的发展,服务器等设备的计算性能和CPU核数也越来越多,通常多达16个及以上的核心。运行在服务器上的服务如基于nodejs(nodejs是一种基于C++语言的JS 运行环境,也就是JS语言解释器)的文件管理服务,为了更好地利用CPU的多核计算能力,通常会使用多进程方式提供服务。例如,文件管理服务创建一个主线程和多个与主线程连接的子线程,多个子线程使用CPU的不同核的算力对外提供服务,这样就可以充分利用多核的计算能力。
但是这种文件管理服务存在的问题在于:在对外提供服务的过程中,可能多个子进程需要处理同一目标文件(如日志文件),例如,子进程A接收到向日志文件中写入数据的指令,需要打开日志文件,同时,子进程B接收到读取日志文件中内容的指令,也需要打开日志文件,在现有的Linux或Unix操作系统中,每个子进程会独立地请求打开一次该日志文件,由于在Linux或Unix操作系统中使用文件描述符(file descriptor) 来访问文件,在读写现存文件或者新建文件时操作系统都会为文件分配对应的文件描述符,且操作系统是为每个进程单独维护一套文件描述符,因此假设有10个子进程均请求打开某一日志文件,则该日志文件需要打开10次,操作系统就需要分配10个文件描述符,这导致文件描述资源的浪费。
发明内容
有鉴于此,本申请实施例提供一种数据处理方案,以至少部分解决系统资源浪费的问题。
根据本申请实施例的第一方面,提供了一种数据处理方法,包括:通过加载有文件管理库的主进程,向操作系统发送请求打开目标文件的第一打开请求,并获取所述操作系统返回的、打开的所述目标文件的文件描述符;若通过所述主进程接收到对应的子进程发送的、请求打开所述目标文件的第二打开请求,则将所述主进程对应的文件描述符发送至所述子进程,以使所述主进程和所述子进程共享同一所述文件描述符。
根据本申请实施例的第二方面,提供了一种数据处理装置,包括:第一打开模块,用于通过加载有文件管理库的主进程,向操作系统发送请求打开目标文件的第一打开请求,并获取所述操作系统返回的、打开的所述目标文件的文件描述符;反馈模块,用于若通过所述主进程接收到对应的子进程发送的、请求打开所述目标文件的第二打开请求,则将所述主进程对应的文件描述符发送至所述子进程,以使所述主进程和所述子进程共享同一所述文件描述符。
根据本申请实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的数据处理方法对应的操作。
根据本申请实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的数据处理方法。
根据本申请实施例提供的数据处理方案,通过在主进程中加载文件管理库,能够为主进程打开目标文件,以获得目标文件对应的文件描述符,后续在接收到子进程发送请求打开目标文件的第二打开请求时,将主进程已经打开的目标文件的文件描述符发送给子进程,从而避免了多个子进程打开同一目标文件需要分配多个文件描述符造成文件描述符的资源被浪费的问题。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴新加坡控股有限公司,未经阿里巴巴新加坡控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111617693.5/2.html,转载请声明来源钻瓜专利网。