优化数据库去重制造技术

技术编号:15919271 阅读:21 留言:0更新日期:2017-08-02 04:29
用于对存储在存储设备的多层级上的数据库的优化去重的方法和相关联的系统。数据库去重系统在接收到更新数据库记录的请求时使用存储器驻留日志和之前所生成的存储器维护表以标识第一逻辑块,第一逻辑块标识存储在第一物理存储块中的被用来更新数据库记录的经更新的值,并且进一步标识第二逻辑块,第二逻辑块在数据库中存储相同记录的相对应的已有值。在确定第一和第二逻辑块驻留在相同存储层级内之后,该系统引导去重模块将这两个逻辑块与第一物理块相关联。

【技术实现步骤摘要】
【国外来华专利技术】优化数据库去重
本专利技术涉及由包括去重功能的数据管理系统对存储在物理存储设备的多层级集合上的数据的管理。
技术介绍
诸如数据库管理系统(DBMS)之类的用户可更新的数据存储应用可以在多个存储设备上存储数据,每个存储设备与一个存储层级相关联。DBMS应用可以包括将所存储的数据组织为记录的数据库-服务器部件。每条记录标识被组织为块集合的数据。数据库将这样的记录视为“逻辑”块集合,并且每个逻辑块指的是在物理存储设备上对应的“物理”存储块。在一个示例中,如果数据库的第一记录标识第一数据合集,则对应的数据库服务器应用可以将该数据组织为两个逻辑块L100和L200。逻辑块L100反过来可以将物理存储在硬盘上的数据标识为物理块P100,逻辑块L200可以类似地将物理存储在硬盘上的数据标识为物理块P200。这种将逻辑块映射至物理块的方法是本领域技术人员已知的一种提高存储管理的效率、灵活性或可靠性的方式。在这样的机制中可以改善存储效率的一种方式是通过允许或促进“去重”功能,该功能可以由数据库管理系统的“去重引擎”模块执行。去重是一种可以通过其消除重复的、冗余的或者以其它方式是非必要的存储块的过程。例如,如果逻辑块L100和逻辑块L101都标识相同的数据值集合,则去重引擎可以确保所标识的数据仅在物理介质上被存储一次。在这种情况下,如果数据存储在物理块P100中,则L100和L101可能都指向相同的物理块P100。数据库管理系统通过比较针对两个逻辑块中的每一个的内容所计算的“散列值”来确定两个逻辑块指向相同的数据值集合。散列值是通过对数据元素执行数学“散列”函数所计算的数值。散列函数通常是复杂的数学计算(诸如高阶多项式函数)并且被选择为使得没有两个不同的数据元素能够产生相同的散列值。相反,如果对两个不同的数据元素执行适当选择的散列函数产生了两个相同的散列值,则这两个数据元素可以被假定是相同的。散列值在计算机科学中具有很大的价值,因为与计算机对这些散列值所标识的一对可能冗长的数据元素进行比较相比,它们可以能够更快地存储、读取和比较两个数值。因此,本专利技术的实施例可以使用散列技术来有效地确定两个逻辑块或两个物理块是否包含相同的内容。如本领域技术人员已知的,数据库管理系统可以基于包含存储在主存储(诸如计算机存储器)或辅存储(诸如旋转的磁盘驱动器或SSD固态存储设备)中的元素的架构。出于可读性的目的,本文将把主存储部件称为“存储器驻留(memory-resident)”,并将把辅存储部件称为“盘载(on-disk)”结构。但是读者并不应当将这些惯例解释为暗示本专利技术的实施例将数据专门存储在计算机存储器和磁盘驱动器中。图1图示了如计算机化数据存储领域的技术人员所知的数据库管理系统的结构。图1包括附图标记1000-1001以及101-111。图1的数据库应用包括存储器驻留模块1000的集合,它们在正常情况下被存储在计算机的主存储(诸如随机访问存储器或高速缓存)中;以及盘载数据结构1001的集合,它们正常被存储在辅存储(诸如旋转磁盘驱动器、固态存储设备(SSD)或可重写光学存储器)中。尽管数据库管理系统的确切部件可以变化,典型系统的存储器驻留模块可以包括:-数据库查询处理引擎101,其对数据库应用处理用户查询进行管理;-后台树构建器103,该应用在后台运行以确定数据库的内部结构、存储数据或文件系统应当如何被更新、内部识别或者以其他方式地修正以便实施所请求的数据库事务;-存储器驻留记录存储105,其对最近使用的数据库信息进行缓存,诸如最近检索的数据库记录或者在处理用户查询时最近所访问的数据库索引;-存储器驻留日志存储107,其在存储器中存储数据库事务的日志直至应用能够将该日志冲刷到盘载日志存储;和-盘载B树109,其包括数据库的实际结构化的数据。如上所述,该数据可以被组织为记录,记录进而被组织为逻辑块,每个逻辑块各自指向物理存储在对应的物理块中的数据。所存储的数据在逻辑上被组织为“B树”数据结构,这是二叉树的优化版本,其中一个节点可以链接至多于两个的子节点;和-盘载日志存储111,其在磁盘上存储从存储器驻留日志存储所转发的数据库事务的日志。这样的应用可能如何工作的一个示例包括以下步骤:-新的用户查询或事务被接收并且最初由查询或事务处理引擎101进行处理。-如果查询或事务要求特定的数据库记录,则查询或事务处理引擎101首先检查存储器驻留记录存储105以确定该记录是否足够近期被访问过从而仍然被存储在存储器驻留记录存储105之中。如果是,则查询或事务处理引擎101从存储器驻留记录存储105提取该记录,从而避免了明显更慢地从磁盘获取。在执行这些操作的期间,查询或事务处理引擎101可以一次或多次参考盘载B树109以便更好地标识为了响应用户查询或事务所必需的操作。-如果该记录未处于存储器驻留记录存储105中,则查询或事务处理引擎101从盘载数据库109获取该记录并且将其保存在存储器驻留记录存储105中。当存储器驻留记录存储105已满时,根据先入先出(FIFO)程序,存储105中最旧的记录被删除而为更近期取得的记录腾出空间。-查询或事务处理引擎101还在存储器驻留日志存储107中保存查询或事务所必要的任何数据库更新的日志。这些日志记录的更新将定期从存储器驻留日志存储107被冲刷到盘载日志存储111。-后台树构建器103确定如何实施用户查询或事务所请求的数据库更新。该确定可以包括从存储器驻留日志存储107或盘载日志存储111读取条目,其中该条目标识与用户查询或事务相关联的一个或多个数据库事务。实施该查询或事务通常通过对盘载B树109中的元素进行修正来执行,诸如更新存储在记录中的数据、更新指针、索引或键值的数值、向数据库添加新的记录、移动记录或者从数据库删除已有记录。-在后台树构建器103从存储器驻留日志存储107或盘载日志存储111读取条目读取日志条目之后,该条目就不再被需要并且从其存储107或111中删除。-一旦后台树构建器103已经确定在存储器中盘载B树109应当如何响应于用户查询或事务被改变,则对盘载B树109实际执行那些改变。在这样的操作的过程期间,如在两个或更多逻辑块被发现各自标识与相同散列值相关联的数据时所指示的,盘载B树109的两个或更多逻辑块可以标识相同的数据。可以通过消除这样的冗余而使得数据库的存储和管理更为高效。如本领域技术人员所知的,一种这样做的方式是将该两个或更多逻辑块中的每一个与相同的物理存储块相关联,而不是为每个逻辑块分配不同的重复物理块。以这种方式消除冗余的物理存储可以由被称作去重引擎的软件应用来执行。这样的引擎可以检测所存储数据的重复副本并且删除除一个以外的所有相关联的相同的物理块。该引擎然后将每个逻辑块指向剩余的单个物理块。被配置在数据库应用服务器和物理存储设备之间的去重引擎可以检测数据库应用在新的逻辑块中存储冗余数据的每次尝试,其中该数据与已有逻辑块中的数据相同。如果没有去重功能存在,数据库应用将分配新的物理块来存储与已有物理块中所存储的相同的数据。但是在这里,去重引擎替代地通过将新的逻辑块与已经与已有逻辑块相关联的物理块相关联而节省了存储空间。在一个示例中,考虑包含两条记录R100和R200的数据库。R1本文档来自技高网...
优化数据库去重

【技术保护点】
一种数据库去重优化器,包括一个或多个处理器,耦合至所述一个或多个处理器的一个或多个存储器,以及耦合至所述一个或多个处理器的一个或多个计算机可读硬件存储设备,其中所述计算机可读硬件存储设备中的一个或多个包含程序代码,所述程序代码被配置为由所述处理器中的一个或多个经由所述存储器中的一个或多个来运行以实施一种用于优化数据库的去重的方法,所述数据库被存储在被组织为两个或更多个层级的数据库存储设备集合上,所述方法包括:所述数据库去重优化器从数据库日志获取事务请求,其中所述事物请求标识:存储于所述数据库中的已有记录;对所述已有记录执行的事务的类型;以及被写入所述已有记录的经更新的数据值;所述数据库去重优化器响应于所述获取而标识第一逻辑块,所述第一逻辑块对应于第一物理块并且存储由所述事务请求标识的所述经更新的数据值;所述数据库去重优化器进一步标识第二逻辑块,所述第二逻辑块在所述数据库存储设备集合中的存储设备上存储由所述已有记录所包括的已有数据值;以及所述数据库去重优化器引导去重模块将所述第一逻辑块和所述第二逻辑块与相同的物理块相关联。

【技术特征摘要】
【国外来华专利技术】2014.11.20 US 14/548,4011.一种数据库去重优化器,包括一个或多个处理器,耦合至所述一个或多个处理器的一个或多个存储器,以及耦合至所述一个或多个处理器的一个或多个计算机可读硬件存储设备,其中所述计算机可读硬件存储设备中的一个或多个包含程序代码,所述程序代码被配置为由所述处理器中的一个或多个经由所述存储器中的一个或多个来运行以实施一种用于优化数据库的去重的方法,所述数据库被存储在被组织为两个或更多个层级的数据库存储设备集合上,所述方法包括:所述数据库去重优化器从数据库日志获取事务请求,其中所述事物请求标识:存储于所述数据库中的已有记录;对所述已有记录执行的事务的类型;以及被写入所述已有记录的经更新的数据值;所述数据库去重优化器响应于所述获取而标识第一逻辑块,所述第一逻辑块对应于第一物理块并且存储由所述事务请求标识的所述经更新的数据值;所述数据库去重优化器进一步标识第二逻辑块,所述第二逻辑块在所述数据库存储设备集合中的存储设备上存储由所述已有记录所包括的已有数据值;以及所述数据库去重优化器引导去重模块将所述第一逻辑块和所述第二逻辑块与相同的物理块相关联。2.根据权利要求1所述的数据库去重优化器,其中所述相同的物理块是所述第一物理块。3.根据权利要求1或2所述的数据库去重优化器,其中所述第一逻辑块和所述第二逻辑块根据所述经更新的数据值的第一特性以及所述已有数据值的第二特性而与所述两个或更多个层级中的相同层级相关联。4.根据权利要求1、2或3所述的数据库去重优化器,其中所述第一特性和所述第二特性从包括以下的组中被选择:所述经更新的值将被访问的预期频率、所述经更新的值的预期使用类型以及所述经更新的值对于所述数据库的用户的重要度。5.根据前述任一项权利要求所述的数据库去重优化器,其中所述数据库存储设备集合中的每个存储设备根据所述每个存储设备的特性而与所述两个或更多个层级中的特定层级相关联,并且其中所述特性从包括以下的组中被选择:数据读取时间、数据写入时间和存储容量。6.根据前述任一项权利要求所述的数据库去重优化器,进一步包括:所述数据库去重优化器确定所述第二逻辑块标识充分的存储容量以存储所述经更新的数据值。7.根据前述任一项权利要求所述的数据库去重优化器,其中所述从所述数据库日志获取所述事务请求、所述标识所述第一逻辑块以及所述进一步标识所述第二逻辑块是通过仅访问存储于所述一个或多个存储器中的记录而被执行。8.一种用于优化数据库的去重的方法,所述数据库被存储在被组织为两个或更多个层级的数据库存储设备集合上,所述方法包括:数据库去重优化器从数据库日志获取事务请求,其中所述事物请求标识:存储于所述数据库中的已有记录;对所述已有记录执行的事务的类型;以及被写入所述已有记录的经更新的数据值;所述数据库去重优化器响应于所述获取而标识第一逻辑块,所述第一逻辑块对应于第一物理块并且存储由所述事务请求标识的所述经更新的数据值;所述数据库去重优化器进一步标识第二逻辑块,所述第二逻辑块在所述数据库存储设备集合中的存储设备上存储由所述已有记录所包括的已有数据值;以及所述数据库去重优化器引导去重模块将所述第一逻辑块和所述第二逻辑块与相同的物理块相关联。9.根据权利要求8所述的方法,其中所述相同的物理块是所述第一物理块。10.根据权利要求8或9所述的方法,其中所述第一逻辑块和所述第二逻辑块根据所...

【专利技术属性】
技术研发人员:B·多尔夫N·纳加拉纳姆S·R·帕蒂尔R·M·夏拉格皮
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国,US

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

1