CN114629806B - 数据处理方法、装置、电子设备、存储介质及程序产品 - Google Patents
数据处理方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN114629806B CN114629806B CN202210389535.7A CN202210389535A CN114629806B CN 114629806 B CN114629806 B CN 114629806B CN 202210389535 A CN202210389535 A CN 202210389535A CN 114629806 B CN114629806 B CN 114629806B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- request
- protocol
- distributed system
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 230000015556 catabolic process Effects 0.000 claims abstract description 109
- 238000006731 degradation reaction Methods 0.000 claims abstract description 109
- 238000012545 processing Methods 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 22
- 230000009286 beneficial effect Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5019—Ensuring fulfilment of SLA
- H04L41/5025—Ensuring fulfilment of SLA by proactively reacting to service quality change, e.g. by reconfiguration after service quality degradation or upgrade
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、电子设备、存储介质及程序产品,涉及数据处理、云技术领域。该方法应用于分布式系统的第一节点时,具体包括:若接收到客户端发送的写请求,通过分布式一致性协议写入与写请求相应的数据;若接收到客户端发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与读请求相应的数据;其中,分布式系统在处于繁忙状态时触发降级策略,以通过第一节点提供数据写入服务。本申请的实施有利于在分布式系统实施降级策略时节省第一节点对读请求处理的协议开销,提升分布式系统的处理能力。
Description
技术领域
本申请涉及数据处理技术领域,具体而言,本申请涉及一种数据处理方法、装置、电子设备、存储介质及程序产品。
背景技术
随着云技术的发展,分布式技术逐渐成为为各大业务平台提供数据存储服务的核心技术。
然而,现有的分布式系统无法很好地应对突发流量的场景,如一些拉新、运营活动、节假日等可能产生突发流量的场景;面对这些场景,突发流量容易导致系统负载过高,难以及时稳定地提供数据存储服务。
发明内容
本申请实施例提供了一种数据处理方法、装置、电子设备、存储介质及程序产品,可以有效降低系统负载。所述技术方案如下:
第一方面,本申请实施例提供了一种数据处理方法,应用于分布式系统的第一节点,该方法包括:
若接收到客户端发送的写请求,通过分布式一致性协议写入与所述写请求相应的数据;
若接收到客户端发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据;
其中,所述分布式系统在处于繁忙状态时触发降级策略,以通过所述第一节点提供数据写入服务。
在一可行的实施例中,所述通过分布式一致性协议写入与所述写请求相应的数据,包括:
在确定具备写入权限时,通过分布式一致性协议将与所述写请求相应的数据进行本地存储;
若无法写入与所述写请求相应的数据,则向客户端反馈指示写入失败的第一消息,以指示所述分布式系统在执行降级策略时停止更新与所述写请求相应的数据。
在一可行的实施例中,所述在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据,包括:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态,并从本地读取与所述读请求相应的数据。
在一可行的实施例中,还包括:
若无法从本地读取与所述读请求相应的数据,则向客户端反馈指示读取失败的第二消息,以使客户端向第二节点发送所述读请求,通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
在一可行的实施例中,所述分布式系统在待处理的数据请求的数量大于预设数量阈值时,确定处于繁忙状态,并同步触发降级策略。
第二方面,本申请实施例提供了一种数据处理方法,应用于客户端,该方法包括:
在接收到数据写入指令时,向分布式系统的第一节点发送写请求,以在所述分布式系统基于繁忙状态触发降级策略时,通过所述第一节点执行分布式一致性协议写入与所述写请求相应的数据;
在接收到数据读取指令时,向所述第一节点发送读请求,以在所述第一节点确定其存储的数据处于最新状态时,从所述第一节点的本地读取与所述读请求相应的数据。
在一可行的实施例中,在向分布式系统的第一节点发送写请求之后,还包括:
接收所述第一节点在写入失败时反馈的第一消息;
基于所述第一消息向所述分布式系统的第二节点发送所述写请求,并接收所述第二节点反馈的第三消息;
若所述第三消息指示所述第二节点拒绝响应所述写请求,则在所述分布式系统执行降级策略时停止更新与所述写请求相应的数据。
在一可行的实施例中,所述第一节点通过执行以下步骤确定所存储数据的状态:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态。
在一可行的实施例中,在向所述第一节点发送读请求之后,还包括:
接收所述第一节点在读取失败时反馈的第二消息;
向所述分布式系统的第二节点发送读请求,以通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
第三方面,本申请实施例提供了一种数据处理装置,应用于分布式系统的第一节点,该装置包括:
第一写入模块,用于若接收到客户端发送的写请求,通过分布式一致性协议写入与所述写请求相应的数据;
第一读取模块,用于若接收到客户端发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据;
其中,所述分布式系统在处于繁忙状态时触发降级策略,以通过所述第一节点提供数据写入服务。
在一可行的实施例中,第一写入模块在用于执行通过分布式一致性协议写入与所述写请求相应的数据时,具体用于:
在确定具备写入权限时,通过分布式一致性协议将与所述写请求相应的数据进行本地存储;
若无法写入与所述写请求相应的数据,则向客户端反馈指示写入失败的第一消息,以指示所述分布式系统在执行降级策略时停止更新与所述写请求相应的数据。
在一可行的实施例中,第一读取模块在用于执行在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据时,具体用于:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态,并从本地读取与所述读请求相应的数据。
在一可行的实施例中,第一读取模块还用于:
若无法从本地读取与所述读请求相应的数据,则向客户端反馈指示读取失败的第二消息,以使客户端向第二节点发送所述读请求,通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
在一可行的实施例中,所述分布式系统在待处理的数据请求的数量大于预设数量阈值时,确定处于繁忙状态,并同步触发降级策略。
第四方面,本申请实施例提供了一种数据处理装置,应用于客户端,该装置包括:
第二写入模块,用于在接收到数据写入指令时,向分布式系统的第一节点发送写请求,以在所述分布式系统基于繁忙状态触发降级策略时,通过所述第一节点执行分布式一致性协议写入与所述写请求相应的数据;
第二读取模块,用于在接收到数据读取指令时,向所述第一节点发送读请求,以在所述第一节点确定其存储的数据处于最新状态时,从所述第一节点的本地读取与所述读请求相应的数据。
在一可行的实施例中,第二写入模块在用于执行向分布式系统的第一节点发送写请求之后,还具体用于:
接收所述第一节点在写入失败时反馈的第一消息;
基于所述第一消息向所述分布式系统的第二节点发送所述写请求,并接收所述第二节点反馈的第三消息;
若所述第三消息指示所述第二节点拒绝响应所述写请求,则在所述分布式系统执行降级策略时停止更新与所述写请求相应的数据。
在一可行的实施例中,所述第一节点通过执行以下步骤确定所存储数据的状态:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态。
在一可行的实施例中,第二读取模块在用于执行向所述第一节点发送读请求之后,还具体用于:
接收所述第一节点在读取失败时反馈的第二消息;
向所述分布式系统的第二节点发送读请求,以通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
第五方面,本申请实施例提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述第一方面或第二方面提供的数据处理方法的步骤。
第六方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面提供的数据处理方法的步骤。
第七方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面或第二方面提供的数据处理方法的步骤。
本申请实施例提供的技术方案带来的有益效果是:
第一方面,本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,具体地,应用于分布式系统的第一节点;本申请实施例执行的背景为分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务,以实现由第一节点维护数据是否为最新状态;在此基础上,当第一节点接收到客户端发送的写请求时,可以通过分布式一致性协议写入与写请求相应的数据,以在第一节点维护数据是否为最新状态;当第一节点接收到客户端发送的读请求时,若确定自身当前存储的数据处于最新状态时可以从第一节点的本地读取与读请求相应的数据,该操作的实施有利于在分布式系统实施降级策略时节省第一节点对读请求处理的协议开销,提升分布式系统的处理能力。
第二方面,本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,具体地,应用于客户端;与第一方面相同的是,本申请实施例执行的背景也是分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务,以实现由第一节点维护数据是否为最新状态;在此基础上,当客户端接收到数据写入指令时,可以向分布式系统的第一节点发送写请求,以通过第一节点执行分布式一致性协议写入与写请求相应的数据,以实现在第一节点维护数据是否为最新状态;当客户端接收到数据读取指令时,可以向第一节点发送读请求,以在第一节点确定其存储的数据处于最新状态时,从第一节点的本地读取与读请求相应的数据,该操作的实施有利于在分布式系统实施降级策略时节省第一节点对读请求处理的协议开销,提升分布式系统的处理能力。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种应用于分布式系统的第一节点的数据处理方法的流程示意图;
图2为本申请实施例提供的一种应用于客户端的数据处理方法的流程示意图;
图3a为本申请实施例提供的一种数据请求处理的运行场景示意图;
图3b为本申请实施例提供的一种条目格式的示意图;
图4为本申请实施例提供的一种数据处理方法的运行架构示意图;
图5为本申请实施例提供的一种应用于分布式系统的第一节点的数据处理装置的结构示意图;
图6为本申请实施例提供的一种应用于客户端的数据处理装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图;
图8为本申请实施例提供的一种分布式系统应用于区块链系统的一个可选的结构示意图;
图9为本申请实施例提供的区块结构一个可选的示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例涉及云存储(cloud storage),云存储是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array ofIndependent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
本申请实施例涉及分布式一致性协议,具体地,可以是Paxos协议;基于paxos的存储以单一关键词key(如标识码vid、身份标识码Corp ID等)为容灾单元,扩容时按照key为粒度进行迁移。然而在海量key的场景下,一轮扩容一般需要几天的时间,无法很好应对由于拉新、运营活动、节假日等导致的突发流量导致的系统过载问题。
针对相关技术中所存在的上述至少一个技术问题或需要改善的地方,本申请提出一种数据处理方法、装置、电子设备、存储介质以及程序产品,具体地,分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务,以实现由第一节点维护数据是否为最新状态;本申请的实施有利于在分布式系统实施降级策略时节省第一节点对读请求处理的协议开销,提升分布式系统的处理能力。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
图4为本申请实施例提供的实现数据处理的运行架构示意图,在该架构中,可以包括第一服务器11(可以对应于下述实施例中的第一节点,A机)、第二服务器12(可以对应于下述实施例中的第二节点,B机)、终端20(下述实施例所涉及客户端的运行载体)。由图4可见,终端20可以包括多个,相应地,一个终端20上可以包括至少一个客户端;且终端20可以与第一服务器11通过网络30进行通信,也可以与第二服务器12通过网络30进行通信;针对相同的数据处理请求,终端20还可能先后与第一服务器11和第二服务器12进行通信。可选地,在运行时,还可以包括第三服务器;也即可以在如图3a所示的A机和B机的基础上,还可以设有C机;客户端20还可以与第三服务器进行通信。
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端(也可以称为设备)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR/VR设备等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例中,考虑到无租约paxos协议多机多主,单机故障或上线灰度变更时无不可用时间;而在本领域中,使用广泛的一致性协议(比如raft等)一般是带有租约的。在此基础上,还考虑到在一些业务场景中,大部分的数据存储服务都是读多写少,读写比例还可能达到1000:1,针对上述特性,本申请在解决相关技术中存在的问题时,基于带租约的paxos协议,提出了一种可以保证数据存储强一致的轻量柔性方案;具体地,在分布式系统负载过高时,可以开启柔性使读请求直接在本地读取而无需执行paxos协议(节省了协议开销),有效降低系统负载。
下面针对本申请实施例中应用于分布式系统的第一节点的数据处理方法进行具体说明。
具体地,本申请实施例提供的数据处理方法执行背景为分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务。其中,降级策略为将无租约的paxos协议降级为带租约的paxos协议,降级后,由于数据的更新处理执行在第一节点,可以由第一节点维护数据是否为最新状态,在此基础上,降级后的第一节点针对读请求进行本地读取,节省了协议开销,提升了系统处理能力。
在上述执行背景的基础上,下面针对带租约的paxos协议方案中第一节点可以执行方法步骤进行说明。具体地,如图1所示,该方法包括以下步骤S101-S102:
步骤S101:若接收到客户端发送的写请求,通过分布式一致性协议写入与所述写请求相应的数据。
具体地,在带租约的paxos协议中,针对数据处理请求中的写请求固定由第一节点写入,在第一节点中维护数据是否为最新状态;也即,在施行降级策略时,客户端固定向第一节点发送写请求,以由第一节点通过协议将与写请求相关的数据写入;也即其他节点不可实施数据的写入,如客户端向第一节点外的节点发送写请求时,将接收到其他节点反馈的拒绝响应写请求的消息。其中,当第一节点通过分布式一致性协议写入数据时,其他节点可以通过协议存储一致的数据,实现所存储数据的一致性。
步骤S102:若接收到客户端发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据。
具体地,在带租约的paxos协议中,针对数据处理请求中的读请求,首先请求第一节点进行处理,第一节点在确定所存储的数据处于最新状态时,直接在第一节点的本地读取与读请求相应的数据,而无需通过执行分布式一致性协议读取数据。
可选地,第一节点在读取数据失败时,客户端可以重试第二节点进行数据读取,以通过第二节点执行分布式一致性协议读取数据。
在本申请实施例中,一方面,可以以一定的写可用性为代价(第一节点写入失败且无法重试第二节点进行数据写入,也即写请求的处理结果为无法成功写入与请求相应的数据),保证数据强一致性,极大提升了读请求的性能(由于写的需求量远远小于读的需求量,因此在权衡系统负载能力和写请求需求时,可以考虑优先保证系统负载处理能力)。另一方面,本申请实施例所提供的数据强一致性的柔性方案的实施对使用对象而言是透明的。又一方面,本申请实施例提供的数据强一致性的柔性方案还可以避免针对不同的业务需求进行适配调整。
在一可行的实施例中,分布式系统可以在待处理的数据请求的数量(可以是写请求和读请求的总数)大于预设数量阈值时,确定处于繁忙状态(如遇到突发流量,系统负载过高的情况),并同步触发降级策略。可选地,触发降级策略时,还可以同步在第一节点记录分布式系统触发降级策略的降级时间。
下面结合图3a针对分布式系统中第一节点对写请求的处理过程进行详细说明。
在一可行的实施例中,步骤S101中通过分布式一致性协议写入与所述写请求相应的数据,包括以下步骤A1-步骤A2:
步骤A1:在确定具备写入权限时,通过分布式一致性协议将与所述写请求相应的数据进行本地存储。
具体地,在接收到写请求时,将首先判断自身是否具备写入权限,也即降级策略固定由第一节点(A机)写入数据时,首先判断是否为第一节点,若是,则触发通过分布式一致性协议将与写请求相应的数据进行本地存储。其中,写请求可以携带有第一节点的节点信息,当第一节点(可能是其他节点接收到写请求)接收到写请求时,可以通过自身存储的节点信息与写请求携带的节点信息进行比对,若节点信息一致,则可以确定第一节点具备写入权限。可以理解的是,通过分布式一致性协议进行本地存储时,第一节点存储的数据其他节点可以通过协议同步。如第一节点在接收到客户端的写请求后,将与该写请求相应的数据追加到自身存储的数据中(如尾部),然后与其他节点的一致性模块进行通信,即可保证其他节点(即使有节点发生故障)最终能够保存同样的数据。当数据能够正确复制时,每个节点将按照记录的情况执行相应的请求,最终所有节点的数据状态保持一致;第一节点可以将执行写请求后的状态结果返回客户端作为操作结果。基于此,分布式一致性协议的实施可以使得客户端一侧对各节点的操作无感知。
其中,与写请求相应的数据可以是携带于写请求中向第一节点发送。而适应于不同的应用场景,与写请求相应的数据可能不同,如在即时通讯场景,与写请求相应的数据可能是使用客户端的对象新增的社交关系数据;如在支付场景,与写请求相应的数据可能是使用客户端的对象钱包中新增的电子货币数据。
步骤A2:若无法写入与所述写请求相应的数据,则向客户端反馈指示写入失败的第一消息,以指示所述分布式系统在执行降级策略时停止更新与所述写请求相应的数据。
具体地,在一些可能的场景中,可能发生第一节点写入失败的情况,如第一节点发生故障、网络响应超时等,此时第一节点可以向客户端反馈指示失败的第一消息,由于分布式系统执行降级策略时,固定由第一节点提供数据写入服务,其他节点不具有写入权限,因此,第一节点反馈的第一消息还可以用于向客户端指示在分布式系统执行降级策略时停止更新与写请求相应的数据。
可选地,在分布式系统执行降级策略结束(恢复通过无租约的paxos协议执行数据处理请求)时,客户端可以再一次针对相同的数据发起写请求,以写入该数据。其中,分布式系统执行降级策略结束的条件可以是待处理的数据请求的数量小于或等于预设数量阈值,此时分布式系统退出繁忙状态,且同步结束降级策略的实施,不再固定由第一节点提供数据写入服务。
可选地,第一节点针对与写请求相应的数据写入成功时,也可以向客户端反馈写入成功的消息,以指示数据更新成功。
下面结合图3a针对分布式系统中第一节点对读请求的处理过程进行说明。
在一可行的实施例中,步骤S102中在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据,包括以下步骤B1-步骤B2:
步骤B1:将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对。
步骤B2:若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态,并从本地读取与所述读请求相应的数据。
具体地,如图3所示,在分布式系统执行降级策略时,只有A机才能处理业务写请求(实线1所示),而到B机的写请求会被直接拒绝(虚线2所示)。
具体地,由A机维护数据是否为最新状态。数据最新状态以实体(Entity)为粒度维护,由于Entity数量较多,考虑到内存效率的问题,可以选择用LruCache(Least RecentlyUsed Cache,缓存淘汰策略)维护每个Entity的数据状态(如内存占比达预设比例时,优先删除很久未被读取或更新的数据),单个条目格式如图3b所示,其中时间戳(timestamp)记录Entity的最后更新时间,实体标识符(Entity ID)可以用于指示某一数据(实体)。当开启了读柔性并且LruCache中Entity的更新时间(执行时间)在读柔性开启时间(降级时间)后,可以确定当前Entity已经处于本地最新状态,读请求可以直接本地读取。
其中,第一节点在上一次执行分布式一致性协议进行数据处理时,无需区分是进行数据读取还是数据写入,只需要在分布式系统执行降级策略后,第一节点运行过协议即可实现第一节点所存储的数据为最新状态。该原理具体为:在分布式系统实施降级策略前,可能由其他节点提供数据写入服务;当分布式系统实施降级策略时,第一节点可能还未同步其他节点写入的数据,且在实施降级策略后,仅有第一节点提供数据写入服务,因此,在保证分布式系统实施降级策略后第一节点曾运行分布式一致性协议进行数据处理,即可确定第一节点所存储的数据处于最新状态。
可选地,若降级时间晚于执行时间,也即在分布式系统实施降级策略后第一节点并未运行分布式一致性协议进行数据处理,此时第一节点所存储的数据不一定处于最新状态,为了保证数据强一致性,可以退出本地读取的操作。
在一可行的实施例中,执行上述步骤B1-B2后,还可以执行下述步骤B3:
步骤B3:若无法从本地读取与所述读请求相应的数据,则向客户端反馈指示读取失败的第二消息,以使客户端向第二节点发送所述读请求,通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
在一种情况下,步骤B3所指的数据读取失败可能是由于降级时间晚于执行时间导致的。在另一种情况下,步骤B3所指的数据读取失败可能是在降级时间早于执行时间的基础上,在本地进行数据读取时发生数据读取失败的问题,如A机在本地进行数据读取时发生故障(如宕机),所导致的。
具体地,当第一节点无法从本地读取与读请求相应的数据时,可以向客户端反馈指示读取失败的第二消息;此时,客户端可以基于该第二消息向分布式系统中的第二节点发送相同的读请求,以通过第二节点执行分布式一致性协议读取与读请求相应的数据。
可选地,当步骤B3所指的数据读取失败是由于降级时间晚于执行时间导致时,第一节点可以执行分布式一致性协议读取与读请求相应的数据。
下面针对本申请实施例中应用于客户端的数据处理方法进行具体说明。
与上述应用于分布式系统中的第一节点的数据处理方法一致的是,下述实施例执行的背景也是分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务。其中,降级策略为将无租约的paxos协议降级为带租约的paxos协议,降级后,由于数据的更新处理执行在第一节点,可以由第一节点维护数据是否为最新状态,在此基础上,降级后的第一节点针对读请求进行本地读取,节省了协议开销,提升了系统处理能力。
本申请实施例中提供了一种数据处理方法,如图2所示,该方法包括以下步骤S201-S202:
步骤S201:在接收到数据写入指令时,向分布式系统的第一节点发送写请求,以在所述分布式系统基于繁忙状态触发降级策略时,通过所述第一节点执行分布式一致性协议写入与所述写请求相应的数据。
具体地,在分布式系统实施降级策略时,固定由第一节点提供数据写入服务,因此,客户端可以在接收到数据写入指令时,向第一节点发送写请求,以通过第一节点执行分布式一致性协议写入与写请求相应的数据。
可选地,在实际的应用场景中,如某一游戏平台在推行活动时,游戏玩家可能在同一时间上线操作,导致系统的负载过高,此时,系统可以实施降级策略,其中玩家A参与游戏活动获得虚拟资源时,相当于接收到了数据写入指令,此时可以向分布式系统的第一节点发送写请求,以通过第一节点执行分布式一致性协议将玩家A获得虚拟资源的数据写入。
步骤S202:在接收到数据读取指令时,向所述第一节点发送读请求,以在所述第一节点确定其存储的数据处于最新状态时,从所述第一节点的本地读取与所述读请求相应的数据。
具体地,由于在分布式系统实施降级策略时,固定由第一节点提供数据写入服务,因此,分布式系统的数据在第一节点进行维护,在此基础上,当客户端接收到数据读取指令时,可以首先向第一节点发送读请求,以从第一节点的本地读取与读请求相应的数据。
其中,与读请求相应的数据可以是从第一节点中读取得到的数据,而第一节点可以是根据读请求所携带的需求信息获取相应的数据。如在一地图导航场景中,客户端接收到查询历史出行轨迹的指令时,基于查询历史出行轨迹的需求向第一节点发送读请求,以从第一节点中获取历史出行轨迹的数据向使用客户端的对象展示。
下面结合图3a针对本申请实施例中客户端发起写请求的处理过程进行说明。
在一可行的实施例中,步骤S201中,在向分布式系统的第一节点发送写请求之后,还包括步骤C1-步骤C3:
步骤C1:接收所述第一节点在写入失败时反馈的第一消息;
步骤C2:基于所述第一消息向所述分布式系统的第二节点发送所述写请求,并接收所述第二节点反馈的第三消息;
步骤C3:若所述第三消息指示所述第二节点拒绝响应所述写请求,则在所述分布式系统执行降级策略时停止更新与所述写请求相应的数据。
具体地,无论是第一节点还是第二节点,在接收到客户端发送的写请求时,无论是否响应或是否成功响应该写请求,均可以向客户端反馈指示处理结果的消息。如步骤C1,当第一节点写入失败时,可以向客户端反馈指示写入失败的第一消息。还可以的是,第一节点在写入成功时,也可以向客户端反馈指示写入成功的消息。
具体地,当客户端接收到第一消息后,可以确定的是写请求并未得到响应,因此可以向分布式系统的第二节点发送相同的写请求。由于分布式系统在实施降级策略时,固定由第一节点提供数据写入服务,因此如图3a所示,第二节点(B机)将直接拒绝该写请求(第二节点不具备写入权限),因此第二节点将仅会向客户端反馈拒绝响应写请求的第三消息。而客户端在接收到该第三消息时,可以明确知悉分布式系统当前无法支持对写请求相应数据的写入处理,因此可在分布式系统执行降级策略的时间内停止更新与该写请求相应的数据。
可选地,在执行步骤C3之后,若分布式系统执行降级策略结束(系统退出繁忙状态),可以再次发起相同的写请求,以将相应的数据写入。
下面结合图3a针对本申请实施例中客户端发起读请求的处理过程进行说明。
首先,针对分布式系统中第一节点确定所存储数据状态的过程进行说明,具体地,第一节点通过执行以下步骤D1-步骤D2确定所存储数据的状态:
步骤D1:将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
步骤D2:若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态。
具体地,步骤D1-步骤D2的实施可以参考上述实施例中步骤B1-步骤B2的相关说明,在此不再赘述。
可选地,第一节点在执行步骤D1时,还可能得到降级时间晚于执行时间的比对结果,此时第一节点所确定的数据存储结果为数据处于非最新状态。此时,第一节点可以向客户端反馈指示读取失败的第二消息。
在一可行的实施例中,步骤S202中,在向所述第一节点发送读请求之后,还包括步骤E1-步骤E2:
步骤E1:接收所述第一节点在读取失败时反馈的第二消息。
步骤E2:向所述分布式系统的第二节点发送读请求,以通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
具体地,如图3所示,客户端在发送读请求时,首先向第一节点发送(实线1所示),当在第一节点反馈指示读取失败的第二消息时,向第二节点重新发送读请求(虚线2所示)。在第二节点接收到读请求时,第二节点可以通过执行分布式一致性协议读取与读请求相应的数据,并向客户端反馈。
可选地,本申请实施例中,服务器一侧可以布局有三机,如A机、B机和C机。而本申请上述实施例所提及的第一节点可以是A机、B机和C机中的任一服务器,而第二节点可以是该服务器以外的另一服务器;也即在本申请实施例中,所示的A机、B机并不限于实际应用场景中命名所对应的服务器。如在布局有三机时,第一节点对应于A机时,第二节点可以是B机或C机中所对应的任一服务器。另外,在上述实施例中,本申请并未限定发送读请求和写请求的客户端属于同一客户端,其可以是不同的也客户端,也可以是相同的客户端。
在本申请实施例中,在分布式系统实施降级策略时,固定由第一节点提供数据写入服务,因此第一节点可以维护数据是否为最新状态;在此基础上,针对读请求进行处理时,若首先通过第一节点在所存储的数据处于最新状态时,直接从本地读取数据向客户端反馈,相对于客户端盲目地向任一节点发送读请求由接收读请求的节点直接通过执行分布式一致性协议进行数据读取而言,可以大大节省协议开销,提升系统的数据存储服务的处理能力。另外,本申请实施例在第一节点无法从本地读取数据向客户端反馈时,还可以向客户端反馈读物失败的消息,以使客户端向其他节点再次发送读请求,可以有效提高读请求响应的成功率。其次,本申请实施例提供的上述数据处理方法无需业务方代码进行适配,可直接应用于多种业务场景,且可以提升1.3-3.3倍(CPU下降20%-70%)不等的性能。
在本申请实施例中,所涉及的数据(如与写请求相应的数据,与读请求相应的数据)可以通过数据库(Database)进行存储;简而言之,数据库可视为电子化的文件柜——存储电子文件的处所,使用对象可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个使用对象共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(ExtensibleMarkup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(StructuredQuery Language)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
本申请实施例提供了一种数据处理装置,应用于分布式系统的第一节点,如图5所示,该数据处理装置100可以包括:第一写入模块101、第一读取模块102。
其中,第一写入模块101,用于若接收到客户端发送的写请求,通过分布式一致性协议写入与所述写请求相应的数据;第一读取模块102,用于若接收到客户端发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据;其中,所述分布式系统在处于繁忙状态时触发降级策略,以通过所述第一节点提供数据写入服务。
在一可行的实施例中,第一写入模块101在用于执行通过分布式一致性协议写入与所述写请求相应的数据时,具体用于:
在确定具备写入权限时,通过分布式一致性协议将与所述写请求相应的数据进行本地存储;
若无法写入与所述写请求相应的数据,则向客户端反馈指示写入失败的第一消息,以指示所述分布式系统在执行降级策略时停止更新与所述写请求相应的数据。
在一可行的实施例中,第一读取模块102在用于执行在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据时,具体用于:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态,并从本地读取与所述读请求相应的数据。
在一可行的实施例中,第一读取模块102还用于:
若无法从本地读取与所述读请求相应的数据,则向客户端反馈指示读取失败的第二消息,以使客户端向第二节点发送所述读请求,通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
在一可行的实施例中,所述分布式系统在待处理的数据请求的数量大于预设数量阈值时,确定处于繁忙状态,并同步触发降级策略。
本申请实施例还提供了一种数据处理装置,应用于客户端,如图6所示,该数据处理装置200可以包括:第二写入模块201、第二读取模块202。
其中,第二写入模块201,用于在接收到数据写入指令时,向分布式系统的第一节点发送写请求,以在所述分布式系统基于繁忙状态触发降级策略时,通过所述第一节点执行分布式一致性协议写入与所述写请求相应的数据;第二读取模块202,用于在接收到数据读取指令时,向所述第一节点发送读请求,以在所述第一节点确定其存储的数据处于最新状态时,从所述第一节点的本地读取与所述读请求相应的数据。
在一可行的实施例中,第二写入模块201在用于执行向分布式系统的第一节点发送写请求之后,还具体用于:
接收所述第一节点在写入失败时反馈的第一消息;
基于所述第一消息向所述分布式系统的第二节点发送所述写请求,并接收所述第二节点反馈的第三消息;
若所述第三消息指示所述第二节点拒绝响应所述写请求,则在所述分布式系统执行降级策略时停止更新与所述写请求相应的数据。
在一可行的实施例中,所述第一节点通过执行以下步骤确定所存储数据的状态:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态。
在一可行的实施例中,第二读取模块202在用于执行向所述第一节点发送读请求之后,还具体用于:
接收所述第一节点在读取失败时反馈的第二消息;
向所述分布式系统的第二节点发送读请求,以通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
本申请实施例所涉及的过程数据可以通过区块链技术进行存储。本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一定量的处理数据,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据处理方法的步骤,与相关技术相比可实现:
第一方面,本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,具体地,应用于分布式系统的第一节点;本申请实施例执行的背景为分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务,以实现由第一节点维护数据是否为最新状态;在此基础上,当第一节点接收到客户端发送的写请求时,可以通过分布式一致性协议写入与写请求相应的数据,以在第一节点维护数据是否为最新状态;当第一节点接收到客户端发送的读请求时,若确定自身当前存储的数据处于最新状态时可以从第一节点的本地读取与读请求相应的数据,该操作的实施有利于在分布式系统实施降级策略时节省第一节点对读请求处理的协议开销,提升分布式系统的处理能力。
第二方面,本申请实施例提供一种数据处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品,具体地,应用于客户端;与第一方面相同的是,本申请实施例执行的背景也是分布式系统在处于繁忙状态时触发降级策略,控制由第一节点提供数据写入服务,以实现由第一节点维护数据是否为最新状态;在此基础上,当客户端接收到数据写入指令时,可以向分布式系统的第一节点发送写请求,以通过第一节点执行分布式一致性协议写入与写请求相应的数据,以实现在第一节点维护数据是否为最新状态;当客户端接收到数据读取指令时,可以向第一节点发送读请求,以在第一节点确定其存储的数据处于最新状态时,从第一节点的本地读取与读请求相应的数据,该操作的实施有利于在分布式系统实施降级策略时节省第一节点对读请求处理的协议开销,提升分布式系统的处理能力。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:服务器、终端。
本申请实施例涉及的系统可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、终端、车载终端)通过网络通信的形式连接形成的分布式系统。以分布式系统为区块链系统为例,参见图8,图8是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、终端)和客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图8示出的区块链系统中各节点的功能,涉及的功能可以包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图9,图9是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。
Claims (13)
1.一种数据处理方法,其特征在于,应用于分布式系统的第一节点,在所述分布式系统处于繁忙状态时触发降级策略,所述降级策略为将无租约的paxos协议降级为带租约的paxos协议;在施行降级策略时,客户端固定向所述第一节点发送写请求,以由所述第一节点通过协议将与写请求相关的数据写入,其他节点不可进行数据的写入;
所述方法包括:
若接收到客户端在所述降级策略实施时发送的写请求,通过分布式一致性协议写入与所述写请求相应的数据;所述分布式一致性协议包括paxos协议;
若接收到客户端在所述降级策略实施时发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据,无需通过执行所述分布式一致性协议读取数据。
2.根据权利要求1所述的方法,其特征在于,所述通过分布式一致性协议写入与所述写请求相应的数据,包括:
在确定具备写入权限时,通过分布式一致性协议将与所述写请求相应的数据进行本地存储;
若无法写入与所述写请求相应的数据,则向客户端反馈指示写入失败的第一消息,以指示所述分布式系统在执行降级策略时停止更新与所述写请求相应的数据。
3.根据权利要求1所述的方法,其特征在于,所述在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据,包括:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态,并从本地读取与所述读请求相应的数据。
4.根据权利要求3所述的方法,其特征在于,还包括:
若无法从本地读取与所述读请求相应的数据,则向客户端反馈指示读取失败的第二消息,以使客户端向第二节点发送所述读请求,通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
5.根据权利要求1所述的方法,其特征在于,所述分布式系统在待处理的数据请求的数量大于预设数量阈值时,确定处于繁忙状态,并同步触发降级策略。
6.一种数据处理方法,其特征在于,应用于客户端;在分布式系统处于繁忙状态时触发降级策略,所述降级策略为将无租约的paxos协议降级为带租约的paxos协议;在施行降级策略时,客户端固定向第一节点发送写请求,以由所述第一节点通过协议将与写请求相关的数据写入,其他节点不可进行数据的写入;
所述方法包括:
在接收到数据写入指令时,若所述分布式系统实施所述降级策略,则向分布式系统的第一节点发送写请求,以通过所述第一节点执行分布式一致性协议写入与所述写请求相应的数据;所述分布式一致性协议包括paxos协议;
在接收到数据读取指令时,若所述分布式系统实施所述降级策略,则向所述第一节点发送读请求,以在所述第一节点确定其存储的数据处于最新状态时,从所述第一节点的本地读取与所述读请求相应的数据,无需通过执行所述分布式一致性协议读取数据。
7.根据权利要求6所述的方法,其特征在于,在向分布式系统的第一节点发送写请求之后,还包括:
接收所述第一节点在写入失败时反馈的第一消息;
基于所述第一消息向所述分布式系统的第二节点发送所述写请求,并接收所述第二节点反馈的第三消息;
若所述第三消息指示所述第二节点拒绝响应所述写请求,则在所述分布式系统执行降级策略时停止更新与所述写请求相应的数据。
8.根据权利要求6所述的方法,其特征在于,所述第一节点通过执行以下步骤确定所存储数据的状态:
将所述分布式系统触发降级策略的降级时间与上一次执行所述分布式一致性协议进行数据处理的执行时间进行比对;
若所述降级时间早于所述执行时间,则确定当前存储的数据处于最新状态。
9.根据权利要求6所述的方法,其特征在于,在向所述第一节点发送读请求之后,还包括:
接收所述第一节点在读取失败时反馈的第二消息;
向所述分布式系统的第二节点发送读请求,以通过所述第二节点执行分布式一致性协议读取与所述读请求相应的数据。
10.一种数据处理装置,其特征在于,应用于分布式系统的第一节点,在所述分布式系统处于繁忙状态时触发降级策略,所述降级策略为将无租约的paxos协议降级为带租约的paxos协议;在施行降级策略时,客户端固定向所述第一节点发送写请求,以由所述第一节点通过协议将与写请求相关的数据写入,其他节点不可进行数据的写入;
所述装置包括:
第一写入模块,用于若接收到客户端在所述降级策略实施时发送的写请求,通过分布式一致性协议写入与所述写请求相应的数据;所述分布式一致性协议包括paxos协议;
第一读取模块,用于若接收到客户端在所述降级策略实施时发送的读请求,在确定当前存储的数据处于最新状态时,从本地读取与所述读请求相应的数据,无需通过执行所述分布式一致性协议读取数据;
其中,所述分布式系统在处于繁忙状态时触发降级策略,以通过所述第一节点提供数据写入服务。
11.一种数据处理装置,其特征在于,应用于客户端;在分布式系统处于繁忙状态时触发降级策略,所述降级策略为将无租约的paxos协议降级为带租约的paxos协议;在施行降级策略时,客户端固定向第一节点发送写请求,以由所述第一节点通过协议将与写请求相关的数据写入,其他节点不可进行数据的写入;
所述装置包括:
第二写入模块,用于在接收到数据写入指令时,若所述分布式系统实施所述降级策略,则向分布式系统的第一节点发送写请求,以通过所述第一节点执行分布式一致性协议写入与所述写请求相应的数据;所述分布式一致性协议包括paxos协议;
第二读取模块,用于在接收到数据读取指令时,若所述分布式系统实施所述降级策略,则向所述第一节点发送读请求,以在所述第一节点确定其存储的数据处于最新状态时,从所述第一节点的本地读取与所述读请求相应的数据,无需通过执行所述分布式一致性协议读取数据。
12.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-9任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210389535.7A CN114629806B (zh) | 2022-04-13 | 2022-04-13 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210389535.7A CN114629806B (zh) | 2022-04-13 | 2022-04-13 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114629806A CN114629806A (zh) | 2022-06-14 |
CN114629806B true CN114629806B (zh) | 2023-12-12 |
Family
ID=81904956
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210389535.7A Active CN114629806B (zh) | 2022-04-13 | 2022-04-13 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629806B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064130A (ja) * | 2010-09-17 | 2012-03-29 | Hitachi Ltd | 分散システムにおけるデータレプリケーション管理方法 |
CN108234641A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读写方法及装置 |
CN108234630A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读取方法及装置 |
CN109656690A (zh) * | 2017-10-11 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 调度系统、方法和存储介质 |
CN111526186A (zh) * | 2020-04-10 | 2020-08-11 | 河海大学 | 基于Raft的分布式服务器集群配置方法 |
CN112513828A (zh) * | 2018-06-29 | 2021-03-16 | 维卡艾欧有限公司 | 以分布式方式实现文件的一致性和页面高速缓存支持 |
CN113032410A (zh) * | 2019-12-25 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN113190625A (zh) * | 2021-05-25 | 2021-07-30 | 中国工商银行股份有限公司 | 请求处理方法、装置、电子设备、介质和程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10379856B2 (en) * | 2017-06-04 | 2019-08-13 | International Business Machines Corporation | Multicopy atomic store operation in a data processing system |
-
2022
- 2022-04-13 CN CN202210389535.7A patent/CN114629806B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012064130A (ja) * | 2010-09-17 | 2012-03-29 | Hitachi Ltd | 分散システムにおけるデータレプリケーション管理方法 |
CN109656690A (zh) * | 2017-10-11 | 2019-04-19 | 阿里巴巴集团控股有限公司 | 调度系统、方法和存储介质 |
CN108234641A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读写方法及装置 |
CN108234630A (zh) * | 2017-12-29 | 2018-06-29 | 北京奇虎科技有限公司 | 基于分布式一致性协议实现的数据读取方法及装置 |
CN112513828A (zh) * | 2018-06-29 | 2021-03-16 | 维卡艾欧有限公司 | 以分布式方式实现文件的一致性和页面高速缓存支持 |
CN113032410A (zh) * | 2019-12-25 | 2021-06-25 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、电子设备及计算机存储介质 |
CN111526186A (zh) * | 2020-04-10 | 2020-08-11 | 河海大学 | 基于Raft的分布式服务器集群配置方法 |
CN113190625A (zh) * | 2021-05-25 | 2021-07-30 | 中国工商银行股份有限公司 | 请求处理方法、装置、电子设备、介质和程序产品 |
Non-Patent Citations (2)
Title |
---|
Revisit Raft Consistency Protocal on Private Blockchain System in High Network Latency;Ning Cao et al.;ICAIS 2021;全文 * |
赵春扬 ; 肖冰 ; 郭进伟 ; 钱卫宁 ; .一致性协议在分布式数据库系统中的应用.华东师范大学学报(自然科学版).2018,2.5.2. * |
Also Published As
Publication number | Publication date |
---|---|
CN114629806A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111338766B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
EP3435604B1 (en) | Service processing method, device, and system | |
CN111213340B (zh) | 选择用于密码功能的证明委托并使其安全 | |
CN109493223B (zh) | 一种记账方法及装置 | |
WO2019042101A1 (zh) | 一种跨链交易方法及装置 | |
EP3812943A1 (en) | Data reading and writing method and device, and electronic apparatus | |
CN102158540A (zh) | 分布式数据库实现系统及方法 | |
CN102843403A (zh) | 基于分布式文件系统的文件处理方法、系统及客户端 | |
EP3812921A1 (en) | Data structure reading method and device, data structure updating method and device, and electronic apparatus | |
US20180165343A1 (en) | Quorum-based replication of data records | |
CN112162846B (zh) | 事务处理方法、设备及计算机可读存储介质 | |
CN107391033B (zh) | 数据迁移方法及装置、计算设备、计算机存储介质 | |
CN113010549A (zh) | 基于异地多活系统的数据处理方法、相关设备及存储介质 | |
CN114331428A (zh) | 一种非同质化通证分配方法及装置 | |
CN111444216A (zh) | 一种基于中心化块链式账本的数据块删除方法 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN112040015B (zh) | 一种共识节点列表生成方法及相关装置 | |
CN114629806B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
WO2023092986A1 (zh) | 基于分布式身份标识的数据跨链转移和系统 | |
CN115470041A (zh) | 一种数据灾备管理方法及装置 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及系统 | |
CN110196881B (zh) | 一种基于区块链的数据读写方法及区块链网络结构 | |
US10771242B2 (en) | Blockchain-based data processing | |
CN113672161A (zh) | 一种存储系统及其建立方法 | |
JP6172294B2 (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 |