一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据写入方法及装置、数据库系统、存储介质与流程

2021-10-23 00:35:00 来源:中国专利 TAG:写入 装置 特别 数据库 方法


1.本技术涉及数据库技术领域,特别涉及一种数据写入方法及装置、数据库系统、存储介质。


背景技术:

2.hadoop数据库(hadoop database,hbase)系统是一种面向列的分布式数据库系统,包括多个存储服务器和用于管理该多个存储服务器的管理服务器。其中,存储服务器包括处理器、内存和硬盘。
3.客户端可以根据管理服务器的调度向存储服务器发送写入请求,存储服务器接收到该写入请求后,该存储服务器的处理器将该写入请求携带的业务数据写入该存储服务器的内存中,并生成该业务数据对应的预写日志(write-ahead logging,wal)数据,将该wal数据写入该存储服务器的硬盘中,之后,当内存中存储的数据满足预设条件时,该处理器将该业务数据写入该存储服务器的硬盘中(也即是将业务数据落盘)。如果在业务数据落盘之前该存储服务器宕机导致该业务数据丢失,在该存储服务器重新上电时该存储服务器的处理器可以从该存储服务器的硬盘中读取该业务数据对应的wal数据,根据该wal数据恢复该业务数据。
4.目前,在存储服务器中,存储wal数据的硬盘为串行高级技术附件(serial advanced technology attachment,sata)硬盘或者固态驱动器(solid state drive,ssd)硬盘,sata硬盘和ssd硬盘的写入时延均较大,导致wal数据的写入时延较大,hbase系统的性能较差。


技术实现要素:

5.本技术提供了一种数据写入方法及装置、数据库系统、存储介质,有助于优化日志数据的写入时延,改善数据库系统的性能,本技术的技术方案如下:
6.第一方面,提供一种数据写入方法,应用于服务器中的处理单元,该方法包括:接收数据库数据的写入请求;将该数据库数据对应的日志数据写入第一存储器中,其中,该第一存储器是易失性存储器且被该处理单元识别为非易失性存储器。
7.本技术实施例提供的技术方案,服务器中的第一存储器是易失性存储器且被该服务器的处理单元识别为非易失性存储器,该第一存储器的写入时延较小,该处理单元将日志数据写入该第一存储器中,有助于优化日志数据的写入时延,改善数据库系统的性能。
8.根据第一方面,在本技术的一种可能的实现方式中,在将数据库数据对应的日志数据写入第一存储器中之前,该方法还包括:确定服务器当前应用的存储类型;根据该当前应用的存储类型,确定该服务器的日志存储类型,其中,该日志存储类型与该当前应用的存储类型不同。
9.根据第一方面,在本技术的一种可能的实现方式中,该方法还包括:将第一存储器的存储类型设置成该日志存储类型,其中,该日志存储类型用于指示处理单元将日志数据
存入相应的存储器中。
10.本技术实施例提供的技术方案,处理单元在将日志数据写入第一存储器中之前,确定与服务器当前应用的存储类型不同的日志存储类型,将第一存储器的存储类型设置成该日志存储类型,这样可以便于该处理单元根据该日志存储类型将日志数据写入该第一存储器中。
11.根据第一方面,在本技术的一种可能的实现方式中,该日志存储类型是非易失性双列直插式内存模块(non-volatile dual in-line memory module,nvdimm)。
12.根据第一方面,在本技术的一种可能的实现方式中,该服务器还包括第二存储器和备用电源,该备用电源用于在该服务器断电时为该处理单元、该第一存储器和该第二存储器供电,该方法还包括:当该服务器断电时,将该日志数据从该第一存储器中写入该第二存储器中,该第二存储器是非易失性存储器。
13.本技术实施例提供的技术方案,当服务器断电时,处理单元将日志数据从第一存储器中写入第二存储器中,该第二存储器是非易失性存储器,该第二存储器的存储可靠性较高,有助于避免服务器断电导致日志数据丢失,保证日志数据的存储可靠性。
14.根据第一方面,在本技术的一种可能的实现方式中,在将该日志数据从该第一存储器中写入该第二存储器中之后,该方法还包括:当该服务器上电时,将该日志数据从该第二存储器写入该第一存储器中。
15.本技术实施例提供的技术方案,当服务器断电后重新上电时,处理单元将日志数据从第二存储器中写入第一存储器中,该第一存储器的读写时延较小,可以便于在数据库数据丢失时处理单元及时获取到该日志数据,并根据该日志数据恢复该数据库数据。
16.根据第一方面,在本技术的一种可能的实现方式中,第一存储器为随机存储器(random-access memory,ram),第二存储器为m.2硬盘。
17.本技术实施例提供的技术方案,第一存储器、第二存储器和备用电源可以构成服务器的备电模块,该备电模块可以模拟nvdimm和傲腾(optane)内存等非易失性内存,该备电模块能够实现与非易失性内存相同的存储功能,并且相比于nvdimm和傲腾内存等非易失性内存,该备电模块的硬件成本较低,有助于降低服务器的硬件成本。
18.根据第一方面,在本技术的一种可能的实现方式中,该方法还包括:响应写入请求,将数据库数据写入第三存储器中,其中,该第三存储器是易失性存储器;当该第三存储器中存储的数据满足预设条件时,将该第三存储器中存储的数据写入第四存储器中,其中,该第四存储器是非易失性存储器。
19.本技术实施例提供的技术方案,第三存储器是易失性存储器,第四存储器是非易失性存储器,处理单元将数据库数据写入第三存储器中,有助于该数据库数据的快速写入;当该第三存储器中存储的数据满足预设条件时,处理单元将该第三存储器中存储的数据写入第四存储器,有助于数据库数据的持久化存储,保证数据库数据的存储可靠性。
20.第二方面,提供一种数据写入装置,该数据写入装置包括一个或多个模块,该一个或多个模块用于实现上述第一方面或第一方面的任一可能实现方式所提供的数据写入方法。
21.第三方面,提供一种数据写入装置,该数据写入装置包括:处理器和存储器,该存储器中存储有程序,该处理器用于调用该存储器中存储的程序,使得该数据写入装置执行
上述第一方面或第一方面的任一可能实现方式所提供的数据写入方法。
22.第四方面,提供一种计算机存储介质,该计算机存储介质内存储有计算机程序,当该计算机程序在计算机上运行时,使该计算机执行上述第一方面或第一方面的任一可能实现方式所提供的数据写入方法。
23.第五方面,提供一种数据库系统,该数据库系统包括管理服务器和多个存储服务器,该多个存储服务器中的至少一个包括上述第二方面或第三方面所提供的数据写入装置。
24.第六方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述第一方面或第一方面的任一可能实现方式所提供的数据写入方法。
25.本技术实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现上述第一方面或第一方面的任一可能实现方式所提供的数据写入方法。
26.本技术实施例提供的技术方案带来的有益效果是:
27.本技术实施例提供的技术方案,服务器中的第一存储器是易失性存储器且被该服务器的处理单元识别为非易失性存储器,该第一存储器的写入时延较小,该处理单元将日志数据写入该第一存储器中,有助于优化日志数据的写入时延,改善数据库系统的性能。
附图说明
28.图1是本技术实施涉及的一种实施环境的示意图;
29.图2是本技术实施例提供的另一种实施环境的示意图;
30.图3是本技术实施例提供的一种服务器的硬件结构示意图;
31.图4是本技术实施例提供的一种数据写入方法的方法流程图;
32.图5是本技术实施例提供的另一种数据写入方法的方法流程图;
33.图6是本技术实施例提供的再一种数据写入方法的方法流程图;
34.图7是本技术实施例提供的一种客户端向数据库系统写数据的示意图;
35.图8是本技术实施例提供的一种数据写入装置的逻辑结构示意图。
具体实施方式
36.为使本技术的原理、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
37.请参考图1,其示出了本技术实施例涉及的一种实施环境的示意图,该实施环境可以包括客户端和数据库系统,客户端可以向数据库系统写数据,本技术实施例将客户端向数据库系统写的数据称为数据库数据,该数据库数据可以包括但不限于业务数据。
38.其中,该数据库系统可以是分布式数据库系统,如图1所示,该数据库系统可以包括:多个存储服务器(图1中示出3个)和用于管理该多个存储服务器的管理服务器,每个存储服务器可以包括处理器、内存和硬盘。
39.在本技术实施例中,管理服务器可以调度该多个存储服务器,客户端在向数据库系统写数据库数据时,可以根据管理服务器的调度向被调度的存储服务器发送数据库数据
的写入请求,该存储服务器在接收到该写入请求后,该存储服务器的处理器将该写入请求携带的数据库数据写入内存中,并生成该数据库数据对应的日志数据,将该日志数据写入硬盘中(也即是将日志数据落盘),之后,当该内存中存储的数据满足预设条件时,该处理器将该内存中存储的数据从内存写入硬盘中(也即是将数据库数据落盘)。如果在数据库数据落盘之前该存储服务器断电,内存中的该数据库数据丢失,在该存储服务器重新上电时,该处理器可以从硬盘中读取该数据库数据对应的日志数据,根据该日志数据恢复该数据库数据。
40.可选地,每个存储服务器可以包括多个表分片,每个表分片对应内存的一部分存储空间,且每个表分片对应一个行健(rowkey)值范围,处理器可以根据写入请求携带的数据库数据的rowkey值,将该数据库数据写入至少一个目标表分片在内存中对应的存储空间中,处理器生成的该数据库数据对应的日志数据可以包括与该至少一个目标表分片中的每个目标表分片中的该数据库数据对应的日志数据,处理器可以通过异步去锁方式将该至少一个目标表分片中的该数据库数据对应的日志数据落盘。其中,该数据库数据的rowkey值属于该目标表分片对应的rowkey值范围。需要说明的是,在本技术实施例中,表分片是一种逻辑存储概念,表分片中的数据实际上存储在表分片对应的存储空间中。
41.在目前的数据库系统中,存储日志数据的硬盘为sata硬盘或者为日志数据额外分配的ssd硬盘,sata硬盘和ssd硬盘的写入时延较大,导致日志数据的写入时延较大,数据库系统的性能较差。鉴于此,本技术实施例提供了一种数据写入方案,该数据写入方案可以适用于图2所示实施环境,与图1所示实施环境不同的是,在如图2所示的实施环境中,数据库系统的每个存储服务器可以包括处理器、第一存储器、第二存储器、第三存储器和第四存储器,该第一存储器和该第三存储器可以是易失性存储器,该第二存储器和该第四存储器可以是非易失性存储器。可选地,每个存储服务器在逻辑上还可以包括处理单元,该处理单元可以包括该处理器。在本技术实施例中,该第一存储器是易失性存储器且被该处理单元识别为非易失性存储器,该第一存储器的写入时延较小,该处理单元可以将日志数据写入第一存储器来优化数据库系统的日志数据写入时延。
42.可选地,如图2所示,数据库系统的每个存储服务器还可以包括备用电源,该备用电源可以用于在该存储服务器断电时为处理单元、第一存储器和第二存储器供电,当存储服务器处于上电状态时,处理单元可以将日志数据写入第一存储器中,之后当存储服务器断电时,处理单元可以将日志数据从第一存储器写入第二存储器中,当存储服务器由断电状态切换为上电状态时,处理单元可以将日志数据从第二存储器写入第一存储器中,这样一来,在存储服务器处于上电状态时日志数据存储在第一存储器中,有助于缩短日志数据的写入时延,在存储服务器处于断电状态时日志数据持久化存储在第二存储器中,保证了日志数据的可靠存储。可选地,第一存储器可以是随机存储器(random-access memory,ram),第二存储器可以是m.2硬盘或者其他响应速度较高的硬盘。
43.在本技术实施例中,第一存储器、第二存储器和备用电源可以构成存储服务器的备电模块,备电模块又可以称为带备用电池的内存(memory with spare battery),可选地,该备电模块还可以包括处理器,处理单元还可以包括该备电模块中的处理器,该备用电源可以用于在该存储服务器断电时为该备电模块中的处理器、第一存储器和第二存储器供电。本技术实施例中的该备电模块可以模拟nvdimm和傲腾内存等非易失性内存,能够实现
与非易失性内存相同的存储功能,并且相对于非易失性内存,该备电模块的硬件成本较低,有助于降低存储服务器的硬件成本。可以理解的是,该备电模块也可以采用非易失性内存代替,但是在代替后的方案中,存储服务器的硬件成本较高。
44.需要说明的是,在本技术实施例中,nvdimm这一表述可以指硬件存储设备,也可以指存储类型,nvdimm指硬件存储设备还是存储类型,可以根据nvdimm这一表述所处的语义环境确定,例如,在“该备电模块可以模拟nvdimm”这样的语义环境中,nvdimm指硬件存储设备,在“日志存储类型是nvdimm”这样的语义环境中,nvdimm指存储类型,本技术实施例在此不再赘述。
45.可选地,存储服务器在接收到数据库数据的写入请求时,该存储服务器的处理单元可以响应该写入请求,将该数据库数据写入第三存储器中,当该第三存储器中存储的数据满足预设条件时,该处理单元将该第三存储器中存储的数据写入第四存储器中,该第三存储器是易失性存储器,该第四存储器是非易失性存储器,这样有助于保证数据库数据的存储可靠性。示例地,该第四存储器可以是sata硬盘、ssd硬盘和磁盘(disk)中的一种或多种。
46.需要说明的是,图1和图2所示实施环境仅用于举例,并非用于限制本技术实施例的技术方案,在实现过程中,可以根据需要来配置客户端的数量、管理服务器的数量和存储服务器的数量,也可以在该实施环境中配置其他设备。并且,图1和图2中的每个服务器可以是数据库系统中的一个节点,例如管理服务器可以是数据库系统中的一个管理节点,存储服务器可以是数据库系统中的一个存储节点,数据库系统中的节点可以是服务器,也可以是终端,且管理节点和存储节点可以是相同类型的设备或不同类型的设备,多个存储节点可以是相同类型的设备或不同类型的设备,例如,管理节点和存储节点均可以是服务器,或者管理节点和存储节点中的一部分是服务器,另一部分是终端,本技术实施例对此不做限定。
47.还需要说明的是,在图1和图2所示实施环境中,数据库系统可以是hbase系统,hbase系统是一个面向列的分布式数据库系统,是建立在hadoop之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。hbase介于非关系型数据库和关系型数据库之间,能通过rowkey值和rowkey值范围来检索数据,支持单行事务,主要用来存储非结构化和半结构化的数据。图1和图2中的管理服务器可以是hbase系统中的hmaster所在的物理节点,该管理服务器也可以称为主节点或名称节点(namenode),存储服务器可以是hbase系统中的hregionserver所在的物理节点,该存储服务器也可以称为数据节点(datanode),hmaster负责管理hregionserver,内存以及第三存储器可以是hbase系统中的memstore,在hbase系统中,表被分割成多个更小的块存储在不同的hregionserver中,这些小块叫做hregion,上述表分片可以是hbase系统中的hregion。hregionserver可以处理hlog文件来存储日志数据,处理hfile文件来存储数据库数据,hregionserver可以将包括数据库数据的hfile文件落盘来将数据库数据落盘,将包括日志数据的hlog文件落盘来将日志数据落盘,也即是,在hbase系统中,数据库数据以hfile文件的形式落盘,日志数据以hlog文件的形式落盘。其中,日志数据可以是wal数据。
48.wal算法是一种高效的日志算法,其可以提升数据库的写性能,wal算法的基本原理是:在将数据库数据写入内存之前首先将该数据库数据顺序写入hlog文件(也即是生成
该数据库数据对应的wal数据并将该wal数据写入hlog文件),然后再将该数据库数据写入内存,当内存写满时再将内存中的数据统一落盘。wal算法之所以能够提升数据库的写性能,是因为wal算法将数据库数据的随机写转化为将数据库数据顺序写入hlog文件之后再写入内存。提升写性能的同时,wal算法可以保证数据库数据的可靠性,使得在任何情况下数据库数据不会丢失。例如,假如将数据库数据写入内存之后服务器发生宕机使数据库数据丢失,也可以通过hlog文件中该数据库数据对应的wal数据恢复出该数据库数据。
49.在hbase系统中,可以通过设置wal数据的持久化等级决定是否开启wal机制以及hlog文件的落盘方式(也即是wal数据的落盘方式)。wal数据的持久化等级可以包括:
50.1、skip_wal等级:仅将数据库数据写入内存中(也即是不将数据库数据写入hlog文件,或者可以理解为不生成该数据库数据对应的wal数据)。
51.2、async_wal等级:异步将数据库数据写入内存和hlog文件中(也即是将数据库数据写入内存之前生成对应的wal数据,将该数据库数据写入内存中,将该wal数据写入hlog文件中,并且将该数据库数据写入内存的过程和将该wal数据写入hlog文件的过程异步执行)。
52.3、sync_wal等级:同步将数据库数据写入内存和hlog文件中(也即是将数据库数据写入内存之前生成对应的wal数据,将该数据库数据写入内存中,将该wal数据写入hlog文件中,并且将该数据库数据写入内存的过程和将该wal数据写入hlog文件的过程同步执行),但是wal数据只被写入hadoop分布式文件系统(hadoop distributed file system,hdfs),并没有真正落盘。
53.4、fsync_wal等级:同步将数据库数据写入内存和hlog文件中并强制落盘(也即是将数据库数据写入内存之前生成对应的wal数据,将该数据库数据写入内存,将该wal数据写入hlog文件,将该数据库数据写入内存的过程和将该wal数据写入hlog文件的过程同步执行,且将wal数据强制落盘)。
54.上述四个等级中,skip_wal等级由于仅将数据库数据写入内存,可以极大的提升写入性能,但是数据库数据有丢失的风险,fsync_wal等级是严格的日志写入等级,可以避免数据库数据丢失,但是性能相对比较差。在实际应用中,如果没有指定wal数据的持久化等级,hbase系统默认使用sync_wal等级。本技术实施例提供的数据写入方案,可以基于sync_wal等级落盘日志数据(例如wal数据),优化日志数据的写入时延,改善数据库系统的性能。
55.示例地,请参考图3,其示出了本技术实施例提供的一种数据写入装置300的硬件结构示意图,该数据写入装置300可以是终端或服务器,例如该数据写入装置300可以为图2所示实施环境中的存储服务器,参见图3,该数据写入装置300可以包括处理单元301、第一存储器302、第二存储器303、第三存储器304、第四存储器305、备用电源306、通信接口307和总线308,处理单元301、第一存储器302、第二存储器303、第三存储器304、第四存储器305和通信接口307通过总线308彼此通信连接。本领域技术人员容易理解,该图3所示的处理单元301、第一存储器302、第二存储器303、第三存储器304、第四存储器305和通信接口307之间的连接方式仅仅是示例性的,在实现过程中,处理单元301、第一存储器302、第二存储器303、第三存储器304、第四存储器305和通信接口307也可以采用除总线308之外的其他连接方式彼此通信连接,本技术实施例对此不作限定。
56.其中,第一存储器302可以是易失性存储器且被处理单元301识别为非易失性存储器,第二存储器303可以是非易失性存储器,处理单元301、第一存储器302和第二存储器303分别与备用电源306电连接,备用电源306可以用于在数据写入装置300断电时为处理单元301、第一存储器302和第二存储器303供电。当该数据写入装置300处于上电状态时,处理单元301可以将日志数据写入该第一存储器302中,当该数据写入装置300断电时,处理单元301可以将日志数据从第一存储器302写入第二存储器303中,当该数据写入装置300由断电状态切换为上电状态时,处理单元301可以将日志数据从第二存储器303写入第一存储器302中,这样一来,在该数据写入装置300处于上电状态时日志数据存储在第一存储器301中,有助于缩短日志数据的写入时延,在该数据写入装置300处于断电状态时日志数据持久化存储在第二存储器303中,有助于保证日志数据的存储可靠性。可选地,该第一存储器302可以是ram,该第二存储器303可以是m.2硬盘或者其他响应速度较高的硬盘,该备用电源306可以是备电电池(backup battery unit,bbu)。示例地,该ram的存储容量可以是16gb(吉字节)或32gb,该备电电池的瞬态功率可以大于667w(瓦),电池容量可以为30wh(瓦时),稳态功率可以大于500w,例如,该备电电池的瞬态功率可以为800w。需要说明的是,第一存储器302、第二存储器303和备用电源306可以构成该数据写入装置300的备电模块,该备电模块可以模拟nvdimm和傲腾内存等非易失性内存,实现与非易失性内存相同的存储功能。可以理解的是,该备电模块也可以采用非易失性内存代替,本技术实施例对此不作限定。
57.其中,第三存储器304可以是易失性存储器,第四存储器305可以是非易失性存储器,该第三存储器304可以暂时存储数据,该第四存储器305可以持久化存储数据。可选地,该第三存储器304可以是该数据写入装置300的内存,该第四存储器305可以包括sata硬盘、ssd硬盘和磁盘中的一种或多种,例如,该第四存储器305可以是高速串行计算机扩展总线标准(peripheral component interconnect express,pcie)ssd或msata(mini-sata)。
58.其中,处理单元301可以包括至少一个处理器,该至少一个处理器可以包括通用处理器和/或专用处理器。通用处理器可以是通过读取并执行存储器(例如第一存储器302、第二存储器303、第三存储器304或第四存储器305)中存储的指令来执行特定步骤和/或操作的处理器,通用处理器在执行上述步骤和/或操作的过程中可能用到存储在存储器(例如第一存储器302、第二存储器303、第三存储器304或第四存储器305)中的数据。通用处理器可以是,例如但不限于,中央处理器(central processing unit,cpu)。专用处理器可以是专门设计的用于执行特定步骤和/或操作的处理器,该专用处理器可以是,例如但不限于,数字信号处理器(digital signal processor,dsp)、应用专用集成电路(application-specific integrated circuit,asic)和现场可编程门阵列(field-programmable gate array,fpga)等。处理单元301中的每个处理器可以包括一个或多个电路,以执行本技术实施例提供的数据写入方法。在本技术本实施例中,备电模块可以包括处理器,备电模块中的该处理器可以是该数据写入装置300的cpu(也即是数据写入装置300的cpu复用于备电模块)或者是该数据写入装置300中除该cpu之外的处理器(例如fpga),该处理单元301可以包括该备电模块中的处理器,备用电源306用于在数据写入装置300断电时为备电模块中的处理器、第一存储器302和第二存储器303供电。
59.其中,通信接口307可以包括输入/输出(input/output,i/o)接口、物理接口和逻辑接口等用于实现数据写入装置300内部的器件互连的接口,以及用于实现数据写入装置
300与其他设备互连的接口。物理接口可以是千兆的以太接口(gigabit ethernet,ge),其可以用于实现数据写入装置300与其他设备互连,逻辑接口是数据写入装置300内部的接口,其可以用于实现数据写入装置300内部的器件互连。容易理解,通信接口307可以用于数据写入装置300与设备通信,例如,通信接口307用于数据写入装置300接收客户端发送的数据库数据的写入请求,以及向客户端发送数据库数据的写入响应。
60.其中,总线308可以是任何类型的用于实现处理单元301、第一存储器302、第二存储器303、第二存储器303、第三存储器304、第四存储器305和通信接口307互连的通信总线,例如总线308可以是系统总线。
61.上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本技术实施例对上述器件的实现形式不做限定。
62.容易理解,图3所示的数据写入装置300仅仅是示例性的,在实现过程中,数据写入装置300还可以包括其他组件,本文不再一一列举。该图3所示的数据写入装置300可以通过执行本技术实施例提供的数据写入方法来进行数据写入。
63.本技术实施例提供了一种数据写入方法,该数据写入方法可以应用于服务器中的处理单元,该服务器可以是如图3所示的数据写入装置300,该服务器中的第一存储器是易失性存储器且被该处理单元识别为非易失性存储器,该处理单元可以将日志数据写入该第一存储器中,有助于优化日志数据的写入时延,改善数据库系统的性能。其中,该数据写入方法中日志数据的持久化等级可以是sync_wal等级。
64.示例地,请参考图4,其示出了本技术实施例提供的一种数据写入方法的方法流程图。参见图4,该方法可以包括如下步骤:
65.步骤401、处理单元确定服务器当前应用的存储类型。
66.可选地,处理单元可以确定服务器中当前用于存储数据(包括数据库数据和/或日志数据)的存储器的类型属性,根据该存储器的类型属性确定该存储器的存储类型,将该存储器的存储类型确定为服务器当前应用的存储类型。示例地,服务器中当前用于存储数据的存储器是ssd硬盘,处理单元根据ssd硬盘的类型属性确定该ssd硬盘的存储类型为ssd,因此处理单元确定该服务器当前应用的存储类型是ssd。再示例地,服务器中当前用于存储数据的存储器是sata硬盘,处理单元根据sata硬盘的类型属性确定该sata硬盘的存储类型为sata,因此处理单元确定该服务器当前应用的存储类型是sata。
67.或者,可选地,每种存储器可以对应一种存储类型,处理单元可以维护存储器与存储类型的映射关系,处理单元可以确定服务器中当前用于存储数据的存储器,根据该映射关系确定该存储器的存储类型,将该存储器的存储类型确定为服务器当前应用的存储类型。示例地,服务器中当前用于存储数据的存储器是ssd硬盘,该映射关系中记录的与该ssd硬盘对应的存储类型可以是ssd,处理单元确定该ssd硬盘的存储类型为ssd,因此处理单元确定该服务器当前应用的存储类型是ssd。再示例地,服务器中当前用于存储数据的存储器是sata硬盘,该映射关系中记录的与该sata硬盘对应的存储类型可以是sata,处理单元确定该sata硬盘的存储类型为sata,因此处理单元确定该服务器当前应用的存储类型是sata。
68.需要说明的是,服务器中可以记录有该服务器中的各个存储器的属性代码,每个
存储器的属性代码可以用于描述该存储器的介质属性,该介质属性可以包括持久化属性、类型属性、容量管理属性和数据移动属性等,持久化属性用于表征存储器是否支持持久化存储,类型属性用于表征存储器的存储类型,容量管理属性用于表征存储器是否支持容量管理,数据移动属性用于表征存储器是否支持数据移动,处理单元可以根据服务器中当前用于存储数据的存储器的属性代码确定该存储器的类型属性。示例地,服务器中当前用于存储数据的存储器的属性代码中可以包括istransient()代码段、supporttypetypequota()代码段、ismovable()代码段和isram()代码段等,istransient()代码段用于描述该存储器的持久化属性,supporttypetypequota()代码段用于描述该存储器的容量管理属性,ismovable()代码段用于描述该存储器的数据移动属性,isram()代码段用于描述该存储器的类型属性,处理单元可以根据该属性代码中的isram()代码段确定该存储器的类型属性。
69.还需要说明的是,在本技术实施例中,ssd这一表述可以指硬件存储设备,也可以指存储类型,ssd指硬件存储设备还是存储类型,可以根据ssd这一表述所处的语义环境确定,例如,在“服务器中当前用于存储数据的存储器是ssd硬盘”这样的语义环境中,ssd指硬件存储设备,在“处理单元确定该服务器当前应用的存储类型是ssd”这样的语义环境中,ssd指存储类型,sata的表述同理,本技术实施例在此不再赘述。
70.步骤402、处理单元根据服务器当前应用的存储类型,确定服务器的日志存储类型,其中,该日志存储类型与该当前应用的存储类型不同。
71.处理单元确定服务器当前应用的存储类型后,可以根据服务器当前应用的存储类型确定服务器的日志存储类型,其中,该日志存储类型与服务器当前应用的存储类型不同,该日志存储类型用于指示处理单元将日志数据存入相应的存储器(也即是该日志存储类型对应的存储器)中,该日志存储类型可以为非易失性存储类型。可选地,该日志存储类型是nvdimm。
72.示例地,服务器当前应用的存储类型为ssd和sata,处理单元可以确定服务器的日志存储类型为nvdimm,该日志存储类型nvdimm与当前应用的存储类型ssd和sata不同。
73.步骤403、处理单元将第一存储器的存储类型设置成该日志存储类型,其中,该日志存储类型用于指示处理单元将日志数据存入相应的存储器中,该第一存储器是易失性存储器且被该处理单元识别为非易失性存储器。
74.处理单元确定服务器的日志存储类型后,可以将第一存储器的存储类型设置成该日志存储类型,由于该日志存储类型用于指示处理单元将日志数据存入相应的存储器中,因此将第一存储器的存储类型设置成该日志存储类型后,该日志存储类型可以指示处理单元将日志数据存入该第一存储器中。
75.本领域技术人员容易理解,上述步骤401至步骤403通常可以在处理单元首次将日志数据写入第一存储器时执行,当然,处理单元也可以在每次将日志数据写入第一存储器时执行该步骤401至步骤403,本技术实施例对此不作限定。
76.步骤404、处理单元接收数据库数据的写入请求。
77.可选地,客户端可以根据数据库系统中管理服务器的调度向服务器(也即是存储服务器)发送数据库数据的写入请求,该写入请求可以携带需要写入的数据库数据。服务器的处理单元可以接收该数据库数据的写入请求。示例地,服务器的处理单元通过该服务器
的收发器接收该数据库数据的写入请求。
78.步骤405、处理单元响应该写入请求,将该数据库数据写入第三存储器中,其中,该第三存储器是易失性存储器。
79.可选地,处理单元可以解析该写入请求得到其中携带的数据库数据,将该数据库数据写入第三存储器中,该第三存储器是易失性存储器,例如该第三存储器可以是该服务器的内存。
80.可选地,该服务器可以包括多个表分片(例如hregion),每个表分片可以对应该第三存储器的一部分存储空间,且每个表分片可以对应一个rowkey值范围,处理单元可以根据该数据库数据的rowkey值,将该数据库数据写入至少一个目标表分片在该第三存储器中对应的存储空间中,从而将该数据库数据写入该第三存储器中。可选地,每个表分片可以包括至少一个数据文件,每个表分片的数据文件可以位于该表分片对应的存储空间中,处理单元可以将该数据库数据记录在该至少一个目标表分片的数据文件中,从而将该数据库数据写入该至少一个目标表分片在第三存储器中对应的存储空间中,示例地,该数据文件可以是hfile文件。
81.可选地,处理单元可以获取该数据库数据的rowkey值,确定该数据库数据的rowkey值所属的至少一个目标rowkey值范围,将该至少一个目标rowkey值范围对应的表分片确定为该至少一个目标表分片。处理单元可以包括与该至少一个目标表分片一一对应的至少一个进程,处理单元可以通过该至少一个进程将该数据库数据写入该至少一个目标表分片的数据文件中。
82.步骤406、处理单元生成该数据库数据对应的日志数据。
83.其中,该数据库数据对应的日志数据可以是wal数据,该日志数据可以包括该数据库数据。可选地,该日志数据还可以包括该数据库数据在第三存储器中的地址、该数据库数据的写入时间和该数据库数据的写入者信息(也即是处理单元的信息)等,本技术实施例对此不作限定。
84.步骤407、处理单元将该数据库数据对应的日志数据写入第一存储器中。
85.可选地,服务器可以包括基本输入输出系统(basic input output system,bios),处理单元可以调用该bios将该数据库数据对应的日志数据写入第一存储器中。
86.可选地,处理单元生成该数据库数据对应的日志数据后可以将该日志数据记录在日志文件中,处理单元可以调用该bios将记录有该日志数据的日志文件写入第一存储器中,也即是,在第一存储器中日志数据以日志文件的形式存储,该日志文件可以是hlog文件。
87.可选地,本技术实施例提供的数据写入方法可以应用于数据库系统中的任一存储服务器,该服务器的处理单元将日志数据写入第一存储器中之后,还可以向该数据库系统中的其他存储服务器发送该日志数据,使得其他数据服务器也能够存储该日志数据,实现该日志数据的分布式存储。可选地,该其他存储服务器也可以包括第一存储器,该其他的存储服务器也可以将该日志数据存储至第一存储器中,这样一来,可以优化整个数据库系统的日志数据写入时延,改善数据库系统的性能。可选地,该服务器的处理单元可以将记录该日志数据的日志文件发送给其他存储服务器,该其他存储服务器可以将记录该日志数据的日志文件存储至该其他存储服务器的第一存储器中。
88.步骤408、当第三存储器中存储的数据满足预设条件时,处理单元将该第三存储器中存储的数据写入第四存储器中,其中,该第四存储器是非易失性存储器。
89.可选地,处理单元将写入请求携带的数据库数据写入第三存储器中之后,可以检测该第三存储器中存储的数据是否满足预设条件,当该第三存储器中存储的数据满足预设条件时,处理单元将该第三存储器中存储的数据写入第四存储器中。可选地,该预设条件可以是第三存储器中的数据量与该第三存储器的容量的差值小于预设差值,或者,该第三存储器已写满,或者,该第三存储器中的数据文件的大小达到指定大小,本技术实施例对此不作限定。其中,第四存储器可以包括sata硬盘、ssd硬盘和磁盘中的一种或多种。
90.可选地,当第三存储器中存储的数据满足预设条件时,处理单元可以读取该第三存储器中的数据,并将读取的数据写入第四存储器中。可选地,第三存储器中可以包括数据文件,第三存储器中存储的数据位于该数据文件中,当第三存储器中存储的数据满足预设条件时,处理单元可以将第三存储器中的数据文件写入第四存储器中,从而将第三存储器中存储的数据写入第四存储器中,示例地,该数据文件可以是hfile文件。
91.可选地,本技术实施例提供的数据写入方法可以应用于数据库系统中的任一存储服务器,该服务器的处理单元将第三存储器中存储的数据写入第四存储器中之后,还可以向该数据库系统中的其他存储服务器发送该第三存储器中存储的数据,使得其他数据服务器也能够存储该第三存储器中存储的数据,实现数据的分布式存储。可选地,该其他存储服务器也可以包括第四存储器,该其他的存储服务器也可以将接收到的该数据存储至第四存储器中。可选地,该处理单元可以将第三存储器中的数据文件发送给其他存储服务器,该其他存储服务器可以将该数据文件存储至该其他存储服务器的第四存储器中。
92.需要说明的是,处理单元写入数据库数据之后,可以向客户端发送数据库数据的写入响应,该数据库数据的写入响应指示数据库数据写入成功。可选地,处理单元将该数据库数据对应的日志数据写入第一存储器中之后,该处理单元确定日志数据落盘成功,该处理单元就可以向客户端发送数据库数据的写入响应,本技术实施例在此不再赘述。
93.综上所述,本技术实施例提供的数据写入方法,服务器中的第一存储器是易失性存储器且被该服务器的处理单元识别为非易失性存储器,该第一存储器的写入时延较小,该处理单元可以将日志数据写入该第一存储器中,有助于优化日志数据的写入时延,改善数据库系统的性能。
94.图4所示实施例以服务器包括处理单元、第一存储器、第三存储器和第四存储器为例说明,在本技术实施例中,该服务器还可以包括第二存储器和备用电源,该备用电源用于在服务器断电时为处理单元、第一存储器和第二存储器供电,在服务器断电时处理单元可以将日志数据从第一存储器写入第二存储器中,有助于保证日志数据的存储可靠性。可选地,第一存储器、第二存储器和备用电源可以构成服务器的备电模块,该备电模块可以模拟nvdimm和傲腾内存等非易失性内存,实现与非易失性内存相同的存储功能,并且相对于非易失性内存,该备电模块的硬件成本较低,更便于在服务器中实施。下述以服务器包括处理单元、第一存储器、第二存储器、第三存储器、第四存储器和备用电源为例对本技术实施例的技术方案进行说明。
95.示例地,请参考图5,其示出了本技术实施例提供的另一种数据写入方法的方法流程图。参见图5,该方法可以包括如下步骤:
96.步骤501、处理单元确定服务器当前应用的存储类型。
97.步骤502、处理单元根据服务器当前应用的存储类型,确定服务器的日志存储类型,其中,该日志存储类型与该当前应用的存储类型不同。
98.步骤503、处理单元将第一存储器的存储类型设置成该日志存储类型,其中,该日志存储类型用于指示处理单元将日志数据存入相应的存储器中,该第一存储器是易失性存储器且被该处理单元识别为非易失性存储器。
99.步骤504、处理单元接收数据库数据的写入请求。
100.步骤505、处理单元响应该写入请求,将该数据库数据写入第三存储器中,其中,该第三存储器是易失性存储器。
101.步骤506、处理单元生成该数据库数据对应的日志数据。
102.步骤507、处理单元将该数据库数据对应的日志数据写入第一存储器中。
103.步骤508、当第三存储器中存储的数据满足预设条件时,处理单元将该第三存储器中存储的数据写入第四存储器中,其中,该第四存储器是非易失性存储器。
104.上述步骤501至步骤508的实现过程可以参考图4所示实施例中的步骤401至步骤408,本技术实施例在此不再赘述。
105.步骤509、当服务器断电时,处理单元将日志数据从第一存储器写入第二存储器中,其中,该第二存储器是非易失性存储器。
106.处理单元将日志数据写入第一存储器中之后,当服务器断电(例如宕机)时,处理单元可以将日志数据从第一存储器写入第二存储器中。可选地,当服务器断电时,处理单元可以从第一存储器中读取日志数据,并将读取到的日志数据写入第二存储器中。其中,第二存储器可以是非易失性存储器,例如m.2硬盘,当服务器断电时将日志数据写入第二存储器中,可以保证日志数据的存储可靠性。
107.步骤510、当服务器上电时,处理单元将日志数据从第二存储器写入第一存储器中。
108.处理单元将日志数据从第一存储器写入第二存储器中之后,当服务器上电时,处理单元可以将日志数据从第二存储器写入第一存储器中。可选地,当服务器上电时,处理单元可以从第二存储器中读取日志数据,并将读取到的日志数据写入第一存储器中。当服务器上电时处理单元将日志数据从第二存储器写入第一存储器中,因此在服务器处于上电状态时,日志数据位于第一存储器中,第一存储器的数据读写时延较短,可以便于在数据库数据丢失时及时获取到对应的日志数据,根据日志数据恢复数据库数据。
109.综上所述,本技术实施例提供的数据写入方法,服务器包括处理单元、第一存储器、第二存储器和备用电源,该备用电源在服务器断电时为处理单元、第一存储器和第二存储器供电,该第一存储器是易失性存储器且被该处理单元识别为非易失性存储器,该第二存储器是非易失性存储器,该第一存储器的写入时延较小,该第二存储器的存储可靠性较高,该处理单元可以将日志数据写入该第一存储器中,当服务器断电时该处理单元将日志数据从第一存储器写入第二存储器中,服务器上电时该处理单元将日志数据从第二存储器写入第一存储器中,因此在服务器处于上电状态时日志数据位于第一存储器中,有助于日志数据的快速写入和读取,优化日志数据的写入时延,在服务器处于断电状态时日志数据位于第二存储器中,有助于日志数据的可靠存储。
110.在本技术实施例中,处理单元可以包括至少一个处理器,本技术实施例以处理单元包括第一处理器和第二处理器,第二处理器是服务器的cpu,第二处理器是备电模块的处理器为例说明。备用电源用于在服务器断电时为该第二处理器、第一存储器和第二存储器供电。
111.示例地,请参考图6,其示出了本技术实施例提供的再一种数据写入方法的方法流程图,该数据写入方法可以应用于服务器中。参见图6,该方法可以包括如下几个步骤:
112.步骤601、第一处理器确定服务器当前应用的存储类型。
113.步骤602、第一处理器根据服务器当前应用的存储类型,确定服务器的日志存储类型,其中,该日志存储类型与该当前应用的存储类型不同。
114.上述步骤601至步骤602的实现过程可以参考图4所示实施例中的步骤401至步骤402,本技术实施例在此不再赘述。
115.步骤603、第二处理器将第一存储器的存储类型设置成该日志存储类型,其中,该日志存储类型用于指示处理单元将日志数据存入相应的存储器中,该第一存储器是易失性存储器且被该第二处理器识别为非易失性存储器。
116.可选地,第一处理器可以将服务器的日志存储类型发送给第二处理器,使第二处理器将第一存储器的存储类型设置成该日志存储类型。第二处理器将第一存储器的存储类型设置成该日志存储类型的实现过程可以参考图4所示实施例中的步骤403,在此不再赘述。
117.步骤604、客户端向服务器发送数据库数据的写入请求。
118.其中,客户端可以根据数据库系统中管理服务器的调度向该服务器(也即是存储服务器)发送数据库数据的写入请求,该数据库数据的写入请求可以携带需要写入的数据库数据。可选地,客户端可以向管理服务器发送数据写入需求,管理服务器接收到客户端发送的数据写入需求后,可以调度数据库系统中的该服务器,并将被调度的该服务器的信息(例如标识)发送给客户端,客户端根据该服务器的信息向该服务器发送数据库数据的写入请求。其中,数据库系统可以是hbase系统,客户端与管理服务器之间可以通过zookeeper组件通信。
119.示例地,请参考图7,其示出了本技术实施例提供的一种客户端向数据库系统写数据的示意图,如图7所示,数据库系统包括管理服务器和存储服务器001~003,管理服务器调度的服务器为存储服务器001,客户端可以向该存储服务器001发送数据库数据的写入请求。
120.步骤605、第一处理器响应该数据库数据的写入请求,将该数据库数据写入第三存储器中,其中,该第三存储器是易失性存储器。
121.该步骤605的实现过程可以参考图4所示实施例中的步骤405,本技术实施例在此不再赘述。示例地,如图7所示,存储服务器001的第一处理器响应数据库数据的写入请求,将数据库数据写入该存储服务器001的第三存储器中,例如,存储服务器001的第一处理器将该数据库数据写入该存储服务器001的第三存储器的hfile文件中。
122.步骤606、第一处理器生成该数据库数据对应的日志数据。
123.该步骤606的实现过程可以参考图4所示实施例中的步骤406,本技术实施例在此不再赘述。示例地,如图7所示,存储服务器001的第一处理器生成该数据库数据对应的日志
数据后,将该日志数据记录在该存储服务器001的第三存储器的日志文件中,该日志文件可以是hlog文件。
124.步骤607、第一处理器向第二处理器发送日志数据的写入请求。
125.第一处理器生成数据库数据对应的日志数据后,可以向第二处理器发送日志数据的写入请求,该日志数据的写入请求可以携带该日志数据。可选地,第一处理器可以生成该日志数据的写入请求,然后向第二处理器发送该日志数据的写入请求。示例地,该日志数据的写入请求携带记录该日志数据的日志文件,该日志文件可以是hlog文件。
126.步骤608、第二处理器响应该日志数据的写入请求,将该日志数据写入第一存储器中。
127.该步骤608的实现过程可以参考图4所示实施例中的步骤407,本技术实施例在此不再赘述。
128.示例地,如图7所示,存储服务器001的第二处理器将日志数据写入该存储服务器001的第一存储器中,并且存储服务器001的第二处理器还向存储服务器002发送该日志数据,该存储服务器002将日志数据写入该存储服务器002的第一存储器中,存储服务器002还向存储服务器003发送该日志数据,该存储服务器003将日志数据写入该存储服务器003的第一存储器中,实现该日志数据的分布式存储。
129.步骤609、第二处理器向第一处理器发送日志数据的写入响应。
130.第二处理器将日志数据写入第一存储器中之后,可以生成日志数据的写入响应,并向第一处理器发送该日志数据的写入响应,该日志数据的写入响应可以指示日志数据落盘成功。
131.步骤610、第一处理器向客户端发送数据库数据的写入响应。
132.第一处理器接收到第二处理器发送的日志数据的写入响应后,可以确定日志数据落盘成功,第一处理器生成数据库数据的写入响应,并向客户端发送该数据库数据的写入响应,该数据库数据的写入响应可以指示数据库数据写入成功。
133.步骤611、在第三存储器中存储的数据满足预设条件时,第一处理器将第三存储器中存储的数据写入第四存储器中,其中,该第四存储器是非易失性存储器。
134.该步骤613的实现过程可以参考图4所示实施例中的步骤408,本技术实施例在此不再赘述。示例地,如图7所示,当存储服务器001的第三存储器中存储的数据满足预设条件时,该存储服务器001的第一处理器将该第三存储器中存储的数据写入该存储服务器001的第四存储器中。并且存储服务器001的第二处理器还向存储服务器002发送该第三存储器中存储的数据,该存储服务器002将接收到的该数据写入该存储服务器002的第四存储器中,存储服务器002的第二处理器还向存储服务器003发送该第三存储器中存储的数据,该存储服务器003将接收到的该数据写入该存储服务器003的第四存储器中,实现数据的分布式存储。
135.步骤612、当服务器断电时,第二处理器将日志数据从第一存储器写入第二存储器中。
136.步骤613、当服务器上电时,第二处理器将日志数据从第二存储器写入第一存储器中。
137.该步骤612至步骤613的实现过程可以参考图5所示实施例中的步骤509至步骤
510,本技术实施例在此不再赘述。示例地,如图7所示,对于存储服务器001~003中的每个服务器,当该服务器断电时,该服务器的第二处理器将日志数据从该服务器的第一存储器写入该服务器的第二存储器中,当该服务器上电时,该服务器的第二处理器将日志数据从该服务器的第二存储器写入该服务器的第一存储器中。
138.综上所述,本技术实施例提供的数据写入方法,服务器包括处理单元、第一存储器、第二存储器和备用电源,该备用电源在服务器断电时为处理单元、第一存储器和第二存储器供电,该第一存储器是易失性存储器且被该处理单元识别为非易失性存储器,该第二存储器是非易失性存储器,该第一存储器的写入时延较小,该第二存储器的存储可靠性较高,该处理单元的第二处理器可以将数据库数据对应的日志数据写入第一存储器中,当服务器断电时该第二处理器将日志数据从第一存储器写入第二存储器中,当服务器上电时该第二处理器将日志数据从第二存储器写入第一存储器中,因此在服务器处于上电状态时日志数据位于第一存储器中,有助于日志数据的快速写入和读取,优化日志数据的写入时延,在服务器处于断电状态时日志数据位于第二存储器中,有助于日志数据的可靠存储。本技术实施例提供的数据写入方法中,第一存储器、第二存储器和备用电源可以构成服务器的备电模块,采用备电模块模拟非易失性内存来存储日志数据,相比于将日志数据落盘至sata硬盘,日志数据在写入第一存储器后即返回日志数据的写入响应,可以优化数据库系统的日志数据的写入时延,日志数据的写入性能可以提升70%。相比于将日志数据落盘至额外分配的ssd硬盘,可以节省ssd硬盘的成本,降低客户的设备投资,并且第一存储器的数据写入时延优于ssd硬盘,提升数据库系统的数据写入性能。
139.需要说明的是,本技术实施例采用第一存储器存储日志数据的方案仅仅是示例性的,该第一存储器还可以用于存储其他数据量小但数据访问热度高的热点数据,提升数据处理性能。
140.请参考图8,其示出了本技术实施例提供的一种数据写入装置800的逻辑结构示意图,该数据写入装置800可以为服务器中的功能组件。参见图8,该数据写入装置800包括:
141.接收模块810,用于在接收数据库数据的写入请求;
142.写入模块820,用于将该数据库数据对应的日志数据写入第一存储器中,其中,该第一存储器是易失性存储器且被处理单元识别为非易失性存储器。
143.可选地,请继续参考图8,该数据写入装置800还包括:确定模块830,用于:
144.在写入模块820将数据库数据对应的日志数据写入第一存储器中之前,确定服务器当前应用的存储类型;
145.根据当前应用的存储类型,确定服务器的日志存储类型,其中,该日志存储类型与该当前应用的存储类型不同。
146.可选地,请继续参考图8,该数据写入装置800还包括:
147.设置模块840,用于将第一存储器的存储类型设置成该日志存储类型,其中,该日志存储类型用于指示处理单元将日志数据存入相应的存储器中。
148.可选地,该日志存储类型是nvdimm。
149.可选地,服务器还包括第二存储器和备用电源,其中,该备用电源用于在该服务器断电时为处理单元、第一存储器和第二存储器供电,该写入模块820,还用于当该服务器断电时,将该日志数据从第一存储器写入第二存储器中,其中,该第二存储器是非易失性存储
器。
150.可选地,该写入模块820,还用于当该服务器上电时,将日志数据从第二存储器写入第一存储器中。
151.可选地,该第一存储器为ram,该第二存储器为m.2硬盘。
152.可选地,该写入模块820,还用于:
153.响应写入请求,将数据库数据写入第三存储器中,其中,该第三存储器是易失性存储器;
154.当该第三存储器中存储的数据满足预设条件时,将该第三存储器中存储的数据写入第四存储器中,其中,该第四存储器是非易失性存储器。
155.综上所述,本技术实施例提供的数据写入装置,服务器中的第一存储器是易失性存储器且被该服务器的处理单元识别为非易失性存储器,该第一存储器的写入时延较小,该处理单元可以将日志数据写入该第一存储器中,有助于优化日志数据的写入时延,改善数据库系统的性能。
156.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,当该计算机程序在计算机上运行时,使该计算机执行上述实施例提供的数据写入方法的全部或部分步骤。
157.本技术实施例提供了一种数据库系统,该数据库系统包括管理服务器和多个存储服务器,该多个存储服务器中的至少一个为如图3或图8所示的数据写入装置。
158.本技术实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述实施例提供的数据写入方法的全部或部分步骤。
159.本技术实施例提供了一种芯片,该芯片包括可编程逻辑电路和/或程序指令,当该芯片运行时用于实现上述实施例提供的数据写入方法的全部或部分步骤。
160.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
161.在本技术中,术语“第一”、“第二”和“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”指一个或多个,“多个”指两个或两个以上,除非另有明确的限定。术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
162.本技术实施例提供的方法实施例和装置实施例等不同类型的实施例均可以相互
参考,本技术实施例对此不做限定。本技术实施例提供的方法实施例操作的先后顺序能够进行适当调整,操作也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内,因此不再赘述。
163.在本技术提供的实施例中,应该理解到,所揭露的装置等可以通过其它的构成方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
164.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元描述的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
165.以上所述,仅为本技术的示例性实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜