CN111752974A - 一种加速数据处理效率的方法及数据库 - Google Patents
一种加速数据处理效率的方法及数据库 Download PDFInfo
- Publication number
- CN111752974A CN111752974A CN202010418545.XA CN202010418545A CN111752974A CN 111752974 A CN111752974 A CN 111752974A CN 202010418545 A CN202010418545 A CN 202010418545A CN 111752974 A CN111752974 A CN 111752974A
- Authority
- CN
- China
- Prior art keywords
- layer
- data
- aep
- database
- hard disk
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 title claims abstract description 52
- 230000008569 process Effects 0.000 claims abstract description 36
- 230000007246 mechanism Effects 0.000 claims abstract description 17
- 238000004140 cleaning Methods 0.000 claims description 7
- 238000005201 scrubbing Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000004064 recycling Methods 0.000 claims description 2
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
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/24552—Database cache management
-
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种加速数据处理效率的方法及数据库,方法包括将数据库SGA中的buffer cache进行逻辑分类,形成内存buffer cache、AEP和硬盘三层架构;向数据库发起写请求后,数据库dbwr进程将写请求要求更新的数据写入到内存buffer cache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,所述数据刷新依照write back机制。本发明基于数据库的IO特性和AEP非易失性的特性,将数据库SGA中的buffer cache进行逻辑分类,在内存和硬盘中间添加中间层—AEP层,使用AEP介质作为buffer cache缓存热数据,因AEP的写入速度远优于硬盘,提升数据库的执行效率,同时降低成本。
Description
技术领域
本发明涉及数据库的数据读写技术领域,尤其是一种加速数据处理效率的方法及数据库。
背景技术
K-DB(企业级高性能关系型数据库)数据库以大型商用关系型数据库产品的设计思想和技术原理为蓝本,实现了多进程、多线程的产品架构,具有前后台工作进程和线程处理机制、数据库内部的时钟机制共享内存、后台程序、数据库文件(数据文件、控制文件、Redo日志文件、归档日志文件等),并且还提供了企业级数据库功能,如基于共享存储的双活/多活集群K-RAC、实现数据库实例与数据库文件解耦的存储虚拟化KAS等。当前的业务数据急剧增长,数据量已突破TB(terabytes)变为PB(petabytes)。如果用单一数据系统承载企业整体的数据,数据系统必然会越来越大,数据的急剧增长必将影响系统性能,增加费用支出。
传统数据库数据全部存储在硬盘上,通过SGA(System Global Area,系统全局区)等技术实现数据的缓存,通过两层架构提升查询效率:从逻辑上分为热数据和冷数据,从物理上看热数据放在内存中,冷数据放在机械硬盘中,该技术通过在系统内存区间给数据库分配SGA内存缓存区,解决热数据存储问题。
对于上述传统的数据库处理方式,必须从磁盘读取所有数据块并在改变它之后又必须把每一块写入磁盘,显然效率会非常低;数据缓冲区存放需要经常访问的数据,供所有用户使用。修改数据时,首先从数据文件中取出数据,存储在数据缓冲区中,修改/插入数据也存储在缓冲区中,commit或DBWR进程的其他条件引发时,数据被写入数据文件,同样会影响效率。
发明内容
本发明提供了一种加速数据处理效率的方法及数据库,用于解决现有数据库存储效率低的问题。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种加速数据处理效率的方法,所述方法包括以下步骤:
将数据库SGA中的buffer cache进行逻辑分类,形成内存buffer cache、AEP和硬盘三层架构;
向数据库发起写请求后,数据库dbwr进程将写请求要求更新的数据写入到内存buffer cache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,所述数据刷新依照write back机制。
进一步地,所述write back机制具体为:
在AEP层被写满后,将被替换出的数据写入硬盘层。
进一步地,所述被替换出的数据为冷数据。
进一步地,所述AEP层在处理I/O请求时,首先区别当前I/O的类型,对于顺序I/O,通过硬盘层处理,对于随机I/O,通过AEP层进行缓存。
进一步地,所述AEP层进行数据处理时,采用并行I/O,通过细粒度的同步锁机制增加I/O过程的并行性。
进一步地,所述新建进程的刷新过程包括:
根据请求命中缓存的情况,选择对应的处理分支,所述处理分支包括AEP层和硬盘层;
在读未命中情况下,硬盘读完成后,将从硬盘读取的数据写回AEP层,在写未命中情况下,写AEP完成后,进行元数据的更新;
将选择处理分支的I/O提交到硬盘层,转发至设备驱动,完成数据读写;
针对每个请求进行数据清理,包括对脏块做回收。
本发明第二方面提供了一种数据库,所述数据库包括:
逻辑分类单元,用于将SGA中的buffer cache进行逻辑分类,形成内存buffercache、AEP和硬盘三层架构;
数据处理单元,向数据库发起写请求后,调用数据库dbwr进程将写请求要求更新的数据写入到内存buffer cache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,所述数据刷新依照write back机制。
进一步地,所述新建进程包括:
调度模块,根据请求命中缓存的情况,选择对应的处理分支,所述处理分支包括AEP层和硬盘层;
逻辑处理模块,在读未命中情况下,硬盘读完成后,将从硬盘读取的数据写回AEP层,在写未命中情况下,写AEP完成后,回调到逻辑处理模块进行元数据的更新;
底层存储模块,将调度模块处理的I/O提交到硬盘层,转发至设备驱动,完成数据读写;
后台清理模块,针对每个请求进行数据清理,包括对脏块做回收。
进一步地,所述数据库为K-DB数据库。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、本发明基于数据库的IO特性和AEP非易失性的特性,将数据库SGA中的buffercache进行逻辑分类,在内存和硬盘中间添加中间层—AEP层,使用AEP介质作为buffercache缓存热数据,因AEP的写入速度远优于硬盘,提升数据库的执行效率,同时降低成本。
2、AEP非易失特性保障当设备断电时数据不会丢失,同时解决了write-back算法数据可能造成数据丢失的风险。
3、AEP在缓存磁盘数据的时候区分I/O的类型,对于顺序I/O不采用AEP缓存,直接读写磁盘或RAID,仅对较为随机的I/O请求采用AEP进行缓存,进一步优化了K-DB缓存效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明所述方法的流程示意图;
图2是本发明所述数据库内加速处理效率的结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明加速数据处理效率的方法,包括以下步骤:
S1,将数据库SGA中的buffer cache进行逻辑分类,形成内存buffer cache、AEP和硬盘三层架构;
S2,向数据库发起写请求后,数据库dbwr进程将写请求要求更新的数据写入到内存buffer cache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,数据刷新依照write back机制。
步骤S1中,对K-DB SGA中的两个主要部分shared poor(缓存sql语句的执行计划)和buffer cache(缓存具体业务数据库)分别采用不同的处理方式,其中shared poor保持不变,Buffer cache与AEP、硬盘组成三层架构(内存、AEP、磁盘),AEP起到中间cache的作用。
步骤S2中的write back机制具体为:在AEP层被写满后,将被替换出的数据写入硬盘层。被替换出的数据为冷数据。这样,K-DB数据库通过AEP将经常使用的热数据自动进行AEP缓存,当下一次数据请求过来自动从AEP中读取数据,而不是从硬盘上读取,提升IO效率。
write back机制在数据更新时只写入缓存Cache(在此案例中指的是AEP),而不是立即写入硬盘。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。其优点在于数据写入速度快,因为不需要写存储,为支持这种策略,每个cache行需配置一个修改位,以反映此行是否被CPU修改过。
现有write back机制存在更新后的数据未被写入存储时出现系统掉电的情况,数据将无法找回的缺陷,本实施例利用AEP非易失特性保障当设备断电时数据不会丢失,同时解决了write-back算法数据可能造成数据丢失的风险。
K-DB数据库结合AEP处理I/O请求,AEP在缓存磁盘数据的时候区分I/O的类型,通过K-DB在I/O过程中判别其特征,例如redo日志则为顺序I/O(触发lgwr进程),数据库增删改则为随机I/O(触发dbwr进程),对于顺序I/O则不采用AEP缓存,直接读写磁盘或RAID,仅对较为随机的I/O请求采用AEP进行缓存,进一步优化了K-DB缓存效率。
AEP层在实现数据处理的时候考虑了并行性的可能,K-DB多进程、多线程的架构集合AEP将普通的单进程、单线程串行I/O改为多进程、多线程并行I/O则可以有效地提高其I/O性能,采用现代多线程编程方法将串行I/O改为并行I/O,采用细粒度的同步锁机制增加I/O过程的并行性,从而改善I/O性能。
新建进程的刷新过程包括:根据请求命中缓存的情况,选择对应的处理分支,所述处理分支包括AEP层和硬盘层;在读未命中情况下,硬盘读完成后,将从硬盘读取的数据写回AEP层,在写未命中情况下,写AEP完成后,进行元数据的更新;将选择处理分支的I/O提交到硬盘层,转发至设备驱动,完成数据读写;针对每个请求进行数据清理,包括对脏块做回收。
如图2所示,本发明的数据库包括逻辑分类单元1和数据处理单元2。
逻辑分类单元1用于将SGA中的buffer cache进行逻辑分类,形成内存buffercache、AEP和硬盘三层架构;数据处理单元2向数据库发起写请求后,调用数据库dbwr进程将写请求要求更新的数据写入到内存buffer cache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,所述数据刷新依照write back机制。
新建进程从源代码层次分析,可以将进程分为四个模块:调度模块21、逻辑处理模块22、底层存储模块23以及后台清理模块24,它们都是基于AEP实现的,构建在AEP的基础上。
调度模块21在代码中对应A_map映射函数,它是新建进程缓存层次数据入口,所以到达逻辑设备的读写请求,最终都会经过数据层的处理,通过A_map进入调度模块21。称之为“调度”,主要是指,接收到数据后,它会根据请求的读写类型、是否命中缓存等因素,选择不同的处理分支。经过不同分支的读写,会调用底层存储模块23来完成磁盘或AEP的数据读写。
逻辑处理模块22根据调度模块中的读写类型进行后续的处理,如读未命中情况下,硬盘读完成后,回调到逻辑处理模块,由它负责将从硬盘读取的数据写回到AEP,或者写未命中情况下,写AEP完成后,回调到逻辑处理模块执行元数据的更新,再有就是对调度模块中读写操作的错误进行处理。
底层存储模块23将由调度模块处理过的IO提交到磁硬盘层,进行转发到真实的设备驱动,完成数据读写;
后台清理模块24是针对每个请求进行数据清理,它会基于两种策略对脏块做回收:(1)AEP内得脏块超过了阈值;(2)脏块超过了设定的空闲时间,本实施例空闲时间设定为30分钟。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (9)
1.一种加速数据处理效率的方法,其特征是,所述方法包括以下步骤:
将数据库SGA中的buffer cache进行逻辑分类,形成内存buffer cache、AEP和硬盘三层架构;
向数据库发起写请求后,数据库dbwr进程将写请求要求更新的数据写入到内存buffercache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,所述数据刷新依照write back机制。
2.根据权利要求1所述加速数据处理效率的方法,其特征是,所述write back机制具体为:
在AEP层被写满后,将被替换出的数据写入硬盘层。
3.根据权利要求2所述加速数据处理效率的方法,其特征是,所述被替换出的数据为冷数据。
4.根据权利要求2所述加速数据处理效率的方法,其特征是,所述AEP层在处理I/O请求时,首先区别当前I/O的类型,对于顺序I/O,通过硬盘层处理,对于随机I/O,通过AEP层进行缓存。
5.根据权利要求1所述加速数据处理效率的方法,其特征是,所述AEP层进行数据处理时,采用并行I/O,通过细粒度的同步锁机制增加I/O过程的并行性。
6.根据权利要求1所述加速数据处理效率的方法,其特征是,所述新建进程的刷新过程包括:
根据请求命中缓存的情况,选择对应的处理分支,所述处理分支包括AEP层和硬盘层;
在读未命中情况下,硬盘读完成后,将从硬盘读取的数据写回AEP层,在写未命中情况下,写AEP完成后,进行元数据的更新;
将选择处理分支的I/O提交到硬盘层,转发至设备驱动,完成数据读写;
针对每个请求进行数据清理,包括对脏块做回收。
7.一种数据库,其特征是,所述数据库包括:
逻辑分类单元,用于将SGA中的buffer cache进行逻辑分类,形成内存buffer cache、AEP和硬盘三层架构;
数据处理单元,向数据库发起写请求后,调用数据库dbwr进程将写请求要求更新的数据写入到内存buffer cache层中,内存buffer cache层通过新建进程将数据刷新到AEP层中,所述数据刷新依照write back机制。
8.根据权利要求7所述的数据库,其特征是,所述新建进程包括:
调度模块,根据请求命中缓存的情况,选择对应的处理分支,所述处理分支包括AEP层和硬盘层;
逻辑处理模块,在读未命中情况下,硬盘读完成后,将从硬盘读取的数据写回AEP层,在写未命中情况下,写AEP完成后,回调到逻辑处理模块进行元数据的更新;
底层存储模块,将调度模块处理的I/O提交到硬盘层,转发至设备驱动,完成数据读写;
后台清理模块,针对每个请求进行数据清理,包括对脏块做回收。
9.根据权利要求7所述的数据库,其特征是,所述数据库为K-DB数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010418545.XA CN111752974A (zh) | 2020-05-18 | 2020-05-18 | 一种加速数据处理效率的方法及数据库 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010418545.XA CN111752974A (zh) | 2020-05-18 | 2020-05-18 | 一种加速数据处理效率的方法及数据库 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752974A true CN111752974A (zh) | 2020-10-09 |
Family
ID=72673226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010418545.XA Withdrawn CN111752974A (zh) | 2020-05-18 | 2020-05-18 | 一种加速数据处理效率的方法及数据库 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752974A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732190A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种数据存储结构优化的方法、系统及介质 |
CN113032091A (zh) * | 2021-02-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种采用aep提升虚拟机存储性能的方法、系统及介质 |
-
2020
- 2020-05-18 CN CN202010418545.XA patent/CN111752974A/zh not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732190A (zh) * | 2021-01-07 | 2021-04-30 | 苏州浪潮智能科技有限公司 | 一种数据存储结构优化的方法、系统及介质 |
CN112732190B (zh) * | 2021-01-07 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种数据存储结构优化的方法、系统及介质 |
CN113032091A (zh) * | 2021-02-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种采用aep提升虚拟机存储性能的方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885728B (zh) | 一种基于固态盘的磁盘缓存系统 | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
US9798472B1 (en) | Extent level cache destaging | |
US9921955B1 (en) | Flash write amplification reduction | |
JP3697149B2 (ja) | キャッシュ・メモリを管理する方法 | |
US20140006687A1 (en) | Data Cache Apparatus, Data Storage System and Method | |
US8799578B2 (en) | Managing unmodified tracks maintained in both a first cache and a second cache | |
US20180107601A1 (en) | Cache architecture and algorithms for hybrid object storage devices | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
US20060206538A1 (en) | System for performing log writes in a database management system | |
CN103246696A (zh) | 高并发数据库的访问方法及应用于多服务器系统的方法 | |
WO2013071882A1 (zh) | 用于机群文件系统的元数据存储系统和管理方法 | |
CN104166634A (zh) | 一种固态盘系统中的映射表缓存管理方法 | |
CN107589908B (zh) | 一种基于固态盘缓存系统中非对齐更新数据的合并方法 | |
US8407434B2 (en) | Sequentially written journal in a data store | |
CN106503051A (zh) | 一种基于元数据分类的贪婪预取型数据恢复系统及恢复方法 | |
CN111752974A (zh) | 一种加速数据处理效率的方法及数据库 | |
CN109739696B (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
CN109165321B (zh) | 一种基于非易失内存的一致性哈希表构建方法和系统 | |
CN106909323B (zh) | 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统 | |
US10783021B2 (en) | Transaction management for multi-node clusters | |
CN111488125A (zh) | 一种基于Ceph集群的Cache Tier缓存优化方法 | |
US20100332763A1 (en) | Apparatus, system, and method for cache coherency elimination | |
CN108519858B (zh) | 存储芯片硬件命中方法 | |
CN104793892B (zh) | 一种加速磁盘随机输入输出(io)读写的方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201009 |