CN113535721A - 一种数据写入方法及装置 - Google Patents
一种数据写入方法及装置 Download PDFInfo
- Publication number
- CN113535721A CN113535721A CN202110777407.5A CN202110777407A CN113535721A CN 113535721 A CN113535721 A CN 113535721A CN 202110777407 A CN202110777407 A CN 202110777407A CN 113535721 A CN113535721 A CN 113535721A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- written
- load
- preset threshold
- 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 111
- 230000008569 process Effects 0.000 claims abstract description 75
- 238000013500 data storage Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
公开了一种数据写入方法及装置,应用于数据库,所述数据库包括多个数据分库;预先为每个数据分库配置不同的数据缓存,以及配置相互独立工作的第一进程、第二进程,该方法包括:第一进程执行:接收业务服务器下发的写数据请求;解析所述写数据请求中携带的待写入数据;判断所述数据库的负载是否超过预设的阈值;若所述数据库的负载超过预设的阈值,将所述待写入数据存储至目标数据分库对应的数据缓存;所述目标数据分库为所述待写入数据原本要写入的数据分库。第二进程执行:确定所述数据库的负载状况;在确定所述数据库的负载未超过预设的阈值的情况下,读取任一数据分库对应的数据缓存中的待写入数据,将所读取的待写入数据写入该数据分库。
Description
技术领域
本说明书实施例涉及数据存储技术领域,尤其涉及一种数据写入方法及装置。
背景技术
TPS(Transaction Per Second,每秒事务处理量),一个表达系统处理能力的性能指标,通常可以用它作为衡量数据库数据写入能力的重要指标。
在第三方支付中,随着用户数量的增多,第三方支付实时交易量级日益增大,传统的在数据库中实时写入数据的方式已出现瓶颈,例如单机oracle的TPS为1万左右,显然无法满足实时交易量级日益增大的需求。
而为了解决上述问题,目前普遍采用的方式是:增加多台存储服务器,在增加的存储服务器上分别配置与原有数据库类型一致的数据库,将第三方支付中业务服务器产生的数据进行拆分,写入到多台存储服务器上的数据库。如此一来,相应的会增加硬件成本,同时也额外增加了存储服务器的维护成本。
发明内容
针对上述技术问题,本说明书实施例提供一种数据写入方法及装置,技术方案如下:
一种数据写入方法,应用于数据库,所述数据库包括多个数据分库;预先为每个数据分库配置不同的数据缓存,以及配置相互独立工作的第一进程、第二进程,该方法包括:
所述第一进程执行以下操作:
接收业务服务器下发的写数据请求;
解析所述写数据请求中携带的待写入数据;
判断所述数据库的负载是否超过预设的阈值;
若所述数据库的负载超过预设的阈值,将所述待写入数据存储至目标数据分库对应的数据缓存;所述目标数据分库为所述待写入数据原本要写入的数据分库;
所述第二进程执行以下操作:
确定所述数据库的负载状况;
在确定所述数据库的负载未超过预设的阈值的情况下,读取任一数据分库对应的数据缓存中的待写入数据,将所读取的待写入数据写入该数据分库。
一种数据写入装置,应用于数据库,所述数据库包括多个数据分库;预先为每个数据分库配置不同的数据缓存,以及配置相互独立工作的第一进程、第二进程,该装置包括:
请求接收模块,用于第一进程接收业务服务器下发的写数据请求;
请求解析模块,用于解析所述写数据请求中携带的待写入数据;
判断模块,用于判断所述数据库的负载是否超过预设的阈值;
数据存储模块,用于若所述数据库的负载超过预设的阈值,将所述待写入数据存储至目标数据分库对应的数据缓存;所述目标数据分库为所述待写入数据原本要写入的数据分库;
确定模块,用于第二进程确定所述数据库的负载状况;
数据读取模块,用于在确定所述数据库的负载未超过预设的阈值的情况下,读取任一数据分库对应的数据缓存中的待写入数据;
数据写入模块,用于将所读取的待写入数据写入该数据分库。
本说明书实施例所提供的技术方案,在不增加成本的情况下,满足实时交易量级日益增大的需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是现有技术方案中业务服务器与存储服务器的连接示意图;
图2是本说明书实施例的数据库分库与数据缓存文件的对应关系示意图;
图3是本说明书实施例的数据写入方法的流程示意图;
图4是本说明书实施例的数据写入装置的结构示意图;
图5是用于配置本说明书实施例装置的一种设备的结构示意图。
具体实施方式
TPS作为一个表达系统处理能力的性能指标,通常也用它来衡量数据库的数据写入能力,不同类型的数据库的数据写入能力不同。例如单机oracle的TPS为1万左右。
在第三方支付中,随着用户数量的增多,第三方支付实时交易量级日益增大,尤其在特定的时刻,实时交易量级剧增,传统的在数据库中实时写入数据的方式已出现瓶颈,例如上述所说的单机oracle的TPS为1万左右,显然无法满足实时交易量级日益增大的需求。
而为了解决上述问题,目前普遍采用的方式是:在原有存储服务器的基础上增加多台存储服务器,例如增加三台存储服务器,在增加的存储服务器上分别配置与原有数据库类型一致的数据库,例如在原有存储服务器A上配置的数据库为oracle,则在存储服务器B、存储服务器C、存储服务器D上分别配置oracle数据库,将第三方支付中业务服务器产生的数据进行拆分,例如将数据a拆分成数据a1、数据a2、数据a3、数据a4,将数据a1写入存储服务器A,数据a2写入存储服务器B,数据a3写入存储服务器C,数据a4写入存储服务器D,其连接示意图如图1所示。如此一来,相应的会增加硬件成本,同时也额外增加了存储服务器的维护成本。
本说明书实施例所提供的技术方案,在原有服务器配置的前提下,预先配置与数据库对应的数据缓存,在数据写入的过程中,通过判断数据库的负载状况,来决定待写入数据直接写入数据库,还是存储至数据缓存,后续在闲时将数据缓存中的待写入数据写入数据库。如此一来,在不增加成本的情况下,依然可以满足实时交易量级日益增大的需求。
具体的,本说明书实施例提供的技术方案如下:
预先配置与数据库对应的数据缓存,以及配置相互独立工作的第一进程、第二进程;
第一进程接收业务服务器下发的写数据请求;解析所述写数据请求中携带的待写入数据;判断数据库的负载是否超过预设的阈值;若是,将所述待写入数据存储至所述数据缓存;第二进程确定数据库的负载状况;在确定数据库的负载未超过预设的阈值的情况下,读取所述数据缓存中的待写入数据,将所读取的待写入数据写入数据库。
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
在执行本说明书实施例提供的技术方案之前,预先配置与数据库对应的数据缓存,以及配置相互独立工作的第一进程、第二进程;
一般在数据库的使用过程中,为了充分使用某个数据库,一般都会选择分库分表,例如对于oracle数据库,一般会建立多个分库,每个分库中存在不同的数据表,例如所建立的分库为DB_1、DB_2……DB_N。在上述场景下,预先配置与数据库对应的数据缓存,即为预先配置与数据库分库对应的数据缓存,其中所建立的数据缓存可以是Cache内存空间,也可以是数据缓存文件,本说明书实施例对此不作限定。以数据缓存文件为例,预先配置与数据库分库对应的数据缓存文件,即File_1、File_2……File_N,数据库分库与数据缓存文件的对应关系图如图2所示。
另外,配置相互独立工作的第一进程以及第二进程,其中第一进程以及第二进程执行的步骤如下所示:
如图3所示,为本说明书实施例提供的数据写入方法的流程示意图,该方法可以包括以下步骤:
其中,第一进程执以下步骤(S301~S304):
S301,第一进程接收业务服务器下发的写数据请求;
在原有业务服务器与存储服务器进行连接的情况下,如业务服务器与存储服务器A连接的情况下,第一进程接收业务服务器下发的写数据请求,其中在同一时刻,第一进程可以同时接收多个写数据请求,例如接收2万条写数据请求。
S302,解析所述写数据请求中携带的待写入数据;
针对S301中所接收的写数据请求,解析写数据请求中携带的待写入数据。一般写数据请求具有固定的格式,待写入数据在写数据请求中的位置固定,意味着写数据请求的发送方与接收方预先约定待写入数据在写数据请求中的拼接位置,写数据请求的发送方将待写入数据拼接至写数据请求中的指定位置,后续写数据请求的接收方根据双方约定的拼接位置,从写数据请求中的指定位置解析出待写入数据。例如,在支付场景下,待写入数据可以是交易数据,交易数据可以是交易流水号、收款方ID、收款方账户、付款方ID、付款方账户、消费金额等。
S303,判断数据库的负载是否超过预设的阈值;
一般用TPS来衡量数据库的数据写入能力,意味着数据库每秒数据写入量存在上限,例如,单击oracle的TPS为1万左右,数据库每秒数据写入量超过上限的话,数据库超负荷运行,可能导致数据库崩溃,无法提供数据写入或读取服务,因此需要确定数据库的负载状况,即判断数据库的负载是否超过预设的阈值。
不同类型的数据库的TPS不同,阈值可以参考实际使用的数据库的类型来进行设置,例如以oracle数据库为例,oracle数据库的TPS为10000,阈值则可以是每秒写入上限10000(一般设置的阈值会略小于数据库的TPS,例如9500),相应的判断数据库的负载是否超过预设的阈值,可以是判断当前数据库每秒数据写入量是否超过预设的每秒写入上限10000,例如数据库为oracle,当前oracle数据库每秒数据写入量为9000,oracle数据库的TPS为10000,很明显数据库的负载未超过预设的阈值。
S304,若是,将所述待写入数据存储至所述数据缓存;
针对S303中的判断结果,若数据库的负载超过预设的阈值,则表示数据库可能在超负荷运行,需要将原本要写入数据库的待写入数据暂时存储至数据缓存。
其中待写入数据暂时存储至数据缓存的过程中,例如原本要写入数据库分库DB_1的待写入数据,暂时存储至与数据库分库DB_1对应的数据缓存文件File_1,原本要写入数据库分库DB_2的待写入数据,暂时存储至与数据库分库DB_2对应的数据缓存文件File_2,以此类推。
其中在将待写入数据存储至数据缓存之前,确定写数据请求对应的业务类型,判断写数据请求对应的业务类型是否满足预设的规则,若数据库的负载超过预设的阈值且写数据请求对应的业务类型满足预设的规则,将待写入数据暂时存储至数据缓存。其中值得注意的是,判断数据库的负载是否超过预设的阈值以及确定写数据请求对应的业务类型,判断写数据请求对应的业务类型是否满足预设的规则,两者没有严格的先后顺序,也可以是先执行前者,然后执行后者,或者先执行后者,然后执行前者,或者两者同时执行,本说明书对此不作限定。
对于某些特定业务类型的业务,可以根据实时性(实时性表示的是业务产生的待写入数据是否需要实时写入数据库)划分等级,对于某些特定业务类型的业务,产生的待写入数据需要实时写入数据库,可以将该业务类型划分为第一等级(优先级最高),对于某些特定业务类型的业务,产生的待写入数据对于实时性没有较高的需求,可以将该业务类型划分为第二等级(弱优先级),以此类推,可以根据实际需要划分等级。因此上述判断写数据请求对应的业务类型是否满足预设的规则,可以是判断写数据请求对应的业务类型是否在第一等级或第二等级。
在数据库的负载超过预设的阈值,且待写入数据无需实时写入数据库的情况下,可以将待写入数据暂时存储至数据缓存。
另外,若数据库的负载未超过预设的阈值,表示数据库正常运行,则可以将待写入数据直接写入数据库,不必考虑上述实时性的因素。
第二进程执行以下步骤(S305~S306):
S305,第二进程确定数据库的负载状况;
对于数据缓存中的待写入数据,可以在闲时写入数据库,即数据库的负载未超过预设的阈值的情况下写入数据库,因此第二进程需要确定数据库的负载状况,具体的确定数据库的负载状况存在以下方式:
方式一:第二进程按照预设的周期判断数据库的负载是否超过预设的阈值,以确定数据库的负载状况。例如第二进程每隔6个小时判断一次,以确定数据库的负载状况。
方式二:第二进程接收第一进程发送的针对数据库的负载是否超过预设阈值的判断结果,根据第一进程判断数据库的负载是否超过预设阈的结果,以确定数据库的负载状况。例如第一进程判断数据库的负载未超过预设的阈值,将此结果发送至第二进程,第二进程接收到判断结果,确定数据库的负载未超过预设的阈值。
S306,在确定数据库的负载未超过预设的阈值的情况下,读取所述数据缓存中的待写入数据,将所读取的待写入数据写入数据库。
针对S305中所确定的数据库的负载状况,在确定数据库的负载未超过预设的阈值的情况下,读取数据缓存中的待写入数据,将读取的待写入数据写入数据库中。
其中在将读取的待写入数据写入数据库的过程中,例如从数据库缓存文件File_1读取待写入数据,将读取的待写入数据写入与数据库缓存文件File_1对应的数据库分库DB_1,从数据库缓存文件File_2读取待写入数据,将读取的待写入数据写入与数据库缓存文件File_2对应的数据库分库DB_2,以此类推。
通过上述对本说明书提供的技术方案的描述,在原有服务器配置的前提下,预先配置与数据库对应的数据缓存,在数据写入的过程中,通过判断数据库的负载状况以及判断写数据请求对应的业务类型是否满足预设的规则,来决定待写入数据直接写入数据库,还是暂时存储至数据缓存,后续在闲时(数据库的负载未超过预设的阈值的情况下)将数据缓存中的待写入数据写入数据库。如此一来,在不增加成本的情况下,依然可以满足实时交易量级日益增大的需求。
相对于上述提供的技术方案,本说明书实施例提供另一种技术方案,第二进程可以接收用户输入的数据缓存数据读取指令,即通过人工的方式触发读取数据缓存中的待写入数据,后续第二进程将读取的待写入数据写入数据库,至于配置与数据库对应的数据缓存,配置第一进程,以及第一进程执行的操作与上述技术方案类似,在此不再一一赘述。
相对于上述方法实施例,本说明书实施例还提供一种数据写入装置,如图4所示,可以包括第一进程模块、第二进程模块,第一进程模块可以包括:请求接收模块410、请求解析模块420、判断模块430、数据存储模块440,第二进程模块可以包括:确定模块450、数据读取模块460、数据写入模块470。
请求接收模块410,用于接收业务服务器下发的写数据请求;
请求解析模块420,用于解析所述写数据请求中携带的待写入数据;
判断模块430,用于判断数据库的负载是否超过预设的阈值;
数据存储模块440,用于若是,将所述待写入数据存储至所述数据缓存;
确定模块450,用于确定数据库的负载状况;
数据读取模块460,用于在确定数据库的负载未超过预设的阈值的情况下,读取所述数据缓存中的待写入数据;
数据写入模块470,用于将所读取的待写入数据写入数据库。
根据本说明书提供的一种具体实施方式,所述数据存储模块440具体用于:
确定所述写数据请求对应的业务类型;
判断所述写数据请求对应的业务类型是否满足预设的规则;
若数据库的负载超过预设的阈值且所述写数据请求对应的业务类型满足预设的规则,将所述待写入数据存储至所述数据缓存。
根据本说明书提供的一种具体实施方式,所述还包括:
写入模块480,用于若数据库的负载未超过预设的阈值,将所述待写入数据直接写入数据库。
根据本说明书提供的一种具体实施方式,所述确定模块450具体用于:
按照预设的周期判断数据库的负载是否超过预设的阈值,以确定数据库的负载状况。
根据本说明书提供的一种具体实施方式,所述确定模块450具体用于:
接收第一进程发送的针对数据库的负载是否超过预设阈值的判断结果,以确定数据库的负载状况。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
通过上述对本说明书提供的技术方案的描述,在原有服务器配置的前提下,预先配置与数据库对应的数据缓存,在数据写入的过程中,通过判断数据库的负载状况以及判断写数据请求对应的业务类型是否满足预设的规则,来决定待写入数据直接写入数据库,还是暂时存储至数据缓存,后续在闲时(数据库的负载未超过预设的阈值的情况下)将数据缓存中的待写入数据写入数据库。如此一来,在不增加成本的情况下,依然可以满足实时交易量级日益增大的需求。
本说明书实施例还提供一种计算机设备,如图5所示,该设备可以包括:处理器510、存储器520、输入/输出接口530、通信接口540和总线550。其中处理器510、存储器520、输入/输出接口530和通信接口540通过总线550实现彼此之间在设备内部的通信连接。
处理器510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器520中,并由处理器510来调用执行。
输入/输出接口530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线550包括一通路,在设备的各个组件(例如处理器510、存储器520、输入/输出接口530和通信接口540)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器510、存储器520、输入/输出接口530、通信接口540以及总线550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的数据写入方法。该方法至少包括:
一种数据写入方法,预先配置与数据库对应的数据缓存,以及配置相互独立工作的第一进程、第二进程,该方法包括:
第一进程接收业务服务器下发的写数据请求;
解析所述写数据请求中携带的待写入数据;
判断数据库的负载是否超过预设的阈值;
若是,将所述待写入数据存储至所述数据缓存;
第二进程确定数据库的负载状况;
在确定数据库的负载未超过预设的阈值的情况下,读取所述数据缓存中的待写入数据,将所读取的待写入数据写入数据库。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (11)
1.一种数据写入方法,应用于数据库,所述数据库包括多个数据分库;预先为每个数据分库配置不同的数据缓存,以及配置相互独立工作的第一进程、第二进程,该方法包括:
所述第一进程执行以下操作:
接收业务服务器下发的写数据请求;
解析所述写数据请求中携带的待写入数据;
判断所述数据库的负载是否超过预设的阈值;
若所述数据库的负载超过预设的阈值,将所述待写入数据存储至目标数据分库对应的数据缓存;所述目标数据分库为所述待写入数据原本要写入的数据分库;
所述第二进程执行以下操作:
确定所述数据库的负载状况;
在确定所述数据库的负载未超过预设的阈值的情况下,读取任一数据分库对应的数据缓存中的待写入数据,将所读取的待写入数据写入该数据分库。
2.根据权利要求1所述的方法,所述若所述数据库的负载超过预设的阈值,将所述待写入数据存储至目标数据分库对应的数据缓存,包括:
确定所述写数据请求对应的业务类型;
判断所述写数据请求对应的业务类型是否满足预设的规则;
若所述数据库的负载超过预设的阈值且所述写数据请求对应的业务类型满足预设的规则,将所述待写入数据存储至目标数据分库对应的数据缓存。
3.根据权利要求1所述的方法,所述方法还包括:
若所述数据库的负载未超过预设的阈值,所述第一进程将所述待写入数据直接写入原本要写入的数据分库。
4.根据权利要求1所述的方法,所述第二进程确定所述数据库的负载状况,包括:
所述第二进程按照预设的周期判断数所述据库的负载是否超过预设的阈值,以确定数据库的负载状况。
5.根据权利要求1所述的方法,所述第二进程确定数据库的负载状况,包括:
所述第二进程接收所述第一进程发送的针对所述数据库的负载是否超过预设阈值的判断结果,以确定所述数据库的负载状况。
6.一种数据写入装置,应用于数据库,所述数据库包括多个数据分库;预先为每个数据分库配置不同的数据缓存,以及配置相互独立工作的第一进程、第二进程,该装置包括:
请求接收模块,用于第一进程接收业务服务器下发的写数据请求;
请求解析模块,用于解析所述写数据请求中携带的待写入数据;
判断模块,用于判断所述数据库的负载是否超过预设的阈值;
数据存储模块,用于若所述数据库的负载超过预设的阈值,将所述待写入数据存储至目标数据分库对应的数据缓存;所述目标数据分库为所述待写入数据原本要写入的数据分库;
确定模块,用于第二进程确定所述数据库的负载状况;
数据读取模块,用于在确定所述数据库的负载未超过预设的阈值的情况下,读取任一数据分库对应的数据缓存中的待写入数据;
数据写入模块,用于将所读取的待写入数据写入该数据分库。
7.根据权利要求6所述的装置,所述数据存储模块具体用于:
确定所述写数据请求对应的业务类型;
判断所述写数据请求对应的业务类型是否满足预设的规则;
若所述数据库的负载超过预设的阈值且所述写数据请求对应的业务类型满足预设的规则,将所述待写入数据存储至目标数据分库对应的数据缓存。
8.根据权利要求6所述的装置,所述装置还包括:
写入模块,用于若数据库的负载未超过预设的阈值,将所述待写入数据直接写入原本要写入的数据分库。
9.根据权利要求6所述的装置,所述确定模块具体用于:
第二进程按照预设的周期判断所述数据库的负载是否超过预设的阈值,以确定所述数据库的负载状况。
10.根据权利要求6所述的装置,所述确定模块具体用于:
第二进程接收所述第一进程发送的针对所述数据库的负载是否超过预设阈值的判断结果,以确定所述数据库的负载状况。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110777407.5A CN113535721A (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811009759.0A CN109359118B (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
CN202110777407.5A CN113535721A (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811009759.0A Division CN109359118B (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535721A true CN113535721A (zh) | 2021-10-22 |
Family
ID=65350375
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811009759.0A Active CN109359118B (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
CN202110777407.5A Pending CN113535721A (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811009759.0A Active CN109359118B (zh) | 2018-08-31 | 2018-08-31 | 一种数据写入方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN109359118B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444225B (zh) * | 2020-03-27 | 2024-03-26 | 中国人民银行清算总中心 | 通用指标解析方法及装置 |
CN113553372A (zh) * | 2020-04-26 | 2021-10-26 | 北京沃东天骏信息技术有限公司 | 针对数据库的写入方法、装置、计算设备及介质 |
CN113835225B (zh) * | 2020-06-24 | 2023-08-08 | 宏碁股份有限公司 | 头戴式显示装置及应用该装置的画面显示方法 |
CN113297232B (zh) * | 2020-07-31 | 2024-03-01 | 阿里巴巴集团控股有限公司 | 一种基于数据库分区的数据更新方法、装置及系统 |
CN112527809B (zh) * | 2020-12-10 | 2023-10-27 | 盛立安元科技(杭州)股份有限公司 | 一种数据库数据写入方法、装置、设备及存储介质 |
CN113641709A (zh) * | 2021-08-11 | 2021-11-12 | 杭州安恒信息技术股份有限公司 | 数据库写数据方法及读数据方法、数据库 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631940A (zh) * | 2013-12-09 | 2014-03-12 | 中国联合网络通信集团有限公司 | 一种应用于hbase数据库的数据写入方法及系统 |
CN105447136A (zh) * | 2015-11-20 | 2016-03-30 | 上海斐讯数据通信技术有限公司 | 基于WiFi智能插座的提高数据库写入速度的方法及系统 |
CN105956063A (zh) * | 2016-04-27 | 2016-09-21 | 华自科技股份有限公司 | 多采测点的数据存储方法与系统 |
CN107122457A (zh) * | 2017-04-26 | 2017-09-01 | 努比亚技术有限公司 | 记录网络用户行为数据的方法及其装置、计算机可读介质 |
CN107577810A (zh) * | 2017-09-27 | 2018-01-12 | 北京小米移动软件有限公司 | 数据写入方法、装置及计算机可读存储介质 |
US20180096006A1 (en) * | 2016-09-30 | 2018-04-05 | Microsoft Technology Licensing, Llc | Workload-driven recommendations for columnstore and rowstore indexes in relational databases |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4378335B2 (ja) * | 2005-09-09 | 2009-12-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム |
CN101799832A (zh) * | 2010-03-31 | 2010-08-11 | 山东高效能服务器和存储研究院 | 巨量数据一次性快速写入数据库的方法 |
CN103870570B (zh) * | 2014-03-14 | 2018-04-27 | 上海艾讯云计算有限公司 | 一种基于远程日志备份的 HBase 数据可用性及持久性的方法 |
CN105760232B (zh) * | 2016-02-19 | 2019-03-22 | 四川长虹电器股份有限公司 | 用于ios应用的离线缓存方法及系统 |
CN107357915A (zh) * | 2017-07-19 | 2017-11-17 | 郑州云海信息技术有限公司 | 一种数据存储方法及系统 |
-
2018
- 2018-08-31 CN CN201811009759.0A patent/CN109359118B/zh active Active
- 2018-08-31 CN CN202110777407.5A patent/CN113535721A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631940A (zh) * | 2013-12-09 | 2014-03-12 | 中国联合网络通信集团有限公司 | 一种应用于hbase数据库的数据写入方法及系统 |
CN105447136A (zh) * | 2015-11-20 | 2016-03-30 | 上海斐讯数据通信技术有限公司 | 基于WiFi智能插座的提高数据库写入速度的方法及系统 |
CN105956063A (zh) * | 2016-04-27 | 2016-09-21 | 华自科技股份有限公司 | 多采测点的数据存储方法与系统 |
US20180096006A1 (en) * | 2016-09-30 | 2018-04-05 | Microsoft Technology Licensing, Llc | Workload-driven recommendations for columnstore and rowstore indexes in relational databases |
CN107122457A (zh) * | 2017-04-26 | 2017-09-01 | 努比亚技术有限公司 | 记录网络用户行为数据的方法及其装置、计算机可读介质 |
CN107577810A (zh) * | 2017-09-27 | 2018-01-12 | 北京小米移动软件有限公司 | 数据写入方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109359118A (zh) | 2019-02-19 |
CN109359118B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359118B (zh) | 一种数据写入方法及装置 | |
TWI743458B (zh) | 一種並行化執行區塊鏈交易的方法、裝置及系統 | |
CN110225104B (zh) | 数据获取方法、装置及终端设备 | |
CN107423085B (zh) | 用于部署应用的方法和装置 | |
CN104321780A (zh) | 用于使用持久信任日志来监测并断言信任等级的设备、系统、和方法 | |
CN110020846B (zh) | 一种转账业务处理方法及系统 | |
CN107861691B (zh) | 一种多控存储系统的负载均衡方法和装置 | |
CN110244963B (zh) | 数据更新方法、装置及终端设备 | |
CN111506580B (zh) | 一种基于中心化块链式账本的交易存储方法 | |
CN110020383B (zh) | 一种页面数据请求处理方法及装置 | |
US20190107929A1 (en) | Method and device for loading content of page, and electronic device | |
CN110704833A (zh) | 数据权限配置方法、设备、电子设备及存储介质 | |
CN109345249B (zh) | 一种支付失败处理方法及装置 | |
CN111464319B (zh) | 一种基于中心化块链式账本的交易存储、签名校验方法 | |
CN111913807A (zh) | 一种基于多个存储区域的事件处理方法、系统及装置 | |
CN110019538B (zh) | 一种数据表切换方法及装置 | |
CN112711955A (zh) | 一种nfc的信息传输方法、信息传输装置及终端 | |
CN111049883A (zh) | 分布式表格系统的数据读取方法、装置及系统 | |
CN108021464B (zh) | 一种应用程序响应数据的兜底处理的方法以及装置 | |
CN109656805B (zh) | 用于业务分析的代码链路的生成方法、装置及业务服务器 | |
CN108920563B (zh) | 一种数据库切换方法及装置 | |
CN110046237B (zh) | 一种对话式交互处理方法及装置 | |
CN107705089B (zh) | 业务处理方法、装置及设备 | |
CN112258300B (zh) | 一种针对订单生成的审核方法及装置 | |
CN110264211B (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 |