对象关系数据库中分层垃圾收集的方法、存储模块和系统技术方案

技术编号:9864941 阅读:125 留言:0更新日期:2014-04-02 21:58
本发明专利技术涉及对象关系数据库中分层垃圾收集的方法、存储模块和系统,描述了对象关系数据库系统中的分层垃圾收集技术。当对象关系数据库系统接收到删除对象的请求时,对象关系数据库系统将该对象标记为删除。在后台执行的垃圾收集进程可执行清扫和标记的迭代以删除该对象和该对象的子对象。在每次迭代中,删除一层或“一代”对象。垃圾收集进程可继续迭代,直到该对象和该对象的所有派生对象都被删除为止。采用该种对象关系数据库中分层垃圾收集的方法、存储模块和系统,比常规对象删除操作更简单,可以在后台执行的进程中实现且不需要应用级的或用户级的干预,为了删除对象,应用仅需将该对象标记为删除,而不必管理该对象的子对象的删除。

【技术实现步骤摘要】
对象关系数据库中分层垃圾收集的方法、存储模块和系统
本专利技术涉及数据库管理领域,尤其涉及对象关系数据库管理领域,具体是指一种对象关系数据库系统中的分层垃圾收集。
技术介绍
对象关系数据库可以是被编程、被扩展或者被定制为存储、查询和检索数据对象的关系数据库系统。在对象关系数据库中,对象、类以及对象之间或者类之间的关系可用定义表格和表格之间的关系的数据库模式表示。与其中数据之间的关系通常是平展的常规关系数据库相比,对象关系数据库中的对象之间的关系可以是分层的。因此,当处理对象的删除时,对象关系数据库可遇到将被删除的对象具有一个或多个子对象的情形。按照惯例,对象关系数据库系统可使用显式递归删除或引用计数来处理删除,以确保当对象被删除时,该对象的派生对象也被删除。
技术实现思路
本专利技术的目的是克服了上述现有技术的缺点,提供了一种能够实现比常规对象删除操作更简单、可以在后台执行的进程中实现且不需要应用级的或用户级的干预、为了删除对象,应用仅需将该对象标记为删除,而不必管理该对象的子对象的删除的对象关系数据库中分层垃圾收集的方法、存储模块和系统。为了实现上述目的,本专利技术的对象关系数据库系统中的分层垃圾收集具有如下构成:该对象关系数据库中分层垃圾收集的方法,其主要特点是,所述的方法包括以下步骤:由一个或多个计算机接收删除数据对象的请求,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;从所述数据表格将所述记录标记为删除;和在一次或多次迭代中清扫所述数据表格,包括在每次清扫迭代中:从所述数据表格删除被标记为删除的每个记录;删除被删记录的对象标识符字段中表示的每个数据对象;以及然后从所述数据表格将其父标识符数据字段存储所述被删数据对象的表示的每个记录标记为删除;其中,所述一个或多个计算机执行所述一次或多次迭代,直到满足退出条件为止。较佳地,所述的数据对象的父对象是引用所述数据对象的对象。较佳地,从所述数据表格将所述记录标记为删除包括:将删除标记存储在所述记录的状态数据字段中并且将所述记录的对象标识符数据字段中表示的数据对象指定为根对象。更佳地,将所述记录的对象标识符数据字段中表示的数据对象指定为根对象包括:清除所述记录的父标识符数据字段。更佳地,当所述数据表格中的记录中表示的所有根对象都被删除时,或者当被检验为删除的记录的数量达到或超过定义的限制时,满足所述退出条件。较佳地,所述的方法还包括以下步骤:在从所述数据表格将所述记录标记为删除之后并且在所述数据对象被删除之前,阻止查询访问所述数据对象。较佳地,所述一个或多个计算机与接收所述请求无关地将所述一次或多次清扫迭代作为后台进程执行。本专利技术还涉及一种对象关系数据库中分层垃圾收集的非暂时性存储模块,其主要特点是,所述非暂时性存储模块用以使一个或多个计算机执行包括以下的操作的计算机指令:接收删除数据对象的请求,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;从所述数据表格将所述记录标记为删除;和在一次或多次迭代中清扫所述数据表格,包括在每次清扫迭代中:从所述数据表格删除被标记为删除的每个记录;删除被删记录的对象标识符字段中表示的每个数据对象;以及然后从所述数据表格将其父标识符数据字段存储所述被删数据对象的表示的每个记录标记为删除;其中,所述一个或多个计算机执行所述一次或多次迭代,直到满足退出条件为止。较佳地,所述数据对象的父对象是引用所述数据对象的对象。较佳地,从所述数据表格将记录标记为删除包括:将删除标记存储在所述记录的状态数据字段中并且将所述记录的对象标识符数据字段中表示的数据对象指定为根对象。更佳地,将所述记录的对象标识符数据字段中表示的数据对象指定为根对象包括:清除所述记录的父标识符数据字段。更佳地,当所述数据表格中的记录中表示的所有根对象都被删除时,或者当被检验为删除的记录的数量超过定义的限制时,满足所述退出条件。较佳地,所述操作还包括:在从所述数据表格将所述记录标记为删除之后并且在所述数据对象被删除之前,阻止查询访问所述数据对象。较佳地,所述指令使所述一个或多个计算机与接收所述请求无关地将所述一次或多次清扫迭代作为后台进程执行。本专利技术还涉及一种对象关系数据库中分层垃圾收集的系统,其主要特点是,所述的系统包括:一个或多个计算机,所述一个或多个计算机被编程为接收删除数据对象的请求,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;非暂时性存储模块,所述非暂时性存储模块用以使所述一个或多个计算机执行包括以下的操作的计算机指令:从所述数据表格将所述记录标记为删除;和在一次或多次迭代中清扫所述数据表格,包括在每次清扫迭代中:从所述数据表格删除被标记为删除的每个记录;删除被删记录的对象标识符字段中表示的每个数据对象;以及然后从所述数据表格将其父标识符数据字段存储所述被删数据对象的表示的每个记录标记为删除;其中,所述一个或多个计算机被编程为执行所述一次或多次迭代,直到满足退出条件为止。较佳地,所述数据对象的父对象是引用所述数据对象的对象。较佳地,从所述数据表格将记录标记为删除包括:将删除标记存储在所述记录的状态数据字段中并且将所述记录的对象标识符数据字段中表示的数据对象指定为根对象。更佳地,将所述记录的对象标识符数据字段中表示的数据对象指定为根对象包括:清除所述记录的父标识符数据字段。更佳地,当所述数据表格中的记录中表示的所有根对象都被删除时,或者当被检验为删除的记录的数量超过定义的限制时,满足所述退出条件。较佳地,所述操作包括:在从所述数据表格将所述记录标记为删除之后并且在所述数据对象被删除之前,阻止查询访问所述数据对象。较佳地,所述一个或多个计算机响应于接收到所述请求来执行所述一次或多次清扫迭代或者与接收所述请求无关地将所述一次或多次清扫迭代作为后台进程执行。本专利技术还涉及一种对象关系数据库中分层垃圾收集的系统,其主要特点是,所述的系统包括:非暂时性存储装置,所述非暂时性存储装置存储数据对象和数据表格,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;应用接口,所述应用接口被编程为接收删除数据对象的请求;对象标记器,所述对象标记器被编程为从所述数据表格将所述数据记录标记为删除;和对象清扫器,所述对象清扫器被编程为在直到满足退出条件为止的一次或多次迭代中执行对象清扫操作,其中,所述对象清扫操作的每次迭代包括:从所述数据表格删除被标记为删除的每个记录;从所述存储装置删除被删记录的对象标识符字段中表示的每个数据对象;以及然后从所述数据表格将其父标识符数据字段存储所述被删数据对象的表示的每个记录标记为删除。采用了该专利技术中的对象关系数据库系统中的分层垃圾收集,具有如下有益效果:可实现本说明书中描述的特征来实现一个或多个优点。例如,在一些实现中,分层垃本文档来自技高网...
对象关系数据库中分层垃圾收集的方法、存储模块和系统

【技术保护点】
一种对象关系数据库中分层垃圾收集的方法,其特征在于,所述的方法包括以下步骤:由一个或多个计算机接收删除数据对象的请求,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;从所述数据表格将所述记录标记为删除;和在一次或多次迭代中清扫所述数据表格,包括在每次清扫迭代中:从所述数据表格删除被标记为删除的每个记录;删除被删记录的对象标识符字段中表示的每个数据对象;以及然后从所述数据表格将其父标识符数据字段存储所述被删数据对象的表示的每个记录标记为删除;其中,所述一个或多个计算机执行所述一次或多次迭代,直到满足退出条件为止。

【技术特征摘要】
2013.09.11 US 14/024,0281.一种对象关系数据库中分层垃圾收集的方法,其特征在于,所述的方法包括以下步骤:由一个或多个计算机接收删除数据对象的请求,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;从所述数据表格将所述记录标记为删除;和在一次或多次迭代中清扫所述数据表格,包括在每次清扫迭代中:从所述数据表格删除被标记为删除的每个记录;删除被删记录的对象标识符字段中表示的每个数据对象;以及然后从所述数据表格将其父标识符数据字段存储所述被删数据对象的表示的每个记录标记为删除;其中,所述一个或多个计算机执行所述一次或多次迭代,直到满足退出条件为止。2.根据权利要求1所述的对象关系数据库中分层垃圾收集的方法,其特征在于,所述的数据对象的父对象是引用所述数据对象的对象。3.根据权利要求1所述的对象关系数据库中分层垃圾收集的方法,其特征在于,从所述数据表格将所述记录标记为删除包括:将删除标记存储在所述记录的状态数据字段中并且将所述记录的对象标识符数据字段中表示的数据对象指定为根对象。4.根据权利要求3所述的对象关系数据库中分层垃圾收集的方法,其特征在于,将所述记录的对象标识符数据字段中表示的数据对象指定为根对象包括:清除所述记录的父标识符数据字段。5.根据权利要求3所述的对象关系数据库中分层垃圾收集的方法,其特征在于,当所述数据表格中的记录中表示的所有根对象都被删除时,或者当被检验为删除的记录的数量达到或超过定义的限制时,满足所述退出条件。6.根据权利要求1所述的对象关系数据库中分层垃圾收集的方法,其特征在于,所述的方法还包括以下步骤:在从所述数据表格将所述记录标记为删除之后并且在所述数据对象被删除之前,阻止查询访问所述数据对象。7.根据权利要求1所述的对象关系数据库中分层垃圾收集的方法,其特征在于,所述一个或多个计算机与接收所述请求无关地将所述一次或多次清扫迭代作为后台进程执行。8.一种对象关系数据库中分层垃圾收集的系统,其特征在于,所述的系统包括:一个或多个计算机,所述一个或多个计算机被编程为接收删除数据对象的请求,所述数据对象用数据表格中的记录表示,其中,所述记录的对象标识符数据字段存储所述数据对象的表示,并且所述记录的父标识符数据字段存储所述数据对象的父对象的表示;非暂时性存储模块,所述非暂时性存储模块用以使所述一个或多个计算机执行包括以下的操作的步骤:从所述数据表格将所述记...

【专利技术属性】
技术研发人员:道格拉斯·艾伦·沃尔特
申请(专利权)人:云巅上海网络科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1