CN101063976A - 用于快速删除物理群集数据的方法和设备 - Google Patents
用于快速删除物理群集数据的方法和设备 Download PDFInfo
- Publication number
- CN101063976A CN101063976A CNA2007100964204A CN200710096420A CN101063976A CN 101063976 A CN101063976 A CN 101063976A CN A2007100964204 A CNA2007100964204 A CN A2007100964204A CN 200710096420 A CN200710096420 A CN 200710096420A CN 101063976 A CN101063976 A CN 101063976A
- Authority
- CN
- China
- Prior art keywords
- multidimensional
- data
- piece
- implemented method
- computer implemented
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24557—Efficient disk access during query execution
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
Abstract
一种用于在多维群集数据库中删除行的计算机实现的方法、装置以及计算机可用程序代码。多维群集处理器接收删除一组多维群集数据的请求。所述多维群集处理器确定是否所有的多维群集数据都位于块中。响应于所有的多维群集数据都取得了删除资格,所述多维群集处理器删除所述块中的所有数据,以便删除所述多维群集数据集。
Description
技术领域
本发明一般涉及管理数据库中的数据和资源。更具体地,本发明涉及一种计算机实现的方法和计算机可用程序代码,其用于快速删除数据库的行而以日志记录有关对行的删除的细节。
背景技术
数据库最大的层次结构是表格。当用户创建表格的时候,该表格是空的。之后,用户可以向表格添加一行或多行。行是至少一个值。数据库管理系统将值安排在字段中。字段是开放的存储空间,其足够大,以便容纳所期望的数据。字段常常限于特定的类型,例如日期,或者负数值,或者字母数字串,连同其它类型的数据或信息。数据库管理系统组织不同行内的字段。数据库管理系统将对于一组行来说代表相同类型数据的每个字段组织成一列该相同类型的数据。
周期性地,用户可以从数据库移除大量的数据,通常是通过从该数据库删除多行数据。从数据库删除大量数据的原因是不同的。例如,用户删除数据以消除废弃的数据。有时用户删除数据是响应于当数据库中的空闲空间或存储器耗尽时接收到新的数据。该策略通常比起添加更多的磁盘存储器来容纳新数据的策略更为可取。
从数据库删除数据的另一情况发生在公司停止从事某一领域内的业务的时候。例如,数据库可以包括具有关于区域A的一片数据的行。公司可能停止从事区域A中的业务。因此,用户可能希望删除区域字段对应于“区域A”的所有的行。
用于删除数据库记录的现有方法包括数据库管理系统删除行的步骤。接下来,该数据库管理系统将删除步骤的细节记入删除日志(delete log)。该日志记录即使对于批量操作也是继续的,在该批量操作中,通过公共请求(common request)删除了很多行。因此,可以创建大量的删除日志。管理大量的删除日志是繁重的,这是因为需要非期望量的时间来管理删除日志,以及因为非期望量的存储空间可能用于存储删除日志。当用户试图恢复先前所删除的数据的时候,冗长的删除日志还可能使过程减慢。当不必要的大的删除日志用于恢复先前所删除的数据的时候,数据库管理系统操作更慢。
用于删除数据库记录以及以日志记录对该记录的删除的现有方法的例子如下。用户命令数据库管理系统删除数据。该用户将命令编写成包括删除请求的事务。删除请求包括这样的条件,即其基于行是否具有存储了满足该条件的值的列或字段而准许数据库管理系统使该行取得资格。当该行中的字段满足此条件时,该行取得资格。在常规方法中,测试每行中所选择的字段。数据库管理系统继续以这种方式测试随后的行。对于每行的各资格测试,数据库管理系统都删除取得资格的行,并且以日志记录对删除日志的改变。
发明内容
本文所描述的方法和设备提供了一种用于删除数据的计算机实现的方法和计算机可用程序代码。多维群集处理器接收删除一组多维群集数据的请求。所述多维群集处理器确定是否所有的多维群集数据都位于块中。响应于所有的多维群集数据都取得删除资格,所述多维群集处理器删除所述块中的所有数据来删除所述多维群集数据集。
附图说明
所附权利要求中陈述了被认为是本发明的特色的新颖性特征。然而,在结合附图阅读时,通过参照以下对说明性实施例的详细描述,将最好地理解本发明本身及其优选的使用模式、更多的目的和优点,其中:
图1是依照说明性实施例的数据处理系统;
图2是依照说明性实施例的数据处理系统的框图;
图3示出了依照说明性实施例的处理器系统的数据流示图;
图4示出了依照说明性实施例的结构中的关系的数据结构;
图5A示出了依照说明性实施例,对块状态数据结构的一连串修正;
图5B示出了依照说明性实施例的页状态数据结构;
图6是示出了依照说明性实施例删除数据库记录的流程图;
图7是示出了依照可选的说明性实施例删除数据库记录的流程图;
图8示出了依照说明性实施例,用于限定行或块的条件的一组例子;
图9是示出了依照说明性实施例插入数据的流程图;以及
图10是示出了依照说明性实施例插入数据的流程图。
具体实施方式
现参照附图并且特别参照图1,其图形表示了可以在其中实现说明性实施例的数据处理系统。所描述的计算机100包括系统单元102、视频显示终端104、键盘106、存储设备108(其可以包括软盘驱动器和其它类型的永久和可移动存储介质),以及鼠标110。个人计算机100可以包括附加的输入设备,举例来说,诸如操纵杆、触摸板、触摸屏、跟踪球、扩音器等。可以使用任何合适的计算机来实现计算机100,例如位于纽约Armonk的国际商业机器公司的产品IBM eServer计算机或IntelliStation计算机。尽管绘图表示示出了计算机,然而可以在诸如网络计算机的其它类型的数据处理系统中实现其它的实施例。计算机100还优选地包括图形用户接口(GUI),其可以借助驻留于在计算机100内操作的计算机可读介质的系统软件来实现。
图2示出了可以在其中实现实施例的数据处理系统的框图。数据处理系统200是诸如图1的计算机100的计算机的例子,可以在其中安置实现说明性实施例过程的代码或指令。在所描述的例子中,数据处理系统200采用包括北桥和存储控制器集线器(MCH)202以及南桥和输入/输出(I/O)控制器集线器(ICH)204的集线器体系结构。处理器206、主存储器208以及图形处理器210连接至北桥和存储控制器集线器202。举例来说,图形处理器210通过加速图形端口(AGP)连接至MCH。
在所描述的例子中,局域网(LAN)适配器212连接至南桥和I/O控制器集线器204,并且音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬磁盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其它通信端口232,以及PCI/PCIe设备234通过总线238和总线240连接至南桥和I/O控制器集线器204。PCI/PCIe设备可以包括,例如以太网适配器、附加卡(add-in cards)以及用于笔记本计算机的PC卡。PCI使用卡式总线控制器,而PCIe并不使用。ROM 224可以是,例如闪速二进制输入/输出系统(BIOS)。硬磁盘驱动器226和CD-ROM驱动器230可以使用,例如,集成驱动器电子电路(IDE)或串行高级技术配件(SATA)接口。超级I/O(SIO)设备236连接至南桥和I/O控制器集线器204。
操作系统在处理器206上运行,并且协调和提供对图2中数据处理系统200内的各种组件的控制。操作系统可以是市场上可获得的操作系统,例如MicrosoftWindowsXP。Microsoft和Windows是微软公司在美国、其它国家或二者的商标。面向对象的编程系统,例如JavaTM编程系统,可以结合操作系统运行并且从在数据处理系统200上执行的Java程序或应用向操作系统提供调用。Java是Sun微系统公司在美国、其它国家或二者的商标。
用于操作系统的指令、面向对象的编程系统,以及应用或程序位于诸如硬磁盘驱动器226的存储设备,并且可以被加载到主存储器208给处理器206执行。说明性实施例的过程是由处理器206使用计算机实现的指令来执行的,举例来说,其可以位于诸如主存储器208、只读存储器224的存储器中,或者位于一个或多个外围设备中。
本领域的普通技术人员可以理解,图1至图2中的硬件可以取决于实现而变化。除了图1至图2中所描述的硬件之外,或者代替图1至图2中所描述的硬件,可以使用其它的内部硬件或外围设备,例如闪速存储器、等效非易失性存储器或光盘驱动器等。此外,说明性实施例的过程可以应用于多处理器数据处理系统。
在一些说明性的例子中,数据处理系统200可以是个人数字助理(PDA),其被配置具有闪速存储器,以提供用于存储操作系统文件和/或用户产生的数据的非易失性存储器。总线系统可以包括一个或多个总线,例如系统总线、I/O总线和PCI总线。当然,可以使用在依附于构造或体系结构的不同组件或设备之间提供数据传递的任何类型的通信构造或体系结构来实现总线系统。通信单元可以包括用于发送和接收数据的一个或多个设备,例如调制解调器或网络适配器。存储器可以是,例如主存储器208,或是诸如在北桥和存储控制器集线器202中找到的高速缓存。处理单元可以包括一个或多个处理器或CPU。图1至图2中所描述的例子以及上述例子并不意味着暗示结构限制。例如,数据处理系统200除了采取PDA的形式之外,还可以是平板计算机(tablet computer)、膝上型计算机或电话设备。
说明性实施例提供了一种用于快速删除数据库数据的计算机实现的方法以及计算机可用程序代码。删除包括将多行标记为空闲。将数据库行的分片和其它分组统一成存储器的公用块(common block)。说明性实施例识别出在删除规则或条件下行的共同元素何时取得资格。说明性实施例通过将块标记为已删除或用别的方式已转出来删除行的片区(tract),而不是逐段删除行。
图3示出了依照说明性实施例的处理器系统的数据流示图。请求计算机301可以是代理计算机,例如,图2的数据处理系统200。用户常常通过向数据库管理系统发送事务来控制数据库管理系统。事务包括一个或多个请求,例如,删除请求。用户将请求302发送至多维群集处理器303。多维群集处理器可以是数据库管理系统,例如,图2的数据处理系统200的实例。多维群集处理器303可以是运作于数据处理系统(例如,图2的数据处理系统200)的第二实例上的数据库管理系统。事务是顺序提供给多维群集处理器的一组请求。事务可以包括,例如,删除请求。多维群集处理器303可以将事务标识符分派给请求。事务标识符是与特定事务关联的唯一标识。事务标识符在多维群集处理器执行响应于该事务中的请求的步骤期间维持标识符。事务标识符准许跟踪来自不同实体的活动以及来自相同计算机的分离事务间的活动。
多维群集处理器303通过插入数据、删除数据、更新数据,以及对多维群集数据305和关联的多维群集元数据307进行其它改变来对数据库进行改变。多维群集数据库中的多维群集数据305被安排为一个或多个表格中的行值和列值。一组多维群集数据是两行或多行,各行在相应的行或记录的至少一列或至少一个属性中具有相同的值。字段是行中的列值的特定实例。值是可以存储在行或记录的字段中的任意比特表示。行包括至少两个值。
多维群集元数据是描述或修改数据库中第一组数据的第二组数据。数据库中的数据是行的内容,有时称为值。例如,用户可以在多维群集数据库内定义表格。用户以比特或字节建立特定的页大小。用户建立特定数目的页来作为分派给表格的块。当创建、扩展和收缩表格的时候,多维群集处理器跟踪块标识符、页标识符以及其它单元标识符,以便以均衡的方式来组织对存储器、处理器时间以及存储装置的分配。因为数据库管理系统使用块、页以及状态比特来组织数据库的表格,因此可以将块、页以及状态比特特征化为元数据。
图4示出了依照说明性实施例的结构中的关系的数据结构。图4中所示出的数据结构可以在数据处理系统(例如图1中所示出的数据处理系统100或图2中所示出的数据处理系统200)中实现。另外,图4中所示出的数据结构可以针对图3中所描述的数据流使用。填充的(populated)表格400是这样的表格,即其具有包括与“国家”、“项目ID”和“年份”有关的数据的列。
示出了两个块:块A 401和块B 411,其为包括多维群集数据的行分配空间。块是存储分配,并且包括为了维持数据库完整性而规定了存储分配的各方面的元数据。例如,块可以包括存储了值的比特,该值指示块在使用中并且不应当在一段时间内被编辑。存储分配是有限数量的存储器中的地址。地址对于块是唯一的。块大小是由操作系统建立的若干比特。存储分配包括整数个块,每一个的大小便是块大小。还可以按整数个页来表示块大小。页是固定数目的比特。
因而,块图可以包括诸如块标题的元数据。在表格开端处,块标题包括用于至少一页一直到有限集合的状态比特。此外,块标题可以具有用于事务标识符的字段。除了块标题以外,块本身可以与一个或多个状态比特关联。状态比特包括,例如,“保留”、“使用中”、“空闲”以及“转出”。这样的状态比特可以通过将给出的比特设置为逻辑1来指示。数据库可以将一行或多行插入公用块,其中所有的行在相同的字段都具有共同值。页是相连存储的单位。块中所涉及的页在物理上相邻于该块中的至少另一页。根据用户的喜好,可以通过将给出的比特设置为逻辑0来指示状态比特。在图4中所示出的说明性例子中,块A 401包括四页:页1 403、页2 405、页3 407以及页4 409。
多维群集数据库以多种方式组织多维群集数据。块A 401含有多维群集数据。多维群集数据库将公用块中的空间分配成两行或多行。另外,多维群集数据库保证任何剩余的行(同样分配给了该块)在相同的至少一列或至少一个属性中具有相同的值。因此,块中所有的数据都是多维群集数据。
图5A示出了依照说明性实施例,对块图或块状态数据结构的一连串修正。块图可以存储在块的第一页中,例如,图4中的块A 401的页1 403。块图包括与块关联的状态比特。举例来说,状态比特是转出比特(roll-outbit)。转出比特(如果设置的话)指示块和关联的页以及记录被删除,但却可能是可恢复的。可以对状态比特进行分组以形成状态字段。因而,状态字段是对状态比特的扩展。
使用中状态比特确定块要么可用要么不可用。例如,用户可以选择‘1’比特来指示块在使用中,并且因而对于存储新的数据来说不可用。类似地,用户可以选择‘0’比特来指示块当前并未在使用中,并且因而对于存储新的数据来说是可用的。
响应于接收到请求,多维群集处理器,例如图3的群集处理器301,在块中搜索并且改变块图。在第一时间,图5A将改变示为第一时间块图500。保存在其中的块的状态比特如下:块1 501是保留的。块2 503在使用中。块3 505在使用中。块4 507在使用中。在第二时间,多维群集处理器可以将块图改变成第二时间块图510。多维群集处理器可以选择块4 517并且将使用中比特重置为可用状态。在这种情况下,多维群集处理器使转出比特未改变。在第三时间,多维群集处理器将第三时间块图520中的转出比特改变成1。在该例中,块4 527是“已转出的”。
图5B示出了依照说明性实施例的页状态数据结构。单个页状态数据结构与各块关联。存在许多页状态比特,其对应于在表格初始时间所建立的每块页的比率(the ratio of pages per block)。在该例中,页状态数据结构530分配空间来存储事务标识符533、页1状态535、页2状态537、页3状态539,以及页4状态541。取决于为各块所建立的页的数目,可以给出更少或更多的页状态。
图6是示出了依照说明性实施例删除数据库记录的流程图。多维群集处理器,例如图3的多维群集处理器303,可以实现图6的步骤。最初,多维群集处理器接收包括删除请求的事务(步骤600)。删除请求指定了条件。条件是由关系所联系的值。关系可以是以数据库软件解释该值这样的方式隐含的。例如,数据库软件可以解释到:仅包括值的条件意味着该条件对于与该值匹配的每个字段都是成立的。关系可以包括数学关系或排序关系。
接下来,多维群集处理器为事务分派事务标识符(步骤601)。多维群集处理器获得第一行(步骤602)。多维群集处理器检查数据库的行(步骤603)。多维群集处理器确定是否取尽了所有的行(步骤604)。当多维群集处理器检查了每一行,或者多维群集处理器找到含有每一行的块时,所有的行便取尽。如果取尽了所有的行,那么处理终止。然而,如果没有取尽所有的行,那么多维群集处理器确定是否块中的所有多维群集数据都取得删除资格。
多维群集处理器通过确定当前行是否取得资格(步骤605)来开始这一确定。限定资格是这样的动作,即多维群集处理器着手确定行中的字段满足条件。例如,多维群集处理器可以通过确定用于“国家”的字段与值“墨西哥”匹配来使行取得资格。资格或者取得资格的行的状态可以基于关联从行扩展到存储该行的块。在这样的情况下,如果行取得资格,那么所关联的块也取得资格。
如果行取得资格,则多维群集处理器在与取得资格的行相同的片中查找块(步骤606)。例如,多维群集处理器可以找到图4的块A 401。当值或关键值在表格中沿特定的列在多行中是相同的时候,便出现维或片。片是具有相同值的所有的行。片的更为有限的形式是单元。单元是满足多维条件的行的分组。因而,单元是由行所共享的至少两列。因此,单元具有第一值和第二值。
多维群集处理器确定对于该单元是否取尽了所有的块(步骤607)。当多维群集处理器通过测试每一块来完成对块的搜索时,块便取尽,例如,如在步骤606的重复执行期间所实现的。当多维群集处理器查找块时,多维群集处理器已经完成确定是否块中的所有多维群集数据都取得了删除资格。步骤607的否定出口使得多维群集处理器双态切换与该块关联的使用中比特(步骤609)。例如,多维群集处理器将使用中比特设置为‘1’。如以上所解释的,如果将使用中比特设置为‘1’,那么该块就在“使用中”并且不可用于存储新的数据。
接下来,多维群集处理器在块图中为找到的块设置转出比特,并且在块标题中设置事务标识符(步骤611)。多维群集处理器在块中获得页(步骤613)。例如,多维群集处理器获得图4的页1 403。多维群集处理器确定是否发现页(步骤615)。如果发现页,则多维群集处理器为页控制信息书写日志记录(log record)。日志记录包括在删除之前以及之后的、对页控制信息的描述。因此可以将日志记录特征化以包括“之前描述”和“之后描述”(步骤617)。
接下来,多维群集处理器清空该页(步骤619)。多维群集处理器通过重复执行步骤613来继续在块中获得更多的页。最后,多维群集处理器确定并未发现新的页(步骤615)。在该例中,多维群集处理器确定已根据步骤617和619处理了所有的页。在这样的情况下,多维群集处理器通过重复执行步骤606来继续查找更多的块。
返回到步骤607,一旦所有的块对于特定的单元都取尽时,多维群集处理器便搜寻出下一行(步骤621)。此外,当在步骤605所控制的流程图循环内处理器在行之中寻找的时候,多维群集处理器继续在步骤621搜寻出下一行。最后,多维群集处理器取尽最后的块中所有的行。过程由此终止。
图7是示出了依照可选的说明性实施例删除数据库记录的流程图。多维群集处理器,例如图3的多维群集处理器303,可以实现图7的步骤。
最初,多维群集处理器接收删除一组多维群集数据的请求(步骤701)。接下来,多维群集处理器确定是否块中所有的多维群集数据都取得了删除资格(步骤703)。在肯定的确定之后,多维群集处理器删除取得删除资格的所有数据。多维群集处理器通过删除块中所有的数据来删除取得资格的数据。因而,多维群集处理器删除了多维群集数据集(步骤705)。处理由此终止。
图8示出了依照说明性实施例用于限定行或块的条件的一组例子。项目“事务日期”801描述了表格的行中的字段。项目803“小于”描述了数学关系。项目“小于”可以将值与考虑用于测试的字段相耦合。项目805“当前日期”是这样的变量,其存储了存在于多维群集处理器操作功能时的当前日期。项目800“条件”对于事务日期小于当前日期之前六个月的所有的行表示为真值。在项目820“条件”中,项目821“国家”描述了表格的行中的字段。项目823“相等”描述了这样的关系,即日期相同。项目825“墨西哥”描述了项目823“相等”所测试的数据串。因而,如果将国家字段设置为墨西哥,则项目820“条件”对于行测试得真。在项目830“条件”中,项目831“年份”描述了表格的行中的字段。项目833“相等”描述了这样的关系,即日期相同。项目835“1997”描述了可以将行的字段与之比较的年份。因而,如果将年份字段设置为1997,则项目830“条件”对于行测试得真。
以上所描述的字段仅仅是字段的例子。很多其它的字段和字段类型可以受控满足条件。例如,基于含有整数、浮点值或串的字段,字段可以与值相关。此外,可以将条件表示为与布尔算子(例如‘AND(与)’和‘OR(或)’)链接的组合。还可以将条件描述如下:“在年份<2000并且国家=墨西哥的情况下”。
图9是示出了依照说明性实施例插入数据的流程图。多维群集处理器接收插入请求(步骤901)。多维群集处理器确定群集处理器是否可以在单元的现有块中为行找到空间(步骤902)。否定的确定使得多维群集处理器进入这样的循环,即在候选块之中寻找合适的块。候选块是这样的块,即其不具有用于行插入的空间。
多维群集处理器获得第一候选块(步骤903)。多维群集处理器确定是否取尽了一组候选块(步骤904)。多维群集处理器确定是否可以使用候选块(步骤905)。多维群集处理器通过确定“使用中”比特是否设置为零来进行这一确定。如果步骤905的结果是肯定的,则多维群集处理器确定候选决是否并不冲突。
如果转出比特对于候选块设置为零,则候选块并不冲突。此外,如果候选块的事务标识符区别于当前事务的事务标识符,则候选块并不冲突。相反,如果转出比特对于候选块设置为1并且与候选块关联的事务标识符和分派给该事务的当前事务标识符是相同的,则候选块是有冲突的。在步骤907或909,多维群集处理器进行该确定。例如,多维群集处理器确定是否设置了转出比特(步骤907)。否定的确定指示候选块并不冲突,并且处理在步骤915继续。
然而,肯定的确定使得多维群集处理器确定与候选块关联的事务标识符是否和当前事务标识符是相同的(步骤909)。否定的确定指示候选块并不冲突,并且处理在步骤915继续。多维群集处理器对新的行使用候选块(步骤915)。多维群集处理器将候选块标记为使用中(步骤925)。处理由此终止。
如果候选块有冲突,即如果步骤907和909都是肯定的,那么多维群集处理器获得下一候选块(步骤911)。倘若候选块具有设置为1的使用中比特,如在步骤905所确定的,则执行步骤911。如果在步骤904取尽了所有的候选块,则多维群集处理器利用新的块扩展表格。
多维群集处理器确定是否可以使用候选块(步骤905)。多维群集处理器通过确定“使用中”比特是否设置为零来进行这一确定。如果步骤905的结果是肯定的,则多维群集处理器确定候选块是否并不冲突。如果转出比特对于候选块设置为零,或者与候选块关联的事务标识符(如果有的话)不同于当前事务标识符,则候选块并不冲突。
在步骤907或909中,多维群集处理器进行该确定。例如,多维群集处理器确定是否设置了转出比特(步骤907)。否定的确定指示候选块并不冲突,并且处理在步骤915继续。然而,肯定的确定使得多维群集处理器确定与候选块关联的事务标识符是否和当前事务标识符是相同的(步骤909)。
如果候选块有冲突,则多维群集处理器获得下一候选块(步骤911)。倘若候选块具有设置为1的“使用中”比特(确定于步骤905),则执行步骤911。如果多维群集处理器确定在步骤904取尽了所有的候选块,则多维群集处理器利用新的块扩展表格(步骤913)。
图10是示出了依照可选的说明性实施例将数据插入表格的流程图。多维群集处理器接收插入行的请求(步骤1001)。多维群集处理器确定在现有的块之中是否存在空间(步骤1003)。否定的确定使得多维群集处理器确定候选块是否可用(步骤1005)。否定的确定使得该过程终止。然而,肯定的确定使得多维群集处理器确定候选块是否并不冲突(步骤1007)。如果候选块并不冲突,则多维群集处理器使用候选块来存储与该请求关联的行(步骤1009)。该过程由此终止。类似地,如果在步骤1007的确定是否定的,则该过程终止。
因而,说明性实施例针对块提供了一种计算机实现的方法以及计算机可用程序代码,其用于当行是完全符合条件的多维群集数据时,块删除这一块行。另外,一些说明性实施例以日志记录了按这种方式书写的每个块,即其提供了一种用于稍后回退任何删除的处理的方法。
文中所描述的方法和设备具有若干优点。以日志记录删除只要求以日志记录多维群集处理器删除块或页的事实。此外,合成日志(resultant log)要比常规日志更为紧凑。
本发明可以采取全硬件实施例、全软件实施例或者既含有硬件元素又含有软件元素的实施例的形式。在优选的实施例中,以软件实现本发明,其包括但不限于固件、常驻软件、微码等。
此外,本发明可以采取可访问于计算机可用或计算机可读介质的计算机程序产品的形式,该计算机可用或计算机可读介质提供由计算机或任何指令执行系统使用的或者与计算机或任何指令执行系统结合使用的程序代码。对于该描述来说,计算机可用或计算机可读介质可以是可以容纳、存储、通信、传播或传送由指令执行系统、装置或设备使用的或者与指令执行系统、装置或设备结合使用的程序的任何有形装置。
介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)或者传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移动计算机磁盘、随机访问存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前的例子包括压缩磁盘-只读存储器(CD-ROM)、压缩磁盘-读/写(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理系统会包括通过系统总线直接地或间接地耦合于存储元件的至少一个处理器。存储元件可以包括在程序代码的实际执行期间所采用的局部存储器、大容量存储器,以及为了减少在执行期间必须从大容量存储器检索代码的次数而提供至少一些程序代码的临时存储的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接地或者通过介入I/O控制器耦合于系统。
网络适配器还可以耦合于系统,从而使得数据处理系统能够适于通过介入专用或公用网络耦合于其它的数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是几种当前可用类型的网络适配器。
已经出于说明和描述的目的给出了本发明的介绍,但并不旨在以所公开的形式穷举或限制本发明。对本领域的普通技术人员来说,很多修改和变形会是显而易见的。所选择和描述的实施例是为了最好地解释本发明的原理、实际应用,以及使本领域的普通技术人员能够针对各种实施例以及适于预期的特定用途的各种修改来理解本发明。
Claims (20)
1.一种用于删除数据的计算机实现的方法,所述计算机实现的方法包括:
接收删除一组多维群集数据的请求,其中,所述多维群集数据位于块中;
响应于接收到所述请求,确定是否所述块中的所有的多维群集数据都取得了删除资格;以及
响应于所有的多维群集数据都取得了删除资格,删除所述块中的所有数据,以便删除所述多维群集数据集。
2.根据权利要求1的计算机实现的方法,其进一步包括:
查找第二块;
确定所述第二块是否含有取得删除资格的一组多维群集数据;以及
响应于所述第二块含有一组多维群集数据,删除所述第二块中的所有数据,以便删除所述多维群集数据集。
3.根据权利要求1的计算机实现的方法,其中所述确定步骤包括确定字段是否满足条件。
4.根据权利要求1的计算机实现的方法,其进一步包括:
标记所述块以形成一组已标记的块,其中所述已标记的块的集合不可用于存储新的数据。
5.根据权利要求4的计算机实现的方法,其中所述标记步骤包括:
设置使用中比特;以及
设置转出比特。
6.根据权利要求5的计算机实现的方法,其中所述删除步骤包括:
清空块内的至少一页。
7.根据权利要求6的计算机实现的方法,其进一步包括:
为所述至少一页书写日志记录。
8.一种用于在表格中插入行的计算机实现的方法,所述计算机实现的方法包括:
接收插入行的请求;
确定在多个现有的块之中是否有空间存在;
响应于确定不存在空间,确定候选块是否可用;
响应于确定所述候选块可用,确定所述候选块是否并不冲突;以及
响应于所述候选块并不冲突,使用所述候选块来存储与所述请求关联的行。
9.根据权利要求8的计算机实现的方法,其中所述确定所述候选块是否并不冲突包括:
确定转出比特是否复位。
10.根据权利要求9的计算机实现的方法,其进一步包括:
将所述候选块中的比特标记为使用中。
11.根据权利要求8的计算机实现的方法,其中所述确定所述候选块是否并不冲突包括:
确定插入事务标识符与所述候选块并无关联,其中所述插入事务标识符与所述请求关联。
12.根据权利要求11的计算机实现的方法,其进一步包括:
将所述候选块中的比特标记为使用中。
13.根据权利要求12的计算机实现的方法,其进一步包括:
响应于所述候选块有冲突,利用第二块扩展表格。
14.一种用于删除数据的设备,所述设备包括:
接收装置,所述接收装置用于接收删除一组多维群集数据的请求,其中,所述多维群集数据位于块中;
确定装置,所述确定装置用于响应于接收到所述请求,确定是否所述块中的所有的多维群集数据都取得了删除资格;以及
删除装置,所述删除装置用于响应于所有的多维群集数据都取得了删除资格,删除所述块中的所有数据,以便删除所述多维群集数据集。
15.根据权利要求14的设备,其进一步包括:
查找装置,所述查找装置用于查找第二块;
确定装置,所述确定装置用于确定所述第二块是否含有取得删除资格的一组多维群集数据;以及
删除装置,所述删除装置用于响应于所述第二块含有一组多维群集数据,删除所述第二块中的所有数据,以便删除所述多维群集数据集。
16.根据权利要求14的设备,其中所述用于确定的装置包括用于确定日期字段是否满足条件的装置。
17.根据权利要求14的设备,其进一步包括:
标记装置,所述标记装置用于标记所述块以形成一组已标记的块,其中所述已标记的块的集合不可用于存储新的数据。
18.根据权利要求17的设备,其中所述用于标记的装置包括:
用于设置使用中比特的装置;以及
用于设置转出比特的装置。
19.根据权利要求18的设备,其中所述用于删除的装置包括:
用于清空块内的至少一页的装置。
20.根据权利要求19的设备,其进一步包括:
用于为所述至少一页书写日志记录的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/412,554 US7631014B2 (en) | 2006-04-27 | 2006-04-27 | Method and apparatus for fast deletion of physically clustered data |
US11/412,554 | 2006-04-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101063976A true CN101063976A (zh) | 2007-10-31 |
CN101063976B CN101063976B (zh) | 2010-05-26 |
Family
ID=38649570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100964204A Expired - Fee Related CN101063976B (zh) | 2006-04-27 | 2007-04-13 | 用于快速删除物理群集数据的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7631014B2 (zh) |
CN (1) | CN101063976B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107408134A (zh) * | 2015-03-19 | 2017-11-28 | 华为技术有限公司 | 重建多维数据库的数据存储的方法和重建服务器 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288883A1 (en) * | 2006-06-09 | 2007-12-13 | International Business Machines Corporation | Method for consolidated launching of multiple tasks |
US7870536B2 (en) * | 2006-06-15 | 2011-01-11 | International Business Machines Corporation | Computer implemented method and system for sharing resources among hierarchical containers of resources |
US8302073B2 (en) * | 2006-06-15 | 2012-10-30 | International Business Machines Corporation | Moving and copying dependencies along with source code |
US7774318B2 (en) * | 2007-07-30 | 2010-08-10 | Sap Ag | Method and system for fast deletion of database information |
US10592809B2 (en) | 2016-10-21 | 2020-03-17 | International Business Machines Corporation | Guided row insertion |
CN108009049B (zh) * | 2017-11-28 | 2020-12-01 | 厦门市美亚柏科信息股份有限公司 | Myisam存储引擎删除记录离线恢复方法、存储介质 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5361357A (en) | 1992-04-02 | 1994-11-01 | Cadence Design Systems, Inc. | Method and apparatus for optimizing computer file compilation |
US5485615A (en) | 1992-06-10 | 1996-01-16 | Telefonaktiebolaget L M Ericsson | System and method of interactively developing desired computer programs by using plurality of tools within a process described in graphical language |
US5574898A (en) | 1993-01-08 | 1996-11-12 | Atria Software, Inc. | Dynamic software version auditor which monitors a process to provide a list of objects that are accessed |
US5854932A (en) | 1995-08-17 | 1998-12-29 | Microsoft Corporation | Compiler and method for avoiding unnecessary recompilation |
US6195659B1 (en) * | 1998-07-14 | 2001-02-27 | Trw Inc. | Method and apparatus for morphological clustering having multiple dilation and erosion of switchable grid data cells |
US6789251B1 (en) | 1999-07-28 | 2004-09-07 | Unisys Corporation | System and method for managing a suite of data management tools |
US6546395B1 (en) * | 1999-08-30 | 2003-04-08 | International Business Machines Corporation | Multi-dimensional restructure performance by selecting a technique to modify a relational database based on a type of restructure |
US6684383B1 (en) | 1999-09-29 | 2004-01-27 | Kabushiki Kaisha Toshiba | Method for constructing enterprise system |
US6810401B1 (en) | 1999-10-08 | 2004-10-26 | Edgenet Inc. | Automated configuration system and method |
US7328206B2 (en) * | 1999-10-15 | 2008-02-05 | Microsoft Corporation | Extensions for adding and removing calculated members in a multidimensional database |
EP1290552A1 (en) | 2000-04-21 | 2003-03-12 | Togethersoft Corporation | Methods and systems for identifying dependencies between object-oriented elements |
US6678716B1 (en) | 2000-06-19 | 2004-01-13 | J. D. Edwards World Source Company | System and method for managing processes |
WO2002019272A1 (en) | 2000-09-01 | 2002-03-07 | Togethersoft Corporation | Methods and systems for animating a workflow and a project plan |
US6598041B1 (en) * | 2000-09-07 | 2003-07-22 | International Business Machines Corporation | Method, system, and program for processing modifications to data in tables in a database system |
US7152224B1 (en) | 2000-11-21 | 2006-12-19 | Microsoft Corporation | Versioned project associations |
US20040031015A1 (en) | 2001-05-24 | 2004-02-12 | Conexant Systems, Inc. | System and method for manipulation of software |
US6966061B1 (en) | 2001-09-20 | 2005-11-15 | Bellsouth Intellectual Property Corp. | System and method for managing initiative delivery process |
US7080081B2 (en) * | 2002-04-15 | 2006-07-18 | International Business Machines Corporation | Multidimensional data clustering scheme for query processing and maintenance in relational databases |
US6804682B1 (en) | 2002-04-29 | 2004-10-12 | Borland Software Corporation | System and methodology providing compiler-assisted refactoring |
CA2425033A1 (en) * | 2003-04-08 | 2004-10-08 | Ibm Canada Limited - Ibm Canada Limitee | Multi-level locking hierarchy in a database with multi-dimensional clustering |
US7272818B2 (en) | 2003-04-10 | 2007-09-18 | Microsoft Corporation | Creation of an object within an object hierarchy structure |
DE602004003140T2 (de) * | 2003-04-18 | 2007-04-19 | International Business Machines Corp. | System und verfahren in einer datentabelle zur verwaltung von löschoperationen in rekursiven skalierbaren vorlageninstanzen |
US7765211B2 (en) * | 2003-04-29 | 2010-07-27 | International Business Machines Corporation | System and method for space management of multidimensionally clustered tables |
US7707566B2 (en) | 2003-06-26 | 2010-04-27 | Microsoft Corporation | Software development infrastructure |
US20050005261A1 (en) | 2003-07-02 | 2005-01-06 | Severin William B. | Component integration engine |
US7844570B2 (en) * | 2004-07-09 | 2010-11-30 | Microsoft Corporation | Database generation systems and methods |
US8037056B2 (en) * | 2005-02-18 | 2011-10-11 | International Business Machines Corporation | Online repair of a replicated table |
-
2006
- 2006-04-27 US US11/412,554 patent/US7631014B2/en not_active Expired - Fee Related
-
2007
- 2007-04-13 CN CN2007100964204A patent/CN101063976B/zh not_active Expired - Fee Related
-
2008
- 2008-05-22 US US12/125,717 patent/US8005872B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107408134A (zh) * | 2015-03-19 | 2017-11-28 | 华为技术有限公司 | 重建多维数据库的数据存储的方法和重建服务器 |
Also Published As
Publication number | Publication date |
---|---|
US8005872B2 (en) | 2011-08-23 |
US7631014B2 (en) | 2009-12-08 |
US20070255772A1 (en) | 2007-11-01 |
CN101063976B (zh) | 2010-05-26 |
US20080222182A1 (en) | 2008-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108587B2 (en) | Free-space reduction in cached database pages | |
US7805427B1 (en) | Integrated search engine devices that support multi-way search trees having multi-column nodes | |
CN101063976B (zh) | 用于快速删除物理群集数据的方法和设备 | |
US20060218347A1 (en) | Memory card | |
CN109582593B (zh) | 一种基于计算的ftl地址映射读、写方法 | |
US10296250B2 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
US8086641B1 (en) | Integrated search engine devices that utilize SPM-linked bit maps to reduce handle memory duplication and methods of operating same | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
CN114546295B (zh) | 一种基于zns固态硬盘的智能写分配方法和装置 | |
US7502778B2 (en) | Apparatus, system, and method for efficient adaptive parallel data clustering for loading data into a table | |
US10078467B2 (en) | Storage device, computer readable recording medium, and storage device control method | |
CA2415018C (en) | Adaptive parallel data clustering when loading a data structure containing data clustered along one or more dimensions | |
US7987205B1 (en) | Integrated search engine devices having pipelined node maintenance sub-engines therein that support database flush operations | |
US20180011897A1 (en) | Data processing method having structure of cache index specified to transaction in mobile environment dbms | |
CN111984604B (zh) | 一种减少日志结构文件系统碎片的方法及闪存存储系统 | |
US7953721B1 (en) | Integrated search engine devices that support database key dumping and methods of operating same | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
JP6006740B2 (ja) | インデックス管理装置 | |
Chen et al. | Co-optimizing storage space utilization and performance for key-value solid state drives | |
CN111078143B (zh) | 基于段映射进行数据布局和调度的混合存储方法及系统 | |
Roh et al. | Advanced block nested loop join for extending SSD lifetime | |
US11429519B2 (en) | System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive | |
CN114741028A (zh) | 一种基于ocssd的持久键值存储方法、设备及系统 | |
CN115509437A (zh) | 存储系统、网卡、处理器、数据访问方法、装置及系统 | |
Chang et al. | Emt: Elegantly measured tanner for key-value store on ssd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100526 Termination date: 20160413 |
|
CF01 | Termination of patent right due to non-payment of annual fee |