CN110866066B - 一种业务处理方法及装置 - Google Patents
一种业务处理方法及装置 Download PDFInfo
- Publication number
- CN110866066B CN110866066B CN201911065620.2A CN201911065620A CN110866066B CN 110866066 B CN110866066 B CN 110866066B CN 201911065620 A CN201911065620 A CN 201911065620A CN 110866066 B CN110866066 B CN 110866066B
- Authority
- CN
- China
- Prior art keywords
- data
- request
- queue
- balance
- data balance
- 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.)
- Active
Links
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/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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提出一种业务处理方法及装置,该方法包括:获取业务请求;当所述业务请求为数据读写请求时,将所述业务请求添加到预设的数据读写队列中;当所述业务请求为数据平衡请求时,将所述业务请求添加到预设的数据平衡队列中;其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理。上述处理使得数据读写处理和数据平衡处理不会相互影响,因此提高了数据处理效率,尤其是提高了数据读写业务的处理效率。
Description
技术领域
本申请涉及分布式存储技术领域,尤其涉及一种业务处理方法及装置。
背景技术
CEPH是开源的统一分布式存储系统,是目前最主流的开源存储项目之一。当向CEPH集群写入数据时,首先确定与写入数据对应的主OSD(Object Store Daemon,对象存储守护程序)。主OSD收到数据写入请求后,将请求插入到队列中,主OSD的工作线程从队列中获取请求,并逐个处理请求。
分布式存储系统的一种重要特点是具备伸缩能力,当存储容量或性能不足时可以向存储系统中添加磁盘或节点。当主OSD检测到存储集群磁盘或者节点发生变化时,主动发起数据平衡操作,构建数据平衡请求,并将请求插入到队列中。
CEPH通过IO优先级来区分不同的IO类型,OSD的工作线程按照优先级顺序逐个处理队列中的IO请求。通常情况下,数据平衡请求的优先级高于业务IO请求的优先级,因此当队列中有数据平衡请求时,会导致业务IO长时间无法得到处理,整体上影响数据读写业务的处理效率。
发明内容
基于上述现有技术的缺陷和不足,本申请提出一种业务处理方法及装置,能够提升数据处理效率,尤其是提高数据读写业务的处理效率。
一种业务处理方法,包括:
获取业务请求;
当所述业务请求为数据读写请求时,将所述业务请求添加到预设的数据读写队列中;
当所述业务请求为数据平衡请求时,将所述业务请求添加到预设的数据平衡队列中;
其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;
所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理。
可选的,所述方法还包括:
预先配置数据处理队列数量、数据平衡队列数量、每数据处理队列和每数据平衡队列的线程数、数据平衡带宽、对等操作PEERING队列线程数、IO优先级临界值和数据IO优先级;
其中,所述数据处理队列数量和所述数据平衡队列数量均大于等于1。
可选的,所述将所述业务请求添加到预设的数据平衡队列中,包括:
根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列;
将所述业务请求添加到所述目标数据平衡队列中。
可选的,所述根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列,包括:
通过计算所述业务请求对应的归置组编号除以所述数据平衡队列数量的余数,确定数据平衡队列索引;
根据所述数据平衡队列索引,从数据平衡队列中确定目标数据平衡队列。
可选的,所述方法还包括:
生成对等操作Peering请求,并将所述对等操作Peering请求添加到预设的对等操作PEERING队列中。
可选的,所述获取业务请求,包括:
从所述对等操作PEERING队列中读取对等操作Peering请求;
根据读取的对等操作Peering请求,构建得到数据平衡请求。
可选的,与所述数据平衡队列对应的线程依次处理所述数据平衡队列中的数据平衡请求时,具体包括:
读取位于所述数据平衡队列首部的数据平衡请求;
判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求;
如果满足所述数据平衡请求的带宽需求,则处理所述数据平衡请求;
如果不满足所述数据平衡请求的带宽需求,则等待空闲的数据平衡带宽满足所述数据平衡请求的带宽需求后,处理所述数据平衡请求。
可选的,如果当前空闲的数据平衡带宽不满足所述数据平衡请求的带宽需求,所述方法还包括:
判断数据读取带宽是否有空闲;
如果所述数据读取带宽有空闲,则将空闲的数据读取带宽设定为数据平衡带宽。
一种业务处理装置,包括:
请求获取单元,用于获取业务请求;
第一处理单元,用于当所述业务请求为数据读写请求时,将所述业务请求添加到预设的数据读写队列中;
第二处理单元,用于当所述业务请求为数据平衡请求时,将所述业务请求添加到预设的数据平衡队列中;
其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;
所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理。
可选的,所述装置还包括:
预处理单元,用于预先配置数据处理队列数量、数据平衡队列数量、每数据处理队列和每数据平衡队列的线程数、数据平衡带宽、对等操作PEERING队列线程数、IO优先级临界值和数据IO优先级;
其中,所述数据处理队列数量和所述数据平衡队列数量均大于等于1。
可选的,所述第二处理单元将所述业务请求添加到预设的数据平衡队列中时,具体用于:
根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列;
将所述业务请求添加到所述目标数据平衡队列中。
可选的,所述第二处理单元根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列时,具体用于:
通过计算所述业务请求对应的归置组编号除以所述数据平衡队列数量的余数,确定数据平衡队列索引;
根据所述数据平衡队列索引,从数据平衡队列中确定目标数据平衡队列。
可选的,所述装置还包括:
第三处理单元,用于生成对等操作Peering请求,并将所述对等操作Peering请求添加到预设的对等操作PEERING队列中。
可选的,所述请求获取单元获取业务请求时,具体用于:
从所述对等操作PEERING队列中读取对等操作Peering请求;
根据读取的对等操作Peering请求,构建得到数据平衡请求。
可选的,与所述数据平衡队列对应的线程依次处理所述数据平衡队列中的数据平衡请求时,具体包括:
读取位于所述数据平衡队列首部的数据平衡请求;
判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求;
如果满足所述数据平衡请求的带宽需求,则处理所述数据平衡请求;
如果不满足所述数据平衡请求的带宽需求,则等待空闲的数据平衡带宽满足所述数据平衡请求的带宽需求后,处理所述数据平衡请求。
可选的,如果当前空闲的数据平衡带宽不满足所述数据平衡请求的带宽需求,所述方法还包括:
判断数据读取带宽是否有空闲;
如果所述数据读取带宽有空闲,则将空闲的数据读取带宽设定为数据平衡带宽。
本申请提出的业务处理方法对于数据读写请求和数据平衡请求,分别添加到对应的数据读写队列和数据平衡队列中进行处理,使得数据读写请求和数据平衡请求分属于不同的队列中被相互独立地处理,从而使得数据读写处理和数据平衡处理不会相互影响,因此提高了数据处理效率,尤其是提高了数据读写业务的处理效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请实施例提供的一种业务处理方法的流程示意图;
图2是本申请实施例提供的对数据读写请求进行处理的流程示意图;
图3是本申请实施例提供的另一种业务处理方法的流程示意图;
图4是本申请实施例提供的主OSD构建对等操作Peering请求的流程示意图;
图5(a)和图5(b)是本申请实施例提供的单个OSD异常和单个节点异常时,利用本申请实施例技术方案对业务进行优化前和优化后的数据读写性能对比示意图;
图6是本申请实施例提供的一种业务处理装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提出一种业务处理方法,该方法应用于CEPH分布式存储系统,具体是应用于CEPH分布式存储系统中的OSD,尤其是主OSD。
本申请实施例设定,在CEPH分布式存储系统中,设置有一个以上的数据处理队列,即数据IO队列,同时设置一个以上的数据平衡队列,以及一个对等操作PEERING队列。
其中,上述的数据处理队列,也就是数据IO队列,用于存储业务IO请求,也就是数据读写请求。该数据IO队列的线程从该数据IO队列中逐个读取业务IO请求并进行与请求相对应的数据读写操作。
可选的,基于数据IO业务的优先级不同,上述的数据IO队列可以分为不同优先级的数据IO队列,例如分为普通优先级的数据IO队列,或高优先级的数据IO队列等。
上述的数据平衡队列,用于存储数据平衡请求。该数据平衡队列的线程从该数据平衡队列中逐个读取数据平衡请求并进行与请求对应的数据平衡操作。
上述的对等操作PEERING队列,用于存储对等操作Peering请求,该对等操作Peering请求包含需要进行数据对等操作的待处理内容,例如需要复制的数据、需要进行对等操作的OSD等。该对等操作PEERING队列的线程从该对等操作PEERING队列中逐个读取对等操作Peering请求并进行处理。
在上述系统架构基础上,本申请实施例设定,在系统运行前,预先配置主OSD所需的数据处理队列(数据IO队列)数(osd_op_shards)、数据平衡队列数、每数据处理队列线程数、每数据平衡队列线程数、数据平衡带宽、对等操作PEERING队列线程数、IO优先级临界值和数据IO优先级。
其中,上述数据IO队列数量(osd_op_shards),定义了数据IO队列的个数,默认为5。
上述数据平衡队列数量(osd_balance_shards),定义了数据平衡队列的个数,默认为5。
上述每数据IO队列线程数(osd_op_num_threads_per_shard),定义了处理每个数据IO队列的线程数,默认为3。
上述每数据平衡队列线程数(osd_balance_num_threads_per_shard),定义了处理每个数据平衡队列的线程数,默认为3。
上述数据平衡带宽(osd_recovery_throttle_bw),定义了数据平衡线程处理IO的带宽,当前定义为低速(10MB/s)、中速(20MB/s)、高速(40MB/s)、自定义(>0MB/s),默认为低速。
上述对等操作PEERING队列线程数(osd_peering_wq_threads),定义了处理Peering请求的线程数,默认为8。
上述IO优先级临界值(osd_op_priority_cutoff)、定义了高低IO优先级的临界值,默认为64。
上述数据IO优先级(osd_client_op_priority),定义了客户端数据读写IO的优先级,默认为63。
在上述的预先配置的各项参数的基础上,参见图1所示,本申请实施例提出的主OSD的业务处理方法,包括:
S101、获取业务请求;
具体的,上述的业务请求,可以是主OSD接收到的任意类型的数据处理请求,例如可以是数据读写请求、数据平衡请求等。本申请实施例着重介绍对数据IO请求和数据平衡请求的处理方法,因此,上述的业务请求,重点是指与数据IO处理相关的请求,或者是与数据平衡处理相关的请求。
S102、确定所述业务请求的业务类型;
具体的,对上述的业务请求进行识别,确定其是数据读写请求还是数据平衡请求。
当所述业务请求为数据读写请求时,执行步骤S103、将所述业务请求添加到预设的数据读写队列中;
具体的,如果上述的业务请求为数据读写请求,也就是数据IO请求,则主OSD将该业务请求,也就是将该数据IO请求添加到数据IO队列中,此时数据IO队列对应的线程从该数据IO队列中逐个读取请求并进行处理。
则可以理解,将上述的数据IO请求添加到数据IO队列中,实际上就是将数据IO请求入队等待处理。
示例性的,主OSD按照图2所示的处理流程,对数据IO请求进行处理:
S201、根据数据IO请求中包含的PG的id号,以及预先配置的数据IO队列数,计算得到队列索引:
queue_index=pg id%osd_op_shards
S202、根据请求中包含的数据IO的优先级,以及预先配置的IO优先级临界值计算得到队列类型:
if osd_op_priority_cutoff>osd_client_op_priority:
queue_type=normal
else
queue_type=high
S203、根据请求类型将请求添加到步骤S201和步骤S202确定的queue_index和queue_type所指向的数据IO队列的尾部,然后通知IO线程。
上述的步骤S201~S203即实现了数据IO请求向数据IO队列的添加。
S204、主OSD从数据IO队列中获取数据IO请求。
S205、对该数据IO请求所对应的PG加锁。
S206、将请求封装成事务。
S207、将事务添加到KV(key-value)队列并通知KV线程,同时通过网络将请求发送给副本OSD,主OSD释放PG锁。
S208、KV线程从KV队列拿到事务后将事务持久化到KV数据库。
S209、将已完成事务添加到KV完成队列并通知KV完成线程。
S210、KV完成线程将KV完成队列中的事务添加到IO队列,主OSD在后台完成事务数据的本地存储。
S211、副本OSD收到数据写入请求后,以与主OSD相同的处理方式完成数据的本地存储,并发送应答给主OSD。
S212、主OSD收到所有副本OSD的应答后,向客户端发送应答。
当所述业务请求为数据平衡请求时,执行步骤S104、将所述业务请求添加到预设的数据平衡队列中;
其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;
所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理。
具体的,与上述的数据IO请求的处理相对应的,当主OSD接收到的业务请求为数据平衡请求时,与上述对于数据IO请求的处理相类似的,主OSD将该数据平衡请求添加到数据平衡队列中。与该数据平衡队列对应的线程对该数据平衡队列中的数据平衡请求逐个进行处理,即实现了数据平衡操作。
通过上述介绍可见,本申请实施例提出的业务处理方法对于数据读写请求和数据平衡请求,分别添加到对应的数据读写队列和数据平衡队列中进行处理,使得数据读写请求和数据平衡请求分属于不同的队列中被相互独立地处理,从而使得数据读写处理和数据平衡处理不会相互影响,因此提高了数据处理效率,尤其是提高了数据读写业务的处理效率。
示例性的,参见图3所示,本申请另一实施例还公开了,上述的将业务请求添加到预设的数据平衡队列中,包括:
S304、根据所述业务请求对应的归置组编号(Placement Group id)以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列;
示例性的,本申请实施例通过计算所述业务请求对应的归置组编号除以所述数据平衡队列数量的余数,确定数据平衡队列索引;根据所述数据平衡队列索引,从数据平衡队列中确定目标数据平衡队列。
具体的,对业务请求对应的PG id号,以及预先设置的数据平衡队列数量osd_balance_shards进行求余运算,得到的余数作为数据平衡队列索引:
queue_index=pg id%osd_balance_shards
然后,从各个数据平衡队列中,确定出上述的平衡队列索引所对应的数据平衡队列,作为目标数据平衡队列。
S305、将所述业务请求添加到所述目标数据平衡队列中。
具体的,本申请实施例在确定目标数据平衡队列后,将上述的业务请求,也就是将该数据平衡请求,添加到该目标数据平衡队列的尾部。
本实施中的步骤S301~S303分别对应图1所示的方法实施例中的步骤S101~S103,其具体内容请参见图1所示的方法实施例的内容,此处不再赘述。
可选的,本申请另一实施例还公开了,上述的业务处理方法,还包括:
生成对等操作Peering请求,并将所述对等操作Peering请求添加到预设的对等操作PEERING队列中。
具体的,上述的对等操作Peering请求属于数据平衡操作的前期操作请求,用于实现各OSD之间的数据一致性。
在主OSD检测到系统故障需要数据平衡时,首先构建对等操作Peering请求。
示例性的,如图4所示,主OSD构建对等操作Peering请求时,具体进行如下处理:
S401、主OSD从队列中获取Peering请求,并且对该请求所对应的PG加锁。
S402、将请求封装成事务。
S403、接着通过网络将请求发送给副本OSD,然后释放PG锁;
副本OSD收到请求后,将本地PG INFO信息通过网络返回给主OSD。
S404、主OSD根据副本OSD返回的PG INFO信息以及本地的PG INFO信息,选出权威OSD。
S405、如果权威OSD不是主OSD,则主OSD构建用于从权威OSD获取权威PG LOG的请求,对PG加锁,通过网络将请求发送给权威OSD,然后释放PG锁。权威OSD收到请求后,将权威PG LOG信息通过网络返回给主OSD。即主OSD获取PG LOG信息。
S406、主OSD拉取其他副本OSD的PG LOG到本地。主OSD比较权威PG LOG和其他副本OSD的PG LOG,选出其他副本OSD需要复制的数据,即生成需要复制的数据。
该需要复制的数据,即为Peering请求中所包含的数据处理内容。因此,得到上述的需要复制的数据,实际上也就是得到了对等操作Peering请求。
当生成上述的对等操作Peering请求后,主OSD将该Peering请求添加到对等操作PEERING队列中。
在上述的向PEERING队列中添加Peering请求的基础上,本申请实施例上述的获取业务请求,具体包括:
从所述对等操作PEERING队列中读取对等操作Peering请求;根据读取的对等操作Peering请求,构建得到数据平衡请求。
具体的,主OSD从对等操作PEERING队列中依次读取对等操作Peering请求,每读取到一个Peering请求时,对Peering请求进行解析处理,确定其中的需要复制的数据。
然后,根据需要复制的数据,构建得到数据平衡请求。在该数据平衡请求中,包含了需要复制的数据,或者需要推送或拉取的数据等,即明确包含了需要执行的数据处理内容。
示例性的,本申请实施例还公开了,与上述数据平衡队列对应的线程依次处理数据平衡队列中的数据平衡请求时,具体包括:
首先,读取位于数据平衡队列首部的数据平衡请求。
具体的,本申请实施例设定,线程从数据平衡队列中读取请求时,具体是读取数据平衡队列首部的请求,以此达到依次处理数据平衡队列中的请求的目的。
然后,判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求;
具体的,本申请实施例通过计算上述的数据平衡请求所需处理的数量大小,作为数据平衡请求的带宽需求。通过将当前空闲的数据平衡带宽与数据平衡请求的带宽需求进行对比,判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求。
示例性的,如果当前空闲的数据平衡带宽大于数据平衡请求的带宽需求,则认为能满足数据平衡请求的带宽需求;否则认为不能满足数据平衡请求的带宽需求。
如果满足所述数据平衡请求的带宽需求,则处理所述数据平衡请求;
如果不满足所述数据平衡请求的带宽需求,则等待空闲的数据平衡带宽满足所述数据平衡请求的带宽需求后,处理所述数据平衡请求。
具体的,如果当前空闲的数据平衡带宽满足数据平衡请求的带宽需求,则可以处理该数据平衡请求;否则,需要等待数据平衡带宽能够满足数据平衡请求的带宽需求时,再处理该数据平衡请求。
上述对于数据平衡带宽的设定,实现了对数据平衡的流量处理,即控制数据平衡处理的处理进度,一定程度上能够避免大量的数据平衡处理抢占资源,从而影响数据IO的处理进程,利于保证数据IO的处理效率。
进一步的,通常情况下,系统中的带宽被固定地划分为数据IO带宽和数据平衡带宽,也就是上述的数据平衡带宽是固定的,各个数据平衡队列均通过该固定的数据平衡带宽处理数据平衡请求。
为了提高对数据处理带宽的利用率,本申请实施例还可以设定动态地划分数据IO带宽和数据平衡带宽。
示例性的,如果当前空闲的数据平衡带宽不满足所述数据平衡请求的带宽需求,则本申请实施例进一步判断数据读取带宽是否有空闲;
即,判断数据IO带宽是否全部被占用,如果没有全部被占用,即可认为存在空闲的数据IO带宽。
如果所述数据读取带宽有空闲,则将空闲的数据读取带宽设定为数据平衡带宽。
具体的,将上述空闲的数据读取带宽设定为数据平衡带宽,也就是将空闲的数据读取带宽分配给数据平衡使用,这样动态地减少了数据读取带宽,而增加了数据平衡带宽。
在此基础上,原本由于数据平衡带宽不足而无法处理的数据平衡请求,可以通过对数据平衡带宽的动态增加而得到及时的处理。
上述各实施例介绍了本申请实施例提出的业务处理方法的具体处理过程,参照上述处理过程,本申请实施例还进一步进行了一定量的试验来验证本申请实施例技术方案的为业务处理带来的优化效果。
例如图5(a)和(b)所示为单个OSD异常和单个节点异常时,利用本申请实施例技术方案对业务进行优化前和优化后的数据读写性能对比。
通过图5(a)和(b)可见,本申请实施例提出的业务处理方法对于单个OSD异常和单个节点异常情况下的业务处理带来了数据读取性能的较大提升,即,本申请实施例提出的业务处理方法具备较高的数据IO性能。
与上述的业务处理方法相对应的,本申请另一实施例还公开了一种业务处理装置,参见图6所示,该装置包括:
请求获取单元100,用于获取业务请求;
第一处理单元110,用于当所述业务请求为数据读写请求时,将所述业务请求添加到预设的数据读写队列中;
第二处理单元120,用于当所述业务请求为数据平衡请求时,将所述业务请求添加到预设的数据平衡队列中;
其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;
所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理。
可选的,在本申请另一实施例中还公开了,所述装置还包括:
预处理单元,用于预先配置数据处理队列数量、数据平衡队列数量、每数据处理队列和每数据平衡队列的线程数、数据平衡带宽、对等操作PEERING队列线程数、IO优先级临界值和数据IO优先级;
其中,所述数据处理队列数量和所述数据平衡队列数量均大于等于1。
可选的,在本申请另一实施例中还公开了,所述第二处理单元将所述业务请求添加到预设的数据平衡队列中时,具体用于:
根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列;
将所述业务请求添加到所述目标数据平衡队列中。
可选的,在本申请另一实施例中还公开了,所述第二处理单元根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列时,具体用于:
通过计算所述业务请求对应的归置组编号除以所述数据平衡队列数量的余数,确定数据平衡队列索引;
根据所述数据平衡队列索引,从数据平衡队列中确定目标数据平衡队列。
可选的,在本申请另一实施例中还公开了,所述装置还包括:
第三处理单元,用于生成对等操作Peering请求,并将所述对等操作Peering请求添加到预设的对等操作PEERING队列中。
可选的,在本申请另一实施例中还公开了,所述请求获取单元获取业务请求时,具体用于:
从所述对等操作PEERING队列中读取对等操作Peering请求;
根据读取的对等操作Peering请求,构建得到数据平衡请求。
可选的,在本申请另一实施例中还公开了,与所述数据平衡队列对应的线程依次处理所述数据平衡队列中的数据平衡请求时,具体包括:
读取位于所述数据平衡队列首部的数据平衡请求;
判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求;
如果满足所述数据平衡请求的带宽需求,则处理所述数据平衡请求;
如果不满足所述数据平衡请求的带宽需求,则等待空闲的数据平衡带宽满足所述数据平衡请求的带宽需求后,处理所述数据平衡请求。
可选的,在本申请另一实施例中还公开了,如果当前空闲的数据平衡带宽不满足所述数据平衡请求的带宽需求,所述方法还包括:
判断数据读取带宽是否有空闲;
如果所述数据读取带宽有空闲,则将空闲的数据读取带宽设定为数据平衡带宽。
具体的,上述业务处理装置的各个实施例中的各个单元的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请各实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请各实施例种装置及终端中的模块和子模块可以根据实际需要进行合并、划分和删减。
本申请所提供的几个实施例中,应该理解到,所揭露的终端,装置和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,模块或子模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个子模块或模块可以结合或者可以集成到另一个模块,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块或子模块可以是或者也可以不是物理上分开的,作为模块或子模块的部件可以是或者也可以不是物理模块或子模块,即可以位于一个地方,或者也可以分布到多个网络模块或子模块上。可以根据实际的需要选择其中的部分或者全部模块或子模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块或子模块可以集成在一个处理模块中,也可以是各个模块或子模块单独物理存在,也可以两个或两个以上模块或子模块集成在一个模块中。上述集成的模块或子模块既可以采用硬件的形式实现,也可以采用软件功能模块或子模块的形式实现。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件单元,或者二者的结合来实施。软件单元可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种业务处理方法,其特征在于,包括:
获取业务请求;
当所述业务请求为数据读写请求时,将所述业务请求添加到预设的数据读写队列中;
当所述业务请求为数据平衡请求时,将所述业务请求添加到预设的数据平衡队列中;
其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;
所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理;
其中,预先配置数据处理队列数量、数据平衡队列数量、每数据处理队列和每数据平衡队列的线程数、数据平衡带宽、对等操作PEERING队列线程数、IO优先级临界值和数据IO优先级;
其中,所述数据处理队列数量和所述数据平衡队列数量均大于等于1;
生成对等操作Peering请求,并将所述对等操作Peering请求添加到预设的对等操作PEERING队列中;
从所述对等操作PEERING队列中读取对等操作Peering请求;
根据读取的对等操作Peering请求,构建得到数据平衡请求,以获取业务请求。
2.根据权利要求1所述的方法,其特征在于,所述将所述业务请求添加到预设的数据平衡队列中,包括:
根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列;
将所述业务请求添加到所述目标数据平衡队列中。
3.根据权利要求2所述的方法,其特征在于,所述根据所述业务请求对应的归置组编号以及所述数据平衡队列数量,从数据平衡队列中确定出目标数据平衡队列,包括:
通过计算所述业务请求对应的归置组编号除以所述数据平衡队列数量的余数,确定数据平衡队列索引;
根据所述数据平衡队列索引,从数据平衡队列中确定目标数据平衡队列。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,与所述数据平衡队列对应的线程依次处理所述数据平衡队列中的数据平衡请求时,具体包括:
读取位于所述数据平衡队列首部的数据平衡请求;
判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求;
如果满足所述数据平衡请求的带宽需求,则处理所述数据平衡请求;
如果不满足所述数据平衡请求的带宽需求,则等待空闲的数据平衡带宽满足所述数据平衡请求的带宽需求后,处理所述数据平衡请求。
5.根据权利要求4所述的方法,其特征在于,如果当前空闲的数据平衡带宽不满足所述数据平衡请求的带宽需求,所述方法还包括:
判断数据读取带宽是否有空闲;
如果所述数据读取带宽有空闲,则将空闲的数据读取带宽设定为数据平衡带宽。
6.一种业务处理装置,其特征在于,包括:
请求获取单元,用于获取业务请求;
第一处理单元,用于当所述业务请求为数据读写请求时,将所述业务请求添加到预设的数据读写队列中;
第二处理单元,用于当所述业务请求为数据平衡请求时,将所述业务请求添加到预设的数据平衡队列中;
其中,所述数据读写队列用于存储数据读写请求,所述数据读写队列中存储的数据读写请求被与所述数据读写队列对应的线程依次处理;
所述数据平衡队列用于存储数据平衡请求,所述数据平衡队列中存储的数据平衡请求被与所述数据平衡队列对应的线程依次处理;
其中,预先配置数据处理队列数量、数据平衡队列数量、每数据处理队列和每数据平衡队列的线程数、数据平衡带宽、对等操作PEERING队列线程数、IO优先级临界值和数据IO优先级;
其中,所述数据处理队列数量和所述数据平衡队列数量均大于等于1;
生成对等操作Peering请求,并将所述对等操作Peering请求添加到预设的对等操作PEERING队列中;
从所述对等操作PEERING队列中读取对等操作Peering请求;
根据读取的对等操作Peering请求,构建得到数据平衡请求,以获取业务请求。
7.根据权利要求6所述的装置,其特征在于,与所述数据平衡队列对应的线程依次处理所述数据平衡队列中的数据平衡请求时,具体包括:
读取位于所述数据平衡队列首部的数据平衡请求;
判断当前空闲的数据平衡带宽是否满足所述数据平衡请求的带宽需求;
如果满足所述数据平衡请求的带宽需求,则处理所述数据平衡请求;
如果不满足所述数据平衡请求的带宽需求,则等待空闲的数据平衡带宽满足所述数据平衡请求的带宽需求后,处理所述数据平衡请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911065620.2A CN110866066B (zh) | 2019-11-04 | 2019-11-04 | 一种业务处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911065620.2A CN110866066B (zh) | 2019-11-04 | 2019-11-04 | 一种业务处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110866066A CN110866066A (zh) | 2020-03-06 |
CN110866066B true CN110866066B (zh) | 2023-01-31 |
Family
ID=69654451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911065620.2A Active CN110866066B (zh) | 2019-11-04 | 2019-11-04 | 一种业务处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110866066B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113891396B (zh) * | 2021-09-01 | 2022-07-26 | 深圳金信诺高新技术股份有限公司 | 数据包的处理方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239589B1 (en) * | 2010-03-31 | 2012-08-07 | Amazon Technologies, Inc. | Balancing latency and throughput for shared resources |
CN106951559A (zh) * | 2017-03-31 | 2017-07-14 | 联想(北京)有限公司 | 分布式文件系统中数据恢复方法及电子设备 |
CN109257320A (zh) * | 2017-07-13 | 2019-01-22 | 北京京东尚科信息技术有限公司 | 消息存储方法和装置 |
CN110381136A (zh) * | 2019-07-19 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种数据读取方法、终端、服务器及存储介质 |
-
2019
- 2019-11-04 CN CN201911065620.2A patent/CN110866066B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8239589B1 (en) * | 2010-03-31 | 2012-08-07 | Amazon Technologies, Inc. | Balancing latency and throughput for shared resources |
CN106951559A (zh) * | 2017-03-31 | 2017-07-14 | 联想(北京)有限公司 | 分布式文件系统中数据恢复方法及电子设备 |
CN109257320A (zh) * | 2017-07-13 | 2019-01-22 | 北京京东尚科信息技术有限公司 | 消息存储方法和装置 |
CN110381136A (zh) * | 2019-07-19 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种数据读取方法、终端、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110866066A (zh) | 2020-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3419247B1 (en) | Method and device for storage resource allocation for video cloud storage | |
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
CN108881512B (zh) | Ctdb的虚拟ip均衡分配方法、装置、设备及介质 | |
CN111522636B (zh) | 应用容器的调整方法、调整系统、计算机可读介质及终端设备 | |
US20130060834A1 (en) | Distributed messaging system connectivity and resource management | |
US20120016994A1 (en) | Distributed system | |
CN109981702B (zh) | 一种文件存储方法及系统 | |
CN110659151B (zh) | 数据校验方法及装置,存储介质 | |
US9940020B2 (en) | Memory management method, apparatus, and system | |
US20200104177A1 (en) | Resource allocation system, management device, method, and program | |
US10250673B1 (en) | Storage workload management using redirected messages | |
CN112445857A (zh) | 一种基于数据库的资源配额管理方法和装置 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
WO2019170011A1 (zh) | 任务分配方法及装置、分布式存储系统 | |
CN112422610B (zh) | 一种基于分布式对象存储的智能网关方法和系统 | |
CN113655969B (zh) | 一种基于流式分布式存储系统的数据均衡存储方法 | |
US8832215B2 (en) | Load-balancing in replication engine of directory server | |
CN111562884B (zh) | 一种数据存储方法、装置及电子设备 | |
CN110866066B (zh) | 一种业务处理方法及装置 | |
KR20140063690A (ko) | 복수의 장치로 이벤트를 배포하는 기법 | |
CN106790610B (zh) | 一种云系统消息分发方法,装置和系统 | |
CN111400241B (zh) | 数据重构方法和装置 | |
CN116248699A (zh) | 多副本场景下的数据读取方法、装置、设备及存储介质 | |
CN113438274A (zh) | 数据传输方法、装置、计算机设备及可读存储介质 | |
CN114401235A (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 | ||
CB02 | Change of applicant information |
Address after: 214100 No. 6, science and education software park, Binhu District, Wuxi City, Jiangsu Province Applicant after: Huayun data holding group Co.,Ltd. Address before: 214000 No. 6, zone B, science and education software park, Huize West Road, Binhu District, Wuxi City, Jiangsu Province Applicant before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |