CN110069221A - 数据释放方法及装置 - Google Patents
数据释放方法及装置 Download PDFInfo
- Publication number
- CN110069221A CN110069221A CN201910361021.9A CN201910361021A CN110069221A CN 110069221 A CN110069221 A CN 110069221A CN 201910361021 A CN201910361021 A CN 201910361021A CN 110069221 A CN110069221 A CN 110069221A
- Authority
- CN
- China
- Prior art keywords
- rcu
- user space
- value
- multiple types
- mark position
- 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
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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种数据释放方法及装置,所述方法包括:接收针对目标数据的垃圾回收指令,所述目标数据为使用多种类型用户态RCU保护的数据;分别调用所述多种类型用户态RCU对应的回调函数;当确定所述多种类型用户态RCU均已经历静止期时,对所述目标数据进行释放。应用本发明实施例可以使用多种类型用户态RCU保护同一份数据,节省存储资源。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种数据释放方法及装置。
背景技术
读拷贝更新(英文:Read-Copy-Update,简称:RCU)是一种同步/保护技术,与传统的锁机制相比,RCU可以实现性能的线性提升(即中央处理单元(英文:Center ProcessUnit,简称:CPU)越多,总性能越高)。RCU通过维护多个数据的版本,保证读者可以不间断的访问数据。RCU的一个特点就是访问的数据可能不是最新的数据,在对数据实时性不敏感,但是对访问性能要求高的场景,比如数据报文的转发中,RCU是最高效的同步/保护机制。
RCU通过垃圾回收器(英文:Garbage Collector,简称:GC)进行数据释放,为了避免释放读者正在访问的数据,对于待释放的数据,GC需要确认经过一定的时间(可以称之为静止期(英文:Quiescence)),再释放该数据。
目前,常见的用户态RCU包括基于静止状态的RCU(英文:quiescent-state-basedRCU,简称QSBR)、基于内存屏障的RCU(英文:Memory-barrier-base RCU,简称MBBR)、防弹式RCU(英文:Bullet-proof RCU,简称:BPR)以及基于信号的RCU(英文:Signal-based RCU,简称SBR)等。不同类型用户态RCU静止期的确定方式并不相同。
上述不同类型用户态RCU中,BPR使用最简单,QSBR性能最高,因此,对于性能要求较高的场景(如转发流程中)通常使用QSBR对数据进行保护;而对于性能要求不高的场景(如非转发流程)通常使用BPR进行数据保护。
然而,对于某些数据(如最大传输单元(英文:Maximum Transmission Unit,简称:MTU)),其既需要使用QSBR来保护,也需要使用BPR来保护,由于QSBR和BP对于静止期的确定方式不同,目前的用户态RCU技术中,若对同一份数据同时使用QSBR和BPR进行保护(如在转发流程中使用QSBR保护,同时在非转发流程中用BP保护),则可能会由于静止期不一致,导致数据被错误释放,因此,对于需要同时使用QSBR和BPR保护的数据,通常会保护两份相同的数据,其中一份数据使用QSBR保护,另一份数据使用BP保护,造成了存储资源的浪费。
发明内容
本发明提供一种数据释放方法及装置,以解决现有技术中使用多种不同类型用户态RCU保护的数据需要存储多份相同的数据造成的存储资源浪费的问题。
第一方面,本发明提供一种数据释放方法,包括:
接收针对目标数据的垃圾回收指令,所述目标数据为使用多种类型用户态读拷贝更新RCU保护的数据;
分别调用所述多种类型用户态RCU对应的回调函数;
当确定所述多种类型用户态RCU均已经历静止期时,对所述目标数据进行释放。
第二方面,本发明提供一种数据释放装置,包括:
接收单元,用于接收针对目标数据的垃圾回收指令,所述目标数据为使用多种类型用户态读拷贝更新RCU保护的数据;
调用单元,用于分别调用所述多种类型用户态RCU对应的回调函数;
确定单元,用于确定所述多种类型用户态RCU是否均已经历静止期;
释放单元,用于当所述确定单元确定所述多种类型用户态RCU均已经历静止期时,对所述目标数据进行释放。
应用本发明公开的技术方案,针对使用多种类型用户态RCU保护的数据,当需要进行数据释放时,分别调用该多种类型用户态RCU对应的回调函数,并当确定该多种类型用户态RCU均已经历静止期时,对目标数据进行释放,从而可以使用多种类型用户态RCU保护同一份数据,节省存储资源。
附图说明
图1是本发明实施例提供的一种数据释放方法的流程示意图;
图2A是本发明实施例提供的一种链表的示意图;
图2B是本发明实施例提供的一种链表节点删除和插入的示意图;
图3是本发明实施例提供的一种具体应用场景下的数据释放方法的流程示意图;
图4是本发明实施例提供的一种数据释放装置的结构示意图;
图5是本发明实施例提供的另一种数据释放装置的结构示意图;
图6是本发明实施例提供的一种数据释放装置的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种数据释放方法的流程示意图,其中,该数据释放方法可以应用于支持RCU的数据存储系统,如图1所示,该数据释放方法可以包括以下步骤:
步骤101、接收针对目标数据的垃圾回收指令,该目标数据为使用多种类型用户态RCU保护的数据。
步骤102、分别调用该多种类型用户态RCU对应的回调函数。
本发明实施例中,考虑到不同类型用户态RCU均存在对应的垃圾回收接口(回调函数)。例如,QSBR对应call_rcu_qsbr();BPR对应call_rcu_bp。
对于使用多种类型用户态RCU保护的数据(本文中称为目标数据),当进行垃圾回收时,若调用其中某一类型用户态RCU对应的回调函数,则可能会由于其他类型用户态RCU未经历静止期,而导致数据错误释放。
因此,为了避免数据错误释放,当接收到针对目标数据的垃圾回收指令时,不再调用其中某一类型用户态RCU对应的回调函数,而是分别调用该多种类型用户态RCU对应的回调函数。
对于该多种类型用户态RCU中任一类型用户态RCU,当调用该类型用户态RCU对应的回调函数时,可以确定该类型用户态RCU是否已经历静止期。
相应地,通过分别调用该多种类型用户态RCU对应的回调函数,并当确定该类型用户态RCU已经历静止期时,调用另一类型用户态RCU对应的回调函数,直至确定该多种类型用户态RCU均已经历静止期。
步骤103、当确定该多种类型用户态RCU均已经历静止期时,对目标数据进行释放。
本发明实施例中,当确定目标数据对应的多种类型用户态RCU均已经历静止期时,对目标数据进行释放。
可见,在图1所示方法流程中,针对使用多种类型用户态RCU保护的数据,当需要进行数据释放时,分别调用该多种类型用户态RCU对应的回调函数,并当确定该多种类型用户态RCU均已经历静止期时,对目标数据进行释放,从而可以使用多种类型用户态RCU保护同一份数据,节省存储资源。
可选地,在本发明其中一个实施例中,上述分别调用多种类型用户态RCU对应的回调函数,可以包括:
按照预设顺序,调用所述多种类型用户态RCU中的第一类型用户态RCU对应的回调函数;
当确定该第一类型用户态RCU已经历静止期时,调用该预设顺序中,处于该第一类型用户态RCU之后的第二类型用户态RCU对应的回调函数,直至所述多种类型用户态RCU中的任一类型用户态RCU均已经历静止期。
在该实施例中,预设顺序可以由用户配置,也可以随机确定。
当接收到针对目标数据的垃圾回收指令时,可以按照预设顺序,依次调用上述多种类型用户态RCU中的各类型用户态RCU对应的回调函数。
假设该预设顺序为第一类型用户态RCU、第二类型用户态RCU、…、第N类型用户态RCU(N为上述多个类型用户态RCU的数量),则先调用第一类型用户态RCU对应的回调函数,并确定该第一类型用户态RCU是否已经历静止期;当确定该第一类型用户态RCU已经历静止期时,调用第二类型用户态RCU对应的回调函数,并确定该第一类型用户态RCU是否已经历静止期…直至该多种类型用户态RCU中的任一类型用户态RCU均已经历静止期。
举例来说,假设目标数据使用QSBR、BPR以及MBBR保护,预设顺序为QSBR→BPR→MBBR(即第一类型用户态RCU为QSBR、第二类型用户态RCU为BPR、第三类型用户态RCU为MBBR),当接收到针对该目标数据的垃圾回收指令时,先调用QSBR对应的回调函数,并确定QSBR是否已经历静止期;当QSBR已经历静止期时,调用BPR对应的回调函数,并确定BPR是否已经历静止期;当BPR已经历静止期时,调用MBBR对应的回调函数,并当确定MBBR已经历静止期时,确定该多种类型用户态RCU中的任一类型用户态RCU均已经历静止期。
需要说明的是,在本发明实施例中,对于任一类型用户态RCU,确定该类型用户态RCU是否经历静止期的具体实现可以参见现有用户态RCU实现中的相关描述,本发明实施例在此不做赘述。
可选地,在本发明另一个实施例中,上述分别调用多种类型用户态RCU对应的回调函数,可以包括:
对于多种类型用户态RCU中的任一类型用户态RCU,当调用任一类型用户态RCU对应的回调函数时,将任一类型用户态RCU的释放标志位的值置为第一值;
确定多种类型用户态RCU的释放标志位的值是否均为第一值;
若该多种类型用户态RCU的释放标志位的值均为第一值,则确定该多种类型用户态RCU均已经历静止期;
否则,再次调用释放标志位的值不是第一值的其他类型用户态RCU对应的回调函数,直至多种类型用户态RCU的释放标志位的值均为第一值。
在该实施例中,对于目标数据,通过释放标志位标识保护该目标数据的多种类型用户态RCU中的各类型用户态RCU的回调函数是否被调用。
当接收到针对目标数据的垃圾回收指令时,可以调用该多种类型用户态RCU中的任一类型用户态RCU对应的回调函数,并将任一类型用户态RCU的释放标志位的值置为第一值(用于标识该类型用户态RCU对应的回调函数已被调用,其值可以根据需求设置,如1)。
对于该多种类型用户态RCU中的任一类型用户态RCU,当调用了该类型用户态RCU对应的回调函数(对应的释放标志位的值被置为第一值),并确定该类型用户态RCU已经历静止期时,可以确定该多种类型用户态RCU的释放标志位的值是否均为第一值。
若该多种类型用户态RCU的释放标志位的值均为第一值,则确定该多种类型用户态RCU均已经历静止期。
若该多种类型用户态RCU的释放标志位的值不是均为第一值,则调用释放标志位的值不是第一值的其他类型用户态RCU对应的回调函数,并重复上述操作,直至该多种类型用户态RCU的释放标志位的值均为第一值,此时,确定该多种类型用户态RCU均已经历静止期。
为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的技术方案进行说明。
在该实施例中,请参见图2A,假设初始状态下,链表中包括节点A→C→E,读者从A开始,通过指针依次访问数据A→C→E。
若需要将C删除,添加新节点B,使链表变为A→B→E,则先将B初始化好(包括将B的非链表部分(名字、ID等)处理好,并将B的指针指向E),最后再修改A的指针指向B,其示意图可以如图2B所示,从而,读者或者是按照A→C→E访问,或者是按照A→B→E访问。
在该实施例中,假设C使用第一目标类型用户态RCU和第二目标类型用户态RCU保护为例。
需要说明的是,在该实施例中,第一目标类型用户态RCU和第二目标类型用户态RCU并不特指固定的两种类型用户态RCU,而是可以指代任意两种类型用户态RCU。
为便于描述,以下以第一目标类型用户态RCU为QSBR,第二目标类型用户态RCU为BPR为例进行说明,但应该认识到,实际应用中并不限于此,例如,也可以第一目标类型用户态RCU为BPR,第二目标类型用户态RCU为QSBR。
在该实施例中,当A的指针被修改为指向B时,可以启动对C的垃圾回收机制。
考虑到C使用两种类型用户态RCU(QSBR和BPR)保护,若调用其中任一种类型用户态RCU对应的回调函数触发垃圾回收,可能会出现数据错误释放的情况。
因此,可以定义一种新的回调函数(可以称为call_rcu),对于使用多种类型用户态RCU保护的数据,不再调用其中任一种类型的RCU对应的回调函数,而是统一调用call_rcu。
相应地,在该实施例中,当A的指针被修改为指向B时,可以针对C调用call_rcu。
当接收到call_rcu(输入参数中可以包括C的标识,如C对应的指针)时,由于C使用QSBR和BPR进行保护,因此,可以分别调用QSBR和BPR对应的回调函数。
在该实施例中,以先调用QSBR对应的回调函数(call_rcu_qsbr),后调用BPR对应的回调函数(call_rcu_bp)为例。
但应该认识到,这个顺序并不是对本发明保护范围的限定,即本发明实施例中,也可以先调用BPR对应的回调函数,后调用QSBR对应的回调函数。
请参见图3,在该实施例中,当接收到针对C的call_rcu时,可以先针对C调用call_rcu_bp,将BPR对应的释放标志位(bBPFree)的值置为第一值(以1为例),并确定BPR是否已经历静止期;若未经历静止期,则等待BPR经历静止期。
当BPR已经历静止期时,读取QSBR对应的释放标志位(bQSBRFree)是否等于1。
若bQSBRFree=1,则对C进行数据释放;否则,调用call_rcu_qsbr。
当调用call_rcu_qsbr时,设置bQSBRFree=1,并确定QSBR是否已经历静止期;若未经历静止期,则等待QSBR经历静止期。
当QSBR已经历静止期时,读取bBPFree是否等于1。
若bBPFree=1,则对C进行数据释放;否则,调用call_rcu_qsbr。
通过以上描述可以看出,在本发明实施例提供的技术方案中,针对使用多种类型用户态RCU保护的数据,当需要进行数据释放时,分别调用该多种类型用户态RCU对应的回调函数,并当确定该多种类型用户态RCU均已经历静止期时,对目标数据进行释放,从而可以使用多种类型用户态RCU保护同一份数据,节省存储资源。
请参见图4,为本发明实施例提供一种数据释放装置的结构示意图,其中,该数据处理装置可以应用于上述方法实施例,如图4所示,该数据释放装置可以包括:
接收单元410,用于接收针对目标数据的垃圾回收指令,所述目标数据为使用多种类型用户态RCU保护的数据;
调用单元420,用于分别调用所述多种类型用户态RCU对应的回调函数;
确定单元430,用于确定所述多种类型用户态RCU是否均已经历静止期;
释放单元440,用于当所述确定单元430确定所述多种类型用户态RCU均已经历静止期时,对所述目标数据进行释放。
在可选实施例中,所述调用单元420,具体用于按照预设顺序,调用所述多种类型用户态RCU中的第一类型用户态RCU对应的回调函数;
所述调用单元420,还具体用于当所述确定单元确定所述第一类型用户态RCU已经历静止期时,调用所述预设顺序,处于所述第一类型用户态RCU之后的第二类型用户态RCU对应的回调函数,直至所述确定单元确定所述多种类型用户态RCU中任一类型用户态RCU均已经历静止期。
请一并参见图5,为本发明实施例提供的另一种数据释放装置的结构示意图,如图5所示,在图4所示数据释放装置的基础上,图5所示数据释放装置还包括:
设置单元450,用于对于所述多种类型用户态RCU中的任一类型用户态RCU,当所述调用单元调用任一类型用户态RCU对应的回调函数时,将任一类型用户态RCU的释放标志位的值置为第一值;
所述确定单元430,还用于确定所述多种类型用户态RCU的释放标志位的值是否均为所述第一值;
所述确定单元430,具体用于若所述多种类型用户态RCU的释放标志位的值均为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
所述调用单元420,还用于若所述多种类型用户态RCU的释放标志位的值并非均为所述第一值,则再次调用释放标志位的值不是所述第一值的其他类型用户态RCU对应的回调函数,直至所述确定单元所述多种类型用户态RCU的释放标志位的值均为所述第一值。
在可选实施例中,所述多种类型用户态RCU包括第一目标类型用户态RCU和第二目标类型用户态RCU;
所述调用单元520,具体用于调用所述第一目标类型用户态RCU对应的回调函数;
所述设置单元550,具体用于将所述第一目标类型用户态RCU的释放标志位的值置为所述第一值;
所述确定单元530,具体用于当确定所述第一目标类型用户态RCU已经历静止期时,确定所述第二目标类型用户态RCU的释放标志位的值是否为所述第一值;
所述确定单元530,具体用于若所述第二目标类型用户态RCU的释放标志位的值为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
所述调用单元520,具体用于若所述第二目标类型用户态RCU的释放标志位的值不为所述第一值,则调用所述第二目标类型用户态RCU对应的回调函数;
所述设置单元550,具体用于将所述第二目标类型用户态RCU的释放标志位的值置为所述第一值;
所述确定单元530,还具体用于确定所述第二目标类型用户态RCU已经历静止期时,确定所述第一目标类型用户态RCU的释放标志位的值是否为所述第一值;
所述确定单元530,还具体用于若所述第一目标类型用户态RCU的释放标志位的值为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
所述调用单元520,还具体用于若所述第一目标类型用户态RCU的释放标志位的值不为所述第一值,再次调用所述第一目标类型用户态RCU对应的回调函数。
在可选实施例中,所述第一目标类型用户态RCU为基于静止状态的RCU,所述第二目标类型用户态类型为防弹式RCU;
或,
所述第一目标类型用户态RCU为防弹式RCU,所述第二目标类型用户态类型为基于静止状态的RCU。
请参见图6,为本发明实施例提供的一种数据释放装置的硬件结构示意图。该数据释放装置可以包括处理器601、存储有机器可执行指令的机器可读存储介质602。处理器601与机器可读存储介质602可经由系统总线603通信。并且,通过读取并执行机器可读存储介质602中与数据释放逻辑对应的机器可执行指令,处理器601可执行上文描述的数据释放方法。
本文中提到的机器可读存储介质602可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是易失存储器、非易失性存储器或者类似的存储介质。具体地,机器可读存储介质602可以是RAM(Radom Access Memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。
本发明实施例还提供了一种包括机器可执行指令的机器可读存储介质,例如图6中的机器可读存储介质602,所述机器可执行指令可由数据释放装置中的处理器601执行以实现以上描述的数据释放方法。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
由上述实施例可见,针对使用多种类型用户态RCU保护的数据,当需要进行数据释放时,分别调用该多种类型用户态RCU对应的回调函数,并当确定该多种类型用户态RCU均已经历静止期时,对目标数据进行释放,从而可以使用多种类型用户态RCU保护同一份数据,节省存储资源。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据释放方法,其特征在于,所述方法包括:
接收针对目标数据的垃圾回收指令,所述目标数据为使用多种类型用户态读拷贝更新RCU保护的数据;
分别调用所述多种类型用户态RCU对应的回调函数;
当确定所述多种类型用户态RCU均已经历静止期时,对所述目标数据进行释放。
2.根据权利要求1所述的方法,其特征在于,所述分别调用所述多种类型用户态RCU对应的回调函数,包括:
按照预设顺序,调用所述多种类型用户态RCU中第一类型用户态RCU对应的回调函数;
当确定所述第一类型用户态RCU已经历静止期时,调用所述预设顺序中,处于所述第一类型用户态RCU之后的第二类型用户态RCU对应的回调函数,直至所述多种类型用户态RCU中的任一类型用户态RCU均已经历静止期。
3.根据权利要求1所述的方法,其特征在于,所述分别调用所述多种类型用户态RCU对应的回调函数,包括:
对于所述多种类型用户态RCU中的任一类型用户态RCU,当调用任一类型用户态RCU对应的回调函数时,将任一类型用户态RCU的释放标志位的值置为第一值;
确定所述多种类型用户态RCU的释放标志位的值是否均为所述第一值;
若所述多种类型用户态RCU的释放标志位的值均为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
否则,再次调用释放标志位的值不是所述第一值的其他类型用户态RCU对应的回调函数,直至所述多种类型用户态RCU的释放标志位的值均为所述第一值。
4.根据权利要求3所述的方法,其特征在于,所述多种类型用户态RCU包括第一目标类型用户态RCU和第二目标类型用户态RCU;
所述分别调用所述多种类型用户态RCU对应的回调函数,包括:
调用所述第一目标类型用户态RCU对应的回调函数,并将所述第一目标类型用户态RCU的释放标志位的值置为所述第一值;
当确定所述第一目标类型用户态RCU已经历静止期时,确定所述第二目标类型用户态RCU的释放标志位的值是否为所述第一值;
若所述第二目标类型用户态RCU的释放标志位的值为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
否则,调用所述第二目标类型用户态RCU对应的回调函数,并将所述第二目标类型用户态RCU的释放标志位的值置为所述第一值;
当确定所述第二目标类型用户态RCU已经历静止期时,确定所述第一目标类型用户态RCU的释放标志位的值是否为所述第一值;
若所述第一目标类型用户态RCU的释放标志位的值为所述第一值,则确定所述多种类型用户态RCU均经历静止期;
否则,再次调用所述第一目标类型用户态RCU对应的回调函数。
5.根据权利要求4所述的方法,其特征在于,所述第一目标类型用户态RCU为基于静止状态的RCU,所述第二目标类型用户态类型为防弹式RCU;
或,
所述第一目标类型用户态RCU为防弹式RCU,所述第二目标类型用户态类型为基于静止状态的RCU。
6.一种数据释放装置,其特征在于,包括:
接收单元,用于接收针对目标数据的垃圾回收指令,所述目标数据为使用多种类型用户态读拷贝更新RCU保护的数据;
调用单元,用于分别调用所述多种类型用户态RCU对应的回调函数;
确定单元,用于确定所述多种类型用户态RCU是否均已经历静止期;
释放单元,用于当所述确定单元确定所述多种类型用户态RCU均已经历静止期时,对所述目标数据进行释放。
7.根据权利要求6所述的装置,其特征在于,
所述调用单元,具体用于按照预设顺序,调用所述多种类型用户态RCU中的第一类型用户态RCU对应的回调函数;
所述调用单元,还具体用于当所述确定单元确定所述第一类型用户态RCU已经历静止期时,调用所述预设顺序中,处于所述第一类型用户态RCU之后的第二类型用户态RCU对应的回调函数,直至所述确定单元确定所述多种类型用户态RCU中任一类型用户态RCU均已经历静止期。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
设置单元,用于对于所述多种类型用户态RCU中的任一类型用户态RCU,当所述调用单元调用任一类型用户态RCU对应的回调函数时,将任一类型用户态RCU的释放标志位的值置为第一值;
所述确定单元,还用于确定所述多种类型用户态RCU的释放标志位的值是否均为所述第一值;
所述确定单元,具体用于若所述多种类型用户态RCU的释放标志位的值均为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
所述调用单元,还用于若所述多种类型用户态RCU的释放标志位的值并非均为所述第一值,则再次调用释放标志位的值不是所述第一值的其他类型用户态RCU对应的回调函数,直至所述确定单元所述多种类型用户态RCU的释放标志位的值均为所述第一值。
9.根据权利要求8所述的装置,其特征在于,所述多种类型用户态RCU包括第一目标类型用户态RCU和第二目标类型用户态RCU;
所述调用单元,具体用于调用所述第一目标类型用户态RCU对应的回调函数;
所述设置单元,具体用于将所述第一目标类型用户态RCU的释放标志位的值置为所述第一值;
所述确定单元,具体用于当确定所述第一目标类型用户态RCU已经历静止期时,确定所述第二目标类型用户态RCU的释放标志位的值是否为所述第一值;
所述确定单元,具体用于若所述第二目标类型用户态RCU的释放标志位的值为所述第一值,则确定所述多种类型用户态RCU均已经历静止期;
所述调用单元,具体用于若所述第二目标类型用户态RCU的释放标志位的值不为所述第一值,则调用所述第二目标类型用户态RCU对应的回调函数;
所述设置单元,具体用于将所述第二目标类型用户态RCU的释放标志位的值置为所述第一值;
所述确定单元,还具体用于确定所述第二目标类型用户态RCU已经历静止期时,确定所述第一目标类型用户态RCU的释放标志位的值是否为所述第一值;
所述确定单元,还具体用于若所述第一目标类型用户态RCU的释放标志位的值为所述第一值,则确定所述多种类型用户态RCU均经历静止期;
所述调用单元,还具体用于若所述第一目标类型用户态RCU的释放标志位的值不为所述第一值,调用所述第一目标类型用户态RCU对应的回调函数。
10.根据权利要求9所述的装置,其特征在于,所述第一目标类型用户态RCU为基于静止状态的RCU,所述第二目标类型用户态类型为防弹式RCU;
或,
所述第一目标类型用户态RCU为防弹式RCU,所述第二目标类型用户态类型为基于静止状态的RCU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361021.9A CN110069221B (zh) | 2019-04-30 | 2019-04-30 | 数据释放方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910361021.9A CN110069221B (zh) | 2019-04-30 | 2019-04-30 | 数据释放方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110069221A true CN110069221A (zh) | 2019-07-30 |
CN110069221B CN110069221B (zh) | 2020-03-06 |
Family
ID=67369794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910361021.9A Active CN110069221B (zh) | 2019-04-30 | 2019-04-30 | 数据释放方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069221B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062810A (zh) * | 2019-11-12 | 2020-04-24 | 上交所技术有限责任公司 | 适用于证券交易系统基于接口多维索引数据的处理方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770157A (zh) * | 2004-10-27 | 2006-05-10 | 国际商业机器公司 | 效率得到提高的读取-复制更新系统和方法 |
CN1821965A (zh) * | 2004-11-30 | 2006-08-23 | 国际商业机器公司 | 群集范围的读复制更新的系统和方法 |
US7734879B2 (en) * | 2006-07-27 | 2010-06-08 | International Business Machines Corporation | Efficiently boosting priority of read-copy update readers in a real-time data processing system |
CN101770403A (zh) * | 2008-12-30 | 2010-07-07 | 北京天融信网络安全技术有限公司 | 一种多核平台上控制系统配置并发与同步的方法 |
CN102541461A (zh) * | 2010-12-31 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 远程数据存储的数据读写方法、装置及其系统 |
CN104636437A (zh) * | 2014-12-31 | 2015-05-20 | 华为技术有限公司 | 一种事件通知方法、监听器的处理方法及装置 |
CN106201749A (zh) * | 2016-08-29 | 2016-12-07 | 东软集团股份有限公司 | 一种共享内存的访问控制方法、装置及系统 |
CN107291391A (zh) * | 2017-06-21 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种用于分布式存储系统的数据处理方法和系统 |
CN108549570A (zh) * | 2018-04-28 | 2018-09-18 | 北京小米移动软件有限公司 | 用户界面的更新方法及装置 |
CN109343979A (zh) * | 2018-09-28 | 2019-02-15 | 珠海沙盒网络科技有限公司 | 一种配置管理方法及系统 |
-
2019
- 2019-04-30 CN CN201910361021.9A patent/CN110069221B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1770157A (zh) * | 2004-10-27 | 2006-05-10 | 国际商业机器公司 | 效率得到提高的读取-复制更新系统和方法 |
CN1821965A (zh) * | 2004-11-30 | 2006-08-23 | 国际商业机器公司 | 群集范围的读复制更新的系统和方法 |
US7734879B2 (en) * | 2006-07-27 | 2010-06-08 | International Business Machines Corporation | Efficiently boosting priority of read-copy update readers in a real-time data processing system |
CN101770403A (zh) * | 2008-12-30 | 2010-07-07 | 北京天融信网络安全技术有限公司 | 一种多核平台上控制系统配置并发与同步的方法 |
CN102541461A (zh) * | 2010-12-31 | 2012-07-04 | 阿里巴巴集团控股有限公司 | 远程数据存储的数据读写方法、装置及其系统 |
CN104636437A (zh) * | 2014-12-31 | 2015-05-20 | 华为技术有限公司 | 一种事件通知方法、监听器的处理方法及装置 |
CN106201749A (zh) * | 2016-08-29 | 2016-12-07 | 东软集团股份有限公司 | 一种共享内存的访问控制方法、装置及系统 |
CN107291391A (zh) * | 2017-06-21 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种用于分布式存储系统的数据处理方法和系统 |
CN108549570A (zh) * | 2018-04-28 | 2018-09-18 | 北京小米移动软件有限公司 | 用户界面的更新方法及装置 |
CN109343979A (zh) * | 2018-09-28 | 2019-02-15 | 珠海沙盒网络科技有限公司 | 一种配置管理方法及系统 |
Non-Patent Citations (2)
Title |
---|
汤小丹等: "《计算机操作系统》", 31 May 2014, 西安电子科技大学出版社 * |
郭玉东等: "《Linux原理与结构》", 31 March 2012, 西安电子科技大学出版社 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111062810A (zh) * | 2019-11-12 | 2020-04-24 | 上交所技术有限责任公司 | 适用于证券交易系统基于接口多维索引数据的处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110069221B (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3678015B1 (en) | Metadata query method and device | |
JP3851272B2 (ja) | ステートフル・プログラム・エンティティの作業負荷管理 | |
US20200293216A1 (en) | Method, apparatus and electronic device for cloud service migration | |
CN109597818A (zh) | 数据更新方法、装置、存储介质和设备 | |
US11550713B1 (en) | Garbage collection in distributed systems using life cycled storage roots | |
KR19990029323A (ko) | 애플리케이션 프로그램 인터페이스와 이를 구현하는 방법 및 컴퓨터 프로그램 제품 | |
US10216645B2 (en) | Memory data transfer method and system | |
CN107003880A (zh) | 内核更新方法和装置、计算机设备 | |
CN110069221A (zh) | 数据释放方法及装置 | |
CN111143113A (zh) | 复制元数据的方法、电子设备和计算机程序产品 | |
US20150277801A1 (en) | Information processing system, control method of information processing system, and recording medium | |
CN110442645B (zh) | 数据索引方法及装置 | |
CN104866245B (zh) | 缓存设备和存储系统之间同步快照的方法和装置 | |
US20120317383A1 (en) | Fast copy using file system block mappings | |
US7464234B1 (en) | Position independent incremental backup | |
US10664407B2 (en) | Dual first and second pointer for memory mapped interface communication with lower indicating process | |
WO2019117854A1 (en) | Controller event queues | |
US11200253B2 (en) | Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs | |
CN110543351B (zh) | 数据处理方法以及计算机设备 | |
CN113342270A (zh) | 卷卸载方法、装置和电子设备 | |
CN114911421B (zh) | 基于csi插件的数据存储方法、系统、装置及存储介质 | |
US9405469B2 (en) | Secure reservation mode for logical unit numbers and persistent reservations | |
CN111881085B (zh) | 一种读写带宽性能的优化方法及系统 | |
CN116820430B (zh) | 异步读写方法、装置、计算机设备及存储介质 | |
CN113190353B (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 | ||
CB02 | Change of applicant information |
Address after: Room 101, 1st floor, No. 1 Building, No. 8 Courtyard, Yongjiabei Road, Haidian District, Beijing 100094 Applicant after: Beijing Huasan Communication Technology Co., Ltd. Address before: Room 119, 1st floor, Building 2, Pioneer Road, Haidian District, Beijing 100085 Applicant before: Beijing Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |