CN112749142A - 句柄管理方法和系统 - Google Patents

句柄管理方法和系统 Download PDF

Info

Publication number
CN112749142A
CN112749142A CN201911056290.0A CN201911056290A CN112749142A CN 112749142 A CN112749142 A CN 112749142A CN 201911056290 A CN201911056290 A CN 201911056290A CN 112749142 A CN112749142 A CN 112749142A
Authority
CN
China
Prior art keywords
handle
file
target
server
files
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.)
Granted
Application number
CN201911056290.0A
Other languages
English (en)
Other versions
CN112749142B (zh
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201911056290.0A priority Critical patent/CN112749142B/zh
Publication of CN112749142A publication Critical patent/CN112749142A/zh
Application granted granted Critical
Publication of CN112749142B publication Critical patent/CN112749142B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供了一种句柄管理方法,所述方法包括:获取服务器中多个句柄文件的持有信息;根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件;及根据所述目标句柄文件对所述服务器执行归档操作,所述归档操作包括释放所述服务器中的租约。本申请实施例,当锁定服务器中一个目标句柄文件之后,可以基于这个目标句柄文件来归档与这个目标句柄文件服务的上一个客户端在服务器中打开的文件的文件状态(如释放服务器中的租约),从而替代了归档脚本,避免了归档脚本导致的管理低下、文件状态租约不一致、不能按时按错归档等问题。

Description

句柄管理方法和系统
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种句柄管理方法、系统、计算机设备及计算机可读存储介质。
背景技术
在HDFS(Hadoop分布式文件系统)中,会有大量的应用程序在读写文件。在客户端往HDFS的某个文件中写入数据的时候,其它客户端是不允许向此文件同时写入数据,为保障单个客户端的写入操作,HDFS给予客户端的一个写文件操作的临时许可证(即租约),如果客户端停止写入操作,则可以释放该租约并关闭文件。然而,在某些异常情况下,如HDFS强制杀掉进程或者进程崩溃,未释放租约的文件无法进行正常关闭。
本发明人目前所了解的做法是:通过操作系统的系统调度进程(crontab)启动归档脚本,以通过归档脚本来恢复各个文件的文件状态。然而,归档脚本管理效率低下,且会导致同一个文件存在多个租约的操作者,引发租约状态不一致的问题。另外,在HDFS抖动时不能按时完成归档任务,造成下游任务延迟。
发明内容
本申请实施例的目的是提供一种句柄管理方法、系统、计算机设备及计算机可读存储介质,可以用于解决服务器中文件的文件状态的归档问题。
本申请实施例的一个方面提供了一种句柄管理方法,所述方法包括:获取服务器中多个句柄文件的持有信息;根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件;及根据所述目标句柄文件对所述服务器执行归档操作,所述归档操作包括释放所述服务器中的租约。
可选的,所述目标句柄文件中包括历史文件路径信息;所述归档操作还包括:根据所述历史文件路径信息关闭所述服务器中的一个或多个文件。
可选的,所述持有信息包括时间戳;根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件,包括:根据各个句柄文件的时间戳,筛选出心跳停止的句柄文件,其中,所述心跳停止的句柄文件包括时间戳与当前时间之间的时间差大于预设阈值的句柄文件;请求所述服务器对所述心跳停止的句柄文件进行重命名操作,以锁定所述心跳停止的句柄文件;判断所述心跳停止的句柄文件是否被锁定成功;及如果所述心跳停止的句柄文件被锁定成功,则将所述心跳停止的句柄文件确定为所述目标句柄文件。
可选的,还包括:标识所述目标句柄文件,以表明所述目标句柄文件处于被持有状态。
可选的,标识所述目标句柄文件,包括:请求所述服务器更新所述目标句柄文件的时间戳,以保持所述目标句柄文件的时间戳与当前时间之间的时间差小于预设阈值。
可选的,还包括:将目标句柄信息写入到所述服务器的目标句柄文件中;其中,所述目标句柄信息包括目标文件状态信息,所述目标文件状态信息包括目标文件操作信息和目标文件路径信息。
可选的,当针对所述服务器进行文件写入操作时:根据数据的流量大小,从所述多个通道分组中选择出目标通道分组;及通过所述目标通道分组将所述数据写入到所述服务器中。
本申请实施例的再一个方面提供了一种句柄管理系统,所述方法包括:获取模块,用于获取服务器中多个句柄文件的持有信息;设置模块,用于根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件;及操作模块,用于根据所述目标句柄文件执行归档操作,所述归档操作包括租约释放操作。
本申请实施例的又一个方面提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,上述处理器执行上述计算机程序时用于实现如上任一项所述的句柄管理方法的步骤。
本申请实施例的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时用于实现如上任一项所述的句柄管理方法的步骤。
本申请实施例的又一个方面提供了一种句柄管理方法,所述方法包括:根据客户端请求为所述客户端锁定一个句柄文件,所述句柄文件包括其服务的上一个客户端留下的历史句柄信息;及根据所述客户端基于所述历史句柄信息发送的操作指令,执行相应的归档操作,所述归档操作包括租约释放操作。
可选的,所述历史句柄信息中包括所述上一个客户端留下的历史文件路径信息;所述归档操作还包括:对所述历史文件路径信息中记录的一个或多个文件执行文件关闭的操作。
可选的,为所述客户端锁定一个句柄文件,包括:对所述句柄文件进行重命名操作,以将所述句柄文件锁定到所述客户端关联的进程下。
可选的,还包括:将所述客户端的句柄信息记录到所述句柄文件中;其中,所述句柄信息包括文件状态信息,所述文件状态信息包括文件操作信息和文件路径信息。
本申请实施例提供的句柄管理方法、系统、计算机设备及计算机可读存储介质,当锁定服务器中一个目标句柄文件之后,可以基于这个目标句柄文件来归档与这个目标句柄文件服务的上一个客户端在服务器中打开的文件的文件状态(如释放服务器中的租约),从而替代了归档脚本,避免了归档脚本导致的管理低下、文件状态租约不一致、不能按时按错归档等问题。
附图说明
图1示意性示出了流式数据传输系统的系统架构图;
图2示意性示出了根据本申请实施例一的句柄管理方法的流程图;
图3示意性示出了根据本申请实施例的句柄管理方法的逻辑图;
图4示意性示出了根据本申请实施例二的句柄管理方法的流程图;
图5示意性示出了根据本申请实施例二的句柄管理方法的另一流程图;
图6示意性示出了申请实施例二的新增步骤图;
图7示意性示出了根据本申请实施例三的句柄管理方法的流程图;
图8示意性示出了根据本申请实施例四的句柄管理系统的框图;以及
图9示意性示出了根据本申请实施例五的适于实现句柄管理方法的计算机设备的硬件架构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
图1示意性示出了根据本申请实施例的流式数据传输系统,所述流式数据传输系统在于提供流式的数据传输服务,如用于实时流和离线流两大场景的数据收集和分发。实时流场景,对应于秒级别的数据时效性,主要用于将数据写入到kafka、hbase等数据库中。离线流场景,对应于小时级别或天级别的数据时效性,主要用于将数据写入到hdfs、hive等数据库中。所述流式数据传输系统可以由下几部分组成:数据源1、网络路由层2、数据缓冲层3、数据分发层4、数据存储层5和监控模块6等。
所述数据源1,可以是内部数据源,也可以连接外部数据源的数据接口。所述数据源1中可以有多种格式的数据,例如,APP和Web的上报数据是HTTP(HyperText TransferProtocol,超文本传输协议)格式的数据,服务端的内部通信数据是RPC(Remote ProcedureCall,远程过程调用)格式的数据。
所述网络路由层2,可以通过一个或多个网关实现,用于协议解析、打包和压缩等,以保障数据在不丢失的前提下写入到数据缓冲层3。具体的,所述网络路由层2被配置连接于数据源1,并可以适应各种不同的业务场景和数据协议,例如,被配置用于兼容解析多种协议的数据,诸如基于HTTP(HyperText Transfer Protocol,超文本传输协议)协议的APP和Web数据,和基于RPC协议的服务端的内部通信数据。解析得到的数据可以被转换为标准格式数据库文件并被存储到数据缓冲层3。
所述数据缓冲层3,可以通过消息分发订阅系统或上述系统集群实现。在一些实施例中,数据缓冲层3可以由多套kafka cluster(kafka集群)组成,起到数据削峰填谷的作用。不同重要性、优先级、数据吞吐量的数据,可以被分流到不同的kafka cluster中,以保障不同类型数据的价值,避免系统故障影响整体数据。
数据分发层4,可以由数据分发系统(Collector)实现,用于内容转换和分发存储,即保障数据从数据缓冲层3获取并写入到数据存储层5中对应的存储终端。具体的,所述数据分发层4用于数据的分发落地,支持的分发场景包括HDFS(Hadoop Distributed FileSystem,Hadoop分布式文件系统)、Kafka、Hbase、ES(Elasticsearch)等,而在分发的过程中,由于不同存储终端的数据落地时效性要求可能不同,例如,HDFS的数据写入是按天进行任务的计算和应用,Kafka的数据写入一般是按秒进行任务的计算和应用,通常用于诸如实时推荐、实时计算等场景中。针对数据不同场景的分发要求,数据分发层4可以根据存储终端进行服务分组管理。例如,线上会划分为Kafka Collector组、HDFS Collector组等。不同Collector组会从数据缓冲层3获取相应标签(topic)的数据并分发至下游。
所述数据存储层5,用于存储数据,可以由不同形式的数据库构成,所述数据库可以ES、Hive、Kafka、Hadoop和Hbase等。
所述监控模块6,用于监控整条传输链路中所体现的数据质量,以为所述流式数据传输系统对外传输质量提供监控告警。如何衡量数据的传输质量是衡量所述流式数据传输系统的重要指标之一,例如,所述流式数据传输系统数据丢失率、延迟率、接收数据量、分发数据量等。
为了帮助理解所述数据传输系统的工作原理,下面对其提供的数据传输服务进行介绍:数据源1可以是每条记录为单位形成一条一条的数据,也可以以logId为单位形成一批一批的数据(即,每批数据分别标识有一个logId),通过HTTP、RPC等协议将这些数据上报给网关路由层2,并依次经过网关路由层2、数据缓冲层3进入到数据分发层4,通过数据分发层4将这些数据发到数据存储层5中的存储终端中。
实施例一
图2示意性示出了根据本申请实施例一的句柄管理方法的流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备20为执行主体进行示例性描述。
其中,计算机设备20可以位于流式数据传输系统中数据分发层4的数据分发系统中,用于将数据落地到数据存储层5中,如落地到HDSF(分布式文件系统)服务器中,并用于服务器中的句柄管理等。
如图2所示,该句柄管理方法可以包括步骤S200~步骤S204,其中:
步骤S200,获取服务器中多个句柄文件的持有信息。
步骤S202,根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件。
步骤S204,根据所述目标句柄文件执行归档操作,所述归档操作包括释放所述服务器中的租约。
在示例性的实施例中,所述目标句柄文件中包括目标句柄文件服务的其他客户端留下的历史文件路径信息;所述归档操作还包括:根据所述历史文件路径信息关闭所述服务器中的一个或多个文件。
举例而言,如图3所示,服务器配置有多个句柄文件(如,Handlefile A、B、C、…)。每个客户端分别配置有句柄管理器(HandleManager),该句柄管理器可以启动一个恢复线程(recover Thread),用于对服务器执行扫描(check)、获得锁(getlock)和恢复(recovery)操作。
当其中一个句柄文件(如,Handlefile A)被与某个客户端30关联的进程X持有时,则这个Handlefile A会记录这个客户端30的句柄信息,直到这个进程X不再持有这个Handlefile A。其它客户端关联的其它进程在遍历扫描句柄文件列表时,如果同时扫描到这个Handlefile A处于未被持有状态,则会竞争这个Handlefile A,其中一个进程会成功锁定这个Handlefile A以持有这个Handlefile A。示例性的,如果与所述计算机设备20关联的进程Y竞争得到这个Handlefile A(即,进程Y获得锁,被设置为Handlefile A的拥有者),会基于这个Handlefile A执行一系列操作,例如,恢复操作。如前面所述,这个Handlefile A在被进程Y持有之前是被进程X持有,其内记录有客户端30的句柄信息,如果与客户端30关联的进程X是被强制杀死的,则未释放租约的文件可能未被正常关闭。因此,与所述计算机设备20关联的进程Y竞争得到这个Handlefile A之后,所述计算机设备20可以对服务器执行归档操作,如指示服务器释放针对客户端30的文件租约,也可以根据Handlefile A中客户端30留下的历史文件路径信息,将客户端30在服务器中打开的一个或多个文件执行关闭操作。
不难理解,当一个客户端与服务器不正常断开,如被服务器强制杀死进程等,未释放租约的文件无法进行正常关闭。为了解决这一个问题,本实施例在服务器设置句柄文件,用来记录诸如上述客户端的句柄信息(如文件操作信息等),并使用了采用了分布式思路,让其它客户端(如,计算机设备20)可以基于这个句柄文件中的句柄信息释放服务器中的租约,并关闭服务器中的一个或多个文件。
不难理解,通过客户端来执行其它客户端在服务器内打开的各个文件的文件状态,而不需要借助归档脚本,避免了归档脚本管理低下及其导致的文件状态租约不一致、不能按时按错归档等问题。
实施例二
图4示意性示出了根据本申请实施例二的句柄管理方法的流程图。下面以计算机设备20为执行主体进行示例性描述。该句柄管理方法可以包括步骤S400~步骤S410,其中:
步骤S400,获取服务器中多个句柄文件中的各个句柄文件的时间戳。
计算机设备20配置有一个句柄管理器(如HDFS句柄管理器),该句柄管理器用于获取各个句柄文件的持有信息。
服务器配置有多个句柄文件,每个句柄文件用于记录其服务的客户端的句柄信息,如文件操作信息、文件路径信息等,所述文件操作信息包括文件的创建、打开、追加写入等。
步骤S402,根据所述各个句柄文件的时间戳,筛选出心跳停止的句柄文件。
其中,所述心跳停止的句柄文件包括时间戳与当前时间之间的时间差大于预设阈值的句柄文件。
当句柄文件被某个客户端关联的进程持有时,这个客户端关联的进程会每个一段时间(如,5分钟)更新一次这个句柄文件的时间戳,保持这个句柄文件的心跳,以向其它客户端关联的其它进程表示这个句柄文件句柄正在被持有中。容易理解,如果这个客户端与服务器断开,则会停止更新这个句柄文件的时间戳,对其它客户端(例如,计算机设备20)关联的其它进程而言,如果检测到这个句柄文件的时间戳与当前时间超过预设阀值(如,10分钟),则会认为这是一个心跳停止的句柄文件,因此可以调用getlock去锁定这个句柄文件,即对这个句柄文件根据命名规范进行重命名操作,以进入到自己进程名下。具体如下。
步骤S404,请求所述服务器对所述心跳停止的句柄文件进行重命名操作,以锁定所述心跳停止的句柄文件。
服务器中可能存在多个进程同时争夺这个句柄文件,因此,需要进一步确定所述计算机设备20关联的进程是否竞争得到这个句柄文件。
步骤S406,判断所述心跳停止的句柄文件是否被锁定成功。
如果所述句柄文件被重命名为:所述计算机设备20关联的进程的名下指定名称,则确定所述句柄文件被锁定成功;否则,所述计算机设备20关联的进程需要继续寻找并争夺下一个心跳停止的句柄文件。
步骤S408,如果所述心跳停止的句柄文件被锁定成功,则将所述心跳停止的句柄文件确定为所述目标句柄文件。
在计算机设备20关联的进程竞争到这个目标句柄文件之后,需要表明这个目标句柄文件正在被持有。因此,在示例性的实施例中,如图5所示,所述句柄管理方法还包括步骤S412:标识所述目标句柄文件,以表明所述目标句柄文件处于被持有状态。所述标识方式可以由多种,其中一种方式为:请求所述服务器更新所述目标句柄文件的时间戳,以保持所述目标句柄文件的时间戳与当前时间之间的时间差小于预设阈值。该时间戳可以被设置在目标句柄文件的文件名称中,以使得其它进程通过扫描目标句柄文件的文件名称就可以知晓其是否处于被持有状态。
步骤S410,根据所述目标句柄文件对所述服务器执行归档操作,所述归档操作包括释放所述服务器中的租约。
计算机设备20可以打开服务器中的这个目标句柄文件。
这个目标句柄文件中包括其它客户端留下的历史文件状态信息和历史文件路径信息,如其它客户端在服务器中的文件创建、打开、写入等,以及其它客户端在服务器中产生的零字节文件记录等。
因此,计算机设备20打开这个目标句柄文件,需要释放服务器对其它客户端的租约,将其它客户端在服务器中打开的文件一一关闭、删除其它客户端在服务器中产生的零字节文件等。
另外,计算机设备20将目标句柄信息记录到所述目标句柄文件中,其中,所述目标句柄信息包括目标文件状态信息,所述目标文件状态信息包括目标文件操作信息和目标文件路径信息。例如,计算机设备20要在服务器中打开一个文件之前,需要通过句柄管理器将相应的句柄信息写入到目标句柄文件中,待写入成功之后,再打开这个文件,以确定每个操作均能够被记录到目标句柄文件中。不难理解,这样做,在计算机设备20关联的进程在服务器中被强制杀死或崩溃的情形下,可以使得下一个竞争到这个目标句柄文件的客户端可以释放服务器对计算机设备20的租约,可以关闭计算机设备20在服务器中打开的文件等。
在示例性的实施例中,如图6所示,所述句柄管理方法还包括步骤S600~S602,其中:步骤S600,根据数据的流量大小,从所述多个通道分组中选择出目标通道分组;步骤S602,通过所述目标通道分组将所述数据写入到所述服务器中。
在本发明人所了解的数据分发系统中,包括数据接收端口、通道选择器、通道和数据输出端口。通过数据接收端口接收logId数据,通过通道选择器进行随机选举的方式将logId数据写入到对应的通道中,该方式会导致每一个通道都会持有所有logId的数据,而数据输出端口从通道获取到数据时,则会创建对应的hdfsWriter进行文件的写入,这样就间接导致了每一个数据输出端口都会创建所有的logId文件,一定程度上导致了小文件数过多的问题。
针对小文件数过多,本质上由于每个通道都持有了所有的logId实例。因此,本实施例根据流量的大小,将所有的logId数据进行分组,小流量的logId数据会写入到对应的通道分组,而大流量的logId会写入到对应的通道分组。大流量和小流量组内的通道个数是不相等的,具体取决于其数据处理效率。通过这种方式能够有效的减少小文件数,使得对比原生Flume,文件数可以减少近80%。
实施例三
图7示意性示出了根据本申请实施例三的句柄管理方法的流程图。下面以服务器为执行主体进行示例性描述。其中,服务器可以是包括流式数据传输系统中的存储节点,如HDFS服务器。该句柄管理方法可以包括步骤S700~步骤S702,其中:
步骤S700,根据客户端请求为所述客户端锁定一个句柄文件,所述句柄文件包括其服务的上一个客户端留下的历史句柄信息。
所述服务器预先配置有多个句柄文件,根据客户端请求,可以将心跳停止的一个句柄文件配置到这个客户端,具体的:对所述句柄文件进行重命名操作,以将所述句柄文件锁定到所述客户端关联的进程下。
步骤S702,根据所述客户端基于所述历史句柄信息发送的操作指令,执行相应的归档操作,所述归档操作包括租约释放操作。
所述历史句柄信息中包括所述上一个客户端留下的历史文件路径信息。所述归档操作还包括:对所述历史文件路径信息中记录的一个或多个文件执行文件关闭的操作、零字节文件的删除操作等。
在示例性的实施例中,还包括步骤S704:将所述客户端的句柄信息记录到所述句柄文件中。其中,所述句柄信息包括文件状态信息,所述文件状态信息包括文件操作信息和文件路径信息。
不难理解,本实施例基于分布式结构,通过服务器内的各个句柄文件记录各个客户端在服务器内的文件操作信息等,通过客户端来执行其它客户端在服务器内打开的各个文件的文件状态,可以高效地实施文件归档操作,而不需要借助归档脚本,避免了归档脚本管理低下、文件状态租约不一致及不能按时按错归档等问题。
实施例四
图8示出了根据本申请实施例四的句柄管理系统的框图,该句柄管理系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图8所示,所述句柄管理系统800可以包括以下组成部分:
获取模块810,用于获取服务器中多个句柄文件的持有信息。
设置模块820,用于根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件。
操作模块830,用于根据所述目标句柄文件执行归档操作,所述归档操作包括租约释放操作。
在示例性的实施例中,所述目标句柄文件中包括历史文件路径信息;所述归档操作还包括:根据所述历史文件路径信息关闭所述服务器中的一个或多个文件。
在示例性的实施例中,所述持有信息包括时间戳;所述设置模块820,还用于:根据各个句柄文件的时间戳,筛选出心跳停止的句柄文件,其中,所述心跳停止的句柄文件包括时间戳与当前时间之间的时间差大于预设阈值的句柄文件;请求所述服务器对所述心跳停止的句柄文件进行重命名操作,以锁定所述心跳停止的句柄文件;判断所述心跳停止的句柄文件是否被锁定成功;及如果所述心跳停止的句柄文件被锁定成功,则将所述心跳停止的句柄文件确定为所述目标句柄文件。
在示例性的实施例中,所述设置模块820,还用于:标识所述目标句柄文件,以表明所述目标句柄文件处于被持有状态。
在示例性的实施例中,所述设置模块820,还用于:,标识所述目标句柄文件,包括:请求所述服务器更新所述目标句柄文件的时间戳,以保持所述目标句柄文件的时间戳与当前时间之间的时间差小于预设阈值。
在示例性的实施例中,所述归档操作模块830,用于:将目标句柄信息写入到所述服务器的目标句柄文件中;其中,所述目标句柄信息包括目标文件状态信息,所述目标文件状态信息包括目标文件操作信息和目标文件路径信息。
在示例性的实施例中,所述归档操作模块830,还用于:当针对所述服务器进行文件写入操作时:根据数据的流量大小,从所述多个通道分组中选择出目标通道分组;及通过所述目标通道分组将所述数据写入到所述服务器中。
实施例五
图9示意性示出了根据本申请实施例五的适于实现句柄管理方法的计算机设备的硬件架构示意图。本实施例中,计算机设备20是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,计算机设备20至少包括但不限于:可通过系统总线相互通信连接存储器21、处理器22、网络接口23。其中:
存储器21至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储模块,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(FlashCard)等。当然,存储器21还可以既包括计算机设备20的内部存储模块也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如句柄管理方法的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其它数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作,例如执行与计算机设备20进行数据交互或者通信相关的控制和处理等。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据。
网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在计算机设备20与其它计算机设备之间建立通信连接。例如,网络接口23用于通过网络将计算机设备20与外部终端相连,在计算机设备20与外部终端之间的建立数据传输通道和通信连接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(GlobalSystem of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code DivisionMultiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图9仅示出了具有部件21-23的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的句柄管理方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
实施例六
本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的句柄管理方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的句柄管理方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (14)

1.一种句柄管理方法,其特征在于,所述方法包括:
获取服务器中多个句柄文件的持有信息;
根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件;及
根据所述目标句柄文件对所述服务器执行归档操作,所述归档操作包括释放所述服务器中的租约。
2.根据权利要求1所述的句柄管理方法,其特征在于,所述目标句柄文件中包括历史文件路径信息;所述归档操作还包括:根据所述历史文件路径信息关闭所述服务器中的一个或多个文件。
3.根据权利要求1所述的句柄管理方法,其特征在于,所述持有信息包括时间戳;根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件,包括:
根据各个句柄文件的时间戳,筛选出心跳停止的句柄文件,其中,所述心跳停止的句柄文件包括时间戳与当前时间之间的时间差大于预设阈值的句柄文件;
请求所述服务器对所述心跳停止的句柄文件进行重命名操作,以锁定所述心跳停止的句柄文件;
判断所述心跳停止的句柄文件是否被锁定成功;及
如果所述心跳停止的句柄文件被锁定成功,则将所述心跳停止的句柄文件确定为所述目标句柄文件。
4.根据权利要求1所述的句柄管理方法,其特征在于,还包括:
标识所述目标句柄文件,以表明所述目标句柄文件处于被持有状态。
5.根据权利要求4所述的句柄管理方法,其特征在于,标识所述目标句柄文件,包括:
请求所述服务器更新所述目标句柄文件的时间戳,以保持所述目标句柄文件的时间戳与当前时间之间的时间差小于预设阈值。
6.根据权利要求2所述的句柄管理方法,其特征在于,还包括:
将目标句柄信息写入到所述服务器的目标句柄文件中;
其中,所述目标句柄信息包括目标文件状态信息,所述目标文件状态信息包括目标文件操作信息和目标文件路径信息。
7.根据权利要求1所述的句柄管理方法,其特征在于,当针对所述服务器进行文件写入操作时:
根据数据的流量大小,从所述多个通道分组中选择出目标通道分组;及
通过所述目标通道分组将所述数据写入到所述服务器中。
8.一种句柄管理系统,其特征在于,所述方法包括:
获取模块,用于获取服务器中多个句柄文件的持有信息;
设置模块,用于根据所述多个句柄文件的持有信息,将所述多个句柄文件中的其中一个句柄文件设置为目标句柄文件;及
操作模块,用于根据所述目标句柄文件执行归档操作,所述归档操作包括租约释放操作。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1~7任一项所述句柄管理方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时用于实现权利要求1~7任一项所述句柄管理方法的步骤。
11.一种句柄管理方法,其特征在于,所述方法包括:
根据客户端请求为所述客户端锁定一个句柄文件,所述句柄文件包括其服务的上一个客户端留下的历史句柄信息;及
根据所述客户端基于所述历史句柄信息发送的操作指令,执行相应的归档操作,所述归档操作包括租约释放操作。
12.根据权利要求1所述的句柄管理方法,其特征在于,所述历史句柄信息中包括所述上一个客户端留下的历史文件路径信息;
所述归档操作还包括:对所述历史文件路径信息中记录的一个或多个文件执行文件关闭的操作。
13.根据权利要求11所述的句柄管理方法,其特征在于,为所述客户端锁定一个句柄文件,包括:
对所述句柄文件进行重命名操作,以将所述句柄文件锁定到所述客户端关联的进程下。
14.根据权利要求11所述的句柄管理方法,其特征在于,还包括:
将所述客户端的句柄信息记录到所述句柄文件中;
其中,所述句柄信息包括文件状态信息,所述文件状态信息包括文件操作信息和文件路径信息。
CN201911056290.0A 2019-10-31 2019-10-31 句柄管理方法和系统 Active CN112749142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911056290.0A CN112749142B (zh) 2019-10-31 2019-10-31 句柄管理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911056290.0A CN112749142B (zh) 2019-10-31 2019-10-31 句柄管理方法和系统

Publications (2)

Publication Number Publication Date
CN112749142A true CN112749142A (zh) 2021-05-04
CN112749142B CN112749142B (zh) 2023-09-01

Family

ID=75644847

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911056290.0A Active CN112749142B (zh) 2019-10-31 2019-10-31 句柄管理方法和系统

Country Status (1)

Country Link
CN (1) CN112749142B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546703A (zh) * 2022-02-28 2022-05-27 北京基调网络股份有限公司 文件句柄监测、泄漏分析方法和装置及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373505A (zh) * 2008-06-17 2009-02-25 华为技术有限公司 释放句柄的方法、装置及文件删除系统
CN102855437A (zh) * 2011-06-27 2013-01-02 奇智软件(北京)有限公司 一种文件解锁的方法及装置
CN103636165A (zh) * 2011-06-30 2014-03-12 微软公司 透明故障转移
CN104503704A (zh) * 2014-12-19 2015-04-08 北京奇虎科技有限公司 一种磁盘空间的清理方法和装置
US20150356110A1 (en) * 2014-06-06 2015-12-10 Panzura, Inc. Managing opportunistic locks in a distributed filesystem
US20160072886A1 (en) * 2014-09-10 2016-03-10 Panzura, Inc. Sending interim notifications to a client of a distributed filesystem
CN106557390A (zh) * 2016-11-15 2017-04-05 郑州云海信息技术有限公司 一种分布式存储文件连续访问方法及系统
CN106571968A (zh) * 2016-11-10 2017-04-19 华为技术有限公司 一种业务切换方法和系统
CN108476209A (zh) * 2015-12-29 2018-08-31 亚马逊技术股份有限公司 网络技术
CN109714202A (zh) * 2018-12-21 2019-05-03 郑州云海信息技术有限公司 一种客户端离线原因判别方法和集群式安全管理系统

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101373505A (zh) * 2008-06-17 2009-02-25 华为技术有限公司 释放句柄的方法、装置及文件删除系统
CN102855437A (zh) * 2011-06-27 2013-01-02 奇智软件(北京)有限公司 一种文件解锁的方法及装置
CN103636165A (zh) * 2011-06-30 2014-03-12 微软公司 透明故障转移
US20150356110A1 (en) * 2014-06-06 2015-12-10 Panzura, Inc. Managing opportunistic locks in a distributed filesystem
US20160072886A1 (en) * 2014-09-10 2016-03-10 Panzura, Inc. Sending interim notifications to a client of a distributed filesystem
CN104503704A (zh) * 2014-12-19 2015-04-08 北京奇虎科技有限公司 一种磁盘空间的清理方法和装置
CN108476209A (zh) * 2015-12-29 2018-08-31 亚马逊技术股份有限公司 网络技术
CN106571968A (zh) * 2016-11-10 2017-04-19 华为技术有限公司 一种业务切换方法和系统
CN106557390A (zh) * 2016-11-15 2017-04-05 郑州云海信息技术有限公司 一种分布式存储文件连续访问方法及系统
CN109714202A (zh) * 2018-12-21 2019-05-03 郑州云海信息技术有限公司 一种客户端离线原因判别方法和集群式安全管理系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114546703A (zh) * 2022-02-28 2022-05-27 北京基调网络股份有限公司 文件句柄监测、泄漏分析方法和装置及电子设备

Also Published As

Publication number Publication date
CN112749142B (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
CN112751772B (zh) 数据传输方法和系统
CN112507029B (zh) 数据处理系统及数据实时处理方法
CN112019605B (zh) 数据流的数据分发方法和系统
CN110830283B (zh) 故障检测方法、装置、设备和系统
CN111966289B (zh) 基于Kafka集群的分区优化方法和系统
CN109460343A (zh) 基于日志的系统异常监控方法、装置、设备及存储介质
CN111970195B (zh) 数据传输方法和流式数据传输系统
CN112948174A (zh) 消息处理方法、装置、计算机设备和存储介质
WO2021169275A1 (zh) Sdn 网络设备访问方法、装置、计算机设备及存储介质
CN112486915B (zh) 数据存储方法及装置
CN112463882A (zh) 数据同步方法及云平台、边缘端
CN111198889B (zh) 数据补录方法和装置
CN110995566A (zh) 一种消息数据推送方法、系统及装置
CN109697112B (zh) 分布式集约化一站式作业系统和实现方法
CN112749142B (zh) 句柄管理方法和系统
CN112751722B (zh) 数据传输质量监控方法和系统
CN111831954B (zh) 内容数据更新方法、装置、计算机设备及存储介质
CN112019604A (zh) 边缘数据传输方法和系统
CN115473858A (zh) 数据传输方法和流式数据传输系统
CN113965538B (zh) 设备状态消息处理方法、装置及存储介质
CN111694809B (zh) 基于区块链的文件过滤方法、装置和计算机设备
CN109660455B (zh) 机巡数据存储方法、装置、系统、网关设备和存储介质
CN112559445B (zh) 数据写入方法及装置
CN112256454A (zh) 消息延时处理方法和系统
CN111708795A (zh) 对象标识生成方法、更新方法、装置、计算机设备和介质

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