CN111078669A - 基于名字解析树的处理方法、装置、设备及存储介质 - Google Patents
基于名字解析树的处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111078669A CN111078669A CN201911313777.2A CN201911313777A CN111078669A CN 111078669 A CN111078669 A CN 111078669A CN 201911313777 A CN201911313777 A CN 201911313777A CN 111078669 A CN111078669 A CN 111078669A
- Authority
- CN
- China
- Prior art keywords
- node
- branch
- tree
- name resolution
- revised
- 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
Links
Images
Classifications
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- 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/30—Managing network names, e.g. use of aliases or nicknames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/30—Types of network names
- H04L2101/375—Access point names [APN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供一种基于名字解析树的处理方法、装置、设备及存储介质,涉及名字解析树技术领域。该方法包括:接收第一用户在延迟生效模式下发送的第一节点修订指令;根据待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支;待修订节点与待修订的接口标识对应;复制修订从分支,得到复制从分支,结合复制从分支及修订从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树;在第一从分支树下,依据待修订的接口标识,执行修订操作。相对于现有技术,解决了现有技术中在延迟生效模式下,任何用户的修订指令均都会导致其他用户对名字解析树的使用受到影响的问题。
Description
技术领域
本申请涉及名字解析树领域,具体而言,涉及一种基于名字解析树的处理方法、装置、设备及存储介质。
背景技术
交换机、路由器等数据通信设备上,在命令行、WEB等前台配置工具上,可以通过接口的名字解析树来完成数据结构。
名字解析树是一棵将交换机接口名字按照层次结构拆分后组成的树状结构,包括根节点、各类型接口对应的父节点和子节点,用于对用户输入的接口修订指令提供帮助和检查功能。其中,用户输入的接口修订指令可能为延迟生效模式或立即生效模式。当用户输入接口的修改配置(也可以称为修订指令)时,系统依据接口的修改配置对名字解析树进行修改。
但是在延迟生效模式下,由于现有技术中的名字解析树是单实例的,即所有用户查询或帮助时均使用同一棵树,不同用户的修订指令均会造成名字解析树的修订,这样的修订方式会导致任何用户的修订指令均会影响其他用户对名字解析树的使用。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种基于名字解析树的处理方法、装置、设备及存储介质,以解决现有技术中在延迟生效模式下,任何用户的修改都会导致其他用户的使用受到影响的问题。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请提供了一种基于名字解析树的处理方法,包括:
接收第一用户在延迟生效模式下发送的第一节点修订指令,所述第一节点修订指令包括待修订的接口标识以及修订操作;
根据所述待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支;所述待修订节点与所述待修订的接口标识对应;
复制所述修订从分支,得到复制从分支,结合所述复制从分支及所述修订从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树;
在所述第一从分支树下,依据所述待修订的接口标识,执行所述修订操作。
可选地,所述第一节点修订指令包括:待添加的第一接口标识以及第一添加操作;
所述在所述第一从分支树下,根据所述第一节点修订指令修订接口内容,包括:
根据所述第一接口标识,在第一从分支树中查询与所述第一接口标识对应的节点的父节点,执行所述第一添加操作,为所述父节点添加子节点并设置所述子节点的引用计数为1,其中,所述子节点为所述第一接口标识对应的节点,引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,所述第一节点修订指令包括:待删除的第二接口标识以及第一删除操作;
所述在所述第一从分支树下,根据所述第一节点修订指令修订接口内容,包括:
根据所述第一删除操作,将所述第二接口标识所对应节点的引用计数减1,其中,所述引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,所述方法还包括:
接收第一用户发送的延迟生效模式配置指令,所述延迟生效模式配置指令包括所述第一用户的标识;
根据所述延迟生效模式配置指令,在名字解析树的主分支下建立所述第一用户对应的从分支并创建所述从分支的标识,其中,所述从分支引用所述主分支;
向所述第一用户返回所述从分支的标识。
可选地,所述主分支名字解析树包括主分支主节点,所述主分支主节点引用所述主分支名字解析树的根节点,所述方法还包括:
接收第一用户发送的延迟生效模式配置指令,所述延迟生效模式配置指令包括所述第一用户的标识;
根据所述延迟生效模式配置指令,创建所述第一用户对应的从分支主节点,其中,所述从分支主节点引用所述主分支主节点。
可选地,所述结合所述复制从分支及所述修订从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树,包括:
解除所述从分支主节点与主分支主节点的引用关系,建立所述从分支主节点与所述复制从分支的根节点之间的引用关系,其中,所述从分支主节点引用所述复制从分支的根节点;
依据所述修订从分支中各节点与主分支名字解析树中节点的引用关系,建立所述复制从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树。
可选地,若所述第一用户发送提交指令,或所述第一用户退出所述延迟生效模式,则销毁所述第一用户对应的从分支树。
可选地,所述方法还包括:
接收所述第一用户在立即生效模式下发送的第二节点修订指令,所述第二节点修订指令用于指示修订所述主分支名字解析树中根节点下的接口内容;
根据所述第二节点修订指令,修订所述主分支名字解析树中对应的接口节点。
可选地,所述第二节点修订指令包括:待添加的第三接口标识以及第二添加操作;
依据待添加接口的接口类型,在包括所述主分支名字解析树的根节点及所述接口类型对应节点的子树中,获取所述第三接口标识对应节点的父节点,其中,所述父节点为所述子树中第一个引用计数大于1的节点,所述引用计数用于指示对应节点被该节点的父节点引用的次数;
根据所述第二添加操作,在所述主分支名字解析树中添加所述第三接口标识对应的节点。
可选地,所述第二节点修订指令包括:待删除的第四接口标识以及第二删除操作;
依据所述待删除的第四接口标识,确定所述第四接口标识对应的节点;
根据所述第二删除操作,将所述第四接口标识对应节点的引用计数减1,其中,所述引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,所述方法还包括:
向除各用户对应的从分支树发送第一同步指令,所述第一同步指令包括主分支名字解析树中已修订的第一节点标识及对应的第一已修订操作。
可选地,所述第一从分支树的从分支主节点记录操作列表,所述操作列表包括第一从分支树中已修订的节点标识及对应的已修订操作;还包括:
所述第一从分支树接收到第二同步指令,所述第二同步指令包括主分支名字解析树中已修订的第二节点标识及对应的第二已修订操作;
在所述第二节点标识存在所述操作列表中时,丢弃所述第二同步指令;
在所述第二节点标识不存在所述操作列表中时,依据所述第二同步指令对所述第一从分支树进行所述第二节点修订指令,使得所述第一从分支树的修订与所述主分支名字解析树的修订一致。
第二方面,本申请提供了一种基于名字解析树的处理装置,包括:接收模块、确定模块、复制模块和修订模块,其中:
所述接收模块,接收第一用户在延迟生效模式下发送的第一节点修订指令,所述第一节点修订指令包括待修订的接口标识以及修订操作;
所述确定模块,用于根据所述待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支;所述待修订节点与所述待修订的接口标识对应;
所述复制模块,用于复制所述修订从分支,得到复制从分支,结合所述复制从分支及所述修订从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树;
所述修订模块,用于在所述第一从分支树下,依据所述待修订的接口标识,执行所述修订操作。
可选地,所述第一节点修订指令包括:待添加的第一接口标识以及第一添加操作;
所述修订模块,还用于根据所述第一接口标识,在第一从分支树中查询与所述第一接口标识对应的节点的父节点,执行所述第一添加操作,为所述父节点添加子节点并设置所述子节点的引用计数为1,其中,所述子节点为所述第一接口标识对应的节点,引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,所述第一节点修订指令包括:待删除的第二接口标识以及第一删除操作;
所述修订模块,还用于根据所述第一删除操作,将所述第二接口标识所对应节点的引用计数减1,其中,所述引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,所述装置还包括:创建模块和生成模块,其中:
所述接收模块,还用于接收第一用户发送的延迟生效模式配置指令,所述延迟生效模式配置指令包括所述第一用户的标识;
所述生成模块,用于依据所述修订从分支中各节点与主分支名字解析树中节点的引用关系,建立所述复制从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树。
可选地,所述装置还包括:销毁模块,用于若所述第一用户发送提交指令,或所述第一用户退出所述延迟生效模式,则销毁所述第一用户对应的从分支树。
可选地,所述接收模块,还用于接收所述第一用户在立即生效模式下发送的第二节点修订指令,所述第二节点修订指令用于指示修订所述主分支名字解析树中根节点下的接口内容;
所述修订模块,还用于根据所述第二节点修订指令,修订所述主分支名字解析树中对应的接口节点。
可选地,所述第二节点修订指令包括:待添加的第三接口标识以及第二添加操作;所述装置还包括:获取模块,用于依据待添加接口的接口类型,在包括所述主分支名字解析树的根节点及所述接口类型对应节点的子树中,获取所述第三接口标识对应节点的父节点,其中,所述父节点为所述子树中第一个引用计数大于1的节点,所述引用计数用于指示对应节点被该节点的父节点引用的次数;
所述修订模块,还用于根据所述第二添加操作,在所述主分支名字解析树中添加所述第三接口标识对应的节点。
可选地,所述第二节点修订指令包括:待删除的第四接口标识以及第二删除操作;
所述确定模块,还用于依据所述待删除的第四接口标识,确定所述第四接口标识对应的节点;
所述修订模块,还用于根据所述第二删除操作,将所述第四接口标识对应节点的引用计数减1,其中,所述引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,所述装置还包括:同步模块,用于向除各用户对应的从分支树发送第一同步指令,所述第一同步指令包括主分支名字解析树中已修订的第一节点标识及对应的第一已修订操作。
可选地,所述第一从分支树的从分支主节点记录操作列表,所述操作列表包括第一从分支树中已修订的节点标识及对应的已修订操作;所述装置还包括:选择模块,其中:
所述接收模块,还用于所述第一从分支树接收到第二同步指令,所述第二同步指令包括主分支名字解析树中已修订的第二节点标识及对应的第二已修订操作;
所述选择模块,用于在所述第二节点标识存在所述操作列表中时,丢弃所述第二同步指令;
所述修订模块,还用于在所述第二节点标识不存在所述操作列表中时,依据所述第二同步指令对所述第一从分支树进行所述第二节点修订指令,使得所述第一从分支树的修订与所述主分支名字解析树的修订一致。
第三方面,本申请提供了一种基于名字解析树的处理设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当所述基于名字解析树的处理设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如上述第一方面任一所述方法的步骤。
第四方面,本申请提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述第一方面任一所述方法的步骤。
本申请的有益效果是:采用本申请提供的基于名字解析树的处理方法,通过在接收到第一用户在延迟生效模式下发送的第一节点修订指令后,在主分支名字解析树中确定从根节点到待修订节点的修订从分支,并复制修订从分支,再结合复制从分支和修订从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树,这样的处理方式可以使得第一用户在延迟生效模式下对接口进行修订时,只需在第一从分支树上进行根据修订指令进行对应的修订操作,因此每个第一用户可以仅能看到自己的修订指令对系统的影响,但是不会导致其他用户对主分支名字解析树的使用受到影响,并且第一从分支树复制时,仅复制根节点到待修订节点的修订从分支,不会直接复制整棵主分支名字解析树,因此占用的内存小。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例提供的传统名字解析树的结构示意图;
图2为本申请一实施例提供的基于名字解析树的处理方法的流程示意图;
图3为本申请一实施例提供的名字解析树初始状态的结构示意图;
图4为本申请一实施例提供的从分支名字解析树添加节点的结构示意图;
图5为本申请一实施例提供的从分支名字解析树删除节点的结构示意图;
图6为本申请另一实施例提供的一种基于名字解析树的处理方法的流程示意图;
图7为本申请一实施例提供的名字解析树创建从分支主节点的结构示意图;
图8为本申请另一实施例提供的一种基于名字解析树的处理方法的流程示意图;
图9为本申请一实施例提供的主分支名字解析树删除节点的结构示意图;
图10为本申请另一实施例提供的主分支名字解析树删除节点的结构示意图;
图11为本申请一实施例提供的主分支名字解析树添加节点的结构示意图;
图12为本申请另一实施例提供的主分支名字解析树添加节点的结构示意图;
图13为本申请另一实施例提供的主分支名字解析树添加节点的结构示意图;
图14为本申请另一实施例提供的主分支名字解析树节点合并过程的结构示意图;
图15为本申请另一实施例提供的主分支名字解析树节点合并成功后的结构示意图;
图16为本申请一实施例对应的销毁从分支树过程的结构示意图;
图17为本申请另一实施例对应的销毁从分支树成功后的结构示意图;
图18为本申请一实施例提供的一种基于名字解析树的处理装置的结构示意图;
图19为本申请另一实施例提供的一种基于名字解析树的处理装置的结构示意图;
图20为本申请另一实施例提供的一种基于名字解析树的处理装置的结构示意图;
图21为本申请另一实施例提供的一种基于名字解析树的处理装置的结构示意图;
图22为本申请另一实施例提供的一种基于名字解析树的处理装置的结构示意图;
图23为本申请另一实施例提供的一种基于名字解析树的处理装置的结构示意图;
图24为本申请一实施例提供的一种基于名字解析树的处理设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
本申请实施例可以基于网络中路由、交换等设备实现,为使本申请下述实施例中的内容更容易理解,在此对部分必要的名词作出解释如下:
延迟生效模式:用户的配置不会立刻下发,而是等到commit后统一提交。
立即生效模式:用户的配置立刻下发成为生效配置。
运行配置(Running配置):系统已经生效的配置。
候选配置(Candidate配置):延迟生效模式中,每个用户独立,尚未下发的配置。用户可以在某一时刻进行提交操作,将配置下发给系统,从而将其转变为运行配置。
名字解析树:一棵将设备接口名字按照层次结构拆分后组成的树状结构,用来为用户的输入提供帮助和检查功能。传统的名字解析树包括根节点(Root节点)、接口类型节点(Level 1)以及各接口类型下的节点。图1为本申请一实施例提供的传统名字解析树的结构示意图。
以图1为例,传统的名字解析树包括根节点,接着根节点下的第一层Level1是按照接口类型(Tunnel/vlan/GigabitEthernet等)分为的接口类型节点。每个接口类型下,是第二层Level2,其根据其接口类型的不同,可以是叶节点,例如Tunnel节点1和vlan节点1,也可以是非叶节点,例如,对于GigabitEthernet节点下的第二层表示接口所在的插槽(Slot)号(例如:GigabitEthernet 1),Slot号下是第三层子槽(SubSlot)号(例如:GigabitEthernet 1/1),SubSlot号下的第四层是最终GigabitEthernet接口的编号(例如:GigabitEthernet 1/1/1,GigabitEthernet 1/1/2)。
IPC(inter process communication):进程间通信,进程间交互的方式,相比同进程内通信,IPC的效率低很多。
Copy-On-Write,COW(写时拷贝):延迟拷贝计数,只对修改的部分拷贝,减少拷贝量。
引用关系:表示一棵树中位于相邻层的两个节点的父子关系,例如:以图1为例,vlan节点是vlan节点1的父节点,则vlan节点与vlan节点1之间的引用关系为vlan节点引用vlan节点1。
本申请提供一种基于名字解析树的处理方法,采用本申请提供的方法,可以使每个用户可以仅能看到自己的修订指令对系统的影响,但是不会导致其他用户对名字解析树的使用受到影响。
为方便解释说明本申请实施例提供的方案,以下以第一用户为例进行说明。应当理解的是,此处的“第一”并非对用户进行限定,只是起到方便解释的作用。
图2为本申请一实施例提供的一种基于名字解析树的处理方法的流程示意图,图3为本申请一实施例提供的名字解析树初始状态的结构示意图,如图2所示,该方法包括S101-S104。
S101:接收第一用户在延迟生效模式下发送的第一节点修订指令。
其中,第一节点修订指令包括待修订的接口标识以及修订操作。
在本申请提供的方法中,在传统名字解析树的结构基础上,增加了两种表示身份类型的节点:主分支主节点Trunk和从分支主节点Branch。其中:主分支主节点Trunk对应于系统身份,引用表示系统已经生效配置(即Running配置)对应的名字解析树;从分支主节点Branch对应于用户身份,引用表示在延迟生效模式下该用户配置(即Candidate配置)对应的名字解析树。在本申请一实施例中,还为每个节点增加了引用计数reference count(可以用ref表示),针对一节点,该节点的引用计数表示该节点被多少个父节点引用。
其中,由于引用计数的设置,可以使得名字解析树的结构变得简单,对于同时被两个父节点引用的节点,无需在名字解析树中同时存在两个该节点,只需要将该节点的引用计数改为2即可,因此对名字解析树中各节点的添加和删除(针对本就存在于当前名字解析树中的节点),只修改其对应的引用计数,所以提高了名字解析树中各节点的修订速度。其中,只有当某一节点的引用计数为0时,才表示该节点被真正删除。
在本申请实施例提供的名字解析树中,主分支主节点只有一个,引用表示系统已经生效配置(即Running配置)对应的名字解析树,主分支主节点和主分支主节点引用的名字解析树构成了主分支名字解析树,简称主分支树。
而从分支主节点可以有多个,分别对应不同的用户。针对每一用户,对应该用户身份的从分支主节点和该从分支主节点引用的名字解析树,构成了该用户对应的从分支名字解析树,简称从分支树。每个从分支主节点引用的名字解析树都是某一时刻从主分支名字解析树中分裂出去的,一个用户对应从分支树包括一个从分支主节点和该从分支主节点引用的名字解析树。
以第一用户为例,第一用户对应的第一从分支树包括:第一用户对应的从分支主节点和该从分支主节点引用的名字解析树。
在本申请实施例提供的名字解析树中,主分支主节点引用名字解析树的根节点,从分支主节点可以引用主分支主节点,也可以引用名字解析树的根节点。具体地:从分支主节点引用主分支主节点时,表明当前用户没有对自身配置进行任何修改,所以该从分支名字解析树和主分支名字解析树保持一致;从分支主节点引用名字解析树的根节点时,表示当前用户有对自身配置进行修改,所以需要对从该当前用户对应的从分支树进行修改。
如图3所示,为初始状态下本申请实施例提供的主分支名字解析树,初始状态下没有用户进入延迟生效模式,所有用户输入的查询或帮助指令均通过使用主分支名字解析树实现,此时,每个节点的引用计数均为1,表示当前每个节点都只被一个父节点引用。
S102:根据待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支。
其中,待修订节点与待修订的接口标识对应。以图3所示为例,假设待修订的接口标识为vlan 2,则可以确定从根节点到vlan2的修订从分支为:根节点-vlan节点-vlan节点2。在另一个示例中,修订从分支还可以表示出引用关系:根节点→vlan节点→vlan节点2。
具体的,在本申请的一个实施例中,先根据待修订的接口标识,确定主分支名字解析树中从根节点到待修订节点的修订路径,修改从分支即为包含修订路径中节点的子树。仍然以图3所示为例,假设待修订的接口标识为vlan 2,则可以确定从根节点到vlan 2的修订路径为:根节点-vlan节点-vlan节点2(或根节点→vlan节点→vlan节点2),则修改从分支即为子树:根节点-vlan节点-vlan节点2(或根节点→vlan节点→vlan节点2)。
一个实施例中,若修订操作为添加操作,则待修订的接口标识对应的节点并未存在主分支名字解析树,此时修改从分支为根节点到待修订节点的父节点的路径。仍然以图3所示为例,假设修订操作为添加操作,待修订的接口标识为vlan 3,则可以确定从根节点到vlan 3的修订路径为:根节点-vlan节点(vlan节点3的父节点),则修改从分支即为包含修订路径的子树:根节点-vlan节点。
S103:复制修订从分支,得到复制从分支,结合复制从分支及修订从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树。
主分支名字解析树中,主分支主节点下包含多种类型接口的节点,复制过程中,只需要复制修订从分支的节点,即复制修改路径的节点。例如,以图3所示例为例,主分支名字解析树中包括vlan类型和tunnel类型的节点,假设待修订的接口标识为vlan 2,则可以确定从根节点到vlan 2的修订路径为:根节点-vlan节点-vlan节点2,则修改从分支即为包含修订路径的子树:根节点-vlan节点-vlan节点2。那么,只复制下述节点构成复制从分支:根节点、vlan节点、vlan节点2。
在一个实施例中,复制修订从分支具体为复制包含修订路径的子树。然后依据复制的子树中各节点在主分支名字解析树中与其他各节点的引用关系,建立复制的子树中各节点与其他各节点的引用关系,从而生成第一用户对应的第一从分支树。
一个示例中,以图3为例,假设待修订的接口标识为vlan2,则可以确定从根节点到vlan2的修订路径为:根节点-vlan节点-vlan节点2,则修改从分支即为包含修订路径的子树:根节点-vlan节点-vlan节点2。然后,依据根节点、vlan节点及vlan节点2在主分支名字解析树中与其他各节点(根节点与tunnel节点、vlan节点与vlan节点1)的引用关系,建立复制根节点与主分支名字解析树中tunnel节点、复制vlan节点与主分支名字解析树中vlan节点1的引用关系。
应当理解的,建立的引用关系应当与原引用关系一致,例如若在主分支名字解析树中根节点为tunnel节点的父节点,即在主分支名字解析树中根节点引用tunnel节点,那么复制根节点应当也为主分支名字解析树tunnel节点的父节点,复制根节点应当也引用主分支名字解析树tunnel节点的父节点。
在一个实施例中,生成第一从分支树后,还会更新主分支名字解析树中各节点的引用计数。
为防止第一用户对名字解析树进行修改时,影响其他用户端对名字解析树的使用,本申请提供的方法中,会根据第一节点修订指令,确定修改路径,并复制修改路径上的节点,然后依据修改路径中各节点在主分支名字解析树中与其他各节点的引用关系,建立复制从分支中各节点与其他各节点的引用关系,生成第一从分支树。这样后续依据第一用户的修订指令在对名字解析树进行修订时,只需依据得到的第一从分支树进行帮助检查,帮助检查的逻辑和传统的名字解析树部分没有差异,并且由于生成第一从分支树的过程中,只复制了修改路径上的节点(即名字解析树的根节点和与第一节点修订指令关联的接口节点),没有复制整棵主分支名字解析树中的节点,所以占用内存较小。
S104:在第一从分支树下,依据待修订的接口标识,执行修订操作。
其中,修订时,是在该第一用户对应的第一从分支名字解析树中进行的,即依据待修订的接口标识,对第一从分支树执行修订操作,所以第一用户对从分支名字解析树的修订不会影响到其他用户对主分支名字解析树的使用。例如:用户可以根据需要在从分支名字解析树中添加节点、删除节点等。
采用本申请提供的基于名字解析树的处理方法,通过在接收到第一用户在延迟生效模式下发送的第一节点修订指令后,在主分支名字解析树中确定从根节点到待修订节点的修订从分支,并复制修订从分支,再结合复制从分支和修订从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树,这样的处理方式可以使得第一用户在延迟生效模式下对接口进行修订时,只需在第一从分支树上进行根据修订指令进行对应的修订操作,因此每个第一用户可以仅能看到自己的修订指令对系统的影响,但是不会导致其他用户对主分支名字解析树的使用受到影响,并且第一从分支树复制时,仅复制根节点到待修订节点的修订从分支,不会直接复制整棵主分支名字解析树,因此占用的内存小。
可选地,在本申请的一个实施例中,第一节点修订指令可包括:待添加的第一接口标识以及第一添加操作;则S103可包括:根据第一接口标识,在第一从分支树中查询与第一接口标识对应的节点的父节点,执行第一添加操作,为父节点添加子节点并设置子节点的引用计数为1,其中,子节点为第一接口标识对应的节点。
其中,每个节点的引用计数用于表示当前节点被父节点引用的次数。
举例说明:图4为本申请一实施例提供的从分支名字解析树添加节点的结构示意图,如图4所示,在图3的基础上,假设第一用户的第一节点修订指令为:添加接口类型为vlan,接口标识为3的待添加接口vlan3。
此时将第一从分支主节点分裂出来,确定修订从分支为:根节点-vlan节点,复制修订从分支得到复制从分支,并建立第一从分支主节点和复制从分支的根节点之间的引用关系,即设置第一从分支主节点引用复制从分支的根节点,复制从分支的根节点的引用计数为1。
然后,依据修订从分支中各节点与主分支名字解析树中节点的引用关系,建立复制从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树。例如:依据根节点、vlan节点在主分支名字解析树中与其他各节点(根节点与tunnel节点、vlan节点与vlan节点1、vlan节点与vlan节点2)的引用关系,建立复制的根节点与主分支名字解析树中tunnel节点、复制的vlan节点与主分支名字解析树中vlan节点1、vlan节点2的引用关系。应当理解的,建立的引用关系应当与原引用关系一致,例如若在主分支名字解析树中根节点为tunnel节点的父节点,即在主分支名字解析树中根节点引用tunnel节点,那么复制根节点应当也为主分支名字解析树tunnel节点的父节点,复制的根节点应当也引用主分支名字解析树tunnel节点的父节点。
在生成第一从分支树的同时,还需要更新主分支名字解析树中各节点的引用计数,由于vlan1节点和vlan2节点分别被主分支名字解析树中和第一从分支树中的vlan节点引用,所以将vlan1节点和vlan2节点的引用计数均更新为2;并且tunnel节点分别被主分支名字解析树和第一从分支名字解析树的根节点引用,所以tunnel节点的引用计数也更新为2。至此完成对第一从分支名字解析树的生成过程的描述。
随后根据第一修订指令,在待添加接口vlan节点3的父节点下添加一个子节点:vlan节点3,即在第一从分支树中为vlan节点添加一子节点vlan节点3,此时由于该vlan节点3仅被一个父节点(vlan节点)引用了一次,所以vlan节点3的引用计数为1。
可选地,在本申请另一实施例中,第一节点修订指令可包括:待删除的第二接口标识以及第一删除操作;则S104可包括:根据第一删除操作,将第二接口标识所对应节点的引用计数减1,其中,引用计数用于指示对应节点被该节点的父节点引用的次数。具体的,可以在第一从分支树中查询与第二接口标识对应的节点,然后将第二接口标识对应节点的引用计数减1。
举例说明,图5为本申请一实施例提供的从分支名字解析树删除节点的结构示意图,如图5所示,在本申请的一个实施例中,在图3的基础上,假设第一用户的修订指令为:删除接口类型为vlan,接口标识为1的待删除接口vlan节点1,则只需根据前文示出的方式,在生成第一从分支名字解析树后,根据第一修订指令,减少vlan节点1的引用计数,即vlan节点1的引用计数由2更新为1。
其中,只有在节点引用计数为0时,则会释放该节点,该节点才会被真正删除。
图6为本申请另一实施例提供的一种基于名字解析树的处理方法的流程示意图,图7为本申请一实施例提供的名字解析树创建从分支主节点的结构示意图,如图6所示,该方法还包括S105-S106。
S105:接收第一用户发送的延迟生效模式配置指令。
其中,延迟生效模式配置指令包括第一用户的标识。
其中,当接收到第一用户发送的延迟生效模式配置指令时,表示第一用户进入到延迟生效模式,此时生成该用户对应的从分支主节点(即第一从分支主节点),该第一从分支主节点引用主分支主节点。后续在接收到第一用户的修订指令时,可根据第一用户的标识,生成第一用户对应的从分支名字解析树,然后按照配置指令对该从分支名字解析树进行修订,这样第一用户在延迟生效模式下仅会对从分支名字解析树造成修订,不会影响其他用户对主分支名字解析树的使用。
可选地,可以接收多个用户发送的延迟生效模式配置指令,则可以分别创建各用户对应的从分支主节点,各从分支主节点引用主分支主节点,如图7所示。除此之外,还可接收用户发送的立即生效模式配置指令,在立即生效模式下接收的修订指令,则会造成主分支名字解析树的修改,该过程将在后续实施例中描述。
S106:根据延迟生效模式配置指令,创建第一用户对应的从分支主节点。
其中,从分支主节点引用主分支主节点,表示当前第一用户使用的是主分支名字解析树的数据,可以存在多个第一用户对应的从分支主节点同时引用一个主分支主节点。
其中,从分支主节点的标识即为从分支主节点的编号,从分支主节点的编号可以是随机生成的,也可以是按照预设规则,根据第一用户的标识生成的,具体从分支主节点标识的生成方式本申请在此不做任何限制。
举例说明,如图7所示,在第一用户进入延迟生效模式后,由于当前存在两个用户进入延迟生效模式,则根据这两个用户分别对应的标识,创建两个从分支主节点,这两个从分支主节点的编号分别为X和Y。此时,由于各用户没有发送修改指令,并没有造成名字解析树的修改,所以第一从分支主节点和第二从分支主节点均引用主分支主节点,表示当前两个用户使用的均是主分支名字解析树的数据。
可选地,S103可包括:解除从分支主节点与主分支主节点的引用关系,建立从分支主节点与复制从分支的根节点之间的引用关系,其中,从分支主节点引用复制从分支的根节点。
依据修订从分支中各节点与主分支名字解析树中节点的引用关系,建立复制从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树。
另一实施例中,如果在立即生效模式下提交修订指令,则表示对主分支名字解析树执行修订指令指示的修订。图8为本申请另一实施例提供的一种基于名字解析树的处理方法的流程示意图,如图8所示,该方法还包括S107及S108。
S107:接收第一用户在立即生效模式下发送的第二节点修订指令。
其中,第二节点修订指令用于指示修订主分支名字解析树中根节点下的接口内容,即修订操作在主分支名字解析树中的节点上进行,所有用户都会看到此修订操作对主分支名字解析树的修改。
S108:根据第二节点修订指令,修订主分支名字解析树中对应的接口节点。
其中,根据第二节点修订指令修订完成后,还需要将主分支名字解析树的修改同步至其他从分支名字解析树中,每个从分支名字解析树根据主分支名字解析树同步的修改信息,判断是否需要对自身进行修改,若需要,则应当使其与主分支名字解析树的修改保持一致。
类似地,第二节点修订指令修订的内容也可以是添加或删除节点等,在此不具体限制。
可选地,第二节点修订指令可以包括:待删除的第四接口标识以及第二删除操作。
则S108可包括:依据待删除的第四接口标识,确定第四接口标识对应的节点;根据第二删除操作,将第四接口标识对应节点的引用计数减1,其中,引用计数用于指示对应节点被该节点的父节点引用的次数。
举例说明,图9为本申请一实施例提供的主分支名字解析树删除节点的结构示意图,图10为本申请另一实施例提供的主分支名字解析树删除节点的结构示意图。如图9所示,第二节点修订指令可包括:待删除的接口标识。举例说明:在图5的基础上,假设此时第一用户在立即生效模式下发送的第二节点修订指令为:删除接口类型为vlan、接口标识为2的vlan节点2,则需将vlan节点2的引用计数减1。由于是在立即生效模式下发送的,因此vlan需要将主分支名字解析树的修改同步到所有用户对应的从分支树名字解析树(例如第二从分支名字解析树,简称第二从分支树)上,每个从分支名字解析树在接收到主分支名字解析树的同步信息后,根据同步信息,判断是否应当对自身的从分支名字解析树进行修改。
其中,若从分支主节点引用的是主分支主节点则无需进行同步,只需对分裂出去的从分支名字解析树进行同步即可。举例说明:若当前名字解析树的形式如图7所示,就不需要对的第一从分支主节点和第二从分支主节点同步修订操作;若名字解析树的形式为图9所示,则需要对第一从分支主节点下的名字解析树同步修订操作。
可选地,第一从分支树的从分支主节点记录操作列表,操作列表包括:第一从分支树中已修订的节点标识及对应的已修订操作。同理,主分支主节点同样记录操作列表(可称为主分支操作列表),主分支操作列表包括主分支名字解析树中已修订的第二节点标识及对应的第二已修订操作。一个实施例中,主分支主节点可将主分支操作列表中以同步指令的形式向各用户对应的从分支树发送。
相应的,第一从分支树接收到第二同步指令,第二同步指令包括主分支名字解析树中已修订的第二节点标识及对应的第二已修订操作。
判断第二节点标识是否存在操作列表中。
若在第二节点标识存在操作列表中时,丢弃第二同步指令,即不执行第二同步指令。在一个实施例中,若同步过来的指令中记录的第二节点标识存在第一从分支树中记录的操作列表中时,表明第一用户曾经发送过与第二节点标识相关的修订指令,此时第一用户发送的修订指令的优先级较,无需对第一从分支树执行同步指令。例如:针对同一节点标识,即针对同一节点,若第二同步指令包括的已修订操作与第一从分支树记录的已修订操作操作冲突时,则忽略第二同步指令;若第二同步指令包括的已修订操作与第一从分支树记录的已修订操作操作相同时,表示第二同步指令指示的操作已经对第一从分支树执行过,也无需对第一从分支树执行该第二同步指令。
若在第二节点标识不存在操作列表中时,依据第二同步指令对第一从分支树进行第二节点修订指令,使得第一从分支树的修订与主分支名字解析树的修订保持一致。在一个实施例中,当同步过来的指令中记录的第二节点标识不存在第一从分支树中记录的操作列表中时,表明第一用户未发送过与第二节点标识相关的修订指令,此时需对第一从分支树执行同步指令。
其中,分裂出去的每个从分支主节点均会对接收到的用户的修订指令进行记录,生成当前从分支树对应的操作列表,以上述图3-图4给出的实施例为例,第一从分支主节点记录的操作列表为:
1.增加了vlan节点3。
2.删除了vlan节点1。
在一个实施例中,第一用户在立即生效模式下发送了第二修订指令:删除接口类型为vlan、接口标识为2的vlan节点2,此时需将vlan节点2的引用计数减1,此时vlan节点2的引用计数由2变为1。主分支主节点将第二同步指令发送给各用户对应的从分支解析树,第二同步指令用于指示删除接口类型为vlan、接口标识为2的vlan节点2。在接收到主分支主节点同步的删除vlan节点2的第二同步指令后,由于待删除的vlan节点2不在第一从分支树的操作列表内,所以对于第一从分支树,需要删除vlan节点2,将vlan节点2的引用计数减1,此时,vlan节点2的引用计数由1变为0,表示当前vlan节点2没有被任何父节点引用,此时解除第一从分支树中vlan节点对vlan节点2的引用,vlan节点2可以安全释放,释放后的名字解析树如图10所示。
可选地,在本申请的一个实施例中,同步的先后顺序可以为:按照从分支树的创建顺序发送同步信息,举例说明:若存在第一从分支树、第二从分支树和第三从分支树,其中,第一从分支树是最先创建的,第三从分支树的创建时间在第一从分支树之后、第二从分支树之前,则先将同步信息发送至第一从分支树,再发送给第三从分支树,最后发送给第二从分支树;但是同步的先后顺序也可以根据预设的优先级确定,具体同步的方式和顺序可以根据用户需要设计,并不以上述实施例给出的同步方式为限,本申请在此不做任何限制。
可选地,第二节点修订指令包括:待添加的第三接口标识以及第二添加操作。则S108可包括:依据待添加接口的接口类型,在包括主分支名字解析树的根节点及接口类型对应节点的子树中,获取第三接口标识对应节点的父节点,其中,父节点为子树中第一个引用计数大于1的节点,引用计数用于指示对应节点被该节点的父节点引用的次数;根据第二添加操作,在主分支名字解析树中添加第三接口标识对应的节点。
举例说明,图11为本申请一实施例提供的主分支名字解析树添加节点的结构示意图,图12为本申请另一实施例提供的主分支名字解析树添加节点的结构示意图,图13为本申请另一实施例提供的主分支名字解析树添加节点的结构示意图,图14为本申请另一实施例提供的主分支名字解析树节点合并过程的结构示意图,图15为本申请另一实施例提供的主分支名字解析树节点合并成功后的结构示意图。
如图11-图15所示,第二节点修订指令可包括:待添加的接口标识,举例说明:在图10的基础上,假设此时第一用户在立即生效模式下发送的第二节点修订指令为:添加接口类型为Tunnel,接口标识为2的tunnel节点2,则首先需要确定tunnel节点2的添加位置,如图10所示,由于在当前的主分支名字解析树中,Tunnel节点的引用计数大于1,表示从分支树中存在与该tunnel节点具有引用关系的节点,因此为了不影响其他从分支树,所以需要在当前名字解析树中,第一个引用计数大于1的节点处开始复制,复制后的名字解析树如图12所示。
随后主分支名字解析树(简称主分支树)分别将修改同步到各用户对应的从分支树上,此时需要通知每个从分支树:添加tunnel节点2的同步指令。各从分支树依据自身从分支主节点记录的操作列表,判断是否执行同步指令,若执行,则需要与主分支名字解析树保持一致。如图13所示,第一从分支树的操作列表中未记录有tunnel节点2的相关操作,则需执行增加tunnel节点2的同步指令,此时由于第一从分支树中tunnel类型节点和主分支树中tunnel类型节点的节点信息完全一致,所以可以对两棵树的tunnel类型节点进行合并。合并过程的名字解析树的结构示意图如图14所示,合并成功后的名字解析树的结构示意图如图14所示。
在上述实施例中,对节点信息一致的节点进行合并,可以节省名字解析树占用的空间。
合并后的名字解析树,由于第一从分支树原来引用的tunnel节点的引用计数为0,所以需要将tunnel节点删除,同时更新其引用的子节点的引用计数,即将tunnel节点1和tunnel节点2的引用计数减1,修改后的名字解析树的结构示意图如图15所示。
可选地,若主分支树和从分支树的修改路径中,每个节点的引用计数均为1,则不会影响除本分支树之外的其他分支树与该节点的引用关系,因此可以直接对名字解析树进行修改,不需要像图11-图15所示,先对引用计数大于1的节点进行复制,再根据修订指令对应的节点进行修改。
可选地,若第一用户发送提交指令(即发送commit指令,也就是执行生效操作),或第一用户退出延迟生效模式,则销毁第一用户对应的从分支树。
举例说明,图16为本申请一实施例对应的销毁从分支树过程的结构示意图,图17为本申请另一实施例对应的销毁从分支树成功后的结构示意图,如图16-图17所示:
在本申请的一个实施例中,需要将第一从分支树进行销毁,从分支树的销毁,本质就是设置从分支树下的各节点的引用计数为0,并释放引用计数为0的节点。将第一从分支树下的各节点设置为0后的名字解析树如图16所示,随后释放引用计数为0的各节点,释放完成后的名字解析树的结构示意图如图17所示,至此完成第一从分支树的销毁过程的描述。
采用本申请提供的一种基于名字解析树的处理方法,通过根据接收的用户发送的修订指令,对名字解析树进行修改。其中,在延迟生效模式下,每个用户均有其对应的独立的从分支名字解析树,在依据各用户的修订指令对名字解析树进行修订时,可以在其对应的从分支名字解析树上进行修订,因此每个用户的修改不会对其他用户对主分支名字解析树的正常使用造成影响。
其中,每个从分支名字解析树均是根据主分支名字解析树分裂复制的,并且每个用户并没有对主分支名字解析树进行完整拷贝,只是在主分支名字解析树中确定从根节点到待修订节点的修订从分支,所以内存占用很少。此外,采用本申请提出的方法,由于引用计数的设置,从分支树或主分支树对节点的添加和删除可以直接通过修改引用计数来实现,使得各节点的修订会非常迅速。
图18为本申请一实施例提供的了一种基于名字解析树的处理装置的结构示意图,如图18所示,该装置包括:接收模块201、确定模块202、复制模块203和修订模块204,其中:
接收模块201,接收第一用户在延迟生效模式下发送的第一节点修订指令,第一节点修订指令包括待修订的接口标识以及修订操作。
确定模块202,用于根据待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支;待修订节点与待修订的接口标识对应。
复制模块203,用于复制修订从分支,得到复制从分支,结合复制从分支及修订从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树。
修订模块204,用于在第一从分支树下,依据待修订的接口标识,执行修订操作。
可选地,第一节点修订指令包括:待添加的第一接口标识以及第一添加操作。
修订模块204,还用于根据第一接口标识,在第一从分支树中查询与第一接口标识对应的节点的父节点,执行第一添加操作,为父节点添加子节点并设置子节点的引用计数为1,其中,子节点为第一接口标识对应的节点,引用计数用于指示对应节点被该节点的父节点引用的次数。
可选地,第一节点修订指令包括:待删除的第二接口标识以及第一删除操作。
修订模块204,还用于根据第一删除操作,将第二接口标识所对应节点的引用计数减1,其中,引用计数用于指示对应节点被该节点的父节点引用的次数。
图19为本申请一实施例提供的了一种基于名字解析树的处理装置的结构示意图,如图19所示,该装置还包括:生成模块205,其中:
接收模块201,还用于接收第一用户发送的延迟生效模式配置指令,延迟生效模式配置指令包括第一用户的标识。
生成模块205,用于依据修订从分支中各节点与主分支名字解析树中节点的引用关系,建立复制从分支中各节点与主分支名字解析树中节点的引用关系,生成第一用户对应的第一从分支树。
图20为本申请一实施例提供的了一种基于名字解析树的处理装置的结构示意图,如图20所示,该装置还包括:销毁模块206,用于若第一用户发送提交指令,或第一用户退出所述延迟生效模式,则销毁第一用户对应的从分支树。
可选地,接收模块201,还用于接收第一用户在立即生效模式下发送的第二节点修订指令,第二节点修订指令用于指示修订主分支名字解析树中根节点下的接口内容。
修订模块204,还用于根据第二节点修订指令,修订主分支名字解析树中对应的接口节点。
可选地,第二节点修订指令包括:待添加的第三接口标识以及第二添加操作。
图21为本申请一实施例提供的了一种基于名字解析树的处理装置的结构示意图,如图21所示,该装置还包括:获取模块207,用于依据待添加接口的接口类型,在包括主分支名字解析树的根节点及接口类型对应节点的子树中,获取第三接口标识对应节点的父节点,其中,父节点为子树中第一个引用计数大于1的节点,引用计数用于指示对应节点被该节点的父节点引用的次数;
修订模块204,还用于根据第二添加操作,在主分支名字解析树中添加第三接口标识对应的节点。
可选地,第二节点修订指令包括:待删除的第四接口标识以及第二删除操作。
确定模块202,还用于依据待删除的第四接口标识,确定第四接口标识对应的节点。
修订模块204,还用于根据第二删除操作,将第四接口标识对应节点的引用计数减1,其中,引用计数用于指示对应节点被该节点的父节点引用的次数。
图22本申请一实施例提供的了一种基于名字解析树的处理装置的结构示意图,如图22所示,该装置还包括:同步模块208,用于向除各用户对应的从分支树发送第一同步指令,第一同步指令包括主分支名字解析树中已修订的第一节点标识及对应的第一已修订操作。
可选地,第一从分支树的从分支主节点记录操作列表,所述操作列表包括第一从分支树中已修订的节点标识及对应的已修订操作。图23为本申请一实施例提供的了一种基于名字解析树的处理装置的结构示意图,如图23所示,该装置还包括:选择模块209,其中:
接收模块201,还用于第一从分支树接收到第二同步指令,第二同步指令包括主分支名字解析树中已修订的第二节点标识及对应的第二已修订操作。
选择模块209,用于在第二节点标识存在操作列表中时,丢弃第二同步指令。
修订模块204,还用于在第二节点标识不存在操作列表中时,依据第二同步指令对第一从分支树进行第二节点修订指令,使得第一从分支树的修订与主分支名字解析树的修订一致。
上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
图24为本申请一实施例提供的一种基于名字解析树的处理设备的结构示意图。
一种基于名字解析树的处理设备包括:处理器601、存储器602、和总线603。存储器602存储有处理器601可执行的机器可读指令,当一种基于名字解析树的处理设备运行时,处理器601与存储器602之间通过总线603通信,处理器601执行机器可读指令,以执行如前述方法实施例所提供的请求处理方法的步骤。
具体地,存储器602中所存储的机器可读指令为本申请前述实施例所述的请求处理方法的执行步骤,处理器601可执行该请求处理方法对请求进行处理,因此,该电子设备同样具备前述方法实施例中所述的全部有益效果,本申请亦不再重复描述。
可选地,本申请还提供一种程序产品,例如存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述定位处理方法,从而,解决现有技术中存在的由于语言表达组合形式多种多样,大量信息会导致句库规模过大,占用过多的资源的问题,进而达到减小资源占用的效果。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种基于名字解析树的处理方法,其特征在于,包括:
接收第一用户在延迟生效模式下发送的第一节点修订指令,所述第一节点修订指令包括待修订的接口标识以及修订操作;
根据所述待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支;所述待修订节点与所述待修订的接口标识对应;
复制所述修订从分支,得到复制从分支,结合所述复制从分支及所述修订从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树;
在所述第一从分支树下,依据所述待修订的接口标识,执行所述修订操作。
2.根据权利要求1所述的方法,其特征在于,所述第一节点修订指令包括:待添加的第一接口标识以及第一添加操作;
所述在所述第一从分支树下,依据所述待修订的接口标识,执行所述修订操作,包括:
根据所述第一接口标识,在第一从分支树中查询与所述第一接口标识对应的节点的父节点,执行所述第一添加操作,为所述父节点添加子节点并设置所述子节点的引用计数为1,其中,所述子节点为所述第一接口标识对应的节点,引用计数用于指示对应节点被该节点的父节点引用的次数。
3.根据权利要求1所述的方法,其特征在于,所述第一节点修订指令包括:待删除的第二接口标识以及第一删除操作;
所述在所述第一从分支树下,根据所述第一节点修订指令修订接口内容,包括:
根据所述第一删除操作,将所述第二接口标识所对应节点的引用计数减1,其中,所述引用计数用于指示对应节点被该节点的父节点引用的次数。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述主分支名字解析树包括主分支主节点,所述主分支主节点引用所述主分支名字解析树的根节点,则所述方法还包括:
接收第一用户发送的延迟生效模式配置指令,所述延迟生效模式配置指令包括所述第一用户的标识;
根据所述延迟生效模式配置指令,创建所述第一用户对应的从分支主节点,其中,所述从分支主节点引用所述主分支主节点。
5.根据权利要求4所述的方法,其特征在于,所述结合所述复制从分支及所述修订从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树,包括:
解除所述从分支主节点与主分支主节点的引用关系,建立所述从分支主节点与所述复制从分支的根节点之间的引用关系,其中,所述从分支主节点引用所述复制从分支的根节点;
依据所述修订从分支中各节点与主分支名字解析树中节点的引用关系,建立所述复制从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树。
6.根据权利要求1所述的方法,其特征在于,若所述第一用户发送提交指令,或所述第一用户退出所述延迟生效模式,则销毁所述第一用户对应的从分支树。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述第一用户在立即生效模式下发送的第二节点修订指令,所述第二节点修订指令用于指示修订所述主分支名字解析树中根节点下的接口内容;
根据所述第二节点修订指令,修订所述主分支名字解析树中对应的接口节点。
8.根据权利要求7所述的方法,其特征在于,所述第二节点修订指令包括:待添加的第三接口标识以及第二添加操作;
所述根据所述第二节点修订指令,修订所述主分支名字解析树中对应的接口节点,包括:
依据待添加接口的接口类型,在包括所述主分支名字解析树的根节点及所述接口类型对应节点的子树中,获取所述第三接口标识对应节点的父节点,其中,所述父节点为所述子树中第一个引用计数大于1的节点,所述引用计数用于指示对应节点被该节点的父节点引用的次数;
根据所述第二添加操作,在所述主分支名字解析树中添加所述第三接口标识对应的节点。
9.根据权利要求7所述的方法,其特征在于,所述第二节点修订指令包括:待删除的第四接口标识以及第二删除操作;
所述根据所述第二节点修订指令,修订所述主分支名字解析树中对应的接口节点,包括:
依据所述待删除的第四接口标识,确定所述第四接口标识对应的节点;
根据所述第二删除操作,将所述第四接口标识对应节点的引用计数减1,其中,所述引用计数用于指示对应节点被该节点的父节点引用的次数。
10.根据权利要求7至9任一所述的方法,其特征在于,所述方法还包括:
向除各用户对应的从分支树发送第一同步指令,所述第一同步指令包括主分支名字解析树中已修订的第一节点标识及对应的第一已修订操作。
11.根据权利要求7-9任一所述的方法,其特征在于,所述第一从分支树的从分支主节点记录操作列表,所述操作列表包括第一从分支树中已修订的节点标识及对应的已修订操作;所述方法还包括:
所述第一从分支树接收到第二同步指令,所述第二同步指令包括主分支名字解析树中已修订的第二节点标识及对应的第二已修订操作;
在所述第二节点标识存在所述操作列表中时,丢弃所述第二同步指令;
在所述第二节点标识不存在所述操作列表中时,依据所述第二同步指令对所述第一从分支树进行所述第二节点修订指令,使得所述第一从分支树的修订与所述主分支名字解析树的修订一致。
12.一种基于名字解析树的处理装置,其特征在于,包括:接收模块、确定模块、复制模块和修订模块,其中:
所述接收模块,接收第一用户在延迟生效模式下发送的第一节点修订指令,所述第一节点修订指令包括待修订的接口标识以及修订操作;
所述确定模块,用于根据所述待修订的接口标识,在主分支名字解析树中确定从根节点到待修订节点的修订从分支;所述待修订节点与所述待修订的接口标识对应;
所述复制模块,用于复制所述修订从分支,得到复制从分支,结合所述复制从分支及所述修订从分支中各节点与主分支名字解析树中节点的引用关系,生成所述第一用户对应的第一从分支树;
所述修订模块,用于在所述第一从分支树下,依据所述待修订的接口标识,执行所述修订操作。
13.一种基于名字解析树的处理设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述基于名字解析树的处理设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至11任一所述方法的步骤。
14.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至11任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911313777.2A CN111078669B (zh) | 2019-12-18 | 2019-12-18 | 基于名字解析树的处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911313777.2A CN111078669B (zh) | 2019-12-18 | 2019-12-18 | 基于名字解析树的处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078669A true CN111078669A (zh) | 2020-04-28 |
CN111078669B CN111078669B (zh) | 2022-08-09 |
Family
ID=70316093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911313777.2A Active CN111078669B (zh) | 2019-12-18 | 2019-12-18 | 基于名字解析树的处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078669B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080221870A1 (en) * | 2007-03-08 | 2008-09-11 | Yahoo! Inc. | System and method for revising natural language parse trees |
US7805427B1 (en) * | 2006-11-27 | 2010-09-28 | Netlogic Microsystems, Inc. | Integrated search engine devices that support multi-way search trees having multi-column nodes |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN106933744A (zh) * | 2017-03-21 | 2017-07-07 | 网易(杭州)网络有限公司 | 节点修订状态标记方法及装置、电子设备及存储介质 |
CN108513658A (zh) * | 2016-12-30 | 2018-09-07 | 华为技术有限公司 | 一种事务处理方法及装置 |
-
2019
- 2019-12-18 CN CN201911313777.2A patent/CN111078669B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805427B1 (en) * | 2006-11-27 | 2010-09-28 | Netlogic Microsystems, Inc. | Integrated search engine devices that support multi-way search trees having multi-column nodes |
US20080221870A1 (en) * | 2007-03-08 | 2008-09-11 | Yahoo! Inc. | System and method for revising natural language parse trees |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN108513658A (zh) * | 2016-12-30 | 2018-09-07 | 华为技术有限公司 | 一种事务处理方法及装置 |
CN106933744A (zh) * | 2017-03-21 | 2017-07-07 | 网易(杭州)网络有限公司 | 节点修订状态标记方法及装置、电子设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
LI JUN: "A General Acceleration Algorithm for Application Protocol Parsing", 《JOURNAL OF SICHUAN UNIVERSITY (ENGINEERING SCIENCE EDITION)》 * |
周丽等: "Berkeley DB Java Edition数据结构的研究与应用", 《计算机与现代化》 * |
张宗仁; 杨天奇: "基于自然语言理解的SPARQL本体查询", 《计算机应用》 * |
韦宝典: "树结构在几种特殊签名中的应用研究", 《计算机工程与应用》 * |
Also Published As
Publication number | Publication date |
---|---|
CN111078669B (zh) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3435235B1 (en) | Method and device for executing data recovery operation | |
JP3439337B2 (ja) | ネットワーク管理システム | |
CN107992537B (zh) | 业务属性传递方法、装置、计算机设备及存储介质 | |
US11176086B2 (en) | Parallel copying database transaction processing | |
CN112287007A (zh) | 基于Flink SQL引擎的工业生产数据实时处理方法、系统 | |
Mostéfaoui et al. | Intrusion-tolerant broadcast and agreement abstractions in the presence of Byzantine processes | |
US11151157B2 (en) | Database management method | |
CN112988777B (zh) | 对象处理方法、装置、计算机设备和存储介质 | |
JP4951138B2 (ja) | データベースの管理方法 | |
CN114020840A (zh) | 一种数据处理方法、装置、服务器、存储介质及产品 | |
CN110045983B (zh) | 版本库管理方法、装置及服务器 | |
JPH0565892B2 (zh) | ||
CN111078119A (zh) | 一种数据重建方法、系统、装置及计算机可读存储介质 | |
CN111078669B (zh) | 基于名字解析树的处理方法、装置、设备及存储介质 | |
JP2013534347A (ja) | 高性能コンピューティングアプリケーションの実行のためのシステムおよび方法 | |
CN115688698A (zh) | 一种文本代码的编辑方法及系统 | |
KR20180095004A (ko) | 고 쓰루풋, 고 신뢰성의 데이터 처리 시스템 | |
CN113448493B (zh) | 用于备份数据的方法、电子设备和计算机可读介质 | |
JP2022108452A (ja) | プログラム管理装置及びプログラム管理方法 | |
CN113868249A (zh) | 一种数据存储方法、装置、计算机设备以及存储介质 | |
CN113806309A (zh) | 基于分布式锁的元数据删除方法、系统、终端及存储介质 | |
JP6239697B2 (ja) | データベースの管理方法 | |
CN113419689B (zh) | 基于状态分析的对象管理的方法、系统、设备和存储介质 | |
CN118092885B (zh) | 一种基于前后端插件架构的代码框架方法 | |
CN116226066B (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 |