数据处理方法、装置及存储介质与流程

文档序号:18600377发布日期:2019-09-03 22:35阅读:137来源:国知局
数据处理方法、装置及存储介质与流程

本申请涉及互联网技术领域,尤其涉及一种数据处理方法、装置及存储介质。



背景技术:

随着信息技术的发展,全球数据呈爆炸式增长,这些数据的存储对数据存储技术提出了更高的要求。数据存储技术主要为了满足简易性和可靠性两类要求。通常情况下,若数据存储系统的实现比较简易,那么从其中读取数据的可靠性就很难保证;若从数据存储系统中读取数据的可靠性较高,则该数据存储系统的实现比较复杂。因此,如何实现一种简易性和可靠性兼具的数据存储系统为本领域技术人员需要解决的问题。



技术实现要素:

本申请实例提出了一种数据处理方法、装置和存储介质,以减少分布式存储系统中读数据的复杂度并能保证数据的准确度。

本申请实例提供了一种数据处理方法,所述方法包括:接收来自应用服务器的读数据请求,所述读数据请求携带用户标识和应用业务数据的标识;根据所述用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第一存储节点集合;根据所述应用业务数据的标识从所述第一存储节点集合中的各个存储节点读取多份应用业务数据;当读取的所述多份应用业务数据的内容不一致时,确定所述多份应用业务数据的置信度特征;根据所确定的所述置信度特征,从所述多份应用业务数据中确定一份目标应用业务数据;将所述目标应用业务数据发送至所述应用服务器。

本申请实例还提供了一种数据处理装置,所述装置包括:接收模块,接收来自应用服务器的读数据请求,所述读数据请求携带用户标识和应用业务数据的标识;读取模块,根据所述用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第一存储节点集合;根据所述应用业务数据的标识从所述第一存储节点集合中的各个存储节点读取多份应用业务数据;确定模块,当读取的所述多份应用业务数据的内容不一致时,确定所述多份应用业务数据的置信度特征;根据所确定的所述置信度特征,从所述多份应用业务数据中确定一份目标应用业务数据;发送模块,将所述目标应用业务数据发送至所述应用服务器。

本申请还提供了一种存储介质,存储有计算机可读指令,可以使至少一个处理器执行上述方法。

采用上述技术方案,可以减少分布式存储系统中读数据的复杂度,提高读数据的准确性,从而进一步改善系统性能。

附图说明

为了更清楚地说明本申请实例中的技术方案,下面将对实例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请涉及的一种系统构架示意图;

图2为本申请一实例的方法流程图;

图3为本申请涉及的分布式处理;

图4为本申请一媒体数据处理实例的消息交互图;

图5为本申请一实例的装置结构图;及

图6为本申请一实例的设备结构图。

具体实施方式

下面将结合本申请实例中的附图,对本申请实例中的技术方案进行清楚、完整地描述,显然,所描述的实例仅是本申请一部分实例,而不是全部的实例。基于本申请中的实例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实例,都属于本申请保护的范围。

在一些实例中,采用集中的存储服务器存放所有数据,即应用服务器中的所有数据均写入到集中存储服务器中,应用服务器的读数据服务也全都从该集中存储服务器中读取。该方法具有非常高的简易性,不做任何备份存储,但是在网络中断的情况下,存储的数据就完全不可访问了。此时,集中存储服务器就成为系统性能的瓶颈,不能满足大规模存储应用的需要。

在一些实例中,采用分布式存储系统,将数据分散存储在多台独立的存储服务器上。采用可扩展的系统结构,利用多台存储服务器分担存储负荷,即,在数据写服务时,同一份数据会做多份备份。读数据服务可以根据应用服务器和数据存储服务器的地域分布,就近读取一份。该方法不但提高了系统的可靠性、可用性和存取效率,还易于扩展。但是由于故障和并行存储等情况的存在,读取的同一个数据的多个备份之间可能存在不一致的情况,这类不一致问题有时可以容忍,有时则很难容忍。通常情况下,在写数据时,可以采用paxos,zookeeper,raft,viewstampedreplication等一致性算法来保证上述多个备份的一致性,这种强一致性处理实现起来十分复杂,确认一致性的过程也很长,造成的写数据的处理延时也较大。

基于上述技术问题,本申请提出一种数据处理方法,装置及存储介质。上述方法可应用于图1所示的系统构架中。如图1所示,该系统构架包括:应用客户端101、应用服务器102和分布式存储系统103,这些实体通过互联网104进行通信,其中,分布式存储系统103包括多个节点服务器,如图1所示,主节点服务器、节点服务器1、节点服务器2……节点服务器n。

用户使用应用客户端101访问应用服务器102,比如:浏览网页或者观看在线视频等,应用服务器102可以是提供各种互联网服务的网站服务器,比如:门户网站服务器、提供在线视频/音频播放服务的服务器、社交平台的服务器等等,其中,应用服务器102可向应用客户端101提供各种服务。用户使用应用客户端101完成各种操作的过程中会产生各种需要存储到分布式存储系统103的数据,比如:用户完成注册操作后会产生用户注册信息,用户完成会员购买操作后会产生会员信息,用户完成商品购买操作后会产生商品订单信息等等。这些用户注册信息、会员信息、商品订单信息等应用业务数据会被应用服务器102存储到分布式存储系统103中。具体的,应用服务器102向分布式存储系统103发送写数据请求,所述写数据请求携带用户标识及其关联的待存储应用业务数据;分布式存储系统103中的主节点服务器响应于所述写数据请求,将所述应用业务数据分别存储至第一存储节点集合中的各个存储节点(即节点服务器),并将所述用户标识和所述应用业务数据的标识与所述第一存储节点集合相关联。

当要读数据时,应用服务器102将读数据请求发送至分布式存储系统103中的主节点服务器,所述读数据请求携带所述用户标识和所述应用业务数据的标识。所述主节点服务器接收所述读数据请求,根据该请求携带的用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第二存储节点集合;根据所述应用业务数据的标识从所述第二存储节点集合中的各个存储节点读取多份所述应用业务数据。当读取的所述多份所述应用业务数据的内容不一致时,确定所述多份所述应用业务数据的置信度特征;根据所确定的所述置信度特征,从所述多份所述应用业务数据中确定一份目标应用业务数据;将所述目标应用业务数据发送至应用服务器102,以使得应用服务器102根据所述目标应用业务数据向应用客户端101推送相应的媒体内容。

在一些实例中,本申请提出的数据处理方法可应用于分布式存储系统103中的主节点服务器。如图2所示,该方法包括主要包括两部分处理:一、写数据处理(包括步骤201和202),二、读数据处理(包括步骤203~208)。在一些实例中,该方法包括读数据处理(包括步骤203~208),此种情况下,主节点服务器可仅负责读数据请求的处理。在另一些实例中,该方法包括写数据处理和读数据处理(包括步骤201~208),此种情况下,主节点服务器既负责写数据请求的处理也负责读数据请求的处理。各步骤的具体处理如下:

步骤201:接收来自应用服务器的写数据请求,所述写数据请求携带用户标识及其关联的待存储应用业务数据。

这里,接收来自应用服务器的写数据请求,以写入应用业务数据,以便应用服务器从分布式存储系统中读取该应用业务数据(比如应用业务的会员信息、权限信息等),根据该应用业务数据提供在线服务,比如向应用客户端推送相应的媒体内容(如视频服务器根据视频会员信息或权限信息等向视频客户端推送广告或者视频节目等)。

步骤202:将所述应用业务数据分别存储至第一存储节点集合中的各个存储节点,并将所述用户标识和所述应用业务数据的标识与所述第一存储节点集合相关联。

在一些实例中,其中,在将所述应用业务数据分别存储至第一存储节点集合中的各个存储节点之前,所述方法进一步包括:将所述应用业务数据存储至所述缓存服务器并获得存储地址;其中,所述将所述应用业务数据分别存储至第一存储节点集合中的各个存储节点,包括:向所述第一存储节点集合中的各个存储节点分别发送携带所述存储地址的写数据请求,以使各个存储节点根据所述存储地址从所述缓存服务器获取所述应用业务数据。

这里,配置所述缓存服务器后,分布式存储系统中的主节点服务器在响应于所述写数据请求后,可以先将上述应用业务数据存储至缓存服务器并获得存储地址,将所述应用业务数据在所述缓存服务器中的写入操作完成信息发送至应用服务器;再异步地向所述第一存储节点集合中的各个存储节点分别发送携带所述存储地址的写数据请求,使得各个存储节点根据所述存储地址从所述缓存服务器获取所述应用业务数据,以存储该应用业务数据,获得该应用业务数据的多份备份数据。通过配置所述缓存服务器,将所述应用业务数据在所述缓存服务器中的写入操作完成信息发送至应用服务器,以告知应用服务器该应用业务数据已存储,可以进一步解决数据写入操作延时较大的问题,从而加速数据的写操作,提升系统的运行性能。

如前所述,分布式存储系统包括至少一个节点服务器,这里,分布式存储系统中的主节点服务器接收写数据请求后,可以将所述应用服务器的应用业务数据存储任意多份备份,这取决于对数据可靠性的需求和分布式存储系统自身的性能。例如,可以将所述应用业务数据存储至分布式存储系统中的每一个存储服务器,也可以将所述应用业务数据存储至分布式存储系统中的部分存储服务器。

在一些实例中,所述响应于所述写数据请求,将所述应用业务数据分别存储至第一存储节点集合中的各个存储节点,包括:将所述写数据请求发送至所述第一存储节点集合中的各个存储节点;接收所述第一存储节点集合中一个或多个存储节点发送的响应消息;将所述应用业务数据分别存储至所述发送响应消息的一个或多个存储节点。这里,所述分布式存储系统在写数据时并不采用一致性算法来保证多个存储节点上存储的多个备份的一致性,可以提高写数据的效率。比如:当收到任一存储节点发送的响应消息时,则可将所述应用业务数据存储到该存储节点中。

具体的,应用服务器向所述分布式存储系统发送一个更新数据(即将数据a更新为数据b)的操作(简称写数据操作),则主节点服务器接收该写数据操作,并向分布式存储系统中的各存储节点的服务器发起更新数据的操作。任一存储节点的服务器可向主节点服务器发送响应消息,以表示该存储节点的服务器可以进行更新数据的操作。在采用诸如paxos算法等一致性算法的情况下,主节点服务器和各存储节点的服务器基于消息传递的方式传递写数据请求以及响应消息,当超过半数的存储节点的服务器均向主节点服务器发送响应消息,则表示该数据a可以更新为数据b,则数据b会被写入各个存储节点。这种过程会随着存储节点数量的增多变的更复杂,从而造成通信延时,进一步造成数据写延时。相比之下,本申请实例中在写数据时不采用一致性算法,以保证多个备份的一致性,从而能显著减少写数据的时延,大大提升各存储节点的服务器所能承受的最大写速率,提升了系统性能。

这里,所述数据写入操作无需考虑数据一致性和同步问题,大大简化了分布式存储系统异地容灾的部署和实现,从而进一步提高所述应用业务数据的可靠性。

步骤203:接收来自所述应用服务器的读数据请求,其中,所述读数据请求携带用户标识和所述应用业务数据的标识。

如前所述,应用服务器将用户注册信息、会员信息、商品订单信息等应用业务数据存储到分布式存储系统中,当用户通过应用客户端向应用服务器发送媒体内容访问请求时,应用服务器为了确定推送给该用户的媒体内容,需从分布式存储系统中读取该用户的应用业务数据,以确定该用户的信息。应用服务器则向分布式存储系统发送读数据请求,所述读数据请求携带用户标识和所述应用业务数据的标识。

例如,用户登录应用客户端时,应用服务器为了确定推送给应用客户端的首页信息,需确定该用户的信息,如该用户是否是会员,该用户使用应用客户端的浏览记录等,以定向、准确的推送相应内容给该用户。或者应用服务器为了确定在推送相应的视频给该应用客户端之前,是否要向该应用客户端推送前贴片广告,需向分布式存储系统发送读数据请求,以从分布式存储系统中读取该用户的信息,若该用户是会员,可以免广告,则该应用服务器仅向应用客户端推送视频,不推送前贴片广告。

步骤204:根据所述用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第二存储节点集合。

这里,跟系统对分布式存储节点的配置变化有关,第一存储节点集合和第二存储节点集合可以相同也可以不同,第一存储节点集合和第二存储节点集合可能有交集也可能没有交集。比如:当应用服务器1写数据时,根据当时的配置,主节点服务器可能将来自应用服务器1的应用业务数据写入到其对应的存储节点集合(比如包含节点1和2)中,而后续系统可能会改变应用服务器1对应的存储节点集合,比如:改为包含节点1和3的存储节点集合,也可能改为包含节点3和4的存储节点集合。又比如:因所述应用业务数据长时间保存在所述第一存储节点集合中的各个存储节点等因素,可能导致所述第一存储节点集合中的存储节点失效(即该存储节点不再存储所述应用业务数据),则所述第一存储节点集合中的未失效的存储节点属于所述第二存储节点集合。这样,当应用服务器1读数据时,存储其应用业务数据的存储节点可能发生变化,上述的第二存储节点集合和第一存储节点集合就可能不同。分布式存储系统响应于所述读数据请求时,根据所述用户标识和所述应用业务数据的标识,需确定存储有所述应用业务数据的所有未失效的存储节点,即第二存储节点集合,以从所述第二存储节点集合中的各个存储节点读取多份所述应用数据。需要说明的是,本文所述第一存储节点集合和第二存储节点集合并非一种固定的命名,而是为了指代清楚用“第一”和“第二”代表不同存储节点集合的在一个实例中出现的次序,在同一个实例中,首次出现的一种存储节点集合被称为第一存储节点集合,之后出现的另一种存储节点集合被称为第二存储节点集合。

步骤205:根据所述应用业务数据的标识从所述第二存储节点集合中的各个存储节点读取多份所述应用业务数据。

如前所述,分布式存储系统将所述应用业务数据存储了多份备份,读数据时,分布式存储系统将所有应用业务数据的备份均读取出来,以避免因所述应用业务数据在某个节点服务器没有准确写入,而导致读取不准确(例如,此时从该节点服务器读取的应用业务数据不是最新的),以进一步提高该应用业务数据的可用性和准确性。

步骤206:当读取的所述多份应用业务数据的内容不一致时,确定所述多份所述应用业务数据的置信度特征。

这里,所述确定所述多份所述应用业务数据的置信度特征,可以对所述多份所述应用业务数据进行比较,以确定出多组不同的应用数据;或者对所述应用业务数据进行解析,得到该应用业务数据中的特征字段,该特征字段用于表示用户的特征属性;或者确定所述应用业务数据的写时间戳,以根据所述多份所述应用业务数据的置信度特征,从所述多份所述应用业务数据中确定一份目标应用业务数据。

步骤207:根据所确定的所述置信度特征,从所述多份应用业务数据中确定一份目标应用业务数据。

在一些实例中,所述多份所述应用业务数据的置信度特征,包括:具有相同内容的应用业务数据的份数;其中,所述确定所述多份所述应用业务数据的置信度特征,包括:将所述多份所述应用业务数据分为多个组,其中,属于同一组的应用业务数据的内容相同,不同组对应不同的内容;及确定每个组包含的应用业务数据的份数;其中,所述从所述多份所述应用业务数据中确定一份目标应用业务数据,包括:确定包含最多份数应用业务数据的组;及将所确定的该组中的一份应用业务数据作为所述目标应用业务数据。

这里,当读取的所述多份应用业务数据出现不一致时,分布式存储系统中的主节点服务器可以采用大数逻辑算法对所述多份应用业务数据进行仲裁,确定出目标应用业务数据。例如,主节点服务器从所述分布式存储系统中读取了所述应用业务数据的3个备份数据,其中2个备份数据一致,另一个备份数据与这2个备份数据不一致,则根据大数逻辑算法(即少数服从多数),则将上述2个备份数据的其中一份作为目标应用业务数据。

在一些实例中,所述多份所述应用业务数据的置信度特征,包括:具有相同内容的应用业务数据的置信度权重值;所述方法进一步包括:预先对各个存储节点配置权重系数;其中,所述确定所述多份所述应用业务数据的置信度特征,包括:将所述多份所述应用业务数据分为多个组,其中,属于同一组的应用业务数据的内容相同,不同组对应不同的内容;及对于每个组,根据该组包含的各份应用业务数据所来自的存储节点的权重系数,确定该组应用业务数据的置信度评分;其中,所述从所述多份所述应用业务数据中确定一份目标应用业务数据,包括:确定置信度评分最大的组;及将所确定的该组中的一份应用业务数据作为所述目标应用业务数据。

这里,分布式存储系统还可以对所述大数逻辑算法增加权重因素来辅助仲裁,例如,可以预先对分布式存储系统中的各节点服务器配置权重系数,如性能较好的节点服务器配置较高的权重系数,主节点服务器从所述分布式存储系统中读取了所述应用业务数据的6个备份数据,且从分布式存储系统中的节点服务器1、2读取的备份数据1、2相同,节点服务器1、2性能较好,从而预先给节点服务器1、2分别配置权重系数3,从分布式存储系统中的节点服务器3~6读取的备份数据3~6相同,而节点服务器3~6性能一般,故给节点服务器3~6均配置权重系数1,因此,备份数据1、2的总可信度为6(即节点服务器1的权重+节点服务器2的权重),而备份数据3~6的总可信度为4(即节点服务器3的权重+节点服务器4的权重+节点服务器5的权重+节点服务器6的权重),根据大数逻辑算法的少数服从多数原则,应该将备份数据1、2中的其中一份作为目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征,包括:每份所述应用业务数据的写时间戳;其中,所述确定所述多份应用业务数据的置信度特征,包括:确定所述每份所述应用业务数据的写时间戳;其中,所述从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定写时间戳最早的应用业务数据;及将所确定的该应用业务数据作为所述目标应用业务数据。

这里,当读取的所述多份应用业务数据出现不一致时,分布式存储系统中的主节点服务器还可以采用写时间戳越新越优先原则对所述多份应用业务数据进行仲裁,以确定出目标应用业务数据。因为数据写入时附加有写入的时间戳,当所述应用服务器从分布式存储系统中读取到的多个备份数据不一致时,根据写时间戳越新越优先原则,将写时间戳最新的备份数据作为目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征,包括:所述应用业务数据包含的与置信度有关的特征字段的值;所述确定所述多份应用业务数据的置信度特征,包括:对每份所述应用业务数据进行解析,得到其包含的所述特征字段;确定该份应用业务数据包含的所述特征字段的值;其中,所述从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定代表最高置信度的所述特征字段的值;及将包含该代表最高置信度的所述特征字段的值的一份应用业务数据作为所述目标应用业务数据。

这里,当读取的所述多份应用业务数据出现不一致时,分布式存储系统中的主节点服务器还可以采用自定义票据方法对所述多份应用业务数据进行仲裁,确定出目标应用业务数据,即对应用业务数据进行解析,得到其包含的一个特征字段,如会员有效期、优惠券的有效期等期限字段及观影券的张数等特征字段,并将该字段作为票据,根据该票据确定该用户的目标应用业务数据。

例如,应用服务器请求从分布式存储系统中读取该用户的会员信息,分布式存储系统中的主节点服务器对从各个存储节点读取到的多份会员信息进行解析,得到会员信息中的一个有效期字段,并作为仲裁字段,当出现多个不同的有效期字段时,确定最大的有效期字段的值,将有效期字段的值最大的一份会员信息确定为目标会员信息,即认为将有效期最长的或者说最晚到期的会员信息置信度最高并将其作为目标应用业务数据。再比如,上述的主节点服务器还可对从各个存储节点读取到的多份会员信息进行解析,得到会员信息中的一个观影券张数字段,并作为仲裁字段,当出现多个不同的观影券张数字段时,确定最大的观影券张数字段的值,将观影券张数字段的值最大的一份会员信息确定为目标会员信息,即认为表示最多观影券的会员信息置信度最高并将其作为目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征包括:具有相同内容的应用业务数据的份数、所述应用业务数据包含的写时间戳以及所述应用业务数据包含的与置信度有关的特征字段的值,其中,所述份数对应第一权重系数,所述写时间戳对应第二权重系数,所述特征字段的值对应第三权重系数;其中,所述确定所述多份应用业务数据的置信度特征,包括:将所述多份应用业务数据分为多个集合,其中,属于同一集合的应用业务数据的内容相同,不同集合对应不同的内容;确定每个集合包含的应用业务数据的份数;确定每份所述应用业务数据的写时间戳;及对每份所述应用业务数据进行解析,得到其包含的所述特征字段,确定该份应用业务数据包含的所述特征字段的值;其中,所述从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定包含最多份数应用业务数据的第一组;确定包含写时间戳最早的应用业务数据的第二组;确定代表最高置信度的所述特征字段的值以及包含该代表最高置信度的所述特征字段的值的应用业务数据的第三组;对所述第一组中的每份应用业务数据配置所述第一权重系数,对该第二组中的每份应用业务数据配置所述第二权重系数,并对该第三组中的每份应用业务数据配置所述第三权重系数;根据所述第一权重系数、所述第二权重系数和所述第三权重系数,计算所述第一组、所述第二组和所述第三组中各份应用业务数据的置信度评分;及将最大置信度评分对应的应用业务数据作为所述目标应用业务数据。

在一些实例中,在对所述第一组中的每份应用业务数据配置所述第一权重系数,对该第二组中的每份应用业务数据配置所述第二权重系数,并对该第三组中的每份应用业务数据配置所述第三权重系数之前,所述方法进一步包括:当确定一份应用业务数据同属于所述第一组、所述第二组和所述第三组时,将该份应用业务数据作为所述目标应用业务数据。

这里,分布式存储系统中的主节点服务器还可以采用大数逻辑算法、写时间戳优先原则和自定义票据方法的任意结合来确定所述目标应用业务数据。例如,同时采用大数逻辑算法、写时间戳优先原则和自定义票据方法确定目标应用业务数据,使用大数逻辑算法确定包含最多份数应用业务数据的第一组(如第一组包含5份应用业务数据),使用写时间戳优先原则确定包含写时间戳最早的应用业务数据的第二组(如第二组包含2份应用业务数据),使用自定义票据方法确定包含会员有效期最早的应用业务数据的第三组(如第三组包含2份应用业务数据),对所述第一组中的每份应用业务数据配置所述第一权重系数(如2),对该第二组中的每份应用业务数据配置所述第二权重系数(如2),并对该第三组中的每份应用业务数据配置所述第三权重系数(如3);则第一、二组中的每份应用业务数据的置信度评分为2,第三组中的每份应用业务数据的置信度评分为3,若一份应用业务数据同时在第一组和第二组,或第二组和第三组,或第一组、第二组和第三组等等,那么该应用业务数的置信度评分为各组权重系数之和,将最大置信度评分对应的应用业务数据作为所述目标应用业务数据。若一份应用业务数据同时属于第一组、第二组和第三组,则该份应用业务数据的置信度评分最高,将该份应用业务数据作为目标应用业务数据。

步骤208:将目标应用业务数据发送至所述应用服务器。

这里,分布式存储系统将目标应用业务数据发送至应用服务器,以使应用服务器根据目标应用业务数据将相应内容发送至应用客户端。

例如,用户通过应用客户端向应用服务器发送媒体内容访问请求时,应用客户端中的用于实现推广内容(如广告)推送的软件开发包(sdk)如广告sdk向应用服务器发送推广内容推送请求(如广告曝光请求),当所述目标应用业务数据表示该用户为权限用户,且该用户的权限期限还在有效期内,则应用服务器不响应所述推广内容推送请求,即不将所述推广内容推送至应用客户端,仅响应所述媒体内容访问请求,将所述媒体内容发送至应用客户端,应用客户端展示所述媒体内容,且不展示所述推广内容。

通过上述技术方案,可以减少读数据的复杂度,提高读数据的准确性,大大简化了分布式存储系统异地容灾的部署和实现,从而进一步提高数据的可靠性。例如,通过采用上述技术方案,对于会员信息的读数据服务,在读数据请求率较高时,读取的数据的准确度达到99.99999%,在读数据请求率较低时,读取的数据的准确度甚至达到99.9999999%。

在一些实例中,所述分布式存储系统包括多个主节点服务器,例如,如图3所示,主节点服务器1、主节点服务器2和主节点服务器3,上述多个主节点服务器可以位于不同的域中(即各主节点服务器的域名不同)。多个应用服务器可以向分布式存储系统发起多个写数据请求(即如图3所示的写服务1、写服务2和写服务3)和多个读数据请求,当一个应用服务器向分布式存储系统发起写数据请求或读数据请求时,可以选择与该应用服务器具有相同网络运营商且离该应用服务器的地域较近的主节点服务器,例如,应用服务器1发起写服务1时,应用服务器1所在的地域是江苏省某市,且应用服务器1使用的宽带是网通宽带,则应用服务器1可以选择华东区域的网通主节点服务器,例如为主节点服务器1,以将写数据请求中的应用业务数据分别存储至第一存储节点集合中的各个存储节点,如图3所示,节点服务器1、节点服务器2和节点服务器3。

应用服务器向分布式存储系统发起读数据请求时,选择主节点服务器的方法与上述写服务时选择主节点服务器的方法相同,即就近选择与该应用服务器具有相同网络运营商的主节点服务器,例如,应用服务器1就近选择主节点服务器1,向主节点服务器1发送读数据请求,主节点服务器1响应于所述读数据请求,根据所述用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第二存储节点集合,这里,所述第二存储节点集合与所述第一存储节点集合包含的节点服务器相同,均为节点服务器1、节点服务器2和节点服务器3;主节点服务器1根据所述应用业务数据的标识从所述第二存储节点集合中的各个存储节点读取多份应用业务数据;当读取的所述多份应用业务数据的内容不一致时,主节点服务器1根据其仲裁算法确定所述多份应用业务数据的置信度特征,并根据所确定的所述置信度特征,从所述多份应用业务数据中确定一份目标应用业务数据,将所述目标应用业务数据发送至所述应用服务器1。

图4示出了本申请提出的一种数据处理方法的交互图。在此实例中,该方法应用于分布式存储系统中,且该交互过程涉及分布式存储系统中的四个节点服务器,分别为主节点服务器、节点服务器1、节点服务器2和节点服务器3。以推广内容为广告为例,应用客户端为视频app,应用服务器为视频服务器,其中,视频服务器可向视频app推送视频和广告,如图所示,该方法包括如下步骤:

数据写过程:步骤401~步骤405

步骤401:用户在视频app上完成注册操作并完成会员购买操作。

步骤402:视频app向视频服务器发送写数据请求,请求存储上述过程中产生的应用业务数据,即用户注册信息和会员信息。

步骤403:视频服务器根据该数据存储请求,建立用户的用户注册信息和会员信息,如会员名称、会员有效期等;若用户在视频服务器上已具有会员信息,则视频服务器改写该会员的有效期。

步骤404:视频服务器向分布式存储系统中的主节点服务器发送写数据请求,所述写数据请求携带用户标识及其关联的待存储应用业务数据。

步骤405:主节点服务器响应于所述写数据请求,将所述应用业务数据分别存储至第一存储节点集合中的各个存储节点,并将所述用户标识和所述应用业务数据的标识与所述第一存储节点集合相关联。这里,第一存储节点集合中的各个存储节点为节点服务器1~3。在一些实例中,所述分布式存储系统可以基于redis2.6实现。

读数据过程:步骤406~步骤411

步骤406:视频app向视频服务器发送视频内容获取请求,同时视频app中的广告sdk向视频服务器发送广告推送请求,以获取前贴片广告。

步骤407:视频服务器根据上述广告推送请求生成读数据取请求,其中,所述读数据请求携带用户标识和所述应用业务数据的标识,并将所述读数据请求发送至主节点服务器。

步骤408:分布式存储系统中的主节点服务器响应于所述读数据请求,根据所述用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第二存储节点集合,其中,所述第二存储节点集合可能与所述第一存储节点集合不同,在此实例中,所述第一存储节点集合和所述第二存储节点集合相同,均为节点服务器1~3。

步骤409:存储该应用业务数据的各节点服务器根据所述应用业务数据的标识从各个存储节点读取该用户的应用业务数据。

步骤410:当读取的多份应用业务数据的内容不一致时,主节点服务器根据仲裁算法确定目标应用业务数据,并将确定的目标应用业务数据发送至视频服务器。如前所述,所述仲裁算法可以为大数逻辑算法、写时间戳越新越优先原则及自定义票据方法及其任意组合。

步骤411:当所述目标应用业务数据表示该用户为会员,且该用户的会员期限还在有效期内,则视频服务器不响应所述广告推送请求,即不向所述客户端推送广告,仅向所述客户端发送视频内容。

步骤412:视频app展示所述视频内容。

基于上述实例提供的方法,本申请还提出了一种数据处理装置500。如图5所示,所述装置500包括:

接收模块501,接收来自应用服务器的读数据请求,所述读数据请求携带用户标识和应用业务数据的标识。

读取模块503,响应于所述读数据请求,根据所述用户标识和所述应用业务数据的标识,确定存储有所述应用业务数据的第一存储节点集合;根据所述应用业务数据的标识从所述第一存储节点集合中的各个存储节点读取多份应用业务数据。

确定模块504,当读取的所述多份应用业务数据的内容不一致时,确定所述多份应用业务数据的置信度特征;根据所确定的所述置信度特征,从所述多份应用业务数据中确定一份目标应用业务数据。

发送模块505,将所述目标应用业务数据发送至所述应用服务器。

在一些实例中,所述装置500还包括:存储模块502。其中,所述接收模块501进一步接收来自所述应用服务器的写数据请求,所述写数据请求携带用户标识及其关联的待存储应用业务数据;以及所述存储模块502响应于所述写数据请求,将所述应用业务数据分别存储至第二存储节点集合中的各个存储节点,并将所述写数据请求携带的所述用户标识和所述应用业务数据的标识与所述第二存储节点集合相关联。

在一些实例中,所述装置500还包括:缓存模块506,将所述应用业务数据存储至所述缓存服务器并获得存储地址;其中,所述存储模块502将所述应用业务数据分别存储至第二存储节点集合中的各个存储节点,包括:向所述第二存储节点集合中的各个存储节点分别发送携带所述存储地址的写数据请求,以使各个存储节点根据所述存储地址从所述缓存服务器获取所述应用业务数据。

在一些实例中,所述存储模块502响应于所述写数据请求,将所述应用业务数据分别存储至第二存储节点集合中的各个存储节点,包括:将所述写数据请求发送至所述第一存储节点集合中的各个存储节点;所述接收模块501进一步接收所述第二存储节点集合中一个或多个存储节点发送的响应消息;所述存储模块502进一步将所述应用业务数据分别存储至所述发送响应消息的一个或多个存储节点。

在一些实例中,所述多份应用业务数据的置信度特征,包括:具有相同内容的应用业务数据的份数;其中,所述确定模块504确定所述多份应用业务数据的置信度特征,包括:将所述多份应用业务数据分为多个组,其中,属于同一组的应用业务数据的内容相同,不同组对应不同的内容;及确定每个组包含的应用业务数据的份数;其中,所述确定模块504从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定包含最多份数应用业务数据的组;及将所确定的该组中的一份应用业务数据作为所述目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征,包括:具有相同内容的应用业务数据的置信度权重值;所述装置500还包括:配置模块507,预先对各个存储节点配置权重系数;其中,所述确定模块确定所述多份应用业务数据的置信度特征,包括:将所述多份应用业务数据分为多个组,其中,属于同一组的应用业务数据的内容相同,不同组对应不同的内容;及对于每个组,根据该组包含的各份应用业务数据所来自的存储节点的权重系数,确定该组应用业务数据的置信度评分;其中,所述确定模块从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定置信度评分最大的组;及将所确定的该组中的一份应用业务数据作为所述目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征,包括:每份所述应用业务数据的写时间戳;其中,所述确定模块504确定所述多份应用业务数据的置信度特征,包括:确定所述每份所述应用业务数据的写时间戳;其中,所述确定模块504从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定写时间戳最早的应用业务数据;及将所确定的该应用业务数据作为所述目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征,包括:所述应用业务数据包含的与置信度有关的特征字段的值;其中,所述确定模块504确定所述多份应用业务数据的置信度特征,包括:对每份所述应用业务数据进行解析,得到其包含的所述特征字段;确定该份应用业务数据包含的所述特征字段的值;其中,所述确定模块504从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定代表最高置信度的所述特征字段的值;及将包含该代表最高置信度的所述特征字段的值的一份应用业务数据作为所述目标应用业务数据。

在一些实例中,所述多份应用业务数据的置信度特征包括:具有相同内容的应用业务数据的份数、所述应用业务数据包含的写时间戳以及所述应用业务数据包含的与置信度有关的特征字段的值,其中,所述份数对应第一权重系数,所述写时间戳对应第二权重系数,所述特征字段的值对应第三权重系数;其中,所述确定模块504确定所述多份应用业务数据的置信度特征,包括:将所述多份应用业务数据分为多个集合,其中,属于同一集合的应用业务数据的内容相同,不同集合对应不同的内容;确定每个集合包含的应用业务数据的份数;确定每份所述应用业务数据的写时间戳;及对每份所述应用业务数据进行解析,得到其包含的所述特征字段,确定该份应用业务数据包含的所述特征字段的值;其中,所述确定模块504从所述多份应用业务数据中确定一份目标应用业务数据,包括:确定包含最多份数应用业务数据的第一组;确定包含写时间戳最早的应用业务数据的第二组;确定代表最高置信度的所述特征字段的值以及包含该代表最高置信度的所述特征字段的值的应用业务数据的第三组;所述配置模块507对所述第一组中的每份应用业务数据配置所述第一权重系数,对该第二组中的每份应用业务数据配置所述第二权重系数,并对该第三组中的每份应用业务数据配置所述第三权重系数;所述确定模块504进一步根据所述第一权重系数、所述第二权重系数和所述第三权重系数,计算所述第一组、所述第二组和所述第三组中各份应用业务数据的置信度评分;及将最大置信度评分对应的应用业务数据作为所述目标应用业务数据。

在一些实例中,在所述配置模块507对所述第一组中的每份应用业务数据配置所述第一权重系数,对该第二组中的每份应用业务数据配置所述第二权重系数,并对该第三组中的每份应用业务数据配置所述第三权重系数之前,所述确定模块504进一步用于:当确定一份应用业务数据同属于所述第一组、所述第二组和所述第三组时,将该份应用业务数据作为所述目标应用业务数据。

上述各模块功能的具体实现原理在前文已有描述,这里不再赘述。

另外,在本申请各个实例中的数据处理方法和数据处理装置以及其中的各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

图6示出了数据处理装置500所在的计算设备600的组成结构图。如图6所示,该计算设备包括一个或者多个处理器(cpu)602、存储器604、用户接口606,以及用于互联这些组件的通信总线608。

用户接口606包括一个或多个输出设备612,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口610也包括一个或多个输入设备614,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器604可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器604存储处理器602可执行的指令集,包括:

操作系统616,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用618,包括用于数据处理的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括图5所示的数据处理装置500中的部分或全部单元。各模块501-507可以存储有机器可执行指令。处理器602通过执行存储器606中各模块501-507的机器可执行指令,进而能够实现上述各模块501-507的功能。

需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。

各实例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实例也可以体现为软件产品。例如,对应上述数据处理方法和装置,本申请的实例还提供了一种计算机可读存储介质,其上存储有计算机指令,其中,所述计算机指令被处理器执行时实现上述数据处理方法的步骤。

各实例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如fpga或asic)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。

另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和/或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。

图5中的模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的cpu等可以根据指令执行部分和全部实际操作。

另外,在本申请各个实例中的装置及各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅为本申请的较佳实例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1