CN107533489A - 拷贝数据库中表的值的方法、装置及数据结构 - Google Patents

拷贝数据库中表的值的方法、装置及数据结构 Download PDF

Info

Publication number
CN107533489A
CN107533489A CN201580077836.4A CN201580077836A CN107533489A CN 107533489 A CN107533489 A CN 107533489A CN 201580077836 A CN201580077836 A CN 201580077836A CN 107533489 A CN107533489 A CN 107533489A
Authority
CN
China
Prior art keywords
section
main storage
storage
data
sections
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
Application number
CN201580077836.4A
Other languages
English (en)
Other versions
CN107533489B (zh
Inventor
埃利泽·利维
陈志标
乌萨马·达尔
阿哈龙·埃威佐
谢伊·高克曼
安东尼·沃尔斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN107533489A publication Critical patent/CN107533489A/zh
Application granted granted Critical
Publication of CN107533489B publication Critical patent/CN107533489B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/1407Checkpointing the instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2372Updates performed during offline database operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种用于在主存储器与辅助存储器之间拷贝数据库中表的值的方法,所述表由多个条带和多个垂直分区组成,其中:条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表存储为多个段,段包括条带与垂直分区的横截面处的值,段将相邻列值存储在所述主存储器或所述辅助存储器的相邻位置;所述方法包括以下步骤:选择一个或多个段,以及在所述主存储器与所述辅助存储器之间拷贝所述一个或多个选择的段。

Description

拷贝数据库中表的值的方法、装置及数据结构
技术领域
本发明涉及拷贝数据库中表的的值的方法及装置,本发明还涉及计算机可读存储介质和数据结构。
背景技术
磁盘数据库的传统数据库存储布局包括由表格行组成的固定大小的数据页。这些数据页从磁盘提取出并保存在共享页缓冲池中,以供并发应用高效使用。为了高效的磁盘I/O,对页大小和结构进行优化。该方案不适合内存数据库,因为共享页缓冲池的开销太大,尤其是要采用几个间接寻址步骤访问单个数据项(例如列值)。此外,内存数据库中,没有必要将数据从磁盘缓冲出或缓冲进磁盘。该方案也称为行存储或基于行的数据库,因为页结构是以行为主。行存储对联机事务处理(on-line transaction processing,OLTP)数据库有用。这是因为列数少,在插入或选择等数据库操作中有可能要处理几个列值。另一方面,在列存储或列式数据库中,数据是通过相邻放置列值来管理的。列式数据库适合于分析处理,因为列数会很多(范围甚至为上百或上千),且大部分查询操作是按列的。通过相邻放置列值,提高了磁盘I/O及内存访问的效率。尤其是对于现在以非对称存储器(例如非一致性内存访问(Non-Uniform Memory Access,NUMA)架构)、多级存储器缓存及矢量处理(SIMD,单指令流多数据流)单元为特征的硬件平台,按序处理内存内容优势显著。因而,内存分析数据库的所有当前实施方式都采用分配在存储器中的大量列对象。该方案的缺点在于不支持存储器与磁盘之间的数据迁移。但需要进行数据迁移,因为最近未使用的数据需要从存储器释放,当需要它时又将其恢复。具体地,在列式数据库中,也需要将冷的(最近未使用的)列从存储器移到磁盘。
大多数内存数据库不是为数据迁移而设计。一般地,整个内存表需要位于存储器内,这同样适用于按固定大小的列矢量存储列数据的列式数据库。一种称为防缓存的现有技术方案将数据逐行移到磁盘中,但这并不适用于列式数据库,因为出现数据需要按列迁移的需求。
对于存储器中的数据管理,提出的各种解决方案倾向于平衡按行处理与按列处理之间的需求,但是,关于值的高效拷贝,尤其是数据迁移问题,并未提出方案。
发明内容
有鉴于此,本发明的目的之一在于提供能解决至少一个上述现有技术问题的一种方法、装置、计算机可读存储介质和数据结构。上述目的及其它目的由独立权利要求的特征实现。进一步的实施形式从属权利要求、描述及附图中显而易见。
本发明第一方面提供了一种用于在主存储器与辅助存储器之间拷贝数据库中表的值的方法,其中:所述表由多个条带和多个垂直分区组成,条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表存储为多个段,段包括条带与垂直分区的横截面处的值,以及段将相邻列值存储在所述主存储器或所述辅助存储器的相邻位置;所述方法包括以下步骤:选择一个或多个段,以及在所述主存储器与所述辅助存储器之间拷贝所述一个或多个选择的段。
在下文中,拷贝也包括移除,即从源存储器拷贝数据到目的存储器,然后从源存储器删除数据。
所述数据库中表的数据按段划分和/或拷贝。段可为数据库检查点和数据迁移的单元。所述段可包含表中一列或多列的列值序列,因此,它们符合列式数据库的原理。
每个段在相邻存储器位置存储相邻列值,按段管理表的值可高效地按列并行处理存储器中数据,并同时可高效地从存储器移除或恢复数据。在本发明实施例中,可保持所述数据库的一致性持久图像,并可在磁盘上保留“冷的”数据。
表的一组行与一列或多列之间的横截面处包含段的值。段包含一个或多个列值矢量,因此,适合按列计算。在一个段中,按相邻存储器位置管理列值,适合高效扫描和矢量处理(单指令流多数据流,SIMD)。在段中,按一组水平分段(称为条带)代表一组行的方式对齐列值。优选地,段可按二进制形式存储在辅助存储器中,无需再格式化。恢复段后,列矢量可由段存储块的预定义偏移处提供。换言之,在本发明实施例中,段为在检查点操作与数据迁移操作之间共享的数据单元。
在本发明实施例中,段包括数据库中表的一组连接行与一组连接的一列或多列的横截面的值,而不包括表中至少一列中的值。换言之,段可包括数据库中表内矩形区域的值。具体地,可以预见,段只由数据库中的表内矩形区域的值组成。在其它实施例中,段可由数据库中的表内矩形区域的值以及一些附加元数据组成,而不由所述矩形区域以外的表中的单元格的值组成。
在下文中,表的值在可指任意一种可存储在表内的数据,尤其是任意一种可存储在表的单元格内的数据。值可为整数值、浮点值、或任何更复杂的变量或数据结构。
根据所述第一方面所述的方法的第一种可能实施方式,所述方法在数据库管理系统中实现,和/或所述主存储器为易失性存储器,所述辅助存储器为永久性存储器,尤其是硬盘。在数据库管理系统中实施所述方法的优点是:所述数据库管理系统能在主存储器与辅助存储器之间高效地拷贝数据库中表的值。如果所述辅助存储器为永久性存储器,所述方法提供了一种将数据高效备份到永久性存储的方式。
根据所述第一方面所述的方法的第二种可能实施方式,所述方法是一种用于从所述数据库的所述主存储器拷贝一个或多个改变的段到所述辅助存储器的检查点方法。例如,如果易失性存储器的存取时间比永久性存储器的短,将一些段存储在易失性存储器中,将另一些段存储在所述永久性存储器中是有优势的。
在本发明实施例中,在检查点间隔内将改变的段,例如在存储器中已经改变的段,检查点(拷贝)到磁盘。检查点间隔可为时钟单元确定的有规律间隔,或者它们可以为不规律间隔,这些不规律间隔基于规则,例如基于已经累积到足够多的需要进行检查点的改变,进行确定。
根据所述第一方面所述的方法的第三种可能实施方式,所述第一方面的所述方法包括以下步骤:
-在所述主存储器中选择一个或多个已经改变的段;
-冻结所述一个或多个选择的段,以保持所述一个或多个选择的段的状态;
-拷贝所述一个或多个冻结的段到所述辅助存储器;以及
-释放所述冻结段。
例如,可通过阻止对段的写访问执行冻结所述一个或多个选择的段。这允许将所述一个或多个选择的段的一致性状态拷贝到所述辅助存储器。优选地,在拷贝后,在所述主存储器中释放所述冻结的段。
根据所述第一方面所述的方法的第四种可能实施方式,冻结所述一个或多个选择的段包括映像、写时拷贝或锁定所述一个或多个选择的段。通过写时拷贝冻结方法,所述冻结的段被“遗忘”(即从存储器删除),且被替换为改变的副本。也可采用本领域技术人员熟知的其它冻结方法来执行冻结所述选择的段。
释放所述冻结的段后,检查点操作结束,所述选择的段也可进行新改变。
根据第五种可能实施方式,所述第一方面的所述方法为一种用于将数据从所述主存储器移除到所述辅助存储器的方法。
根据所述第一方面所述的方法的第六种可能实施方式,所述方法包括以下步骤:
-检测到需要移除数据;
-确定所需移除数据的范围;
-选择一个或多个待移除段;
-确定每个选择的段是否已进行了检查点;
-从所述主存储器拷贝每个选择的未进行检查点的段到所述辅助存储器;以及
-从所述主存储器删除所述选择的段。
该实施方式提供了一种高效的段移除方式。段移除的特例为满列移除,其中可通过移除组成所述满列的多个段来移除所述满列。例如,如果所述数据库中表由四个条带组成,可通过移除对应的四个段来移除满列。
具体地,根据所述第六种可能实施方式的所述方法还可包括以下步骤:标记每个确认已进行检查点的段为已被移除。
例如,当发出移除请求时,最近最少使用的一个或多个段可移到磁盘。因为位于所述辅助存储器中的段在检查点与数据迁移之间共享,所述方法可包括优化,使得在移除所述一个或多个段时,如果它们之前已进行了检查点,不需要写入磁盘。这样,从所述主存储器删除所述一个或多个段并将其标记为已移除即可。大部分被移除的段满足此条件,因为通常,被移除的段最近都未使用(例如,改变)。
根据第七种可能实施方式,在所述第六种实施方式的所述方法中,所述选择待移除段的步骤包括:
-选择最近最少使用的段;
-选择一个或多个不大可能会使用的满列;和/或
-基于以数据年龄为基础的选择标准选择段。
幸好段的结构为网格状,可选择移除各种集合的段。选择方法也可包括基于一些标准,例如数据年龄,选择具有段粒度的多个行。在恢复段时,可使用请求调页将需要的段真正地加载到存储器中。
根据第八种可能实施方式,在被拷贝到所述辅助存储器之前,加密和/或压缩所述一个或多个选择的段。加密所述一个或多个选择的段的优点是:防止未授权访问所述数据库的数据。例如,如果入侵者在未授权的情况下访问所述辅助存储器,且在拷贝到所述辅助存储器之前,加密了所述段,则入侵者无法获取所述数据库中表的信息内容。
根据第九种可能实施方式,所述拷贝作为将数据从所述辅助存储器恢复到所述主存储器的一部分来执行。
根据第十种可能实施方式,所述第一方面的所述方法还包括以下步骤:
-检测到需要恢复数据;
-确定需要恢复的数据;
-选择一个或多个待恢复段;
-确定所述主存储器是否有足够的可用空间恢复所述选择的段;
-如果没有足够的可用空间,从所述主存储器移除数据,尤其是一个或多个段,释放所述主存储器的空间;以及
-将所述选择的段从所述辅助存储器恢复到所述主存储器。
根据第十一种可能实施方式,在从所述辅助存储器恢复到所述主存储器之前,解密和/或解压所述一个或多个选择的段。例如,优选地,加密或解压应“迅速”执行,使得数据库管理系统甚至没察觉数据库的段被暂时加密和/或压缩了。
如果所述段以加密或压缩的形式存储在所述辅助存储器中,将相邻列值存储在相邻存储器位置仅仅是指相邻列值的解密或解压版本对应在相邻(未压缩/未加密)存储器位置的相邻列值。
本发明第二方面提供一种用于在主存储器与辅助存储器之间拷贝数据库中表的值的装置,其中:所述表由多个条带和多个垂直分区组成,条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表存储为多个段,段包括条带与垂直分区的横截面处的值,段将相邻列值存储在所述主存储器或者所述辅助存储器的相邻位置;所述装置用于选择一个或多个段并且在所述主存储器与所述辅助存储器之间拷贝所述一个或多个选择的段。
具体地,本发明第二方面提供了一种装置,用于执行本发明第一方面和/或本发明第一方面的一个或多个实施方式所述的方法。
本发明第三方面提供一种包括程序代码的计算机可读存储介质,所述程序代码包括用于执行本发明第一方面和/或本发明第一方面的一个或多个实施方式所述的方法的指令。
本发明第四方面提供一种数据库的数据结构,包括所述数据库中表的多个段,其中:所述表由多个条带和多个垂直分区组成,条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表作为多个段存储在数据结构中,段包括条带与垂直分区的横截面处的值,以及段将相邻列值存储在主存储器的相邻位置。
附图说明
为了更清楚地说明本发明实施例中的技术特征,下面将对实施例描述中所需要使用的附图作简单地介绍。下面描述中的附图仅仅是本发明的一些实施例,这些实施例在不违背本发明如权力要求书中所定义的保护范围的情况下,可以进行修改。
图1示出了一种非根据本发明的用于拷贝数据库中表的值的系统的高级图;
图2示出了根据本发明实施例划分的表的示意图;
图3示出了涉及检查点的本发明实施例中的数据库的表和用于对表的值进行检查点的方法的示意图;
图4示出了根据本发明实施例的一种用于对数据库进行检查点的方法的流程图;
图5示出了根据本发明的数据库中表及用于将表的段移除到辅助存储器的方法的示意图;
图6示出了根据本发明实施例的一种用于移除表的段的方法的流程图;
图7示出了根据本发明的一种数据库中的表以及一种用于将段从辅助存储器恢复的方法的示意图;
图8示出了根据本发明实施例的一种用于恢复表中段的方法的流程图。
具体实施方式
图1为一种不属于本发明一部分的用于拷贝数据的系统的高级图。图1所示的系统100包括主存储器110和辅助存储器120。主存储器110由多个由索引112索引的行10a组成。在辅助存储器120中,存储有从主存储器110移除的行10b。在行丢失时,即当要求访问在主存储器110中丢失的行时,将相应的被移除的行10b恢复到主存储器110中。不可能按列移除和恢复。
图2示出了根据本发明实施例划分的表200的示意性图示。该示意性图示也表示根据本发明一方面的一种数据结构的布局。表200包括行10和列20。表200由包括多个行10的条带12组成。在图2所示的示例中,第一、第二、第三条带12都包括了五行。表200还由包括一列20或多列20的垂直分区22组成。在图2所示的示例中,第一垂直分区包括一列,第二垂直分区包括两列,第三垂直分区22包括三列,第四、第五垂直分区都包括一列。表的每个单元格存储一个列值40。
在本发明实施例中,表的物理存储反映了表的组成,这样表中的段随后存储在物理存储上。此外,数据库检查点和数据迁移以段为单元。由于段包含表中一列或多列的列值序列,因此,段符合列式数据库的原理。
图3示出了根据本发明的一种用于对内存数据库的数据进行检查点的装置和方法。数据库检查点是表示数据库一致性状态的永久存储。例如,数据库检查点在从计算机系统发生故障恢复时进行。创建检查点的操作称为进行检查点。进行检查点的优选方式是只存储上次进行检查点后改变的数据,这称之为进行增量检查点。图3示出了使用本发明方法进行的增量检查点。
图3所示的系统300包括表310,其中表310包括行10和列20并由条带12和垂直分区22组成。多个条带12和垂直分区22定义段30,其中每个段30包括条带12和垂直分区22的横截面处包含的列值40。
每当检测到段发生改变时,将改变的一个或多个段31a、段31b、段31c拷贝到辅助存储器320,这样辅助存储器320用作改变的段的检查点存储。在随后的段恢复时,可使用请求调页将需要的段真正地加载到主存储器310中。例如,主存储器310可托管数据库及管理该数据库的数据库管理系统的计算设备的工作存储器。
图4示出了根据本发明的一种用于进行检查点的方法的流程图。在第一步骤S410中,(例如,通过开始新检查点对应的时间间隔)开始新检查点。然后在步骤S420中,确认和冻结一个或多个改变的段,即阻止再修改改变的段。有多种方法可实现冻结,例如映像、写时拷贝或锁定。通过写时拷贝冻结方法,冻结的段会被“遗忘”(即从存储器删除),且被替换为改变的副本。
在步骤S430中,拷贝改变的段到检查点存储,其中检查点存储可为永久存储。在步骤S440中,释放冻结的段,即可对冻结的段进行进一步修改。在步骤S450结束该方法。在其它实施例中,可迭代执行该方法,即可开始新的检查点,而非在步骤S450结束该方法。
本发明又一实施例还涉及通过段移除实现主存储器到永久存储的数据迁移操作。段移除的特例为满列移除,如图5所示。
图5所示的系统500包括内存数据库的表510,内存数据库基本上存储在主存储器中。进一步地,系统500包括辅助存储器520,辅助存储器520用作从主存储器移除的一个或多个段32a、段32b、段32c的段存储。
图6的流程图示出了执行段移除的步骤。当需要移除数据时(例如,当主存储器中没有空间存储新数据时),调用移除方法。在步骤S610中,调用该方法。在步骤S620中,检测到移除需求,并评估范围(涉及到所需的空闲空间量)。在该步骤中,可通过选择满列移除选定选择方法,。在步骤S630中,选择待移除段。作为特例,可指示整列移除。一确认段后,在步骤S640中,检查每个待移除段在当前状态是否进行了检查点。如果是,不需要存储到永久存储中,将该段从主存储器删除。如果该段未进行检查点,在步骤S650中,将其移到辅助存储器中,例如移到硬盘等的永久存储中。在步骤S660,该方法结束。在本发明的其它实施例中,可迭代执行前述步骤,即在步骤S620继续执行该方法,而非在步骤S660结束该方法。
在本发明实施例中,如图6所示,表的每个段要进行步骤S640和步骤S650。
本发明的第三个实施例实现移除段后的段恢复操作。查询已移除数据例如已移除列可产生恢复需求。图7示出了一种系统700,在系统700中,从段存储720恢复多个段33a、段33b、段33c到主存储器存储的表710中。
图8的流程图示出了对应的方法步骤。在步骤S810中,开始执行该方法。在步骤S820中,评估恢复(例如由查询已移除数据引起的)需求。在步骤S830中,确认待恢复段。在步骤S840中,检查是否有足够的存储空间恢复段。如果没有,在步骤S850中,在主存储器中移除段释放所需的存储空间。在步骤S860中,从辅助存储器恢复确认的段到主存储器。在步骤S870,结束该方法。
上文所有描述仅仅为本发明的实施方式,本发明所保护的范围并不仅限于此。本领域技术人员能很容易想到任何其它变体或替换。因此,本发明的保护范围应以所附权利要求的保护范围为准。

Claims (15)

1.一种用于在主存储器与辅助存储器之间拷贝数据库中表的值的方法,其特征在于,所述表由多个条带和多个垂直分区组成,条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表存储为多个段,段包括条带与垂直分区的横截面处的值,段将相邻列值存储在所述主存储器或所述辅助存储器的相邻位置;所述方法包括以下步骤:选择一个或多个段,以及在所述主存储器与所述辅助存储器之间拷贝所述一个或多个选择的段。
2.根据权利要求1所述的方法,其特征在于,所述方法在数据库管理系统中实施,和/或所述主存储器为易失性存储器,所述辅助存储器为永久存储器,具体地,为硬盘。
3.根据前述权利要求中的一项权利要求所述的方法,其特征在于,所述方法为一种用于从所述数据库的所述主存储器拷贝一个或多个改变的段到所述辅助存储器的检查点方法。
4.根据权利要求3所述的方法,其特征在于,包括以下步骤:
在所述主存储器中选择一个或多个已经改变的段;
冻结所述一个或多个选择的段,以保持所述一个或多个选择的段的状态;
拷贝所述一个或多个冻结的段到所述辅助存储器;以及
释放所述冻结段。
5.根据权利要求4所述的方法,其特征在于,所述冻结所述一个或多个选择的段包括映像、写时拷贝或锁定所述一个或多个选择的段。
6.根据前述权利要求中的一项权利要求所述的方法,其特征在于,所述方法为一种用于将数据从所述主存储器移除到所述辅助存储器的方法。
7.根据权利要求6所述的方法,其特征在于,包括以下步骤:
检测到需要移除数据;
确定所需移除数据的范围;
选择一个或多个待移除段;
确定每个选择的段是否已进行了检查点;
从所述主存储器拷贝每个选择的未进行检查点的段到所述辅助存储器;以及
从所述主存储器删除所述选择的段。
8.根据权利要求7所述的方法,其特征在于,所述选择一个或多个待移除段包括:
选择一个或多个最近最少使用的段;
选择一个或多个不大可能会使用的满列;和/或
基于以数据年龄为基础的选择标准选择一个或多个段。
9.根据前述权利要求中的一项权利要求所述的方法,其特征在于,在被拷贝到所述辅助存储器之前,加密和/或压缩所述一个或多个选择的段。
10.根据前述权利要求中的一项权利要求所述的方法,其特征在于,所述拷贝作为将数据从所述辅助存储器恢复到所述主存储器的一部分来执行。
11.根据前述权利要求中的一项权利要求所述的方法,其特征在于,包括以下步骤:
检测到需要恢复数据;
确定需要恢复的数据;
选择一个或多个待恢复段;
确定所述主存储器是否有足够的可用空间恢复所述选择的段;
如果没有足够的可用空间,从所述主存储器移除数据,尤其是一个或多个段,释放所述主存储器的空间;以及
将所述选择的段从所述辅助存储器恢复到所述主存储器。
12.根据权利要求11所述的方法,其特征在于,在从所述辅助存储器恢复到所述主存储器之前,解密和/或解压所述一个或多个选择的段。
13.一种用于在主存储器与辅助存储器之间拷贝数据库中表的值的装置,其特征在于,所述表由多个条带和多个垂直分区组成,条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表存储为多个段,段包括条带与垂直分区的横截面处的值,段将相邻列值存储在所述主存储器或所述辅助存储器的相邻位置;所述装置用于选择一个或多个段,在所述主存储器与所述辅助存储器之间拷贝所述一个或多个段,
其中,具体地,所述装置用于执行前述权利要求中的一项权利要求所述的方法。
14.一种包括程序代码的计算机可读存储介质,其特征在于,所述程序代码包括用于执行权利要求1至12中的一项权利要求所述的方法的指令。
15.一种数据库的数据结构,包括所述数据库中表的多个段,其特征在于,所述表由多个条带和多个垂直分区组成,条带包括所述表的至少两行而垂直分区包括所述表的一列或多列,所述表作为多个段存储在数据结构中,其中段包括条带与垂直分区的横截面处的值,以及段将相邻列值存储在相邻存储器位置。
CN201580077836.4A 2015-04-07 2015-11-27 拷贝数据库中表的值的方法、装置及数据结构 Active CN107533489B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15162563.9A EP3079079B8 (en) 2015-04-07 2015-04-07 Method, apparatus and data structure for copying values of a table of a database
EPEP15162563.9 2015-04-07
PCT/CN2015/095840 WO2016161811A1 (en) 2015-04-07 2015-11-27 Method, apparatus and data structure for copying values of table of database

Publications (2)

Publication Number Publication Date
CN107533489A true CN107533489A (zh) 2018-01-02
CN107533489B CN107533489B (zh) 2020-09-25

Family

ID=52824087

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580077836.4A Active CN107533489B (zh) 2015-04-07 2015-11-27 拷贝数据库中表的值的方法、装置及数据结构

Country Status (4)

Country Link
US (1) US10621202B2 (zh)
EP (1) EP3079079B8 (zh)
CN (1) CN107533489B (zh)
WO (1) WO2016161811A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3093773B1 (en) 2015-05-13 2019-07-10 Huawei Technologies Co., Ltd. System and method for creating selective snapshots of a database
EP3291103B1 (en) 2016-09-01 2019-11-06 Huawei Technologies Co., Ltd. System and method for creating a snapshot of a subset of a database
US11196542B2 (en) 2018-08-29 2021-12-07 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US11334439B2 (en) 2018-08-29 2022-05-17 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain
US10901957B2 (en) * 2018-08-29 2021-01-26 International Business Machines Corporation Checkpointing for increasing efficiency of a blockchain

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197868A1 (en) * 2009-08-24 2012-08-02 Dietmar Fauser Continuous Full Scan Data Store Table And Distributed Data Store Featuring Predictable Answer Time For Unpredictable Workload
CN102696017A (zh) * 2010-02-22 2012-09-26 国际商业机器公司 用于在回写分布式冗余数据存储系统中维持奇偶校验一致性的读取其他项的协议
US8448021B1 (en) * 2012-03-23 2013-05-21 DSSD, Inc. Method and system for multi-dimensional raid

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US657039A (en) 1896-07-30 1900-08-28 Joseph J Little Spacing or justifying device for type-bar or matrix machines.
US838092A (en) 1904-07-22 1906-12-11 Charles H Ely Folding umbrella.
WO2000055735A1 (en) * 1999-03-15 2000-09-21 Powerquest Corporation Manipulation of computer volume segments
US7080101B1 (en) 2000-12-01 2006-07-18 Ncr Corp. Method and apparatus for partitioning data for storage in a database
CN1299096A (zh) * 2001-01-12 2001-06-13 常促宇 通用串行总线接口的大容量移动存储器及其实现方法
CN1217269C (zh) * 2001-11-07 2005-08-31 无锡永中科技有限公司 数据对象存贮库与电子表格单元链接的方法
LU91726B1 (en) * 2010-09-10 2012-03-12 Univ Saarland A method of storing and accessing data in a database system
US9483512B2 (en) 2011-11-07 2016-11-01 Sap Se Columnar database using virtual file data objects
GB2513140B (en) * 2013-04-16 2016-05-04 Canon Kk Methods, devices, and computer programs for streaming partitioned timed media data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120197868A1 (en) * 2009-08-24 2012-08-02 Dietmar Fauser Continuous Full Scan Data Store Table And Distributed Data Store Featuring Predictable Answer Time For Unpredictable Workload
CN102696017A (zh) * 2010-02-22 2012-09-26 国际商业机器公司 用于在回写分布式冗余数据存储系统中维持奇偶校验一致性的读取其他项的协议
US8448021B1 (en) * 2012-03-23 2013-05-21 DSSD, Inc. Method and system for multi-dimensional raid

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BERNHARD HOPPNER ETC: "An Approach for Hybrid-Memory Scaling Columnar In-Memory Databases", 《HTTP://WWW.ADMS-CONF.ORG/2014/ADMS14_HOEPPNER.PDF》 *

Also Published As

Publication number Publication date
US20170322997A1 (en) 2017-11-09
EP3079079B8 (en) 2022-04-27
US10621202B2 (en) 2020-04-14
EP3079079A1 (en) 2016-10-12
EP3079079B1 (en) 2022-01-26
WO2016161811A1 (en) 2016-10-13
CN107533489B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
US10466932B2 (en) Cache data placement for compression in data storage systems
CN107533489A (zh) 拷贝数据库中表的值的方法、装置及数据结构
US7886124B2 (en) Method and mechanism for implementing dynamic space management for large objects
US9846645B1 (en) Managing objects stored in memory
CN113515471B (zh) 用于管理存储系统的方法和装置
US20180267856A1 (en) Distributed storage system, data storage method, and software program
JP5445682B2 (ja) ストレージシステム
US20090037495A1 (en) Method and system for state maintenance of a large object
US20070162506A1 (en) Method and system for performing a redistribute transparently in a multi-node system
US8472449B2 (en) Packet file system
CN111475508B (zh) 一种优化叶子节点合并操作的高效索引方法
CN105677236B (zh) 一种存储设备及其存储数据的方法
CN106528703A (zh) 一种重复删除的模式切换方法及装置
US6678787B2 (en) DASD-free non-volatile updates
CN103699681B (zh) 数据回滚的处理方法和装置
US8694796B2 (en) Secure data deletion in a database
JP4792335B2 (ja) Raid装置、raid制御プログラムおよびキャッシュ管理方法
JP5709903B2 (ja) データレコードを圧縮し圧縮されたデータレコードを処理するための方法、システム、コンピュータプログラム、その記録媒体、データコレクションを記憶したデータ記憶媒体、並びに通話データ記録システム
CN114564456A (zh) 分布式存储文件的恢复方法及装置
JP2010044571A (ja) データベース装置及びデータ管理方法ならびにそのプログラム
WO2016186602A1 (en) Deletion prioritization
CN117041256B (zh) 一种网络数据传输存储方法及系统
US11119681B2 (en) Opportunistic compression
JP5317418B2 (ja) プログラム及び転置インデックスの格納方法
CN117608477A (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