数据处理方法及装置制造方法

文档序号:6489766阅读:159来源:国知局
数据处理方法及装置制造方法
【专利摘要】本发明提供一种数据处理方法及装置,所述方法包括以下步骤:同步接收数据更新请求以及数据处理请求,所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理;将待写入数据存储至第一存储空间;将待删除数据存储至第二存储空间;判断符合释放条件的数据处理请求是否执行完毕;若符合释放条件的数据处理请求执行完毕,则将所述第二存储空间的待删除数据释放。本发明采用延迟释放内存的方式,处理更新线程和读写线程同步的问题,占用内存少,处理效率高。
【专利说明】数据处理方法及装置
【【技术领域】】
[0001]本发明涉及数据处理【技术领域】,特别是涉及一种数据处理方法及装置。
【【背景技术】】
[0002]全内存索引广泛运用于需要实时更新的信息检索系统,如搜索广告播放系统、实时搜索等。其中索引的数据结构决定着索引的数据更新方式和检索方式。为了提升服务并发性能,全内存索引运行在多核多线程环境下,即由一个更新线程更新索引,同时多个读线程读取索引。
[0003]现有技术中,主要存在以下几种索引方式:
[0004]第一、阻塞型同步索引;当读线程或者写线程需要访问更新索引时,因另外一个线程已经持有访问该共享数据的锁,因此不能获取锁资源而阻塞,直到另外一个线程释放锁。该方式极易造成死锁(deadlock),活锁(Iivelock)和优先级反转(priority inversion)以及效率低下等问题。
[0005]第二、免锁结构索引;利用指针切换的原子性,在内存中维护两份内存缓冲(buffer):读缓冲和写缓冲,并通过一指针标示当前执行的为读缓冲还是写缓冲。譬如当更新线程将写缓冲更新完毕后,切换至读缓冲进行读写。但是该方式由于使用双缓冲,造成内存的浪费,而且索引数据本来就占用大量内存,如果用双缓冲,内存占用增加一倍。
[0006]综上,需要解决现有技术`中,在更新线程和读写线程同步时,占用内存空间大,以及处理效率低下的技术问题。

【发明内容】

[0007]本发明的一个目的在于提供一种数据处理方法,旨在解决现有技术在更新线程和读写线程同步时,占用内存空间大,以及处理效率低下的技术问题。
[0008]为解决上述技术问题,本发明构造了一种数据处理方法,:所述方法包括以下步骤:
[0009]同步接收数据更新请求以及数据处理请求,所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理;
[0010]将待写入数据存储至第一存储空间;
[0011]将待删除数据存储至第二存储空间;
[0012]判断符合释放条件的数据处理请求是否执行完毕;
[0013]若符合释放条件的数据处理请求执行完毕,则将所述第二存储空间的待删除数据释放。
[0014]在本发明一实施例中:同步接收数据更新请求以及数据处理请求之前,所述方法还包括以下步骤:
[0015]预先设置内存索引,所述内存索引包括第一索引空间以及第二索引空间;
[0016]所述第一索引空间用于存储待写入数据的指针;[0017]所述第二索引空间用于存储待删除数据索引。
[0018]在本发明一实施例中:将待删除数据存储至第二存储空间时,所述方法还包括以下步骤:
[0019]在所述第一索引空间中将所述待写入数据指针替换待删除数据指针;
[0020]将所述待删除数据索引存储至所述第二索引空间。
[0021]在本发明一实施例中:判断符合释放条件的数据处理请求是否执行完毕的步骤具体包括:
[0022]在接收到数据处理请求时,获取对应该数据处理请求的第一时间标识;
[0023]在所述第一索引空间中将所述待写入数据指针替换待删除数据指针时,获取第二时间标识;
[0024]若所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕,则将所述数据处理请求对应的待删除数据释放。
[0025]在本发明一实施例中:所述内存索引还包括第三索引空间,所述第三索引空间用于存储当前正在运行的数据更新请求的时间标识。
[0026]本发明的一个目的在于提供一种数据处理装置,旨在解决现有技术在更新线程和读写线程同步时,占用内存空间大,以及处理效率低下的技术问题。
[0027]为解决上述技术问题,本发明构造了一种数据处理装置,所述装置包括:
[0028]请求接收模块,用于同步接收数据更新请求以及数据处理请求,其中所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理;
[0029]数据存储模块,用于将待写入数据存储至第一存储空间;以及将待删除数据存储至第二存储空间;
[0030]判断模块,用于判断符合释放条件的数据处理请求是否执行完毕;
[0031]数据释放模块,用于在所述判断模块判断符合释放条件的数据处理请求执行完毕时,将所述第二存储空间的待删除数据释放。
[0032]在本发明一实施例中:所述装置还包括:
[0033]设置模块,用于预先设置内存索引,所述内存索引包括第一索引空间以及第二索引空间;所述第一索引空间用于存储待写入数据的指针;所述第二索引空间用于存储待删除数据索引。
[0034]在本发明一实施例中:所述装置还包括:
[0035]控制模块,用于在所述第一索引空间中将所述待写入数据指针替换待删除数据指针,并将所述待删除数据索引存储至所述第二索引空间。
[0036]在本发明一实施例中:所述装置还包括:
[0037]时间标识获取模块,用于在接收到数据处理请求时,获取对应该数据处理请求的第一时间标识;以及在所述第一索引空间中将所述待写入数据指针替换待删除数据指针时,获取第二时间标识;
[0038]所述数据释放模块,还用于在所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕时,将所述数据处理请求对应的待删除数据释放。[0039]在本发明一实施例中:所述内存索引还包括第三索引空间,所述第三索引空间用于存储当前正在运行的数据更新请求的时间标识。
[0040]相对于现有技术,本发明采用延迟释放待删除数据的方式,处理更新线程和读写线程同步的问题,即在同时接收到数据更新请求和数据处理请求时,先申请第一存储单元用于存储待写入数据,并将待删除数据存储至第二存储单元,知道符合释放条件的数据处理请求都执行完毕后,才将第二存储单元内的待删除数据释放,整个过程无需加锁,而且占用内存小,处理效率高。
[0041]为让本发明的上述内容能更明显易懂,下文特举优选实施例,并配合所附图式,作详细说明如下:
【【专利附图】

【附图说明】】
[0042]图1为本发明提供的数据处理方法的较佳实施例流程示意图;
[0043]图2为本发明中内存索引的较佳实施例结构示意图;
[0044]图3为本发明提供的数据处理装置的较佳实施例结构示意图。
【【具体实施方式】】
[0045]以下各实施例的说明是参考附加的图式,用以例示本发明可用以实施的特定实施例。本发明所提到的方向用语,例如「上」、「下」、「前」、「后」、「左」、「右」、「内」、「外」、「侧面」等,仅是参考附加图式的方向。因此,使用的方向用语是用以说明及理解本发明,而非用以限制本发明。在图中,结构相似的单元是以相同标号表示。
[0046]请参阅图1,图1为本发明提供的数据处理方法的较佳实施例流程示意图。
[0047]在步骤SlOl中,同步接收数据更新请求以及数据处理请求。
[0048]其中所述数据更新请求用于将待写入数据替换待删除数据,即进行数据的更新。而所述数据处理请求用于对所述待删除数据进行相应的处理,譬如对待删除数据进行读写处理等。本发明主要用于处理更新线程和读写线程同步的问题,因此该步骤SlOl中的数据更新请求和数据处理请求同步接收。
[0049]在步骤S102中,将待写入数据存储至第一存储空间。
[0050]该步骤即在更新数据时,首先申请第一存储空间,将待写入数据写入该第一存储空间。
[0051]在步骤S103中,在预先设置的内存索引中将待写入数据指针替换待删除数据指针。
[0052]在具体实施过程中,本发明预设一内存索引,譬如请参阅图2,图2为本发明提供的内存索引的较佳实施例结构示意图,该内存索引包括第一索引空间21、第二索引空间22以及第三索引空间23。
[0053]所述第一索引空间21用于存储待写入数据的指针;所述第二索引空间22用于存储待删除索引数据索引,每条待删除数据索引包括有数据内存指针及该待删除索引数据加入所述第二索引空间22的时间标识。所述第三索引空间23用于存储当前正在运行的数据更新请求的时间标识。
[0054]在步骤S104中,将待删除数据存储至第二存储空间。[0055]在具体实施过程中,同时还将待删除数据索引写入第二索引空间22,并记录当前时间标识(譬如时间戳)到该待删除数据索引。
[0056]在步骤S105中,判断符合释放条件的数据处理请求是否执行完毕,若是,则进行步骤S106,否则继续进行该判断步骤S105。
[0057]在具体实施过程中,在接收到数据处理请求时,记录对应该数据处理请求的第一时间标识。在将待删除数据存储至第二存储空间时,记录待删除数据存储至所述第二存储空间的第二时间标识。之后判断所述第二时间标识是否早于所有的第一时间标识,若所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕,则将所述数据处理请求对应的待删除数据释放。
[0058]除了上述的释放条件外,还可以有其它的释放条件,譬如在所述第三索引空间23中获取最早进入检索请求的时间标识,这个该时间标识之前的待删除数据全部回收。
[0059]在步骤S106中,将所述第二存储空间内相应的待删除数据释放。
[0060]在具体实施过程中,本发明提供的数据处理方法还包括有检索的步骤,具体包括:发送检索请求到所述第三索引空间23进行注册,其中注册的时间包含该检索请求的时间标识(时间戳),在所述检索请求执行完毕后,在所述第三索引空间23注消。
[0061]请参阅图3,图3为本发明提供的数据处理装置的较佳实施例结构示意图,所述装置包括设置模块31、请求接收模块32、数据存储模块33、控制模块34、时间标识获取模块35、判断模块36以及数据释放模块37。
[0062]所述设置模块31预先设置内存索引,具体请参阅图2,所述内存索引包括第一索引空21、第二索引空间22以及第三索引空间23 ;所述第一索引空间21用于存储待写入数据的指针;所述第二索引空间22用于存储待删除数据索引。所述第三索引空间23用于存储当前正在运行的数据更新请求的时间标识。
[0063]所述请求接收模块32同步接收数据更新请求以及数据处理请求,其中所述数据更新请求用于将待写入数据替换待删除数据;而所述数据处理请求用于对所述待删除数据进行相应的处理。
[0064]所述数据存储模块33将待写入数据存储至第一存储空间,并将待删除数据存储至第二存储空间。所述控制模块34在所述内存索引的第一索引空间21中将所述待写入数据指针替换待删除数据指针,并将待删除数据索引存储至所述第二索引空间22。
[0065]所述时间标识获取模块35在接收到数据处理请求时,获取对应该数据处理请求的第一时间标识;在所述内存索引的第一索引空间21中将所述待写入数据指针替换待删除数据指针时,获取第二时间标识。
[0066]所述判断模块36判断符合释放条件的数据处理请求是否执行完毕;譬如在所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕时,判定符合释放条件的数据处理请求执行完毕,此时所述数据释放模块37将所述第二存储空间的待删除数据释放。
[0067]关于所述数据处理装置的具体描述请参阅上文针对数据处理方法的较佳实施例的详细描述,此处不再赘述。
[0068]本发明采用延迟释放待删除数据的方式,处理更新线程和读写线程同步的问题,即在同时接收到数据更新请求和数据处理请求时,先申请第一存储单元用于存储待写入数据,并将待删除数据存储至第二存储单元,知道符合释放条件的数据处理请求都执行完毕后,才将第二存储单元内的待删除数据释放,整个过程无需加锁,而且占用内存小,处理效率高。
[0069]综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。
【权利要求】
1.一种数据处理方法,其特征在于:所述方法包括以下步骤: 同步接收数据更新请求以及数据处理请求,所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理; 将待写入数据存储至第一存储空间; 将待删除数据存储至第二存储空间; 判断符合释放条件的数据处理请求是否执行完毕; 若符合释放条件的数据处理请求执行完毕,则将所述第二存储空间的待删除数据释放。
2.根据权利要求1所述的数据处理方法,其特征在于:同步接收数据更新请求以及数据处理请求之前,所述方法还包括以下步骤: 预先设置内存索引,所述内存索引包括第一索引空间以及第二索引空间; 所述第一索引空间用于存储待写入数据的指针; 所述第二索引空间用于存储待删除数据索引。
3.根据权利要求2所述的数据处理方法,其特征在于:将待删除数据存储至第二存储空间时,所述方法还包括以 下步骤: 在所述第一索引空间中将所述待写入数据指针替换待删除数据指针; 将所述待删除数据索引存储至所述第二索引空间。
4.根据权利要求3所述的数据处理方法,其特征在于:判断符合释放条件的数据处理请求是否执行完毕的步骤具体包括: 在接收到数据处理请求时,获取对应该数据处理请求的第一时间标识; 在所述第一索引空间中将所述待写入数据指针替换待删除数据指针时,获取第二时间标识; 若所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕,则将所述数据处理请求对应的待删除数据释放。
5.根据权利要求2所述的数据处理方法,其特征在于:所述内存索引还包括第三索引空间,所述第三索引空间用于存储当前正在运行的数据更新请求的时间标识。
6.一种数据处理装置,其特征在于:所述装置包括: 请求接收模块,用于同步接收数据更新请求以及数据处理请求,其中所述数据更新请求用于将待写入数据替换待删除数据;所述数据处理请求用于对所述待删除数据进行相应的处理; 数据存储模块,用于将待写入数据存储至第一存储空间;以及将待删除数据存储至第二存储空间; 判断模块,用于判断符合释放条件的数据处理请求是否执行完毕; 数据释放模块,用于在所述判断模块判断符合释放条件的数据处理请求执行完毕时,将所述第二存储空间的待删除数据释放。
7.根据权利要求6所述的数据处理装置,其特征在于:所述装置还包括: 设置模块,用于预先设置内存索引,所述内存索引包括第一索引空间以及第二索引空间;所述第一索引空间用于存储待写入数据的指针;所述第二索引空间用于存储待删除数据索引。
8.根据权利要求7所述的数据处理装置,其特征在于:所述装置还包括: 控制模块,用于在所述第一索引空间中将所述待写入数据指针替换待删除数据指针,并将所述待删除数据索引存储至所述第二索引空间。
9.根据权利要求8所述的数据处理装置,其特征在于:所述装置还包括: 时间标识获取模块,用于在接收到数据处理请求时,获取对应该数据处理请求的第一时间标识;以及在所述第一索引空间中将所述待写入数据指针替换待删除数据指针时,获取第二时间标识; 所述数据释放模块,还用于在所述第二时间标识早于所有的第一时间标识,且所述第一时间标识对应的数据处理请求执行完毕时,将所述数据处理请求对应的待删除数据释放。
10.根据权利要求7所述的数据处理装置,其特征在于:所述内存索引还包括第三索引空间,所述第三索引空间用于存储当前正在运行的数据更新请求的时间标识。
【文档编号】G06F12/08GK103729304SQ201210384703
【公开日】2014年4月16日 申请日期:2012年10月11日 优先权日:2012年10月11日
【发明者】樊华 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1