CN116842048A - 一种数据管理优化的方法和装置 - Google Patents
一种数据管理优化的方法和装置 Download PDFInfo
- Publication number
- CN116842048A CN116842048A CN202310283907.2A CN202310283907A CN116842048A CN 116842048 A CN116842048 A CN 116842048A CN 202310283907 A CN202310283907 A CN 202310283907A CN 116842048 A CN116842048 A CN 116842048A
- Authority
- CN
- China
- Prior art keywords
- page
- host
- data
- accelerator
- dirty
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000013523 data management Methods 0.000 title claims abstract description 14
- 238000005457 optimization Methods 0.000 title claims description 12
- 238000012545 processing Methods 0.000 claims abstract description 118
- 230000004048 modification Effects 0.000 claims abstract description 58
- 238000012986 modification Methods 0.000 claims abstract description 58
- 238000007726 management method Methods 0.000 claims abstract description 49
- 230000001133 acceleration Effects 0.000 claims description 116
- 230000008569 process Effects 0.000 claims description 38
- 230000002085 persistent effect Effects 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000011084 recovery Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 abstract description 10
- 230000005540 biological transmission Effects 0.000 description 8
- 230000002688 persistence Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- 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/2453—Query optimisation
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
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)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据管理优化的方法和装置,该方法包括:根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化;接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果;同时返回与所述操作指令对应的脏页修改信息,将所述脏页数据缓存至所述主机页面缓存中,所述脏页数据回写时,直接从所述主机页面缓存中读取所述脏页数据,从而降低数据交互的通信开销,提升数据库系统的数据处理性能和可靠性。
Description
技术领域
本申请涉及计算机和数据库技术领域,更具体地,涉及一种数据管理优化的方法和装置。
背景技术
大数据时代的数据库管理系统面临海量数据处理分析的需求,通常采用硬件加速来满足性能需求。其加速方案都是在部署数据库的服务器上扩展一块PCIe接口的加速卡,通过将部分数据库操作卸载到加速卡中执行实现数据库处理性能的提升。
但由此引入的PCIe接口处理时延对整体的加速性能影响很大。为了减少时延,一是进一步降低PCIe接口本身的处理时延,业界提出了CXL,CCIX等一系列基于PCIe的缓存一致性协议接口来降低接口时延,但这并不能消除接口时延。二是尽可能减少接口上的数据交互次数,通常加速卡挂载大容量RAM(主存,与CPU直接交换数据的内存存储器),尽可能保证数据存取和处理都在加速卡上完成,仅最终结果返回到服务器host(主机)侧。但由于数据量的爆炸式增长,无论加速卡挂载多大的RAM容量,尤其是OLTP类的数据库管理系统,加速卡上的加速功能部分都面临加速卡上数据缺页导致的换入换出,修改更新后的数据页面写回服务器host侧的问题,带来数据交互次数的增加,影响加速效果。
现有加速卡和CPU间通过PCIe通信,通信开销很大,通过DMA(Direct MemoryAccess,直接存储器访问)方式,CPU仅初始化传输动作,并不参与数据复制,而将数据从一个地址空间复制到另外一个地址空间的数据复制或数据传输动作由硬件DMA控制器执行和完成。虽然通过DMA方式能够提升数据吞吐量,但数据的传输时延仍然居高不下,制约加速卡的应用性能提升。故多个产业联盟基于PCIe接口,扩展新的事务层实现新的接口协议,来降低加速卡和CPU间的接口通信时延。CXL为其中一种实现方式,其通过内置缓存一致性协议,并将CPU内存和加速卡内存统一池化管理来达到目的。虽然缓存一致性协议类方案极大降低了PCIe接口上的时延。但接口时延仍然存在,因加速卡的引入而额外引入的这部分时延一定程度抵消了加速卡带来的部分增益,仍影响系统整体性能表现。因此,如何减少数据回写对性能的影响,是一个亟需解决的问题。
基于此,有必要引入一种新的方法及装置,能够在保证数据缓存一致性的基础上,减少加速卡与主机之间基于接口的数据交互次数,解决现有技术中存在数据频繁交互、数据传输时延和PCIe接口时延等技术问题,从而实现基于加速卡对数据库系统处理性能的加速,降低数据交互带来的通信开销,提升数据传输、数据回写和数据处理的性能,以及加速卡的适用性。
发明内容
针对上面提到的技术问题,本发明提供一种数据管理优化的方法和装置,通过加速卡在返回操作指令的处理结果时同路返回与所述操作指令的处理结果对应的页面数据,并提前在主机上完成缓存,以用于相应用户的查询请求、数据持久化存储以及数据恢复,在确保数据缓存一致性的基础上,大大减少了加速卡与主机之间基于接口的数据交互次数,解决了现有技术中存在数据频繁交互、数据传输时延和PCIe接口时延等技术问题,从而实现了基于加速卡对数据库系统处理性能的加速,降低了数据交互带来的通信开销,提升了数据库系统的数据处理性能和可靠性,以及加速卡的适用性。
本发明提供一种数据管理优化的方法,所述方法包括:
S101,定义页面属性数据结构,并根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化;S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果;S103,所述主机根据所述脏页标记和所述处理结果,将所述脏页数据写回所述主机存储中;
其中,所述加速器在向所述主机返回处理结果时,同时返回与所述操作指令对应的脏页修改信息,所述主机根据所述脏页修改信息将所述脏页数据缓存至所述主机页面缓存中,当将所述脏页数据写回所述主机存储中时,直接从所述主机页面缓存中读取所述脏页数据;所述页面属性数据结构包括数据库名称、数据表编号、主机侧页面编号、加速卡侧页面编号、脏页标记、页内位置和元组信息;所述操作指令的类型包括增加操作指令、删除操作指令、修改操作指令、查询操作指令,所述操作指令由用户的数据库操作请求解析优化得到或由所述主机的辅助进程产生,其中,由所述主机的辅助进程产生的所述操作指令不包括所述查询操作指令。
如上所述,所述S101,定义页面属性数据结构,并根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化的步骤包括:初始化加速卡存储及主机缓存页面信息,根据所述页面属性数据结构和加速卡存储的容量,从所述主机的持久化存储中加载所述数据页面存储在所述加速卡存储中,生成所述加速卡侧页面编号,并更新所述主机缓存页面信息,包括已加载的数据页面的所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息;初始化主机页面缓存及加速卡页面管理信息,根据初始化的所述加速卡存储和所述主机缓存页面信息,将所述主机页面缓存和所述加速卡页面管理信息均置为空;其中,初始化的所述脏页标记均为空值,当时所述数据页面被修改形成脏页时,将所述脏页标记设置为脏页。
如上所述,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果的步骤包括增删改操作请求处理的步骤,具体为:所述主机接收并向所述加速器发送所述操作指令;当所述加速器接收主机发出的所述操作指令的类型为所述增加操作指令,或所述删除操作指令,或所述修改操作指令,或由所述主机的辅助进程产生的操作指令时,则所述主机将由所述操作指令解析和优化得到的第一执行计划发送至所述加速器,所述加速器根据所述第一执行计划和所述页面属性数据结构对所述数据页面进行处理,将处理后的所述数据页面的脏页标记设置为脏页,形成所述脏页数据,更新所述主机缓存页面信息,并记录所述脏页修改信息,包括所述脏页的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、所述页内位置和所述元组信息;所述加速器向所述主机返回处理结果,并将所述脏页修改信息返回至所述主机;所述主机根据所述脏页修改信息和所述主机缓存页面信息对所述脏页数据和所述脏页修改信息进行缓存处理。
如上所述,所述主机根据所述脏页修改信息和所述主机缓存页面信息对所述脏页数据和所述脏页修改信息进行缓存处理的步骤为:若所述主机缓存页面信息不存在所述脏页的所述加速卡侧页面编号,则将所述脏页修改信息存储至所述主机缓存页面信息中,并分配所述主机侧页面编号,根据所述脏页修改信息从所述加速器读取所述脏页对应的数据页面和元数据,并缓存至所述主机页面缓存中;若所述主机缓存页面信息存在所述脏页的所述加速卡侧页面编号,则将所述脏页修改信息更新至所述主机缓存页面信息中,根据所述脏页的所述主机侧页面编号、所述加速卡侧页面编号、所述页内位置和所述元组信息,从所述加速器读取所述脏页对应的元数据更新至所述主机页面缓存中,并对所述主机页面缓存中所述脏页对应的所述数据页面进行数据偏移处理。
如上所述,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果的步骤包括查询操作请求处理的步骤,具体为:所述主机接收用户的所述查询操作指令,对所述查询操作指令进行解析和优化得到与所述查询操作指令对应的第二执行计划;根据所述第二执行计划和所述主机缓存页面信息,若所述主机页面缓存中存在与所述第二执行计划对应的查询结果,并且所述第二执行计划在所述主机的执行代价小于或等于所述第二执行计划在所述加速器的执行代价,则在所述主机上执行所述第二执行计划,并根据所述第二执行计划从所述主机页面缓存中获取并返回所述查询结果;若所述主机页面缓存中不存在与所述第二执行计划对应的查询结果,或所述主机页面缓存中存在与所述第二执行计划对应的查询结果,但所述第二执行计划在所述主机的执行代价大于所述第二执行计划在所述加速器的执行代价,则将第二执行计划发送至所述加速器,所述加速器根据所述第二执行计划从所述加速器的所述加速卡存储中获取并返回所述查询结果。
如上所述,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理的步骤还包括数据页面缺页处理的步骤,具体为:当所述加速卡存储中不存在所述数据页面时,所述加速器向所述主机发出缺页请求;所述主机根据所述缺页请求,对所述操作指令解析获得所述数据库名称和所述数据表编号,并根据所述数据库名称和所述数据表编号从所述主机的持久化存储中加载与所述操作指令对应的数据页面,分配所述加速卡侧页面编号;根据所述加速卡存储的容量和所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行替换页处理。
可选择地,所述根据所述加速卡存储的容量和所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行替换页处理的步骤包括主机侧替换页处理和加速器侧替换页处理;
其中,
所述主机侧替换页处理的步骤为:1)当所述主机页面缓存的可用容量大于或等于与所述操作指令对应的数据页面的数据量时,所述将与所述操作指令对应的数据页面缓存至所述主机页面缓存中,并为与所述操作指令对应的数据页面分配所述主机侧页面编号,将所述主机侧页面编号、所述加速卡侧页面编号、所述数据库名称和所述数据表编号存储至所述主机缓存页面信息中,初始化所述脏页标记为空值;向所述加速器发送与所述操作指令对应的数据页面;当所述主机页面缓存的可用容量小于与所述操作指令对应的数据页面的数据量时,所述主机向所述加速器发送与所述操作指令对应的数据页面;
所述加速器侧替换页处理的步骤为:所述加速器接收与所述操作指令对应的数据页面和所述加速卡侧页面编号,根据所述加速卡存储的可用容量存储与所述操作指令对应的数据页面,1)当所述加速卡存储的可用容量大于或等于与所述操作指令对应的数据页面的数据量时,将与所述操作指令对应的数据页面存储在所述的所述加速卡存储中;将所述加速卡侧页面编号、所述数据库名称和所述数据表编号,分别更新至所述主机缓存页面信息中,并初始化所述脏页标记为空值。2)当所述加速卡存储的可用容量小于与所述操作指令对应的数据页面的数据量时,根据预设数据页面置换算法和与所述操作指令对应的数据页面的数据量从所述加速卡存储中删除已存储的所述数据页面,将与所述操作指令对应的数据页面存储在所述的所述加速卡存储中;将所述加速卡侧页面编号、所述数据库名称和所述数据表编号,分别更新至所述主机缓存页面信息中,并初始化所述脏页标记为空值。
其中,预设数据页面置换算法可根据所述数据页面的驻留时间、访问次数、权重和数据量大小进行设定。
如上所述,所述S103,所述主机根据所述脏页标记和所述处理结果,将所述脏页数据写回所述主机存储中的步骤包括:所述主机根据脏页回写策略和所述数据页面的所述脏页标记,将所述主机页面缓存中的所述脏页数据存储至从所述主机的持久化存储中,并将所述数据页面的所述脏页标记设置为空值;
其中,所述脏页回写策略根据所述脏页数据在所述主机页面缓存中的驻留时间、轮询顺序、数据量大小和修改次数进行设定。
可选择地,在根据所述脏页标记,将所述脏页数据写回所述主机存储中后还包括加速器故障恢复的步骤,具体为:当所述加速器故障时,所述主机接收并根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理,为处理后的数据页面添加脏页标记,并返回处理结果;所述主机根据所述加速器的日志信息,将所述脏页数据恢复至所述加速器的所述加速卡存储中,并根据加速卡存储的容量,从所述主机的持久化存储中加载所述数据页面存储在所述加速卡存储中,生成所述加速卡侧页面编号,更新所述加速器上的所述主机缓存页面信息;所述加速器恢复正常后重新开始接收所述加速器接收主机发出的操作指令。
相应的,本发明还提供了一种数据管理优化的装置,应用于连接加速器的数据库系统中,所述装置包括解析优化模块、接口处理模块、加速卡页面管理模块、页面缓存模块、加速执行模块、加速卡存储模块、主机缓存页面信息管理模块;
其中,所述解析优化模块、所述接口处理模块、所述加速卡页面管理模块和所述页面缓存模块部署于所述主机中,所述加速执行模块、所述加速卡存储模块和所述主机缓存页面信息管理模块部署于所述加速器中;
所述解析优化模块,用于接收用户的数据库操作请求,并对所述用户的数据库操作请求进行解析和优化得到与所述用户的数据库操作请求对应的执行计划;
所述接口处理模块,用于将与所述用户的数据库操作请求对应的执行计划发送至所述加速器;
所述加速卡页面管理模块,用于在所述加速器根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理并返回处理结果时,从所述主机缓存页面信息管理模块中缓存与所述脏页数据对应的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息,并生成和存储所述主机侧页面编号,以及根据所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行所述主机侧替换页处理时,为与所述操作指令对应的数据页面分配所述主机侧页面编号,并存储所述主机侧页面编号、所述加速卡侧页面编号、所述数据库名称、所述数据表编号和所述脏页标记;
所述页面缓存模块,用于缓存所述加速卡存储模块中的所述脏页数据,以及根据所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行所述主机侧替换页处理时,缓存与所述操作指令对应的数据页面;
所述加速执行模块,用于接收并执行所述接口处理模块发出的与所述用户的数据库操作请求对应的执行计划发送至所述加速器;
所述加速卡存储模块,用于根据所述页面属性数据结构和加速卡存储的容量,从所述主机的持久化存储中加载并存储所述数据页面,生成所述加速卡侧页面编号;
所述主机缓存页面信息管理模块,用于存储和更新所述加速器上的所述主机缓存页面信息,包括已加载的数据页面的所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息,并生成和存储所述加速卡侧页面编号。
通过应用以上技术方案,加速器在向所述主机返回处理结果时,随路返回与所述操作指令对应的脏页修改信息,所述主机根据所述脏页修改信息修改后的脏页数据缓存至所述主机页面缓存中,当将脏页数据写回所述主机存储中时,直接从所述主机页面缓存中读取所述脏页数据,实现了通过加速卡在返回操作指令的处理结果时同路返回与所述操作指令的处理结果对应的页面数据,并提前在主机上完成缓存,以用于相应用户的查询请求、数据持久化存储以及数据恢复,在确保数据缓存一致性的基础上,大大减少了加速卡与主机之间基于接口的数据交互次数,解决了现有技术中存在数据频繁交互、数据传输时延和PCIe接口时延等技术问题,从而完成了基于加速卡对数据库系统处理性能的加速,降低了数据交互带来的通信开销,提升了数据库系统的数据处理性能和可靠性,以及加速卡的适用性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种数据管理优化的方法的流程示意图;
图2示出了本发明实施例提出的一种数据管理优化的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种数据管理优化的方法,应用于连接有硬件加速器的数据库中,如图1所示,该方法包括以下步骤:
S101,定义页面属性数据结构,并根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化。
其中,所述页面属性数据结构包括数据库名称、数据表编号、主机侧页面编号、加速卡侧页面编号、脏页标记、页内位置和元组信息。
本实施例中,所述S101,定义页面属性数据结构,并根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化的步骤包括:
初始化加速卡存储及主机缓存页面信息,根据所述页面属性数据结构和加速卡存储的容量,从所述主机的持久化存储中加载所述数据页面存储在所述加速卡存储中,生成所述加速卡侧页面编号,并更新所述主机缓存页面信息,包括已加载的数据页面的所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息;
初始化主机页面缓存及加速卡页面管理信息,根据初始化的所述加速卡存储和所述主机缓存页面信息,将所述主机页面缓存和所述加速卡页面管理信息均置为空;
其中,初始化的所述脏页标记均为空值,当时所述数据页面被修改形成脏页时,将所述脏页标记设置为脏页。
S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果。
其中,所述加速器在向所述主机返回处理结果时,同时返回与所述操作指令对应的脏页修改信息,所述主机根据所述脏页修改信息将所述脏页数据缓存至所述主机页面缓存中,当将所述脏页数据写回所述主机存储中时,直接从所述主机页面缓存中读取所述脏页数据。
所述操作指令的类型包括增加操作指令、删除操作指令、修改操作指令、查询操作指令,所述操作指令由用户的数据库操作请求解析优化得到或由所述主机的辅助进程产生,其中,由所述主机的辅助进程产生的所述操作指令不包括所述查询操作指令。
为实现对增加、删除和修改数据库操作指令的加速处理,本实施例中,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果的步骤包括增删改操作请求处理的步骤,具体为:
所述主机接收并向所述加速器发送所述操作指令;
当所述加速器接收主机发出的所述操作指令的类型为所述增加操作指令,或所述删除操作指令,或所述修改操作指令,或由所述主机的辅助进程产生的操作指令时,则
所述主机将由所述操作指令解析和优化得到的第一执行计划发送至所述加速器,所述加速器根据所述第一执行计划和所述页面属性数据结构对所述数据页面进行处理,将处理后的所述数据页面的脏页标记设置为脏页,形成所述脏页数据,更新所述主机缓存页面信息,并记录所述脏页修改信息,包括所述脏页的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、所述页内位置和所述元组信息;
所述加速器向所述主机返回处理结果,并将所述脏页修改信息返回至所述主机;
所述主机根据所述脏页修改信息和所述主机缓存页面信息对所述脏页数据和所述脏页修改信息进行缓存处理。
值得说明的是,在一些实际的具体应用场景中,由所述主机的辅助进程产生的所述操作指令,比如Vacuum指令(收回由死亡元组占用的存储空间),没有解析和优化的过程,可以直接由所述主机的辅助进程产生的所述操作指令发送至所述加速器执行,并在执行完成后向所述主机返回处理结果,并将所述脏页修改信息返回至所述主机。
为降低数据交互过程中的通信资源消耗,本实施例中,所述主机根据所述脏页修改信息和所述主机缓存页面信息对所述脏页数据和所述脏页修改信息进行缓存处理的步骤为:
若所述主机缓存页面信息不存在所述脏页的所述加速卡侧页面编号,则将所述脏页修改信息存储至所述主机缓存页面信息中,并分配所述主机侧页面编号,根据所述脏页修改信息从所述加速器读取所述脏页对应的数据页面和元数据,并缓存至所述主机页面缓存中;
若所述主机缓存页面信息存在所述脏页的所述加速卡侧页面编号,则将所述脏页修改信息更新至所述主机缓存页面信息中,根据所述脏页的所述主机侧页面编号、所述加速卡侧页面编号、所述页内位置和所述元组信息,从所述加速器读取所述脏页对应的元数据更新至所述主机页面缓存中,并对所述主机页面缓存中所述脏页对应的所述数据页面进行数据偏移处理。
为了方便本领域技术人员更好地本发明提供的技术方案,现以database1数据库为例,对此步骤进行进一步说明。
当处理完所述增加操作指令,或所述删除操作指令,或所述修改操作指令,或由所述主机的辅助进程产生的操作指令时,所述加速器向所述主机返回处理结果,以及所述脏页修改信息,所述脏页修改信息包括所述脏页的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、所述页内位置和所述元组信息;其中,所述数据库名称为database1、所述数据表编号为table1、所述加速卡侧页面编号为00000001;
所述主机收到所述加速器返回的处理结果,以及所述脏页修改信息,根据所述加速卡侧页面编号查找后,确定所述加速卡侧页面编号对应的数据页面为第一次返回,即所述主机缓存页面信息不存在所述脏页的所述加速卡侧页面编号,则为所述加速卡侧页面编号对应的数据页面分配所述主机侧页面编号,所述主机侧页面编号为12,并在所述主机缓存页面信息中增加一条如表1所示的记录,同时根据所述脏页修改信息从所述加速器读取所述脏页对应的整个数据页面和全部元数据,并缓存至所述主机页面缓存中。
表1
数据库名称/数据表编号 | 加速卡侧页面编号 | 主机侧页面编号 |
database1/table1 | 00000001 | 12 |
当所述加速器再次向所述主机返回处理结果,以及所述脏页修改信息,所述主机收到所述加速器返回的处理结果,以及所述脏页修改信息后,根据所述加速卡侧页面编号和所述主机缓存页面信息的记录,确定所述主机缓存页面信息中已经存在所述脏页的所述加速卡侧页面编号,其中,所述加速卡侧页面编号为00000001,则在所述主机缓存页面信息中无需增加新的记录,所述主机根据所述脏页的所述主机侧页面编号、所述加速卡侧页面编号、所述页内位置和所述元组信息,从所述加速器读取所述脏页对应的元数据更新至所述主机页面缓存中,并对所述主机页面缓存中所述主机侧页面编号为12的数据页面进行数据偏移处理,然后刷新所述主机缓存页面信息中无需增加新的记录,从而实现根据所述脏页修改信息和所述主机缓存页面信息对所述脏页和所述脏页修改信息进行缓存处理,并降低了数据交互过程中的通信资源消耗,提升了操作指令的处理效率。
为实现对查询数据库操作指令的加速处理,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果的步骤包括查询操作请求处理的步骤,具体为:
所述主机接收用户的所述查询操作指令,对所述查询操作指令进行解析和优化得到与所述查询操作指令对应的第二执行计划;
根据所述第二执行计划和所述主机缓存页面信息,若所述主机页面缓存中存在与所述第二执行计划对应的查询结果,并且所述第二执行计划在所述主机的执行代价小于或等于所述第二执行计划在所述加速器的执行代价,则在所述主机上执行所述第二执行计划,并根据所述第二执行计划从所述主机页面缓存中获取并返回所述查询结果;
若所述主机页面缓存中不存在与所述第二执行计划对应的查询结果,或所述主机页面缓存中存在与所述第二执行计划对应的查询结果,但所述第二执行计划在所述主机的执行代价大于所述第二执行计划在所述加速器的执行代价,则将第二执行计划发送至所述加速器,所述加速器根据所述第二执行计划从所述加速器的所述加速卡存储中获取并返回所述查询结果。
为确保返回的所述操作指令的处理结果更加准确和高效,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理的步骤还包括数据页面缺页处理的步骤,具体为:
当所述加速卡存储中不存在所述数据页面时,
所述加速器向所述主机发出缺页请求;
所述主机根据所述缺页请求,对所述操作指令解析获得所述数据库名称和所述数据表编号,并根据所述数据库名称和所述数据表编号从所述主机的持久化存储中加载与所述操作指令对应的数据页面,分配所述加速卡侧页面编号;
根据所述加速卡存储的容量和所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行替换页处理。
为提升数据页面替换的准确性和速度,并合理利用主机及加速卡的缓存空间,所述根据所述加速卡存储的容量和所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行替换页处理的步骤包括主机侧替换页处理和加速器侧替换页处理;
其中,
所述主机侧替换页处理的步骤为:
1)当所述主机页面缓存的可用容量大于或等于与所述操作指令对应的数据页面的数据量时,
所述将与所述操作指令对应的数据页面缓存至所述主机页面缓存中,并为与所述操作指令对应的数据页面分配所述主机侧页面编号,将所述主机侧页面编号、所述加速卡侧页面编号、所述数据库名称和所述数据表编号存储至所述主机缓存页面信息中,初始化所述脏页标记为空值;
向所述加速器发送与所述操作指令对应的数据页面;
当所述主机页面缓存的可用容量小于与所述操作指令对应的数据页面的数据量时,
所述主机向所述加速器发送与所述操作指令对应的数据页面;
所述加速器侧替换页处理的步骤为:
所述加速器接收与所述操作指令对应的数据页面和所述加速卡侧页面编号,根据所述加速卡存储的可用容量存储与所述操作指令对应的数据页面,
1)当所述加速卡存储的可用容量大于或等于与所述操作指令对应的数据页面的数据量时,
将与所述操作指令对应的数据页面存储在所述的所述加速卡存储中;
将所述加速卡侧页面编号、所述数据库名称和所述数据表编号,分别更新至所述主机缓存页面信息中,并初始化所述脏页标记为空值。
2)当所述加速卡存储的可用容量小于与所述操作指令对应的数据页面的数据量时,
根据预设数据页面置换算法和与所述操作指令对应的数据页面的数据量从所述加速卡存储中删除已存储的所述数据页面,将与所述操作指令对应的数据页面存储在所述的所述加速卡存储中;
将所述加速卡侧页面编号、所述数据库名称和所述数据表编号,分别更新至所述主机缓存页面信息中,并初始化所述脏页标记为空值。
其中,预设数据页面置换算法可根据所述数据页面的驻留时间、访问次数、权重和数据量大小进行设定。
举例来说,当需要缓存的页面数据超过所述加速卡存储设定的缓存空间阈值后,按照预定的替换策略(比如LRU页面置换算法,淘汰最近最久未使用的页面)进行缓存页面替换操作。当所述加速器产生换页请求,对A表进行换入操作时,所述主机从持久化存储介质中读出对应的A表页面,所述主机对其分配对应的加速卡缓存编号;如果所述主机上的所述主机页面缓存的缓存空间足够,则同时缓存A表页面数据,同时通过接口将页面数据发送给所述加速器缓存,所述主机上的所述主机缓存页面信息也进行更新。如果所述主机上的所述主机页面缓存的缓存空间足够,但有符合替换策略的页面,也可以替换入A表页面数据,更新所述主机缓存页面信息,再通过接口将页面数据发送给所述加速器,从而完成所述主机和所述加速器的替换页处理。
S103,所述主机根据所述脏页标记和所述处理结果,将所述脏页数据写回所述主机存储中。
本实施例中,所述S103,所述主机根据所述脏页标记和所述处理结果,将所述脏页数据写回所述主机存储中的步骤包括:
所述主机根据脏页回写策略和所述数据页面的所述脏页标记,将所述主机页面缓存中的所述脏页数据存储至从所述主机的持久化存储中,并将所述数据页面的所述脏页标记设置为空值;
其中,
所述脏页回写策略根据所述脏页数据在所述主机页面缓存中的驻留时间、轮询顺序、数据量大小和修改次数进行设定。
举例来说,当主机侧脏页回写时刻到来,所述主机按照预定的所述脏页回写策略,将所述主机页面缓存中符合策略的所述脏页数据回写持久化存储介质,并清除对应的所述脏页标记。其中,预定的所述脏页回写策略可按需进行预设,包括根据脏页内存中驻留时间,驻留时间长的优先写出,或轮询写出,或根据脏页被改动的数据量大小,被改动较多的脏页优先写出,等等。值得说明的是,可以根据需要将所述脏页标记为一个标志位,如所述页面属性数据结构中的一个标记成员变量,置1为脏页,置0为正常,置为脏页的页面同时就挂上脏页的链表,置为0又将其取下,从而实现对数据页面的脏页标记,并根据该脏页标记完成对数据页面的高效处理和管理。
可选择地,在根据所述脏页标记,将所述脏页数据写回所述主机存储中后还包括加速器故障恢复的步骤,具体为:
当所述加速器故障时,
所述主机接收并根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理,为处理后的数据页面添加脏页标记,并返回处理结果;
所述主机根据所述加速器的日志信息,将所述脏页数据恢复至所述加速器的所述加速卡存储中,并根据加速卡存储的容量,从所述主机的持久化存储中加载所述数据页面存储在所述加速卡存储中,生成所述加速卡侧页面编号,更新所述加速器上的所述主机缓存页面信息;
所述加速器恢复正常后重新开始接收所述加速器接收主机发出的操作指令。
举例来说,当所述主机检测到所述加速器故障,所述主机通过保存的日志信息进行REDO/UNDO(重做/撤销)操作,此时REDO/UNDO(重做/撤销)通过加速卡页面管理模块操作页面数据。具体过程为:依据XLOG(存储在所述主机上的日志信息)内容,从最近一个checkpoint(内部事件)点开始,进行重演,包括将脏页写回、未提交的事务的数据回滚到正常等操作。这些对页面的操作处理需要通过所述主机上的加速卡页面管理模块接管,由其判断处理是操作缓存中还是需要从持久化介质中读取。
REDO/UNDO(重做/撤销)过程完成后,后续数据库操作都在host侧完成,即所述主机接收并根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理,为处理后的数据页面添加脏页标记,并返回处理结果。加速卡故障后,所述主机缓存页面信息中保存的所述加速卡侧页面编号信息失效。
当所述加速器恢复正常后,所述主机暂停服务,开始进入数据同步操作。通过加速卡缓存管理模块保存信息获知当前缓存的Table列表,开始依据Table列表中的表信息加载对应的页面数据到所述加速卡存储中,优先加载缓存中的页面数据,再加载持久化存储介质中剩余的Table列表中表的页面数据。当存在缓存的表加载完毕后,则按照初始预定的表加载策略从持久化存储介质加载其余页面数据(比如按照表存储大小顺序,优先加载存储容量小的表;又或者优先加载与缓存中的表存在外键,或与缓存中的表内容相关性大的表进行加载),直至达到所述加速卡设定的内存容量大小。其中,所述预定的表加载策略,用户可根据选择对应的表加载策略,包括按照表存储大小顺序,优先加载存储容量小的表,或优先加载与缓存中的表存在外键或与缓存中的表内容相关性大的表进行加载,等。
数据同步操作结束后,后继数据库操作重新切换回所述加速器执行。
通过应用以上技术方案,加速器在向所述主机返回处理结果时,随路返回与所述操作指令对应的脏页修改信息,所述主机根据所述脏页修改信息修改后的脏页数据缓存至所述主机页面缓存中,当将脏页数据写回所述主机存储中时,直接从所述主机页面缓存中读取所述脏页数据,实现了通过加速卡在返回操作指令的处理结果时同路返回与所述操作指令的处理结果对应的页面数据,并提前在主机上完成缓存,以用于相应用户的查询请求、数据持久化存储以及数据恢复,在确保数据缓存一致性的基础上,大大减少了加速卡与主机之间基于接口的数据交互次数,解决了现有技术中存在数据频繁交互、数据传输时延和PCIe接口时延等技术问题,从而完成了基于加速卡对数据库系统处理性能的加速,降低了数据交互带来的通信开销,提升了数据库系统的数据处理性能和可靠性,以及加速卡的适用性。
与本发明实施例中的一种数据管理优化的方法相对应,本发明还公开了一种数据管理优化的装置,所述装置应用于连接加速器的数据库系统中,如图2所示,所述装置包括解析优化模块201、接口处理模块202、加速卡页面管理模块203、页面缓存模块204、加速执行模块205、加速卡存储模块206、主机缓存页面信息管理模块207;
其中,所述解析优化模块、所述接口处理模块、所述加速卡页面管理模块和所述页面缓存模块部署于所述主机中,所述加速执行模块、所述加速卡存储模块和所述主机缓存页面信息管理模块部署于所述加速器中;
所述解析优化模块201,用于接收用户的数据库操作请求,并对所述用户的数据库操作请求进行解析和优化得到与所述用户的数据库操作请求对应的执行计划;
所述接口处理模块202,用于将与所述用户的数据库操作请求对应的执行计划发送至所述加速器;
所述加速卡页面管理模块203,用于在所述加速器根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理并返回处理结果时,从所述主机缓存页面信息管理模块中缓存与所述脏页数据对应的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息,并生成和存储所述主机侧页面编号,以及根据所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行所述主机侧替换页处理时,为与所述操作指令对应的数据页面分配所述主机侧页面编号,并存储所述主机侧页面编号、所述加速卡侧页面编号、所述数据库名称、所述数据表编号和所述脏页标记;
所述页面缓存模块204,用于缓存所述加速卡存储模块中的所述脏页数据,以及根据所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行所述主机侧替换页处理时,缓存与所述操作指令对应的数据页面;
所述加速执行模块205,用于接收并执行所述接口处理模块发出的与所述用户的数据库操作请求对应的执行计划发送至所述加速器;
所述加速卡存储模块206,用于根据所述页面属性数据结构和加速卡存储的容量,从所述主机的持久化存储中加载并存储所述数据页面,生成所述加速卡侧页面编号;
所述主机缓存页面信息管理模块207,用于存储和更新所述加速器上的所述主机缓存页面信息,包括已加载的数据页面的所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息,并生成和存储所述加速卡侧页面编号。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据管理优化的方法,应用于连接加速器的数据库系统中,所述方法包括:
S101,定义页面属性数据结构,并根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化;
S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果;
S103,所述主机根据所述脏页标记和所述处理结果,将所述脏页数据写回所述主机存储中;
其特征在于,所述加速器在向所述主机返回处理结果时,同时返回与所述操作指令对应的脏页修改信息,所述主机根据所述脏页修改信息将所述脏页数据缓存至所述主机页面缓存中,当将所述脏页数据写回所述主机存储中时,直接从所述主机页面缓存中读取所述脏页数据;
其中,
所述页面属性数据结构包括数据库名称、数据表编号、主机侧页面编号、加速卡侧页面编号、脏页标记、页内位置和元组信息;
所述操作指令的类型包括增加操作指令、删除操作指令、修改操作指令、查询操作指令,所述操作指令由用户的数据库操作请求解析优化得到或由所述主机的辅助进程产生,其中,由所述主机的辅助进程产生的所述操作指令不包括所述查询操作指令。
2.如权利要求1所述的方法,其特征在于,所述S101,定义页面属性数据结构,并根据所述页面属性数据结构、加速卡存储的容量和主机页面缓存的容量对所述加速卡存储、主机缓存页面信息、所述主机页面缓存和加速卡页面管理信息进行初始化的步骤包括:
初始化所述加速卡存储及主机缓存页面信息,根据所述页面属性数据结构和加速卡存储的容量,从所述主机的持久化存储中加载所述数据页面存储在所述加速卡存储中,生成所述加速卡侧页面编号,并更新所述主机缓存页面信息,包括已加载的数据页面的所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息;
初始化所述主机页面缓存及所述加速卡页面管理信息,根据初始化的所述加速卡存储和所述主机缓存页面信息,将所述主机页面缓存和所述加速卡页面管理信息均置为空;
其中,初始化的所述脏页标记均为空值,当时所述数据页面被修改形成脏页时,将所述脏页标记设置为脏页。
3.如权利要求1所述的方法,其特征在于,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果的步骤包括增加操作请求处理、删除操作请求处理和修改操作请求处理的步骤,具体为:
所述主机接收并向所述加速器发送所述操作指令;
当所述加速器接收主机发出的所述操作指令的类型为所述增加操作指令,或所述删除操作指令,或所述修改操作指令,或由所述主机的辅助进程产生的操作指令时,则
所述主机将由所述操作指令解析和优化得到的第一执行计划发送至所述加速器,所述加速器根据所述第一执行计划和所述页面属性数据结构对所述数据页面进行处理,将处理后的所述数据页面的脏页标记设置为脏页,形成所述脏页数据,更新所述主机缓存页面信息,并记录所述脏页修改信息,包括所述脏页的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、所述页内位置和所述元组信息;
所述加速器向所述主机返回处理结果,并将所述脏页修改信息返回至所述主机;
所述主机根据所述脏页修改信息和所述主机缓存页面信息对所述脏页数据和所述脏页修改信息进行缓存处理。
4.如权利要求3所述的方法,其特征在于,所述主机根据所述脏页修改信息和所述主机缓存页面信息对所述脏页数据和所述脏页修改信息进行缓存处理的步骤为:
若所述主机缓存页面信息不存在所述脏页的所述加速卡侧页面编号,则将所述脏页修改信息存储至所述主机缓存页面信息中,并分配所述主机侧页面编号,根据所述脏页修改信息从所述加速器读取所述脏页对应的数据页面和元数据,并缓存至所述主机页面缓存中;
若所述主机缓存页面信息存在所述脏页的所述加速卡侧页面编号,则将所述脏页修改信息更新至所述主机缓存页面信息中,根据所述脏页的所述主机侧页面编号、所述加速卡侧页面编号、所述页内位置和所述元组信息,从所述加速器读取所述脏页对应的元数据更新至所述主机页面缓存中,并对所述主机页面缓存中所述脏页对应的所述数据页面进行数据偏移处理。
5.如权利要求1所述的方法,其特征在于,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理,将所述数据页面标记为脏页,形成脏页数据,并向主机返回处理结果的步骤包括查询操作请求处理的步骤,具体为:
所述主机接收用户的所述查询操作指令,对所述查询操作指令进行解析和优化得到与所述查询操作指令对应的第二执行计划;
根据所述第二执行计划和所述主机缓存页面信息,若所述主机页面缓存中存在与所述第二执行计划对应的查询结果,并且所述第二执行计划在所述主机的执行代价小于或等于所述第二执行计划在所述加速器的执行代价,则在所述主机上执行所述第二执行计划,并根据所述第二执行计划从所述主机页面缓存中获取并返回所述查询结果;
若所述主机页面缓存中不存在与所述第二执行计划对应的查询结果,或所述主机页面缓存中存在与所述第二执行计划对应的查询结果,但所述第二执行计划在所述主机的执行代价大于所述第二执行计划在所述加速器的执行代价,则将第二执行计划发送至所述加速器,所述加速器根据所述第二执行计划从所述加速器的所述加速卡存储中获取并返回所述查询结果。
6.如权利要求1所述的方法,其特征在于,所述S102,接收并向所述加速器发送操作指令,所述加速器根据所述操作指令的类型和所述页面属性数据结构对数据页面进行处理的步骤还包括数据页面缺页处理的步骤,具体为:
当所述加速卡存储中不存在所述数据页面时,
所述加速器向所述主机发出缺页请求;
所述主机根据所述缺页请求,对所述操作指令解析获得所述数据库名称和所述数据表编号,并根据所述数据库名称和所述数据表编号从所述主机的持久化存储中加载与所述操作指令对应的数据页面,分配所述加速卡侧页面编号;
根据所述加速卡存储的容量和所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行替换页处理。
7.如权利要求6所述的方法,其特征在于,所述根据所述加速卡存储的容量和所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行替换页处理的步骤包括主机侧替换页处理和加速器侧替换页处理;
其中,
所述主机侧替换页处理的步骤为:
1)当所述主机页面缓存的可用容量大于或等于与所述操作指令对应的数据页面的数据量时,
所述将与所述操作指令对应的数据页面缓存至所述主机页面缓存中,并为与所述操作指令对应的数据页面分配所述主机侧页面编号,将所述主机侧页面编号、所述加速卡侧页面编号、所述数据库名称和所述数据表编号存储至所述主机缓存页面信息中,初始化所述脏页标记为空值;
向所述加速器发送与所述操作指令对应的数据页面;
当所述主机页面缓存的可用容量小于与所述操作指令对应的数据页面的数据量时,
所述主机向所述加速器发送与所述操作指令对应的数据页面;
所述加速器侧替换页处理的步骤为:
所述加速器接收与所述操作指令对应的数据页面和所述加速卡侧页面编号,根据所述加速卡存储的可用容量存储与所述操作指令对应的数据页面,
1)当所述加速卡存储的可用容量大于或等于与所述操作指令对应的数据页面的数据量时,
将与所述操作指令对应的数据页面存储在所述的所述加速卡存储中;
将所述加速卡侧页面编号、所述数据库名称和所述数据表编号,分别更新至所述主机缓存页面信息中,并初始化所述脏页标记为空值。
2)当所述加速卡存储的可用容量小于与所述操作指令对应的数据页面的数据量时,
根据预设数据页面置换算法和与所述操作指令对应的数据页面的数据量从所述加速卡存储中删除已存储的所述数据页面,将与所述操作指令对应的数据页面存储在所述的所述加速卡存储中;
将所述加速卡侧页面编号、所述数据库名称和所述数据表编号,分别更新至所述主机缓存页面信息中,并初始化所述脏页标记为空值。
其中,预设数据页面置换算法可根据所述数据页面的驻留时间、访问次数、权重和数据量大小进行设定。
8.如权利要求1所述的方法,其特征在于,所述S103,所述主机根据所述脏页标记和所述处理结果,将所述脏页数据写回所述主机存储中的步骤包括:
所述主机根据脏页回写策略和所述数据页面的所述脏页标记,将所述主机页面缓存中的所述脏页数据存储至从所述主机的持久化存储中,并将所述数据页面的所述脏页标记设置为空值;
其中,
所述脏页回写策略根据所述脏页数据在所述主机页面缓存中的驻留时间、轮询顺序、数据量大小和修改次数进行设定。
9.如权利要求1所述的方法,其特征在于,在根据所述脏页标记,将所述脏页数据写回所述主机存储中后还包括加速器故障恢复的步骤,具体为:
当所述加速器故障时,
所述主机接收并根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理,为处理后的数据页面添加脏页标记,并返回处理结果;
所述主机根据所述加速器的日志信息,将所述脏页数据恢复至所述加速器的所述加速卡存储中,并根据加速卡存储的容量,从所述主机的持久化存储中加载所述数据页面存储在所述加速卡存储中,生成所述加速卡侧页面编号,更新所述加速器上的所述主机缓存页面信息;
所述加速器恢复正常后重新开始接收所述加速器接收主机发出的操作指令。
10.一种实施权利要求1的数据管理优化的方法的装置,应用于连接加速器的数据库系统中,其特征在于,所述装置包括解析优化模块、接口处理模块、加速卡页面管理模块、页面缓存模块、加速执行模块、加速卡存储模块、主机缓存页面信息管理模块;
其中,
所述解析优化模块、所述接口处理模块、所述加速卡页面管理模块和所述页面缓存模块部署于所述主机中,所述加速执行模块、所述加速卡存储模块和所述主机缓存页面信息管理模块部署于所述加速器中;
所述解析优化模块,用于接收用户的数据库操作请求,并对所述用户的数据库操作请求进行解析和优化得到与所述用户的数据库操作请求对应的执行计划;
所述接口处理模块,用于将与所述用户的数据库操作请求对应的执行计划发送至所述加速器;
所述加速卡页面管理模块,用于在所述加速器根据所述操作指令的类型和所述页面属性数据结构对所述数据页面进行处理并返回处理结果时,从所述主机缓存页面信息管理模块中缓存与所述脏页数据对应的所述加速卡侧页面编号、所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息,并生成和存储所述主机侧页面编号,以及根据所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行所述主机侧替换页处理时,为与所述操作指令对应的数据页面分配所述主机侧页面编号,并存储所述主机侧页面编号、所述加速卡侧页面编号、所述数据库名称、所述数据表编号和所述脏页标记;
所述页面缓存模块,用于缓存所述加速卡存储模块中的所述脏页数据,以及根据所述主机页面缓存的容量,对与所述操作指令对应的数据页面进行所述主机侧替换页处理时,缓存与所述操作指令对应的数据页面;
所述加速执行模块,用于接收并执行所述接口处理模块发出的与所述用户的数据库操作请求对应的执行计划发送至所述加速器;
所述加速卡存储模块,用于根据所述页面属性数据结构和加速卡存储的容量,从所述主机的持久化存储中加载并存储所述数据页面,生成所述加速卡侧页面编号;
所述主机缓存页面信息管理模块,用于存储和更新所述加速器上的所述主机缓存页面信息,包括已加载的数据页面的所述数据库名称、所述数据表编号、数据页面编号、所述脏页标记、所述页内位置和所述元组信息,并生成和存储所述加速卡侧页面编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310283907.2A CN116842048A (zh) | 2023-03-22 | 2023-03-22 | 一种数据管理优化的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310283907.2A CN116842048A (zh) | 2023-03-22 | 2023-03-22 | 一种数据管理优化的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116842048A true CN116842048A (zh) | 2023-10-03 |
Family
ID=88173143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310283907.2A Pending CN116842048A (zh) | 2023-03-22 | 2023-03-22 | 一种数据管理优化的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116842048A (zh) |
-
2023
- 2023-03-22 CN CN202310283907.2A patent/CN116842048A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10437721B2 (en) | Efficient garbage collection for a log-structured data store | |
US7640276B2 (en) | Backup system, program and backup method | |
US7058783B2 (en) | Method and mechanism for on-line data compression and in-place updates | |
US10725666B2 (en) | Memory-based on-demand data page generation | |
CN107491523B (zh) | 存储数据对象的方法及装置 | |
US9195578B2 (en) | Systems, methods and computer program products memory space management for storage class memory | |
US10303564B1 (en) | Reduced transaction I/O for log-structured storage systems | |
US10409804B2 (en) | Reducing I/O operations for on-demand demand data page generation | |
CN107888687B (zh) | 一种基于分布式存储系统的代理客户端存储加速方法及系统 | |
US20130290636A1 (en) | Managing memory | |
CN111400268A (zh) | 一种分布式持久性内存事务系统的日志管理方法 | |
CN113377868A (zh) | 一种基于分布式kv数据库的离线存储系统 | |
US10909091B1 (en) | On-demand data schema modifications | |
WO2022095685A1 (zh) | 持久性内存键值系统及其操作方法 | |
CN112307119A (zh) | 数据同步方法、装置、设备及存储介质 | |
CN111913917A (zh) | 一种文件处理方法、装置、设备和介质 | |
US10289345B1 (en) | Contention and metadata write amplification reduction in log structured data storage mapping | |
US10210067B1 (en) | Space accounting in presence of data storage pre-mapper | |
CN114706836A (zh) | 一种基于机载嵌入式数据库的数据生命周期管理方法 | |
US10416901B1 (en) | Storage element cloning in presence of data storage pre-mapper with multiple simultaneous instances of volume address using virtual copies | |
CN101339527B (zh) | 影子内存的备份方法及装置 | |
CN113220490A (zh) | 异步写回持久化内存的事务持久化方法及系统 | |
CN108664217A (zh) | 一种降低固态盘存储系统写性能抖动的缓存方法及系统 | |
CN111694806A (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN111611223A (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 |