CN110457261A - 数据访问方法、装置及服务器 - Google Patents
数据访问方法、装置及服务器 Download PDFInfo
- Publication number
- CN110457261A CN110457261A CN201910722121.XA CN201910722121A CN110457261A CN 110457261 A CN110457261 A CN 110457261A CN 201910722121 A CN201910722121 A CN 201910722121A CN 110457261 A CN110457261 A CN 110457261A
- Authority
- CN
- China
- Prior art keywords
- log
- access
- semiconductor memory
- nonvolatile semiconductor
- written
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 239000004065 semiconductor Substances 0.000 claims abstract description 97
- 238000013507 mapping Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 11
- 238000012360 testing method Methods 0.000 claims description 9
- 230000002045 lasting effect Effects 0.000 claims description 8
- 238000011161 development Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 239000007787 solid Substances 0.000 claims 1
- 238000001514 detection method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000002688 persistence Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 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/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据访问方法,数据库系统中的用户态与非易失性存储器件之间是直接映射关系,这样,该用户态针对用户输入的访问请求,发起相应的日志访问请求,并响应该日志访问请求时,将直接利用该直接映射关系,直接访问非易失性存储器件,得到日志访问结果,不需要经过内核态文件系统、驱动器等中间层,也就不会在内核态消耗大量时间,能够体现物理介质写入的低时延特性,提高了日志访问速度,且在日志访问过程中,利用非易失性存储器件按字节访问的特征,相对于传统的按块访问方式,进一步提升了数据库性能。
Description
技术领域
本申请涉及数据库应用领域,具体涉及一种数据访问方法、装置及服务器。
背景技术
目前,数据库系统通常是将数据写入日志中,以保证数据的持久性,且为了避免日志写入称为数据库系统的写入瓶颈,现有技术多采用高速的块设备和组提交技术来加快写入速度。
参照图1所示的数据访问方法示意图,在UNIX操作系统中,现有的数据库系统大部分采用POSIX接口(Portable Operating System Interface of UNIX,用于UNIX操作系统的可移植操作系统接口),通过文件系统访问块设备。因此,现有的数据访问方式会将大量时间消耗在内核态,无法体现物理介质写入的低时延特性。
由此可见,如何通过调整数据访问方式,使数据库性能提升持久稳定成为本领域技术人员一重要研究方向。
发明内容
有鉴于此,本申请实施例提供一种数据访问方法、装置及服务器,以提升数据库日志访问速度及数据库性能。
为实现上述目的,本申请实施例提供如下技术方案:
本申请提供了一种数据访问方法,所述方法包括:
针对用户输入的访问请求,发起相应的日志访问请求;
响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果;
将所述日志访问结果反馈至发送所述访问请求的客户端。
本申请提供了一种数据访问装置,所述装置包括:
请求发起模块,用于针对用户输入的访问请求,发起相应的日志访问请求;
请求响应模块,用于响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果;
访问结果反馈模块,用于将所述日志访问结果反馈至发送所述访问请求的客户端。
本申请提供了一种服务器,所述服务器包括:至少一个通信接口、至少一个存储器和至少一个处理器;所述存储器存储有程序,所述处理器调用所述程序,以实现如上所述的数据访问方法。
基于上述技术方案,本申请实施例提供的数据访问方法,数据库系统中的用户态与非易失性存储器件之间是直接映射关系,这样,该用户态针对用户输入的访问请求,发起相应的日志访问请求,并响应该日志访问请求时,将直接利用该直接映射关系,直接访问非易失性存储器件,得到日志访问结果,不需要经过内核态文件系统、驱动器等中间层,也就不会在内核态消耗大量时间,能够体现物理介质写入的低时延特性,提高了日志访问速度,且在日志访问过程中,利用非易失性存储器件按字节访问的特征,相对于传统的按块访问方式,进一步提升了数据库性能。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有的数据访问方法的示意图;
图2为本申请实施例提供的数据访问方法的一种可选示例;
图3为本申请实施例提供的数据访问方法的另一种可选示例;
图4为一种多处理器架构示意图;
图5为本申请实施例提供的数据访问方法的另一种可选示例;
图6为本申请实施例提供的数据访问方法,在日志读取场景下的一种可选示例;
图7为日志写入方法示意图;
图8为本申请实施例提供的数据访问方法,在日志写入场景下的一种可选示例;
图9为本申请实施例提供的数据访问方法,主备数据库同步复制的场景示意图;
图10为本申请实施例提供的一种数据访问装置的结构示意图;
图11为本申请实施例提供的另一种数据访问装置的结构示意图;
图12为本申请实施例提供的一种服务器的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的数据访问方法,采用PMDK(Persistent Memory Development Kit)接口访问非易失性存储(Non-Volatile Memory,NVM),来实现数据库日志访问的优化。具体的,参照图1所示的本申请实施例提供的数据访问方法的一种可选实现示例,本申请采用PMDK访问非易失性存储设备,将不再需要再经过文件系统层,可以直接将非易失性存储映射到用户态,不必将大量时间消耗在内核态,大大减少内核态开销,并使非易失性存储物理介质的低延迟特性充分展现,即充分利用非易失性存储按字节访问的特性,经过映射,用户态可以用类内存访问方式读取非易失性存储,能够按照程序逻辑随时进行IO写出,大大降低逻辑无关数据在落盘阶段的等待,从而优化日志落盘,提升数据库性能。
基于上述实现数据访问的核心思路,图2示出了本申请实施例提供的数据访问方法的一种可选实现示例,该方法可应用于服务器,本实施例对该服务器的类型不做限定,如云端的数据库服务器(下文简称数据库)等,参照图2,本实施例提供的数据访问方法可以包括但并不局限于以下步骤:
步骤S11,针对用户输入的访问请求,发起相应的日志访问请求;
对于Linux等UNIX操作系统,通过包括用户态和内核态,本申请对用户态和内核态的具体系统结构不做详述,如图1所示的数据库系统结构,用户态可能包含多个数据库(DataBase,DB),内核态可以包括不同类型的操作系统,不同操作系统的文件系统可能不同,如图1所示,File System可以指普通Linux文件系统,Pmem-Aware File System是识别NVDIMM(non-volatile dual in-line memory module,非易失性双列直插式内存模块)的文件系统,适用于如RHEL(red hat enterprise linux)7.3+等新版本的Linux操作系统。
通常情况下,用户通过客户端发起的访问请求,是由数据库系统的用户态得到,再由用户态发起相应的日志访问请求,具体如日志读取请求、日志写入请求等,本实施例对用户态如何发起日志访问请求的具体实现方法不作限定。
步骤S12,响应该日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对非易失性存储器件的日志访问,得到日志访问结果;
结合上文对本申请数据访问方法的构思,参照图3所示的数据库系统结构,本申请提出对非易失性存储器件(如NVDIMMs)的访问,是由用户态发起的日志访问请求,不经过内核态直接访问硬件层的非易失性存储器件。可见,本申请在用户态与非易失性存储器件之间建立了直接映射关系,这样,在响应日志访问请求时,就可以依据用户态与非易失性存储器件之间的直接映射关系,实现对非易失性存储器件的日志访问,得到日志访问结果,如日志访问成功或失败等。
可选的,参照图3,对于用户态与非易失性存储器件之间的直接映射关系,本申请可以使用mmap函数实现,由于mmap是一种内存映射文件的方法,即将一个文件或其他对象映射进内存,建立该文件或其他对象与内存之间的直接映射关系,本实施例对在用户态(即用户空间)如何利用mmap构建用户态与非易失性存储器件之间的直接映射关系,以使用户态发起的日志访问请求,直接访问非易失性存储器件的实现方法不做限定。
其中,对于本实施例描述的上述实现对非易失性存储器件的日志访问的方法,可以使用PMDK接口实现,本申请对PMDK接口实现数据访问的原理不作详述。
作为本申请一种可选示例,可以按照预设的非易失性存储器件映射到用户态的机制,实现对非易失性存储器件的访问,该机制可以是如图3中的mmu mapping(mmu映射),即适用于新类型Linux操作系统,由其文件系统Pmem-Aware File System实现NVDIMM映射到用户态的机制,但并不局限于本实施例描述的这种PMDK接口读写机制。
由此可见,上述可选实施例可以使用PMDK接口用mmap方式,访问非易失性存储器件,不需要再由操作系统的文件系统对用户态发起的日志访问请求进行处理,避免了内核态花费大量时间对日志访问请求进行处理,大大减小了内核态开销,将非易失性存储物理低延迟特性充分展现出来;同时经过映射,用户态可以用类内存访问方式读写非易失性存储器件,充分利用字节寻址特性,大大降低逻辑无关数据在落盘阶段的等待,从而优化日志落盘提升数据库性能。
步骤S13,将该日志访问结果反馈至发送访问请求的客户端。
本实施例按照上述方式,对非易失性存储器件进行访问,确定日志访问成功或失败后,可以将该结果作为日志访问结果,并将该日志访问结果反馈至用户的客户端,以使用户得知本次对数据库系统的日志访问是否成功,便于据此确定是否还需要重新发起访问请求,避免用户的无效等待。
综上,本实施例对数据库系统的日志访问,在响应用户态发起的日志访问请求时,将直接利用用户态与非易失性存储器件的直接映射关系,不必内核态文件系统对请求的处理,就能够直接实现对非易失性存储器件的日志访问,极大提高了日志访问效率,充分发挥了非易失性存储器件的低时延特性,且提升了数据库性能。
对于具有多处理器架构的服务器,如图4所示的一种多处理器系统架构的可选示图,多处理器系统结构多为NUMA(Non Uniform Memory Access Architecture,非统一内存访问架构)模型,其将多个处理器CPU分为多个组,如图4所示的两个CPU组(CPU1和CPU2),每个CPU组都有自己的若干核(core)、内存资源及非易失性存储器件(如AEP(Apache Pass)等NVDIMM设备,可以将其插入本组的内存槽,),每个核可以模拟两个工作线程,不同组的CPU之间访问内存需要经过组件总线(如图4中的UPI总线),这样,在传统数据访问方法中,某处理器的核调度“远端”处理器(即除该某处理器所在处理器组之外的其他组的处理器)访问非易失性存储器件时,将会增加物理写入延迟。
其中,每个CPU组与自己的核、内存资源和非易失性存储器件之间,可以通过PCIe(peripheral component interconnect express,高速串行计算机扩展总线标准)总线连接,根据需要可以确定PCIe总线的传输通道数量,如8通道、16通道等,如图4所示,CPU按照NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范),通过PCIe总线访问非易失性存储器件。且在实际应用中,通常设置PCH(Platform Controller Hub)芯片组支持CPU的工作,本申请对PCH芯片组的结构及其周围器件不做限定,并不局限于图4示出的USB接口、VGA(Video Graphics Array,视频图形阵列)接口、Gb以太网、加密狗等,本实施例不再一一列举。
为了避免跨处理器访问非易失性存储介质带来的额外延迟,也为了避免日志访问的延迟波动,本申请可以利用非易失性存储器件与其本地连接的处理器的亲和性,将日志访问线程绑定日志所在非易失性存储器件最近的本地处理器,即绑核操作,以图4所示的多处理器架构为例,如果日志写入了CPU1中的非易失性存储器件,需要使用CPU1中而不是CPU2中的核来访问日志。
优选的,基于上述构思,参照图5,示出了本申请实施例提供的数据访问方法的另一可选流程,本可选实施例主要对绑核操作的实现过程进行描述,对于数据访问的其他步骤,可以参照上述实施例相应部分的描述,如图5所示,实施例提供的数据访问方法可以包括但并不局限于以下步骤:
步骤S21,确定本次访问日志所使用的日志访问线程;
步骤S22,通过系统调用,获取该日志访问请求所请求访问的待访问非易失性存储器件;
本实施例的系统调用是在用户态执行,可以将应用程序的请求传至硬件层,调用相应的函数完成所需的处理,并将处理结果返回给应用程序,本申请对系统调用的具体实现方法不做详述。其中,在发送日志访问请求之前,可以解析日志访问请求,得到其携带的访问对象的标识(其也可以携带在用户输入的访问请求中),进而由此确定发起的日志访问请求所请求访问的待访问非易失性存储器件。
以日志读取请求为例,可以通过系统调用的方式,获取所请求读取的日志所在的非易失性存储器件,具体实现方法不做详述;对于日志写入请求,通过系统调用,可以获取本次请求向哪个非易失性存储器件写入日志,本申请可以将本次请求读取/写入日志的非易失性存储器件记为待访问非易失性存储器件。
步骤S23,从多个处理器组中,确定待访问非易失性存储器件所在的待访问处理器组;
步骤S24,将该日志访问线程与待访问处理器组进行绑定,以使日志访问线程由待访问处理器组中的处理器调度。
结合上文对图4所示的多处理器架构的描述可知,这类服务器通常包括多个处理器组,每个处理器组都有自己的非易失性存储器件,所以,本实施例通过系统调用,确定本次待访问非易失性存储器件后,可以按照多处理器组的架构信息,从系统包含的多个处理器组中,确定该访问非易失性存储器件所在的待访问处理器组,之后,将本次日志访问请求所使用的日志访问线程绑定至该待访问处理器组,即进行绑核操作,从而将对该日志访问线程的调度限定在该待访问处理器组中的处理器,也就是说,在实际数据访问过程中,只能由该待访问处理器组中的处理器,调度该日志访问线程,实现对该处理器对应的非易失性存储器件的日志访问,防止其他组的处理器调度该日志访问线程,保证数据库性能提升持久稳定。
其中,在确定待访问非易失性存储器件后,可以通过该待访问非易失性存储器件控制原语,查找该待访问非易失性存储器件所在的待访问处理器组。具体的,可以采用以下程序代码,确定某个非易失性存储器件位于哪个处理器,但并不局限于本实施例给出的程序代码:
上述程序代码可以表示某个非易失性存储器件/dev/pmem1在numa_node为1的处理器CPU上。
需要说明,对于上文描述的绑核操作,可以在日志访问线程初始化阶段完成,关于该绑核操作的具体实现方法并不局限于上文描述的方法,通过这种绑核操作,保证了日志访问加速的持久性。
结合上文实施例的描述,通过PMDK接口访问非易失性存储器件,与通过POSIX接口访问非易失性存储器件的方法不同,PMDK接口仅能通过类内存访问方式读取非易失性存储器件,而POSIX接口是用文件方式访问。因此,为了兼容已有的数据库工具和软件生态,可以使用PMDK接口形式的文件最大限度的兼容已有格式,所以,在上述实施例描述的数据访问方法的基础上,本申请提出POSIX接口与PMDK接口自动切换的技术方案,下面将分别针对日志读取场景和日志写入场景,对该技术方案进行详细说明,但并不局限于本申请下文描述的方法。
优选的,图6示出了本申请实施例提供的数据访问方法的一可选示例,本实施例主要对日志读取场景进行说明,即上述实施例中的日志访问请求具体为日志读取请求,这种情况下,可以按照图6所示的流程实现日志读取,因此,上述实施例响应日志读取请求,读取非易失性存储器件存储的日志文件的实现过程可以包括但并不局限于以下步骤:
步骤S31,确定本次读取日志所使用的日志读取线程;
步骤S32,利用PMDK接口和POSIX接口打开本次要读取的非易失性存储器件中的待读取日志文件,分别保留该待读取日志文件的文件句柄;
通常情况下,在文件I/O中,要从一个文件读取数据,应用程序通常会调用操作系统函数并传送文件名,并选一个到该文件的路径来打开该文件,调用的该函数会取回一个顺序号,即文件句柄,该文件句柄可以是对于打开的文件的唯一的识别依据,本实施例对文件句柄在数据访问过程中的具体应用不做详述。
本实施例中,可以使用PMDK接口,确定本次读取日志所在的非易失性存储器件中的待读取日志文件,并分别使用PMDK接口和POSIX接口打开该待读取日志文件,保留待读取日志文件的文件句柄。简单来说,本实施例通过这两个接口各自保留的待读取日志文件的文件句柄,相当于是两个虚拟地址,但这两个虚拟地址指向同一个物理地址。本实施例对步骤S32的具体实现过程不做详述。
步骤S33,检测日志读取请求是否请求读取热日志,如果是,进入步骤S34;如果否,进入步骤S36;
本实施例中,热日志可以是指处于写入状态的日志文件中的日志;反之,对于数据库已经写完,不再继续写文件的日志记为冷日志。在实际应用中,数据库记录的日志,可以是分文件顺序写,如binlog1、binlog2、…、binlogN等,每个日志文件都可以是单独的文件,但数据库存储的日志并不局限于这种写入方式。
步骤S34,通过PMDK接口,读取该待读取日志文件中的日志数据;
在实际应用中,结合上述实施例的描述,可以在日志读取线程初始化阶段,将该日志读取线程绑定至本地处理器组,这样,在进行日志读取时,可以通过PMDK接口,由该本地处理器组中的处理器调度日志读取线程,以使用户态经过该日志读取线程,读取该处理器的非易失性存储器件(即待读取非易失性存储器件)中待读取日志文件存储的日志数据,关于该日志读取过程可以参照上文实施例描述的数据访问方法的描述。
步骤S35,在满足日志终止读取条件的情况下,停止读取该待读取日志文件中的日志数据,得到日志读取结果;
其中,日志终止读取条件可以包括读取到日志文件末尾和读取到全0日志项头部中的任意一条,也就是说,在日志读取过程中,只要满足这两个条件的一个,就可以停止日志的读取操作,并记录本次日志读取操作的结果,如是否成功读取到所请求的日志数据。
步骤S36,通过POSIX接口,将日志读取请求发送至内核态文件系统,由内核空间文件系统响应日志读取请求,读取该待读取日志文件中的日志数据,得到日志读取结果。
本实施例,若用户态发起的日志读取请求,所请求读取的日志是冷日志,可以采用传统数据访问方法进行日志读取操作,即用户态发起日志读取请求可以通过POSIX接口,经过内核态文件系统的处理器,实现对硬件层的非易失性存储器件的日志读取,并记录日志读取结果。
可选的,在步骤S36的执行过程中,也可以利用绑核操作,将本次日志读取线程绑定至本地处理器组,防止其他组处理器对该日志读取线程的调度,该绑核操作的具体实现过程可以参照上述实施例的描述。
综上,本实施例在日志读取场景中,若请求读取的日志是热日志,则调用PMDK接口对非易失性存储器件进行日志读取,若请求读取的日志是冷日志,则调用POSIX接口对非易失性存储器件进行日志读取,满足了对不同类型日志的读取需求,且保证了数据库性能。
需要说明,上文实施例描述的日志读取场景可以包括:初始化读取日志恢复数据,接收日志回放数据,根据命令读取指定日志数据等场景,但并不局限于本实施例列举的日志读取场景。
区别于上文应用于日志读取场景中的数据访问方法,本申请将针对日志写入场景下的数据访问方法进行示例说明,为了解数据库日志写场景的操作,结合图7所示的日志写入方法的一种可选示例,在用户发起写操作的情况下,数据库可以根据用户请I去发起日志写入请求,如图7所述,通常会先写内容日志缓存,再写数据页面缓存,这两个写操作的具体实现方法不做详述,之后,可以将日志写入持久化介质(传统是硬盘,本申请则是非易失性存储器件),即实现日志落盘,向用户返回写入成功,数据库后台线程可以按照一定规则,将数据页面缓存写入持久化介质。
可见,如图7所示,典型的写请求会经历日志缓存写入→数据页面写入→日志持久化写入后返回,其中,前面两项是在内存中完成,可以快速完成,关键路径上的日志持久化写入会产生较大时延,因此,本申请的优化集中在日志持久化阶段,具体可以参照8所示本申请实施例提供的数据访问方法的另一可选示例,本实施例中,用户态发起的日志访问请求可以是日志写入请求,本申请对该日志写入请求的生成方式不作限定,如图8所示,该方法可以包括:
步骤S41,确定本次写入日志所使用的日志写线程;
步骤S42,利用PMDK接口,在本次写入日志的非易失性存储器件中创建固定长度的待写入日志文件;
步骤S43,利用POSIX接口打开该待写入日志文件,保留该待写入日志文件的文件句柄;
本实施例对如何使用PMDK接口创建、打开文件的实现方法不做详述。在实际应用中,在使用PMDK接口创建日志文件时,通常需要输入一个文件长度,以创建固定长度的日志文件,为了兼顾数据库性能,所创建的日志文件的固定长度可以略大于预先配置的约定长度(记为预设长度),以防止候选频繁的进行PMDK接口与POSIX接口的切换。
可见,上述预设长度可以是一个用户配置参数,是单个日志文件所能写入的最大建议长度,如果一个事务写入超过该预设长度,该事务仍写入本次打开的日志文件,但下一个事务需要重新打开一个新的日志文件并写入。
需要说明,本申请对上文日志文件的固定长度和预设长度的具体数值不做限定。
步骤S44,获取日志写入请求携带的待写入日志数据的写入长度;
步骤S45,检测该写入长度是否超过固定长度,如果否,进入步骤S46;如果是,进入步骤S410;
可见,该写入长度是待写入日志文件的真实长度。
步骤S46,通过PMDK接口,将待写入日志数据写入该待写入日志文件;
关于步骤S46的具体实现过程,可以参照上述实施例相应部分的描述。
步骤S47,检测已写入的日志数据长度是否达到预设长度,如果否,等待响应下一个日志写入请求;如果是,进入步骤S48;
本实施例中,预设长度是预先配置参数,单个日志文件所能写入的最大长度,具体数值不做限定。
步骤S48,将待写入日志文件回卷至待写入日志数据的写入长度;
步骤S49,关闭文件句柄,返回步骤S42继续执行;
在本次待写入日志数据的写入长度未超过固定长度的情况下,使用PMDK接口向非易失性存储器件写入日志的过程中,通常情况下,写入的日志数据的长度不会超过预设长度,这种情况下,可以使用PMDK接口继续进行日志写入操作,待完成本次日志写入后,可以等待下一个日志写入请求,并按照上述方法继续进行日志写入操作;若待写入日志数据的长度超过预设长度,可以采用回卷操作方式,将本次创建的待写入日志文件回卷至待写入日志数据的实际长度(即上述写入长度)。
步骤S410,通过PMDK接口,将待写入日志数据中未超过固定长度的日志数据写入待写入日志文件;
步骤S411,将该待写入日志文件回卷至待写入日志数据的写入长度,并将PMDK接口切换到POSIX接口;
步骤S412,通过POSIX接口,将日志写入请求发送至内核态文件系统,由内核空间文件系统响应日志写入请求,将待写入日志数据中超过固定长度的日志数据写入回卷后的待写入日志文件。
可见,在待写入日志数据的实际长度超过已创建的待写入日志文件的固定长度的情况下,对于待写入日志数据中未超过固定长度的日志数据,通过PMDK接口写入非易失性存储器件,在写入的日志数据长度达到固定长度后,从PMDK接口切换到POSIX接口,使用POSIX接口,将待写入日志数据中超过固定长度的日志数据写入非易失性存储器件。本实施例对如何使用PMDK接口和POSIX接口,对非易失性存储器件进行日志写入的实现过程不作详述。
综上,在日志写入场景应用中,可以采用PMDK接口、POSIX接口智能动态切换的方式,解决数据的兼容性,且不影响访问性能。
其中,日志写入场景可以包括逻辑日志写场景、物理日志写场景,本实施例采用上述方法实现日志的写入,去掉了已有数据库文件持久化同步过程,如去掉fsync等系统函数调用,去掉跟日志同步相关的阶段和线程,去掉逻辑日志同步相关的组提交中的同步阶段,和物理日志同步相关的日志刷新线程。
作为本申请一可选示例,在上述实施例的基础上,在数据库系统启动阶段,可以先对执行环境进行检测,即在进行日志读写操作之前,可以先检测数据库系统执行环境是否具备非易失性存储器件的访问条件,如果具备,再按照上述实施例描述的方式,响应日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对非易失性存储器件的日志访问;如果不具备,可以通过POSIX接口,将日志访问请求发送至内核态文件系统,由内核空间文件系统响应该日志访问请求,实现对非易失性存储器件的日志访问,得到日志访问结果。
其中,判断是否具备非易失性存储器件的访问条件可以包括:非易失性存储硬件环境检测,操作系统和文件系统环境检测,开发依赖库环境检测和用户配置项检测等。
基于此,上述非易失性存储器件的访问条件可以包括:数据库系统设置有非易失性存储器件;设置的所述非易失性存储器件被正确配置;持久内存开发工具包PMDK调用库处于可用状态。因此,在实际应用中,对于这三个条件,只要不满足其中的一个条件足,就认为不具备非易失性存储器件的访问条件;这几个条件都满足,才认为具备非易失性存储器件的访问条件。
基于上述各实施例对数据访问方法的描述,本申请提供的这种数据访问方法大幅度提升了数据库写性能,特别是在数据库主备同步复制的场景,可以同时应对高可靠和高性能的需求,由于高可靠要求,备机(即备数据库)可以按照数据项(而不是按块)落盘后响应主机(即主数据库),按字节寻址的特性和写低延迟特性,极大减少了主备时延,增加数据库性能。
其中,主备高可用、高性能场景可以参照图9所示的数据访问方法的场景示意图,为了保证主备集群高可用性,主机每条事务都可以同步到备机,事务日志落盘后,再返回主机通知同步成功消息,如果事务较小,使用POSIX接口的备机落盘写入,同步成本放大,时延过高吗,使用本申请上述实施例提供的数据访问方法,使用非易失性存储器件可以大大降低该成本,降低时延,增加主备同步性能。
基于上述分析,在数据库系统包括主数据库和备数据库,上述日志访问请求为日志写入请求的情况下,按照上述实施例描述的日志写入方法,将待写入日志数据写入主数据库的非易失性存储器件之后,即在主数据库进行日志落盘后,可以通知主数据库的日志发送线程读取写入主数据库的日志数据,由日志发送线程将读取到的日志数据发送至备数据库,以使备数据库将接收到的日志数据写入备数据库的非易失性存储器件,即在备数据库实现日志落盘,之后,主数据库可以获取备数据库得到的日志备份结果,再依据日志备份结果,得到日志写入结果。
参照图10,为本申请实施例提供的数据访问装置的一种可选示例,该装置可以包括:
请求发起模块11,用于针对用户输入的访问请求,发起相应的日志访问请求;
请求响应模块12,用于响应该日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对非易失性存储器件的日志访问,得到日志访问结果;
访问结果反馈模块13,用于将该日志访问结果反馈至发送访问请求的客户端。
可选的,参照图11所示,该装置还可以包括:
第一获取模块14,用于通过系统调用,获取日志访问请求所请求访问的待访问非易失性存储器件;
第一确定模块15,用于从多个处理器组中,确定待访问非易失性存储器件所在的待访问处理器组;
绑核模块16,用于将日志访问请求所使用的日志访问线程与待访问处理器组进行绑定,以使日志访问线程由待访问处理器组中的处理器调度。
可选的,在上述实施例的基础上,在所述日志访问请求为日志写入请求的情况下,上述请求响应模块12可以包括:
日志文件创建单元,用于利用持久内存开发工具包PMDK接口,在本次写入日志的非易失性存储器件中创建固定长度的待写入日志文件;
第一文件打开单元,用于利用可移植操作系统POSIX接口打开所述待写入日志文件,保留所述待写入日志文件的文件句柄;
写入长度获取单元,用于获取所述日志访问请求携带的待写入日志数据的写入长度;
第一检测单元,用于检测所述写入长度是否超过所述固定长度;
第一日志写入单元,用于在第一检测单元的检测结果为否的情况下,通过所述PMDK接口,将所述待写入日志数据写入所述待写入日志文件,得到日志写入结果;
第二日志写入单元,用于在第一检测单元的检测结果为是的情况下,通过所述PMDK接口,将所述待写入日志数据中未超过所述固定长度的日志数据写入所述待写入日志文件,从所述PMDK接口切换到所述POSIX接口,通过所述POSIX接口,将所述日志写入请求发送至内核态文件系统,由所述内核空间文件系统响应所述日志写入请求,将所述待写入日志数据中超过所述固定长度的日志数据写入非易失性存储器件,得到日志写入结果。
可选的,在向所述待写入日志文件写入待写入日志数据的过程中,上述装置还可以包括:
第二检测单元,用于检测已写入的日志数据长度是否达到预设长度,所述预设长度小于所述固定长度;若未达到,等待响应下一日志写入请求;
回卷单元,用于在第二检测单元的检测结果为是的情况下,将所述待写入日志文件回卷至所述写入长度;
句柄关闭单元,用于关闭所述文件句柄,并返回所述利用持久内存开发工具包PMDK接口创建固定长度的日志文件步骤继续执行。
作为本申请一可选示例,在日志访问请求为日志读取请求的情况下,上述请求响应模块12还可以包括:
第二文件打开单元,用于利用PMDK接口和POSIX接口,打开本次要读取的非易失性存储器件中的待读取日志文件,分别保留所述待读取日志文件的文件句柄;
第三检测单元,用于检测所述日志读取请求是否请求读取处于写入状态的日志文件中的日志;
第一日志读取单元,用于在第三检测单元的检测结果为是的情况下,通过所述PMDK接口,读取所述待读取日志文件中的日志数据,并在满足日志终止读取条件的情况下,停止读取所述待读取日志文件中的日志数据,得到日志读取结果;
第二日志读取单元,用于在第三检测单元的检测结果为否的情况下,通过POSIX接口,将所述日志读取请求发送至内核态文件系统,由所述内核空间文件系统响应所述日志读取请求,读取所述待读取日志文件中的日志数据,得到日志读取结果。
可选的,在上述各实施例的基础上,上述装置还可以包括:
访问条件检测模块,用于检测数据库系统执行环境是否具备非易失性存储器件的访问条件,如果具备,触发请求响应模块执行上述功能;
日志访问模块,用于在访问条件检测模块的检测结果为不具备的情况下,通过POSIX接口,将所述日志访问请求发送至内核态文件系统,由所述内核空间文件系统响应所述日志访问请求,实现对所述非易失性存储器件的日志访问,得到日志访问结果。
可选的,在数据库系统包括主数据库和备数据库,日志访问请求为日志写入请求的情况下,将待写入日志数据写入主数据库的非易失性存储器件之后,上述装置还可以包括:
落盘通知模块,用于通知所述主数据库的日志发送线程读取写入所述主数据库的日志数据,由所述日志发送线程将读取到的日志数据发送至备数据库,以使所述备数据库将接收到的日志数据写入所述备数据库的非易失性存储器件;
日志备份结果获取模块,用于获取所述备数据库得到的日志备份结果;
相应地,上述请求响应模块具体可以依据所述日志备份结果,得到日志写入结果。
关于上述各虚拟模块实现各自功能的具体过程,可以参照上述方法实施例相应部分的描述。
本申请实施例还提供一种服务器,该服务器可通过执行相应程序,实现上述程序模块的功能;如图12示出了服务器的一种可选硬件结构,参照图12,该服务器可以包括:至少一个通信接口21,至少一个存储器22和至少一个处理器23;
在本申请实施例中,通信接口21、存储器22、处理器23可以通过通信总线完成相互间的通信;
处理器23可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。
存储器22可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
其中,存储器22存储有程序,处理器23调用存储器22所存储的程序,以实现上述数据访问方法的各步骤,具体实现过程可以参照上述方法实施例相应部分的描述。
本申请实施例还提供一种存储介质,该存储介质存储有适于处理器调用的程序,以实现上述数据访问方法的各步骤,具体实现过程可以参照上述方法实施例相应部分的描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、服务器而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理芯片执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的核心思想或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据访问方法,其特征在于,所述方法包括:
针对用户输入的访问请求,发起相应的日志访问请求;
响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果;
将所述日志访问结果反馈至发送所述访问请求的客户端。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过系统调用,获取所述日志访问请求所请求访问的待访问非易失性存储器件;
从多个处理器组中,确定所述待访问非易失性存储器件所在的待访问处理器组;
将所述日志访问请求所使用的日志访问线程与所述待访问处理器组进行绑定,以使所述日志访问线程由所述待访问处理器组中的处理器调度。
3.根据权利要求1或2所述的方法,其特征在于,在所述日志访问请求为日志写入请求的情况下,所述响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果,包括:
利用持久内存开发工具包PMDK接口,在本次写入日志的非易失性存储器件中创建固定长度的待写入日志文件;
利用可移植操作系统POSIX接口打开所述待写入日志文件,保留所述待写入日志文件的文件句柄;
获取所述日志访问请求携带的待写入日志数据的写入长度;
检测所述写入长度是否超过所述固定长度;
如果未超过所述固定长度,通过所述PMDK接口,将所述待写入日志数据写入所述待写入日志文件,得到日志写入结果;
如果超过所述固定长度,通过所述PMDK接口,将所述待写入日志数据中未超过所述固定长度的日志数据写入所述待写入日志文件,从所述PMDK接口切换到所述POSIX接口,通过所述POSIX接口,将所述日志写入请求发送至内核态文件系统,由所述内核空间文件系统响应所述日志写入请求,将所述待写入日志数据中超过所述固定长度的日志数据写入非易失性存储器件,得到日志写入结果。
4.根据权利要求3所述的方法,其特征在于,在向所述待写入日志文件写入待写入日志数据的过程中,所述方法还包括:
检测已写入的日志数据长度是否达到预设长度,所述预设长度小于所述固定长度;
若未达到,等待响应下一日志写入请求;
若达到,将所述待写入日志文件回卷至所述写入长度;
关闭所述文件句柄,并返回所述利用持久内存开发工具包PMDK接口创建固定长度的日志文件步骤继续执行。
5.根据权利要求1或2所述的方法,其特征在于,在所述日志访问请求为日志读取请求的情况下,所述响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果,包括:
利用PMDK接口和POSIX接口,打开本次要读取的非易失性存储器件中的待读取日志文件,分别保留所述待读取日志文件的文件句柄;
检测所述日志读取请求是否请求读取处于写入状态的日志文件中的日志;
如果是,通过所述PMDK接口,读取所述待读取日志文件中的日志数据,并在满足日志终止读取条件的情况下,停止读取所述待读取日志文件中的日志数据,得到日志读取结果;
如果否,通过POSIX接口,将所述日志读取请求发送至内核态文件系统,由所述内核空间文件系统响应所述日志读取请求,读取所述待读取日志文件中的日志数据,得到日志读取结果。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
检测数据库系统执行环境是否具备非易失性存储器件的访问条件;
若具备,执行步骤所述响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果;
若不具备,通过POSIX接口,将所述日志访问请求发送至内核态文件系统,由所述内核空间文件系统响应所述日志访问请求,实现对所述非易失性存储器件的日志访问,得到日志访问结果。
7.根据权利要求6所述的方法,其特征在于,所述非易失性存储器件的访问条件包括:
数据库系统设置有非易失性存储器件;
设置的所述非易失性存储器件被正确配置;
持久内存开发工具包PMDK调用库处于可用状态。
8.根据权利要求1所述的方法,其特征在于,在数据库系统包括主数据库和备数据库,所述日志访问请求为日志写入请求的情况下,将待写入日志数据写入所述主数据库的非易失性存储器件之后,所述方法还包括:
通知所述主数据库的日志发送线程读取写入所述主数据库的日志数据,由所述日志发送线程将读取到的日志数据发送至备数据库,以使所述备数据库将接收到的日志数据写入所述备数据库的非易失性存储器件;
获取所述备数据库得到的日志备份结果;
所述得到日志访问结果包括:
依据所述日志备份结果,得到日志写入结果。
9.一种数据访问装置,其特征在于,所述装置包括:
请求发起模块,用于针对用户输入的访问请求,发起相应的日志访问请求;
请求响应模块,用于响应所述日志访问请求,依据用户态与非易失性存储器件之间的直接映射关系,实现对所述非易失性存储器件的日志访问,得到日志访问结果;
访问结果反馈模块,用于将所述日志访问结果反馈至发送所述访问请求的客户端。
10.一种服务器,其特征在于,所述服务器包括:至少一个通信接口、至少一个存储器和至少一个处理器;
所述存储器存储有程序,所述处理器调用所述程序,以实现如权利要求1~8任一项所述的数据访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722121.XA CN110457261B (zh) | 2019-08-06 | 2019-08-06 | 数据访问方法、装置及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910722121.XA CN110457261B (zh) | 2019-08-06 | 2019-08-06 | 数据访问方法、装置及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110457261A true CN110457261A (zh) | 2019-11-15 |
CN110457261B CN110457261B (zh) | 2023-11-10 |
Family
ID=68485150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910722121.XA Active CN110457261B (zh) | 2019-08-06 | 2019-08-06 | 数据访问方法、装置及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457261B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008233A (zh) * | 2019-11-24 | 2020-04-14 | 浪潮电子信息产业股份有限公司 | 一种kv数据库的访问方法、装置及设备 |
CN111143072A (zh) * | 2019-12-29 | 2020-05-12 | 浪潮(北京)电子信息产业有限公司 | 用户态程序内存分配方法、系统及相关组件 |
CN111367919A (zh) * | 2020-03-08 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种数据库一体机的存储方法、装置、设备和介质 |
CN111367755A (zh) * | 2020-02-17 | 2020-07-03 | 上海基分文化传播有限公司 | 一种移动终端的用户日志写入方法及系统 |
CN112214302A (zh) * | 2020-10-30 | 2021-01-12 | 中国科学院计算技术研究所 | 一种进程调度方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658417B1 (en) * | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
CN103098034A (zh) * | 2010-07-28 | 2013-05-08 | Fusion-Io股份有限公司 | 用于条件和原子存储操作的装置、系统和方法 |
WO2014129161A1 (ja) * | 2013-02-20 | 2014-08-28 | パナソニック株式会社 | 無線アクセス装置および無線アクセスシステム |
CN105579977A (zh) * | 2014-09-01 | 2016-05-11 | 华为技术有限公司 | 访问文件的方法、装置及存储系统 |
CN107515808A (zh) * | 2017-08-08 | 2017-12-26 | 百富计算机技术(深圳)有限公司 | 日志记录方法、装置、计算机设备和计算机可读存储介质 |
CN109271110A (zh) * | 2018-09-25 | 2019-01-25 | 郑州云海信息技术有限公司 | 存储系统中存储数据的写入方法、写入系统及相关装置 |
US20190065383A1 (en) * | 2017-08-31 | 2019-02-28 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
-
2019
- 2019-08-06 CN CN201910722121.XA patent/CN110457261B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658417B1 (en) * | 1997-12-31 | 2003-12-02 | International Business Machines Corporation | Term-based methods and apparatus for access to files on shared storage devices |
CN103098034A (zh) * | 2010-07-28 | 2013-05-08 | Fusion-Io股份有限公司 | 用于条件和原子存储操作的装置、系统和方法 |
WO2014129161A1 (ja) * | 2013-02-20 | 2014-08-28 | パナソニック株式会社 | 無線アクセス装置および無線アクセスシステム |
CN105579977A (zh) * | 2014-09-01 | 2016-05-11 | 华为技术有限公司 | 访问文件的方法、装置及存储系统 |
CN107515808A (zh) * | 2017-08-08 | 2017-12-26 | 百富计算机技术(深圳)有限公司 | 日志记录方法、装置、计算机设备和计算机可读存储介质 |
US20190065383A1 (en) * | 2017-08-31 | 2019-02-28 | Oracle International Corporation | Directly mapped buffer cache on non-volatile memory |
CN109271110A (zh) * | 2018-09-25 | 2019-01-25 | 郑州云海信息技术有限公司 | 存储系统中存储数据的写入方法、写入系统及相关装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111008233A (zh) * | 2019-11-24 | 2020-04-14 | 浪潮电子信息产业股份有限公司 | 一种kv数据库的访问方法、装置及设备 |
CN111008233B (zh) * | 2019-11-24 | 2023-02-28 | 浪潮电子信息产业股份有限公司 | 一种kv数据库的访问方法、装置及设备 |
CN111143072A (zh) * | 2019-12-29 | 2020-05-12 | 浪潮(北京)电子信息产业有限公司 | 用户态程序内存分配方法、系统及相关组件 |
CN111143072B (zh) * | 2019-12-29 | 2023-09-08 | 浪潮(北京)电子信息产业有限公司 | 用户态程序内存分配方法、系统及相关组件 |
CN111367755A (zh) * | 2020-02-17 | 2020-07-03 | 上海基分文化传播有限公司 | 一种移动终端的用户日志写入方法及系统 |
CN111367919A (zh) * | 2020-03-08 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种数据库一体机的存储方法、装置、设备和介质 |
CN112214302A (zh) * | 2020-10-30 | 2021-01-12 | 中国科学院计算技术研究所 | 一种进程调度方法 |
CN112214302B (zh) * | 2020-10-30 | 2023-07-21 | 中国科学院计算技术研究所 | 一种进程调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110457261B (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457261A (zh) | 数据访问方法、装置及服务器 | |
JP3704573B2 (ja) | クラスタシステム | |
US7624230B2 (en) | Information processing apparatus, information processing method and storage system using cache to reduce dynamic switching of mapping between logical units and logical devices | |
TWI531901B (zh) | 群組表資料沖除技術 | |
CN114580344B (zh) | 测试激励生成方法、验证方法、验证系统及相关设备 | |
JP2004185349A (ja) | ジャーナルログを利用した更新データ書込方法 | |
KR20060044631A (ko) | 지속성 메모리 액세스 시스템, 지속성 메모리의 직접액세스 방법 및 지속성 메모리 시스템을 액세스하는 시스템 | |
US9398073B1 (en) | Methods and apparatus for providing content | |
USRE42859E1 (en) | File server that allows an end user to specify storage characteristics with ease | |
US7996648B2 (en) | Coupled symbiotic operating systems | |
WO2024051041A1 (zh) | 一种数据存取方法、装置、设备和非易失性可读存储介质 | |
US7627710B1 (en) | Converting an object identifier to a block I/O address to identify a storage location on a server | |
KR102262209B1 (ko) | 더미 입출력 요청을 이용한 배리어 명령 전달 방법 및 그 장치 | |
US7827194B2 (en) | Access to shared disk device on storage area network | |
CN112748854B (zh) | 对快速存储设备的优化访问 | |
CN109002401A (zh) | 基于动态缓冲的虚拟机磁盘复制过程读取方法及装置 | |
US6298437B1 (en) | Method for vectoring pread/pwrite system calls | |
JP2001014201A (ja) | 共有ファイルシステム | |
JP5520462B2 (ja) | メモリ管理サーバ、方法及びプログラム | |
US20230297236A1 (en) | Far memory direct caching | |
JP6704127B2 (ja) | 情報処理装置 | |
KR20220169894A (ko) | 메모리 기반 통합 스토리지 관리 장치 및 방법 | |
KR100825724B1 (ko) | 직접접속방식을 적용하는 고속 전송이 가능한PMEM(PCI Memory)를 이용한 객체 기반저장시스템 및 그 시스템에서의 전송 방법 | |
JP2004355039A (ja) | ディスクアレイ装置及び同装置に適用されるキャッシュ一致化制御方法 | |
JPH0784727A (ja) | ファイルシステム |
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 |