CN112363980A - 一种分布式系统的数据处理方法及装置 - Google Patents
一种分布式系统的数据处理方法及装置 Download PDFInfo
- Publication number
- CN112363980A CN112363980A CN202011208698.8A CN202011208698A CN112363980A CN 112363980 A CN112363980 A CN 112363980A CN 202011208698 A CN202011208698 A CN 202011208698A CN 112363980 A CN112363980 A CN 112363980A
- Authority
- CN
- China
- Prior art keywords
- storage node
- request
- client
- packet address
- state
- 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
- 238000003672 processing method Methods 0.000 title abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000004044 response Effects 0.000 claims abstract description 37
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 27
- 238000001514 detection method Methods 0.000 claims description 22
- 230000002159 abnormal effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000903 blocking effect Effects 0.000 abstract description 7
- 230000007246 mechanism Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 230000005012 migration Effects 0.000 description 10
- 238000013508 migration Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- WGZDBVOTUVNQFP-UHFFFAOYSA-N N-(1-phthalazinylamino)carbamic acid ethyl ester Chemical compound C1=CC=C2C(NNC(=O)OCC)=NN=CC2=C1 WGZDBVOTUVNQFP-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic 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/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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- 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/182—Distributed 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种分布式系统的数据处理方法及装置,该方法包括:客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;所述客户端生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。上述方法,可以尽可能降低OSD发生响应迟缓时,客户端请求阻塞的时间,解决客户端请求性能抖动的问题。
Description
技术领域
本申请涉及网络技术领域,尤其涉及一种分布式系统的数据处理方法及装置。
背景技术
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。传统Ceph系统为了保证客户端响应和底层存储响应的一致性,应用层客户端请求下发到底层OSD(Object Storage Device,对象存储设备)时,会一直等待OSD响应操作完成再往上级反馈。若底层OSD异常,则客户端的请求会被长时间阻塞,客户端会表现出请求被夯住,请求下发响应时间长,占用网络资源,易发生网络阻塞。
因此,现在亟需一种分布式系统的数据处理方法及装置,能够降低OSD发生响应迟缓时,客户端请求阻塞的时间,解决Ceph客户端请求性能抖动的问题。
发明内容
本发明实施例提供一种分布式系统的数据处理方法及装置,能够降低OSD发生响应迟缓时,客户端请求阻塞的时间,解决客户端请求性能抖动的问题。
第一方面,本发明实施例提供一种分布式系统的数据处理方法,该方法包括:客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;所述客户端生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。
上述方法中,可以在客户端设置有超时机制和重定向机制;其中,根据超时机制和重定向机制,所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应时,可确定第二分组地址,将所述第二请求发送至所述第二分组地址对应的第二存储节点,所述第二对象为所述第一对象的重定向对象。也即,当客户端的第一请求在预设时间内没有得到正常响应,发生第一请求阻塞时,可以及时将第一请求重新定向到另一个存储节点。如此,可以尽可能降低OSD发生响应迟缓时,客户端请求阻塞的时间,解决客户端请求性能抖动的问题。
可选的,将所述第二请求发送至所述第二分组地址对应的第二存储节点之前,还包括:所述客户端生成第三对象的第三请求;所述第三对象是存储在所述第一存储节点上的所述第一对象的关联对象;所述第三请求用于指示从所述第一存储节点上读取所述第三对象;所述客户端将所述第三请求发送至所述第一存储节点,并从所述第一存储节点中获取所述第三对象;所述客户端生成所述第三对象的第四请求,并将所述第四请求发送至所述第二存储节点;所述第四请求用于指示所述第二存储节点存储所述第三对象。
上述方法中,在一种场景中,第一对象为周期性存储对象,因此,在将当前第一对象写入第二存储节点之前,需要客户端将第一对象的在此之前各周期存储的历史数据(即第三对象)从第一存储节点中迁移到第二存储节点中。则通过根据所述第一对象生成历史数据读取请求(第三请求),客户端可以从第一存储节点中获取第一对象的历史数据,并根据获取到的第一对象的历史数据生成历史数据的写请求(第四请求),通过写请求将第一对象的历史数据写入到第二存储节点。保证第二存储节点中存储有第一对象的历史数据和当前数据,保证第一对象信息存储的完整性。
可选的,所述客户端生成携带第二对象的第二请求,包括:所述客户端根据所述第一对象和所述第二分组地址确定第二对象的名称;所述客户端在重定向记录中记录所述第一对象的名称和所述第二对象的名称的对应关系;所述客户端根据所述第二对象生成所述第二请求。
上述方法中,说明了客户端通过重定向记录,记录第一对象(原对象)和第二对象(重定向对象)的对应关系,如此,在第一对象再次发生读写时,可以直接根据重定向记录中的第一对象和第二对象的对应关系,以及第二对象名称中的第二分组地址,将该第一对象重定向为第二对象,生成第二请求发送。减少生成第二对象时重新选择分组地址以及存储节点的时间。
可选的,所述客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点之前,还包括:所述客户端确定所述重定向记录中未记录有所述第一对象的名称。
上述方法中,在每次将第一对象的请求发送前,根据重定向记录确定该第一对象是否发生过重定向,若未发生过,则可以按照正常未重定向过的流程步骤将第一对象的第一请求发送;防止该第一对象发生过重定向,却按照正常未定向过的流程将第一对象的第一请求发送,而导致发生第一请求响应超时,增加请求时间,以及网络压力。
可选的,还包括:所述客户端确定所述重定向记录表中记录有所述第一对象的名称,则根据所述重定向记录中所述第一对象的名称对应的所述第二对象的名称,确定所述第二对象对应的第二分组地址;所述客户端将携带所述第一对象的所述第一请求发送至所述第二分组地址对应的第二存储节点。
上述方法中,该第一对象若发生过重定向,则在客户端本地以(key,value)方式存储在重定向记录中,查找本地重定向记录,根据重定向记录中该第一对象对应的第二对象的第二分组地址,将该第一对象发送至第二存储节点,如此,减少该第一对象重新分配分组地址的时间,以及不会将该第一对象再次发送至已经出现反应迟缓的存储节点,加快第一对象的存储或读取速度。
可选的,所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应之后,还包括:所述客户端将节点状态表中所述第一存储节点的状态更新为异常状态,并将分组状态表中所述第一分组地址的状态更新为异常状态;所述客户端建立与所述第一存储节点的探测线程,以预设频率向所述第一存储节点发送探测消息;若所述客户端通过所述探测线程连续N次接收到所述第一存储节点的探测响应,则将所述节点状态表中所述第一存储节点的状态更新为正常状态,将所述分组状态表中所述第一分组地址的状态更新为正常状态,其中,N大于1。
上述方法中,分布式系统中重定向机制启动时,会计算出POOL(资源池)下所有的PG(分组地址),生成分组状态表,以及各PG对应的存储节点的节点状态表;当请求发送超时,将对应超时的存储节点和分组地址的状态标记为异常状态;进一步,增加的探测模块对异常状态的存储节点进行探测,以及时获取存储节点的状态,保证存储节点资源利用率。
可选的,所述分组状态表中所述第一分组地址的状态更新为正常状态之后,还包括:所述客户端将所述第一分组地址对应的发生重定向的第一对象回迁,并将所述重定向记录中所述第一对象对应的重定向记录删除。
上述方法中,在更新分组状态表后,还需要将更新为正常状态的分组地址对应的发生过重定向的第一对象回迁回该分组地址,并将重定向记录中该分组地址对应的重定向第一对象的重定向记录删除。防止再次发送第一对象时,第一对象仍然根据重定向记录发送请求。增加第一对象处理的准确性。
第二方面,本发明实施例提供一种分布式系统的数据处理装置,该装置包括:
收发模块,用于将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;
确定模块,用于确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;
处理模块,用于生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。
第三方面,本申请实施例还提供一种计算设备,包括:存储器,用于存储程序;处理器,用于调用所述存储器中存储的程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
第四方面,本申请实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
本申请的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种现有的分布式系统的数据处理的架构示意图;
图2为本发明实施例提供的一种分布式系统的数据处理的架构示意图;
图3为本发明实施例提供的一种分布式系统的数据处理方法的流程示意图;
图4为本发明实施例提供的一种分布式系统的数据处理的流程示意图;
图5为本发明实施例提供的一种分布式系统的数据处理的流程示意图;
图6为本发明实施例提供的一种分布式系统的数据处理装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在分布式存储系统Ceph的数据处理过程中,Ceph客户端通过调用librados接口直接与OSD(即存储节点)交互,来存储和读取数据。为了与OSD交互,客户端调用librados,连接一个Ceph Monitor。一旦连接好以后,librados会从Monitor(管理服务端)处取回一个Cluster Map。当客户端需要读取或者存储数据的时候,则会创建一个I/O上下文,并且与一个pool(资源池)绑定。通过这个I/O上下文,客户端将Object(存储对象)的名字提供给librados,然后librados会根据Object的名字和Cluster Map计算出相应的PG和OSD的位置,之后,客户端就可以读取或者存储数据。
如图1所示,图1为本发明实施例提供的一种分布式系统的数据处理的系统架构,该分布式系统的数据处理过程为,将图1中的文件file可按照一个特定的size(ceph系统默认是4M)切分为若干个Objects,并得到每个对象的对象名称(OID)。进而librados会根据每个对象的名字对每个对象进行映射,从PGs中获取分组地址PG_ID,即,通过对OID进行HASH(散列函数)计算得到PG_ID。
如,OID为:rbd_data.870f6b8b4567.0000000000000000;对该OID进行HASH计算:hash(rbd_data.870f6b8b4567.0000000000000000)=49fe99ae,通过取余运算确定PG_ID:which_pg=hash_value mode pg_num,如:49fe99ae mod 8=6。则该对象的hash值为:49fe99ae,PG_ID为:6。
再进一步,从多个存储节点OSDs中获取PG_ID为6的PG对应的OSD,PG对应的OSD可以通过CRUSH算法得到。如,OSD可以通过以下算法得出:OSDs_for_pg=crush(pg),returnsa list of OSDs,primary=osds_for_pg[0],replicas=osds_for_pg[1:],计算获得该OID对应PG_ID为6所对应的一个或多个OSD。
本申请实施例基于图1所示系统架构,提供了一种分布式系统的数据处理的系统架构,如图2所示,客户端201确定将文件存储到存储节点集群202中,则通过对该文件进行切分等处理获得第一对象,根据第一对象确定该第一对象对应的第一分组地址,并根据第一分组地址确定该第一对象对应的第一存储节点203;进一步,根据该第一对象以及该第一对象的第一存储节点203生成第一请求;客户端201将该第一请求发送至第一存储节点203,若在预设时间内未收到第一存储节点203的第一请求响应,则从可用的分组地址中确定第二分组地址,重新确定第二分组地址对应的第二存储节点204,将第一对象重新定向到第二存储节点204得到第二对象,生成携带第二对象的第二请求,将第二请求发送至第二存储节点204。则当客户端201的第一请求在预设时间内没有发送成功,发生第一请求阻塞时,可以及时为客户端201的第一请求重新定向到第二存储节点204。如此,可以尽可能降低OSD发生响应迟缓时,客户端请求阻塞的时间,解决客户端请求性能抖动的问题。
基于图1和图2中的系统架构,本申请实施例提供了分布式系统的数据处理方法的流程,如图3所示,包括:
步骤301、客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;
此处,客户端可以为手机、电脑、服务器等电子设备。
步骤302、所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;
此处,预设时间可以由技术人员根据历史经验设定。
步骤303、所述客户端生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。
上述方法中,可以为在客户端设置有超时机制和重定向机制;其中,所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应,即,客户端设置超时机制。确定第二分组地址,将所述第二请求发送至所述第二分组地址对应的第二存储节点,所述第二对象为所述第一对象的重定向对象,即,客户端设置重定向机制。也即,当客户端的第一请求预设时间没有发送成功,发生第一请求阻塞时,可以及时为客户端的第一请求重新定向到另一个存储节点。如此,可以尽可能降低OSD发生响应迟缓时,客户端请求阻塞的时间,解决客户端请求性能抖动的问题。
本申请实施例还提供了一种获取第一对象的关联对象的方法,即,将所述第二请求发送至所述第二分组地址对应的第二存储节点之前,还包括:所述客户端生成第三对象的第三请求;所述第三对象是存储在所述第一存储节点上的所述第一对象的关联对象;所述第三请求用于指示从所述第一存储节点上读取所述第三对象;所述客户端将所述第三请求发送至所述第一存储节点,并从所述第一存储节点中获取所述第三对象;所述客户端生成所述第三对象的第四请求,并将所述第四请求发送至所述第二存储节点;所述第四请求用于指示所述第二存储节点存储所述第三对象。也就是说,在第一对象发生重定向后,客户端将第二请求发送到重新定向得到的第二存储节点之前,客户端需要将第一对象,在第一存储节点中存储的与其相关联的数据(第三对象)取出,存储到第一对象重定向的第二存储节点中;以保证数据存储的完整性。例如,若第一对象为一个日志文件的对象,其每一小时生成一个记录文件(第三对象),并存储到第一存储节点中,则当客户端存储当前第一对象未收到响应,并将第一对象重定向到第二存储节点时,需要将之前该第一对象对应的记录文件(第三对象)从第一存储节点中取出,存储到第二存储节点中,以保证第二存储节点中存储数据的完整性。该过程中,客户端生成取出第三对象的第三请求以取出第三对象,以及生成存储第三对象的第四请求以将第三对象存储到第二存储节点,之后,将第二请求发送至第二存储节点。其中,第三对象可以是第一对象的快照内容。
本申请实施例提供了一种分布式系统的数据处理中重定向的方法,所述客户端生成携带第二对象的第二请求,包括:所述客户端根据所述第一对象和所述第二分组地址确定第二对象的名称;所述客户端在重定向记录中记录所述第一对象的名称和所述第二对象的名称的对应关系;所述客户端根据所述第二对象生成所述第二请求。
此处,当客户端确定在预设时间内未收到第一存储节点的第一请求响应,则为该第一对象确定第二分组地址,并根据第二分组地址确定第一对象对应的重定向对象,也就是第二对象的名称;例如,第一对象的名称为:rbd_data.[image_id].[object_id];其中,rbd_data为用于映射存储到ceph的osd的块设备。[image_id]为用于存储的磁盘等,即,为用于存储数据的介质地址;[object_id]为第一对象的名称。为该第一对象确定第二分组地址得到的第二对象的名称为:rbd_data.[image_id].[object_id].map@[pgid],即在第一对象的名称后缀有第二分组地址.map@[pgid]。则在客户端本地维护的重定向记录中存储第一对象的名称和第二对象的名称的对应关系,即,rbd_data.[image_id].[object_id]对应rbd_data.[image_id].[object_id].map@[pgid]。以便于后续第一对象需要再次处理,或发生重定向时,在客户端的重定向记录中通过匹配第一对象对应的第二对象的名称rbd_data.[image_id].[object_id].map@[pgid]的方式来从名字中提取PG,从而得到第二对象的第二存储节点。如此,可以减少生成第二对象时重新选择分组地址以及存储节点的时间。
本申请实施例提供了一种分布式系统的数据处理方法,所述客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点之前,还包括:所述客户端确定所述重定向记录中未记录有所述第一对象的名称。所述客户端确定所述重定向记录表中记录有所述第一对象的名称,则根据所述重定向记录中所述第一对象的名称对应的所述第二对象的名称,确定所述第二对象对应的第二分组地址;所述客户端将携带所述第一对象的所述第一请求发送至所述第二分组地址对应的第二存储节点。也就是说,客户端在每次发送第一对象之前,可以匹配本地的重定向记录中是否包含该第一对象的名称;若是包含,则确定该第一对象发生过重定向,则根据该第一对象的重定向对象的名称,即,第二对象的名称得到第二分组地址,进而,将该第一对象的第一请求发送至第二存储节点。若未包含,则确定该第一对象未发生过重定向,则将该第一对象的第一请求发送至第一存储节点。
本申请实施例还提供了一种分组地址和存储节点的管理方法,所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应之后,还包括:所述客户端将节点状态表中所述第一存储节点的状态更新为异常状态,并将分组状态表中所述第一分组地址的状态更新为异常状态;所述客户端建立与所述第一存储节点的探测线程,以预设频率向所述第一存储节点发送探测消息;若所述客户端通过所述探测线程连续N次接收到所述第一存储节点的探测响应,则将所述节点状态表中所述第一存储节点的状态更新为正常状态,将所述分组状态表中所述第一分组地址的状态更新为正常状态,其中,N大于1。
即,客户端会根据POOL的pg_num计算出POOL下的所有PG,并构建c_pg_info_t(分组状态表)列表,默认情况下,所有PG均为UP状态;以及构建所有PG对应的OSD的c_osd_info_t(节点状态表)列表,默认情况下,所有OSD均为UP状态;当客户端与分布式系统的管理服务端建立连接并获取该管理服务端发送的节点状态表后,根据该管理服务端发送的节点状态表更新客户端维护的分组状态表和节点状态表。当客户端在预设时间内未收到第一请求响应时,将节点状态表中的第一存储节点的状态更新为异常状态,即,把OSD状态标记为PREDOWN。并将分组状态表中所有落在超时的第一存储节点上的分组地址状态标记为PREDOWN。并建立与第一存储节点的探测线程,以预设频率向该第一存储节点发送探测消息。
此时,若再次获取到该管理服务端发送的节点状态表,且该管理服务端发送的节点状态表中对应第一存储节点的状态为异常状态,则将客户端的节点状态表中的第一存储节点的状态更新为DOWN。若是该管理服务端发送的节点状态表中对应第一存储节点的状态为正常状态,则将客户端的节点状态表中的第一存储节点的状态更新为PREUP。
且客户端通过该探测线程连续N次(例如,10次)接收到第一存储节点的探测响应,则确定该第一存储节点处于正常状态,将客户端的节点状态表中第一存储节点的PREDOWN/PREUP状态更新为正常状态,即,UP。并将该第一存储节点对应的所有分组地址在分组状态表中的PREDOWN/PREUP状态更新为正常状态,即,UP。则将状态更新为正常状态的第一分组地址对应的发生重定向的第一对象回迁,并将客户端本地中维护的重定向记录中针对该第一对象对应的重定向记录删除。
基于上述流程,本申请实施例提供了一种分布式系统的数据处理方法流程,如图4和图5所示,包括:
步骤401、客户端根据读写需要确定第一对象。
步骤402、客户端根据第一对象的名称匹配客户端本地维护的重定向记录,判断该第一对象是否未发生过重定向,且该第一对象包含有CEPH_OSD_FLAG_BALANCE_READS(该标志用于标记对象是否发生过重定向,若发生过重定向,则不包含该标志,否则包括)。若该第一对象发生过重定向,且不包含该标志,则执行步骤410。若该第一对象未发生重定向,且包含该标志,则执行步骤403。
步骤410、客户端匹配重定向记录中的该第一对象的名称对应的第二对象的名称,根据该第二对象的名称确定第二分组地址,进一步确定第二存储节点。
步骤411、客户端将该第一请求发送至第二存储节点。
步骤403、根据该第一对象计算获取第一分组地址。
步骤404、判断该第一分组地址是否可用;若不可用,则执行步骤403,重新确定第一分组地址。若可用,则执行步骤405。
步骤405、根据该第一分组地址确定第一存储节点。以及,确定当前已经设置预设时间,并开启超时机制(用于判断第一存储节点返回第一请求响应的时间是否超过预设时间)。
步骤406、客户端生成携带第一对象的第一请求。
步骤407、客户端将第一请求发送至第一存储节点。
步骤408、判断预设时间内是否接收到第一存储节点返回的第一请求响应,若是,则执行步骤409,确定当前任务完成。否则,执行步骤412。
步骤412、该步骤对应第一对象的重定向对象;以及第一对象的关联对象的迁移,即,第三对象从第一存储节点到第二存储节点的迁移;以及对于第一存储节点的探测。该步骤具体流程如图5所示:
步骤501、当客户端确定在预设时间内未收到第一请求响应,则将客户端维护的节点状态表中第一存储节点的状态更新为异常状态,以及将客户端维护的第一存储节点对应的包括第一分组地址的多个分组地址的状态更新为异常状态。
步骤502、客户端与第一存储节点建立探测线程,以预设频率向该第一存储节点发送探测消息,并重新确定第二分组地址,以及对应的第二存储节点。
步骤503、客户端根据第一对象生成第三请求,从第一存储节点中获取第三对象,并通过第四请求将第三对象存储到第二存储节点中。
步骤504、客户端生成携带第二对象的第二请求,并将第一对象的名称与第二对象的名称的对应关系存储在重定向记录中。
步骤505、客户端将第二请求发送至第二存储节点。
步骤506、在步骤502客户端建立与第一存储节点的探测线程后。客户端若连续N次接收到第一存储节点的探测响应,或接收到分布式系统的管理服务端发送的节点状态表中该第一存储节点的状态为正常状态。则执行步骤507;否则,执行步骤509。
步骤507、客户端将其维护的节点状态表中该第一存储节点的状态更新为正常状态,以及,将该第一存储节点对应的包括第一分组地址的所有分组地址状态更新为正常状态。
步骤508、客户端将该第一存储节点对应的包括第一分组地址的所有分组地址的发生过重定向的对象回迁。
步骤509、客户端将继续对第一存储节点进行探测。
需要说明的是,上述流程步骤的顺序并不唯一,如,步骤504也可以在步骤503之前执行,也可以同时执行;则在第三对象的读写过程中,可以建立对象迁移队列和延迟队列,将第二请求放置在延迟队列中,等待对象迁移队列中的第三对象从第一存储节点至第二存储节点的迁移完成后,将延迟队列中的第二请求发送至第二存储节点。在一种可能中,第一对象没有第三对象,或第二请求在第三对象迁移完成后生成,则将第二请求放置在重发队列,由重发队列将该第二请求发送至第二存储节点。
另外,该分布式系统中可以包括超时机制,如,该超时机制可以涉及步骤405至步骤408中第一请求响应的是否超时的判断;重定向机制可以涉及步骤410、步骤411中第一对象发生过重定向的判断以及步骤502至步骤505中将第一对象重定向的过程;对象迁移机制可以涉及步骤503中第三对象从第一存储节点中取出并写入第二存储节点的过程,在此过程中,若第三对象内容较多,需要多次迁移,则每次迁移前,需要遍历第一存储节点中第三对象剩余的未迁移的内容,以及已经迁移至迁移队列的第三对象的内容,如此判断进一步的迁移内容,防止第三对象的内容迁移混乱,造成数据的不完整;探测机制可以涉及步骤502,以及步骤506至步骤509中对第一存储节点状态的探测过程。
基于同样的构思,本发明实施例提供一种分布式系统的数据处理装置,图6为本申请实施例提供的一种分布式系统的数据处理装置示意图,如图6示,包括:
收发模块601,用于将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;
确定模块602,用于确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;
处理模块603,用于生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。
可选的,所述收发模块601还用于:所述客户端生成第三对象的第三请求;所述第三对象是存储在所述第一存储节点上的所述第一对象的关联对象;所述第三请求用于指示从所述第一存储节点上读取所述第三对象;所述客户端将所述第三请求发送至所述第一存储节点,并从所述第一存储节点中获取所述第三对象;所述客户端生成所述第三对象的第四请求,并将所述第四请求发送至所述第二存储节点;所述第四请求用于指示所述第二存储节点存储所述第三对象。
可选的,所述处理模块603还用于:所述客户端根据所述第一对象和所述第二分组地址确定第二对象的名称;所述客户端在重定向记录中记录所述第一对象的名称和所述第二对象的名称的对应关系;所述客户端根据所述第二对象生成所述第二请求。
可选的,所述收发模块601还用于:所述客户端确定所述重定向记录中未记录有所述第一对象的名称。
可选的,所述确定模块602还用于:所述客户端确定所述重定向记录表中记录有所述第一对象的名称,则根据所述重定向记录中所述第一对象的名称对应的所述第二对象的名称,确定所述第二对象对应的第二分组地址;所述客户端将携带所述第一对象的所述第一请求发送至所述第二分组地址对应的第二存储节点。
可选的,所述处理模块603还用于:所述客户端将节点状态表中所述第一存储节点的状态更新为异常状态,并将分组状态表中所述第一分组地址的状态更新为异常状态;所述客户端建立与所述第一存储节点的探测线程,以预设频率向所述第一存储节点发送探测消息;若所述客户端通过所述探测线程连续N次接收到所述第一存储节点的探测响应,则将所述节点状态表中所述第一存储节点的状态更新为正常状态,将所述分组状态表中所述第一分组地址的状态更新为正常状态,其中,N大于1。
可选的,所述处理模块603还用于:所述客户端将所述第一分组地址对应的发生重定向的第一对象回迁,并将所述重定向记录中所述第一对象对应的重定向记录删除。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种分布式系统的数据处理方法,其特征在于,所述方法包括:
客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;
所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;
所述客户端生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。
2.如权利要求1所述的方法,其特征在于,将所述第二请求发送至所述第二分组地址对应的第二存储节点之前,还包括:
所述客户端生成第三对象的第三请求;所述第三对象是存储在所述第一存储节点上的所述第一对象的关联对象;所述第三请求用于指示从所述第一存储节点上读取所述第三对象;
所述客户端将所述第三请求发送至所述第一存储节点,并从所述第一存储节点中获取所述第三对象;
所述客户端生成所述第三对象的第四请求,并将所述第四请求发送至所述第二存储节点;所述第四请求用于指示所述第二存储节点存储所述第三对象。
3.如权利要求1所述的方法,其特征在于,所述客户端生成携带第二对象的第二请求,包括:
所述客户端根据所述第一对象和所述第二分组地址确定第二对象的名称;
所述客户端在重定向记录中记录所述第一对象的名称和所述第二对象的名称的对应关系;
所述客户端根据所述第二对象生成所述第二请求。
4.如权利要求3所述的方法,其特征在于,所述客户端将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点之前,还包括:
所述客户端确定所述重定向记录中未记录有所述第一对象的名称。
5.如权利要求4所述的方法,其特征在于,还包括:
所述客户端确定所述重定向记录表中记录有所述第一对象的名称,则根据所述重定向记录中所述第一对象的名称对应的所述第二对象的名称,确定所述第二对象对应的第二分组地址;
所述客户端将携带所述第一对象的所述第一请求发送至所述第二分组地址对应的第二存储节点。
6.如权利要求1所述的方法,其特征在于,所述客户端确定在预设时间内未收到所述第一存储节点的第一请求响应之后,还包括:
所述客户端将节点状态表中所述第一存储节点的状态更新为异常状态,并将分组状态表中所述第一分组地址的状态更新为异常状态;
所述客户端建立与所述第一存储节点的探测线程,以预设频率向所述第一存储节点发送探测消息;
若所述客户端通过所述探测线程连续N次接收到所述第一存储节点的探测响应,则将所述节点状态表中所述第一存储节点的状态更新为正常状态,将所述分组状态表中所述第一分组地址的状态更新为正常状态,其中,N大于1。
7.如权利要求6所述的方法,其特征在于,所述分组状态表中所述第一分组地址的状态更新为正常状态之后,还包括:
所述客户端将所述第一分组地址对应的发生重定向的第一对象回迁,并将所述重定向记录中所述第一对象对应的重定向记录删除。
8.一种分布式系统的数据处理装置,其特征在于,所述装置包括:
收发模块,用于将携带第一对象的第一请求发送至第一分组地址对应的第一存储节点;所述第一请求用于指示所述第一存储节点处理所述第一对象;
确定模块,用于确定在预设时间内未收到所述第一存储节点的第一请求响应,则从可用的分组地址中确定第二分组地址;
处理模块,用于生成携带第二对象的第二请求,并将所述第二请求发送至所述第二分组地址对应的第二存储节点;所述第二对象为所述第一对象的重定向对象;所述第二请求用于指示所述第二存储节点处理所述第一对象。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,当所述程序在计算机上运行时,使得计算机实现执行权利要求1至7中任一项所述的方法。
10.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1至7任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011208698.8A CN112363980B (zh) | 2020-11-03 | 2020-11-03 | 一种分布式系统的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011208698.8A CN112363980B (zh) | 2020-11-03 | 2020-11-03 | 一种分布式系统的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363980A true CN112363980A (zh) | 2021-02-12 |
CN112363980B CN112363980B (zh) | 2024-07-02 |
Family
ID=74513392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011208698.8A Active CN112363980B (zh) | 2020-11-03 | 2020-11-03 | 一种分布式系统的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363980B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116032433A (zh) * | 2022-12-31 | 2023-04-28 | 北京瑞莱智慧科技有限公司 | 消息处理方法、相关设备及存储介质 |
CN117061541A (zh) * | 2023-10-11 | 2023-11-14 | 苏州元脑智能科技有限公司 | 存储双池绑定方法、装置、电子设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833337A (zh) * | 2012-08-30 | 2012-12-19 | 北京星网锐捷网络技术有限公司 | 一种ftp文件上传、下载方法及装置 |
CN109508325A (zh) * | 2018-11-13 | 2019-03-22 | 郑州云海信息技术有限公司 | 一种集群文件系统的容量控制方法及装置 |
CN109656895A (zh) * | 2018-11-28 | 2019-04-19 | 平安科技(深圳)有限公司 | 分布式存储系统、数据写入方法、装置和存储介质 |
CN109669822A (zh) * | 2018-11-28 | 2019-04-23 | 平安科技(深圳)有限公司 | 电子装置、备用存储池的创建方法和计算机可读存储介质 |
CN110308983A (zh) * | 2019-04-19 | 2019-10-08 | 中国工商银行股份有限公司 | 资源负载均衡方法及系统、服务节点和客户端 |
CN110750498A (zh) * | 2018-07-19 | 2020-02-04 | 成都华为技术有限公司 | 对象访问方法、装置及存储介质 |
US20200310660A1 (en) * | 2017-12-18 | 2020-10-01 | Huawei Technologies Co., Ltd. | Identifying sub-health object storage devices in a data storage system |
-
2020
- 2020-11-03 CN CN202011208698.8A patent/CN112363980B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833337A (zh) * | 2012-08-30 | 2012-12-19 | 北京星网锐捷网络技术有限公司 | 一种ftp文件上传、下载方法及装置 |
US20200310660A1 (en) * | 2017-12-18 | 2020-10-01 | Huawei Technologies Co., Ltd. | Identifying sub-health object storage devices in a data storage system |
CN110750498A (zh) * | 2018-07-19 | 2020-02-04 | 成都华为技术有限公司 | 对象访问方法、装置及存储介质 |
CN109508325A (zh) * | 2018-11-13 | 2019-03-22 | 郑州云海信息技术有限公司 | 一种集群文件系统的容量控制方法及装置 |
CN109656895A (zh) * | 2018-11-28 | 2019-04-19 | 平安科技(深圳)有限公司 | 分布式存储系统、数据写入方法、装置和存储介质 |
CN109669822A (zh) * | 2018-11-28 | 2019-04-23 | 平安科技(深圳)有限公司 | 电子装置、备用存储池的创建方法和计算机可读存储介质 |
CN110308983A (zh) * | 2019-04-19 | 2019-10-08 | 中国工商银行股份有限公司 | 资源负载均衡方法及系统、服务节点和客户端 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116032433A (zh) * | 2022-12-31 | 2023-04-28 | 北京瑞莱智慧科技有限公司 | 消息处理方法、相关设备及存储介质 |
CN117061541A (zh) * | 2023-10-11 | 2023-11-14 | 苏州元脑智能科技有限公司 | 存储双池绑定方法、装置、电子设备及可读存储介质 |
CN117061541B (zh) * | 2023-10-11 | 2024-02-09 | 苏州元脑智能科技有限公司 | 存储双池绑定方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112363980B (zh) | 2024-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111881209A (zh) | 异构数据库的数据同步方法、装置、电子设备及介质 | |
JP2018194882A (ja) | 制御プログラム、制御方法、制御装置、及びデータベースサーバ | |
CN110673959A (zh) | 用于处理任务的系统、方法和装置 | |
CN112363980A (zh) | 一种分布式系统的数据处理方法及装置 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN111309693A (zh) | 一种数据同步方法、装置、系统、电子设备及存储介质 | |
EP4187877A1 (en) | Method and apparatus for establishing communication connection, and device, and computer readable storage medium | |
CN112667270B (zh) | 语音处理资源的更新方法、计算机设备及存储装置 | |
CN111488373B (zh) | 用于处理请求的方法和系统 | |
EP4006725A1 (en) | Virtual machine migration processing and strategy generation method, apparatus and device, and storage medium | |
CN110502574B (zh) | 跨系统的信息同步方法、用户设备、存储介质及装置 | |
CN113742376A (zh) | 一种同步数据的方法、第一服务器以及同步数据的系统 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN109271224B (zh) | 用于确定位置的方法和设备 | |
US20220229689A1 (en) | Virtualization platform control device, virtualization platform control method, and virtualization platform control program | |
CN113297267A (zh) | 数据缓存和任务处理方法、装置、设备以及存储介质 | |
CN114840562B (zh) | 业务数据的分布式缓存方法、装置、电子设备及存储介质 | |
CN111147226A (zh) | 数据存储方法、装置及存储介质 | |
CN111131497B (zh) | 文件传输方法、装置、电子设备及存储介质 | |
CN109144788B (zh) | 一种重建osd的方法、装置及系统 | |
CN108345431B (zh) | 一种数据读取的方法及装置 | |
CN111147554A (zh) | 一种数据的存储方法、装置及计算机系统 | |
CN114900531B (zh) | 数据同步方法、装置和系统 | |
CN113051143A (zh) | 服务负载均衡服务器的探测方法、装置、设备和存储介质 | |
CN113792074B (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 | ||
GR01 | Patent grant |