CN115374161A - 一种提高事务型数据库事务提交速度的方法和系统 - Google Patents

一种提高事务型数据库事务提交速度的方法和系统 Download PDF

Info

Publication number
CN115374161A
CN115374161A CN202211038582.3A CN202211038582A CN115374161A CN 115374161 A CN115374161 A CN 115374161A CN 202211038582 A CN202211038582 A CN 202211038582A CN 115374161 A CN115374161 A CN 115374161A
Authority
CN
China
Prior art keywords
data
database
storage card
memory storage
memory
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
Application number
CN202211038582.3A
Other languages
English (en)
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.)
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Original Assignee
Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center 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 Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd filed Critical Shandong Yunhai Guochuang Cloud Computing Equipment Industry Innovation Center Co Ltd
Priority to CN202211038582.3A priority Critical patent/CN115374161A/zh
Publication of CN115374161A publication Critical patent/CN115374161A/zh
Pending legal-status Critical Current

Links

Images

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

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)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种提高事务型数据库事务提交速度的方法和系统,方法包括:读取全内存存储卡储存数据;识别验证所述全内存存储卡储存数据;执行挂载全内存存储卡储存数据;修改数据库配置,把WAL日志的路径设置到M盘。本发明可以把数据库(如PostgreSQL数据库,以及类似机制的数据库)中WAL日志落盘的时延从毫秒级降到微妙级,提高数据事务整体提交速度。对用户而言,提升用户体验,对客户而言,提升自身产品或者服务的竞争力。也可以应用于采用WAL日志机制其他事务型数据库,如MySQL或者其他类型数据库,如时序数据库,同时配置简单,可扩展性强。客户可以用来对老设备扩展升级,可以根据使用时段,灵活的选择对服务器进行加速升级。

Description

一种提高事务型数据库事务提交速度的方法和系统
技术领域
本发明涉及存储技术领域,具体涉及一种提高事务型数据库事务提交速度的方法和系统。
背景技术
事务型型数据库OLTP(Online Transaction Processing),也叫联机事务处理表示事务性非常高的系统,一般都是高可用的在线系统,以小的事务以及小的查询为主,评估其系统的时候,一般看其每秒执行的Transaction以及Execute SQL的数量,一般是写多读少。
数据库有四大特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability),持久性是指修改后数据要落到磁盘上,防止掉电后丢失。
数据库中一张表实际对应磁盘一个或者多个文件。当在数据库上通过SQL语句修改了表中的数据后,也要同步修改磁盘上的文件。修改表的位置是随机,意味着修改也是随机的,随机写的延时是大于顺序写文件速率的。如果每次修改要实时落盘的话,事务执行的时间就变长,单位时间提交的事务数就变少,速度就下降。因此一般数据库采用先修改内存缓存中表,然后通过WAL方式记录操作数据,把操作记录落盘,提交事务。通过配置定时根据WAL日志,把内存中数据刷新到磁盘。下面以PostgreSQL为例,说明整个数据落盘过程。
现有WAL日志文件存在时间很短,不需要长时间存储。所以对空间需要不是很大,PostgreSQL支持最大配置是1GB,但是写入时延是越短越好,现有HDD盘写入时延是10MS,SSD盘的写入时延是1MS左右,而WAL日志要求是时延小,针对这个问题本申请提出一种新的更小写入时延,而且可靠性更高存储设备硬件,从而提升数据库事务提交的速度。
因此,针对问题,需要提出一种提高事务型数据库事务提交速度的方法和系统。
发明内容
有鉴于此,本发明的目的在于提出一种改进的提高事务型数据库事务提交速度的方法和系统。
现有WAL日志文件存在时间很短,不需要长时间存储。所以对空间需要不是很大,PostgreSQL支持最大配置是1GB,但是写入时延是越短越好,现有HDD盘写入时延是10MS,SSD盘的写入时延是1MS左右,而WAL日志要求是时延小,针对这个问题本申请提出一种新的更小写入时延,而且可靠性更高存储设备硬件,从而提升数据库事务提交的速度。
因此,针对问题,需要提出一种提高事务型数据库事务提交速度的方法,所述提高事务型数据库事务提交速度的方法,包括以下步骤:读取全内存存储卡储存数据;识别验证所述全内存存储卡储存数据;执行挂载全内存存储卡储存数据;修改数据库配置,把WAL日志的路径设置到M盘,本发明可以把数据库(如PostgreSQL数据库,以及类似机制的数据库)中WAL日志落盘的时延从毫秒级降到微妙级,提高数据事务整体提交速度。对用户而言,提升用户体验,对客户而言,提升自身产品或者服务的竞争力。也可以应用于采用WAL日志机制其他事务型数据库,如MySQL或者其他类型数据库,如时序数据库,相比于带盘的存储方案,整个端到端的IO路径短且简单,可靠性高,同时本申请配置简单,可扩展性强。客户可以用来对老设备扩展升级,可以根据使用时段,灵活的选择对那个服务器进行加速升级。
基于上述目的,一方面,本发明提供了一种提高事务型数据库事务提交速度的方法,其中该方法包括以下步骤:
读取全内存存储卡储存数据;
识别验证所述全内存存储卡储存数据;
执行挂载全内存存储卡储存数据;
修改数据库配置,把WAL日志的路径设置到M盘。
在根据本发明的提高事务型数据库事务提交速度的方法的一些实施例中,所述读取全内存存储卡储存数据的方法,具体包括:
全内存存储卡插入数据库服务器对应卡槽内;
数据库服务器自动识别全内存存储卡;
数据库服务器启动标准的NVMe驱动,以标准的NVMe驱动为NVMe Initiator。
在根据本发明的提高事务型数据库事务提交速度的方法的一些实施例中,所述读取全内存存储卡储存数据的方法,具体还包括:
驱动全内存存储卡,以全内存存储卡内程序作为NVMe target;
执行标准NVMe交互,NVMe Initiator与NVMe target交互,识别全内存存储卡为NVMe盘。
在根据本发明的提高事务型数据库事务提交速度的方法的一些实施例中,还包括:
同步修改WAL日志,执行数据交互写入。
在根据本发明的提高事务型数据库事务提交速度的方法的一些实施例中,所述同步修改WAL日志,执行数据交互写入的方法,具体包括:
响应双向写入指令;
数据库按照正常业务逻辑生成WAL日志,通过系统接口写入到M盘,系统把写请求转化为转为NVMe write请求;
全内存存储卡处理write请求,找到LBA对应的物理内存地址,把数据从数据库服务器的内存搬到自身内存中,然后给数据库服务器响应,数据库服务器写入成功。
在根据本发明的提高事务型数据库事务提交速度的方法的一些实施例中,所述执行数据交互写入的方法进一步包括:
数据库服务器读取数据的时候,发送NVMe read请求;
全内存存储卡找到LBA对应的物理内存地址,把数据从卡的内存搬到数据库服务器内存中,数据库服务器读取成功。
在根据本发明的提高事务型数据库事务提交速度的方法的一些实施例中,还包括:
当数据库服务器掉电的时候,全内存存储卡将切换到由自带的电容供电,全内存存储卡的程序将负责把内存中数据按照地址顺序全部搬到非易失的Nand flash中;
当数据库服务器恢复供电的时候,存储卡的程序将负责把Nand flash中数据搬到非易失的内存中。
本发明的另一方面,还提供了一种提高事务型数据库事务提交速度的系统,提高事务型数据库事务提交速度的系统包括:
全内存存储卡,用于存储并上传数据,并实现自动上电;
数据库服务器,用于LBA地址与内存地址映射管理,数据存储,冗余丢错逻辑。
在根据本发明的提高事务型数据库事务提交速度的系统的一些实施例中,所述全内存存储卡包括:
PCIeEP模块,用于与服务器物理链路;
存储卡存储模块,用于存储数据;
断电保护模块,用于掉电的时,存储所述全内存存储卡中的数据。
在根据本发明的提高事务型数据库事务提交速度的系统的一些实施例中,。
在根据本发明的系统的一些实施例中,所述数据库服务器包括:
OS模块,用于实时操作系统,提供板卡软件运行的基础接口;
NVMe模块,用于负责协议栈功能,命令处理;
运行监控模块,用于监控电容状态,全内存存储卡的运行状态监控;
掉电保护模块,用于掉电的时候,负责内存数据搬到nand flash中,上电后,再从flash搬到全内存存储卡中。
本发明至少具有以下有益技术效果:本发明可以把数据库(如PostgreSQL数据库,以及类似机制的数据库)中WAL日志落盘的时延从毫秒级降到微妙级,提高数据事务整体提交速度。对用户而言,提升用户体验,对客户而言,提升自身产品或者服务的竞争力。也可以应用于采用WAL日志机制其他事务型数据库,如MySQL或者其他类型数据库,如时序数据库,相比于带盘的存储方案,整个端到端的IO路径短且简单,可靠性高,同时本申请配置简单,可扩展性强。客户可以用来对老设备扩展升级,可以根据使用时段,灵活的选择对那个服务器进行加速升级。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
在图中:
图1示出了根据本发明的提高事务型数据库事务提交速度的方法的实现流程示意图;
图2示出了读取全内存存储卡储存数据的方法的实现流程示意图;
图3示出了同步修改WAL日志,执行数据交互写入的方法实现流程示意图;
图4示出了根据本发明的提高事务型数据库事务提交速度的系统的实施例的示意性框图;
图5示出了根据本发明的全内存存储卡的示意图;
图6示出了根据本发明的数据库服务器的示意图。
图中:100-全内存存储卡、110-PCIeEP模块、120-存储卡存储模块、130-断电保护模块、200-数据库服务器、210-OS模块、220-NVMe模块、230-运行监控模块、240-掉电保护模块。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
数据库中一张表实际对应磁盘一个或者多个文件。当在数据库上通过SQL语句修改了表中的数据后,也要同步修改磁盘上的文件。修改表的位置是随机,意味着修改也是随机的,随机写的延时是大于顺序写文件速率的。如果每次修改要实时落盘的话,事务执行的时间就变长,单位时间提交的事务数就变少,速度就下降。因此一般数据库采用先修改内存缓存中表,然后通过WAL方式记录操作数据,把操作记录落盘,提交事务。通过配置定时根据WAL日志,把内存中数据刷新到磁盘。下面以PostgreSQL为例,说明整个数据落盘过程。
现有WAL日志文件存在时间很短,不需要长时间存储。所以对空间需要不是很大,PostgreSQL支持最大配置是1GB,但是写入时延是越短越好,现有HDD盘写入时延是10MS,SSD盘的写入时延是1MS左右,而WAL日志要求是时延小,针对这个问题本申请提出一种新的更小写入时延,而且可靠性更高存储设备硬件,从而提升数据库事务提交的速度。
因此,针对问题,需要提出一种提高事务型数据库事务提交速度的方法,所述提高事务型数据库事务提交速度的方法,包括以下步骤:读取全内存存储卡100储存数据;识别验证所述全内存存储卡100储存数据;执行挂载全内存存储卡100储存数据;修改数据库配置,把WAL日志的路径设置到M盘,本发明可以把数据库(如PostgreSQL数据库,以及类似机制的数据库)中WAL日志落盘的时延从毫秒级降到微妙级,提高数据事务整体提交速度。对用户而言,提升用户体验,对客户而言,提升自身产品或者服务的竞争力。也可以应用于采用WAL日志机制其他事务型数据库,如MySQL或者其他类型数据库,如时序数据库,相比于带盘的存储方案,整个端到端的IO路径短且简单,可靠性高,同时本申请配置简单,可扩展性强。客户可以用来对老设备扩展升级,可以根据使用时段,灵活的选择对那个服务器进行加速升级。
本发明实施例提供了一种提高事务型数据库事务提交速度的方法,如图1所示,所述提高事务型数据库事务提交速度的方法,具体包括:
步骤S10,读取全内存存储卡100储存数据;
步骤S20,识别验证所述全内存存储卡100储存数据;
步骤S30,执行挂载全内存存储卡100储存数据;
步骤S40,修改数据库配置,把WAL日志的路径设置到M盘;
步骤S50,同步修改WAL日志,执行数据交互写入。
步骤S60,当数据库服务器200掉电的时候,全内存存储卡100将切换到由自带的电容供电,全内存存储卡100的程序将负责把内存中数据按照地址顺序全部搬到非易失的Nand flash中;
步骤S70,当数据库服务器200恢复供电的时候,存储卡的程序将负责把Nandflash中数据搬到非易失的内存中。
本发明可以把数据库(如PostgreSQL数据库,以及类似机制的数据库)中WAL日志落盘的时延从毫秒级降到微妙级,提高数据事务整体提交速度。对用户而言,提升用户体验,对客户而言,提升自身产品或者服务的竞争力。也可以应用于采用WAL日志机制其他事务型数据库,如MySQL或者其他类型数据库,如时序数据库,相比于带盘的存储方案,整个端到端的IO路径短且简单,可靠性高,同时本申请配置简单,可扩展性强。客户可以用来对老设备扩展升级,可以根据使用时段,灵活的选择对那个服务器进行加速升级。
需要说明的是:
在本申请中,PostgreSQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、MacOSX、Solaris和Tru64)和Windows。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值型、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。
PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl和ODBC以及其他语言等,也包含各种文档。PostgreSQL既可以是作为单机数据库,也可以作为分布式数据库的内核,国内大厂都有推出以Postgresql内核的分布式数据库产品,如阿里巴巴的PlolarDB,华为的OpenGauss,腾讯的TDSQL,在去IOE背景下,国产的分布式数据库是替代国外数据库一种很好选择。
本发明实施例提供了读取全内存存储卡100储存数据的方法,如图2所示,所述读取全内存存储卡100储存数据的方法,具体包括:
步骤S101,全内存存储卡100插入数据库服务器200对应卡槽内;
步骤S102,数据库服务器200自动识别全内存存储卡100;
步骤S103,数据库服务器200启动标准的NVMe驱动,以标准的NVMe驱动为NVMeInitiator;
步骤S104,驱动全内存存储卡100,以全内存存储卡100内程序作为NVMe target;
步骤S105,执行标准NVMe交互,NVMe Initiator与NVMe target交互,识别全内存存储卡100为NVMe盘。
示例性的,本申请中wal日志即write ahead log预写式日志。先写入日志,再写入数据.WAL日志是Postgresql何其重要的一个部分,它活跃在Postgresql的各个功能模块,绝大多数的数据库行为都会被记录在WAL日志中。正因为如此我们可以把WAL日志看作是数据库变更的履历,也因为这一特性,WAL日志在数据库恢复、高可用、流复制、逻辑复制等Postgresql模块中扮演着极其重要的角色。
PCIE:PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。
本发明实施例提供了同步修改WAL日志,执行数据交互写入的方法,如图3所示,所述同步修改WAL日志,执行数据交互写入的方法,具体包括:
步骤S201,响应双向写入指令;
步骤S202,数据库按照正常业务逻辑生成WAL日志,通过系统接口写入到M盘,系统把写请求转化为转为NVMe write请求;
步骤S203,全内存存储卡100处理write请求,找到LBA对应的物理内存地址,把数据从数据库服务器200的内存搬到自身内存中,然后给数据库服务器200响应,数据库服务器200写入成功;
步骤S204,数据库服务器200读取数据的时候,发送NVMe read请求;
步骤S205,全内存存储卡100找到LBA对应的物理内存地址,把数据从卡的内存搬到数据库服务器200内存中,数据库服务器200读取成功。
示例性的,NVM Express(NVMe),或称非易失性内存主机控制器接口规范(英语:Non Volatile Memory Host Controller Interface Specification,缩写:NVMHCIS),是一个逻辑设备接口规范。它是与AHCI类似的、基于设备逻辑接口的总线传输协议规范(相当于通讯协议中的应用层),用于访问通过PCI Express(PCIe)总线附加的非易失性存储器介质(例如采用闪存的固态硬盘驱动器),虽然理论上不一定要求PCIe总线协议。
BBU:为Battery Backup Unit简写,即电池备电单元。用在存储系统中来保护系统掉电后数据的安全,当系统掉电后,会持续供电,保证系统中各种重要的数据被安全的保存,该过程称为备电。
超级电容:又名电化学电容,双电层电容器、黄金电容、法拉电容,它不同于传统的化学电源,是一种介于传统电容器与电池之间、具有特殊性能的电源,主要依靠双电层和氧化还原赝电容电荷储存电能。但在其储能的过程并不发生化学反应,这种储能过程是可逆的,也正因为此超级电容器可以反复充放电数十万次,它具有很小的体积下达到法拉级的电容量,无须特别的充电电路和控制放电电路,和电池相比过充、过放都不对其寿命构成负面影响等优点
Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储。
具体而言,作为本申请的一个实施例,其执行步骤具体为:用户把“全内存存储卡100”插入到数据库服务器200后,数据库要落盘的WAL日志经过操作系统到了存储卡之后,存储卡写入自身的内存中后,就给系统返回成功。当服务器掉电后,“全内存存储卡100”由卡自带的电容供电,存储卡内存中的数据由刷写到卡自带的nand flash中。当服务器上电后,“全内存存储卡100”上电,把自带nand flash中的数据拷贝内存中。
把全内存存储卡100插入到服务器PCIe插槽上,PCIe支持热插拔。服务器能自动识别出全内存存储卡100,服务器上自带标准的NVMe驱动作为NVMe Initiator,全内存存储卡100上的固件程序作为NVMe target,按照标准NVMe交互,服务器将识别出全内存存储卡100是一个NVMe盘;
在服务器按照正常挂载磁盘的操作一样挂载全内存存储卡100,比如挂载在服务器的M盘,然后在服务器按照正常挂载磁盘的操作一样挂载全内存存储卡100,比如挂载在服务器的M盘。
数据库按照正常业务逻辑生成WAL日志,通过系统接口写入到M盘,系统把写请求转化为转为NVMe write请求(起始LBA和长度),“全内存存储卡100”处理write请求,找到LBA对应的物理内存地址,把数据从服务器的内存搬到自身内存中,然后给服务器响应,服务器写入成功。当服务器读取数据的时候,发送NVMe read请求,“全内存存储卡100”找到LBA对应的物理内存地址,把数据从卡的内存搬到服务器内存中,服务器读取成功。
当服务器掉电的时候,“全内存存储卡100”将切换到由自带的电容供电,存储卡的程序将负责把内存中数据按照地址顺序全部搬到非易失的Nand flash中。当服务器恢复供电的时候,存储卡的程序将负责把Nand flash中数据搬到非易失的内存中。
本发明实施例还提供了一种提高事务型数据库事务提交速度的系统,如图4所示,所述提高事务型数据库事务提交速度的系统,具体包括:
全内存存储卡100,用于存储并上传数据,并实现自动上电;
数据库服务器200,用于LBA地址与内存地址映射管理,数据存储,冗余丢错逻辑。
本发明实施例提供了一种全内存存储卡100,如图5所示,所述全内存存储卡100,具体包括:
PCIeEP模块110,用于与服务器物理链路;
存储卡存储模块120,用于存储数据;
断电保护模块130,用于掉电的时,存储所述全内存存储卡100中的数据。
本发明实施例提供了数据库服务器200,如图6所示,所述数据库服务器200,具体包括:
OS模块210,用于实时操作系统,提供板卡软件运行的基础接口;
NVMe模块220,用于负责协议栈功能,命令处理;
运行监控模块230,用于监控电容状态,全内存存储卡100的运行状态监控;
掉电保护模块240,用于掉电的时候,负责内存数据搬到nand flash中,上电后,再从flash搬到全内存存储卡100中。
本发明实施例还提供了一种计算机设备,该计算机设备包括显示屏、存储器、处理器、以及计算机程序,其中,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行所述提高事务型数据库事务提交速度的方法的步骤。
所述提高事务型数据库事务提交速度的方法,具体包括:
读取全内存存储卡100储存数据;
识别验证所述全内存存储卡100储存数据;
执行挂载全内存存储卡100储存数据;
修改数据库配置,把WAL日志的路径设置到M盘。
可以理解的是,在本发明提供的优选实施例中,该计算机设备还可以为笔记本电脑、个人数字助理(Personal Digital Assistant,PDA)、手机等可以进行通信的设备。
本发明还提供了的一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述提高事务型数据库事务提交速度的方法的步骤。
示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在终端设备中的执行过程。例如,上述计算机程序可以被分割成上述各个系统实施例提供的提高事务型数据库事务提交速度系统的单元或模块。
本领域技术人员可以理解,上述终端设备的描述仅仅是示例,并不构成对终端设备的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,上述处理器是上述终端设备的控制中心,利用各种接口和线路连接整个用户终端的各个部分。
上述存储器可用于存储计算机程序和/或模块,上述处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现上述终端设备的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如信息采集模板展示功能、产品信息发布功能等)等;存储数据区可存储根据提高事务型数据库事务提交速度的系统的使用所创建的数据(比如不同产品种类对应的产品信息采集模板、不同产品提供方需要发布的产品信息等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
综上所述,本发明可以把数据库(如PostgreSQL数据库,以及类似机制的数据库)中WAL日志落盘的时延从毫秒级降到微妙级,提高数据事务整体提交速度。对用户而言,提升用户体验,对客户而言,提升自身产品或者服务的竞争力。也可以应用于采用WAL日志机制其他事务型数据库,如MySQL或者其他类型数据库,如时序数据库,相比于带盘的存储方案,整个端到端的IO路径短且简单,可靠性高,同时本申请配置简单,可扩展性强。客户可以用来对老设备扩展升级,可以根据使用时段,灵活的选择对那个服务器进行加速升级。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (10)

1.一种提高事务型数据库事务提交速度的方法,其特征在于,包括以下步骤:
读取全内存存储卡储存数据;
识别验证所述全内存存储卡储存数据;
执行挂载全内存存储卡储存数据;
修改数据库配置,把WAL日志的路径设置到M盘。
2.根据权利要求1所述的方法,其特征在于,所述读取全内存存储卡储存数据的方法,具体包括:
全内存存储卡插入数据库服务器对应卡槽内;
数据库服务器自动识别全内存存储卡;
数据库服务器启动标准的NVMe驱动,以标准的NVMe驱动为NVMe Initiator。
3.根据权利要求2所述的方法,其特征在于,所述读取全内存存储卡储存数据的方法,具体还包括:
驱动全内存存储卡,以全内存存储卡内程序作为NVMe target;
执行标准NVMe交互,NVMe Initiator与NVMe target交互,识别全内存存储卡为NVMe盘。
4.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
同步修改WAL日志,执行数据交互写入。
5.根据权利要求4项所述的方法,其特征在于,所述同步修改WAL日志,执行数据交互写入的方法,具体包括:
响应双向写入指令;
数据库按照正常业务逻辑生成WAL日志,通过系统接口写入到M盘,系统把写请求转化为转为NVMe write请求;
全内存存储卡处理write请求,找到LBA对应的物理内存地址,把数据从数据库服务器的内存搬到自身内存中,然后给数据库服务器响应,数据库服务器写入成功。
6.根据权利要求5所述的方法,其特征在于,所述执行数据交互写入的方法进一步包括:
数据库服务器读取数据的时候,发送NVMe read请求;
全内存存储卡找到LBA对应的物理内存地址,把数据从卡的内存搬到数据库服务器内存中,数据库服务器读取成功。
7.根据权利要求6所述的方法,其特征在于,还包括:
当数据库服务器掉电的时候,全内存存储卡将切换到由自带的电容供电,全内存存储卡的程序将负责把内存中数据按照地址顺序全部搬到非易失的Nand flash中;
当数据库服务器恢复供电的时候,存储卡的程序将负责把Nand flash中数据搬到非易失的内存中。
8.一种基于权利要求1-7任一所述提高事务型数据库事务提交速度的方法的提高事务型数据库事务提交速度的系统,其特征在于,所述提高事务型数据库事务提交速度的系统,具体包括:
全内存存储卡,用于存储并上传数据,并实现自动上电;
数据库服务器,用于LBA地址与内存地址映射管理,数据存储,冗余丢错逻辑。
9.根据权利要求8所述的系统,其特征在于,所述全内存存储卡包括:
PCIeEP模块,用于与服务器物理链路;
存储卡存储模块,用于存储数据;
断电保护模块,用于掉电的时,存储所述全内存存储卡中的数据。
10.根据权利要求8至9任一项所述的系统,其特征在于,所述数据库服务器包括:
OS模块,用于实时操作系统,提供板卡软件运行的基础接口;
NVMe模块,用于负责协议栈功能,命令处理;
运行监控模块,用于监控电容状态,全内存存储卡的运行状态监控;
掉电保护模块,用于掉电的时候,负责内存数据搬到nand flash中,上电后,再从flash搬到全内存存储卡中。
CN202211038582.3A 2022-08-26 2022-08-26 一种提高事务型数据库事务提交速度的方法和系统 Pending CN115374161A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211038582.3A CN115374161A (zh) 2022-08-26 2022-08-26 一种提高事务型数据库事务提交速度的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211038582.3A CN115374161A (zh) 2022-08-26 2022-08-26 一种提高事务型数据库事务提交速度的方法和系统

Publications (1)

Publication Number Publication Date
CN115374161A true CN115374161A (zh) 2022-11-22

Family

ID=84070242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211038582.3A Pending CN115374161A (zh) 2022-08-26 2022-08-26 一种提高事务型数据库事务提交速度的方法和系统

Country Status (1)

Country Link
CN (1) CN115374161A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116595012A (zh) * 2023-07-17 2023-08-15 华中科技大学 一种基于非易失内存的时序数据库日志存储方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116595012A (zh) * 2023-07-17 2023-08-15 华中科技大学 一种基于非易失内存的时序数据库日志存储方法及系统
CN116595012B (zh) * 2023-07-17 2023-09-22 华中科技大学 一种基于非易失内存的时序数据库日志存储方法及系统

Similar Documents

Publication Publication Date Title
TWI385523B (zh) 用於快閃記憶體的資料備份方法及其控制器與儲存系統
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
US10997039B2 (en) Data storage device and operating method thereof
US9448889B2 (en) BIOS failover update with service processor
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
US7188235B2 (en) Method for booting computer system with memory card
CN103729300A (zh) 非易失内存的管理方法和相关装置
US20190004907A1 (en) Method for management tables recovery
CN109313593B (zh) 存储系统
CN115374161A (zh) 一种提高事务型数据库事务提交速度的方法和系统
US8966161B2 (en) Memory storage device and restoring method thereof
KR102270103B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
CN114741235A (zh) 存储器系统及其操作方法
KR20200089939A (ko) 메모리 시스템 및 그 동작 방법
US20230297277A1 (en) Combining Operations During Reset
CN110609596A (zh) 数据储存装置的开发系统以及产品化方法
CN108369555B (zh) 存储器装置中的逻辑地址历史管理
KR20230134288A (ko) 메모리 시스템 및 그것의 동작 방법
CN111857576B (zh) 一种以太网管理的存储系统
CN111752475B (zh) 在存储服务器中进行数据存取管理的方法与装置
KR20230037255A (ko) 이벤트 로그 관리 방법, 컨트롤러 및 저장 장치
US9836359B2 (en) Storage and control method of the same
CN103049218A (zh) 数据存储方法和控制器
US9639417B2 (en) Storage control apparatus and control method

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