CN106375359A - 一种应用数据的处理方法、装置和系统 - Google Patents
一种应用数据的处理方法、装置和系统 Download PDFInfo
- Publication number
- CN106375359A CN106375359A CN201510439912.3A CN201510439912A CN106375359A CN 106375359 A CN106375359 A CN 106375359A CN 201510439912 A CN201510439912 A CN 201510439912A CN 106375359 A CN106375359 A CN 106375359A
- Authority
- CN
- China
- Prior art keywords
- value data
- application
- data
- terminal
- identification information
- 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
Classifications
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用数据的处理方法、装置和系统,属于互联网技术领域。方法包括:接收多个终端发送的关键值数据,多个终端中的每个终端发送的关键值数据分别包括每个终端执行应用产生的应用数据和每个终端在应用中属于的群组的群组标识信息;向互斥锁服务器发送锁请求,锁请求携带每个终端发送的关键值数据,并根据互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;根据选择的关键值数据包括的群组标识信息,将选择的关键值数据包括的应用数据写入分布式存储系统中。装置包括:接收模块,第一发送模块和存储模块。系统包括:逻辑服务器、多个终端、互斥锁服务器和分布式存储系统。本发明能够避免主键冲突。
Description
技术领域
本发明涉及互联网技术领域,特别涉及一种应用数据的处理方法、装置和系统。
背景技术
目前,很多应用程序都需要多个终端组成一个群组加入应用程序,例如游戏应用程序或者即时通信应用程序等;当应用程序的某个阶段结束时,会生成该群组对应的应用数据;终端将该群组的群组标识和该群组对应的应用数据上报给服务器;服务器以该群组的群组标识为主键,将该群组对应的应用数据写入分布式存储系统中,以供其他终端查询。然而一个群组中包括多个终端,可能多个终端同时上报该群组的群组标识和该群组对应的应用数据给服务器,由于同一个群组中的多个终端上报的该群组的群组标识相同,因此多个终端同时上报该群组标识和该群组对应的应用数据时会产生主键冲突。
目前,为了解决主键冲突的问题,服务器将该群组对应的应用数据写入分布式存储系统中时,为该游戏数据分配一个CAS(Compare and Swap,比较与交换)值,该CAS值可以为写入该应用数据的时间戳;当接收到多个终端发送的同一群组的群组标识和该同一群组对应的应用数据时,对于每个终端发送的群组标识和应用数据,服务器处理过程如下:服务器从分布式存储系统中获取以该群组标识为主键对应的CAS值,为了保证服务器在存储该应用数据的过程中,分布式存储系统中的以该群组标识为主键的应用数据没有被篡改过,服务器在写入该应用数据时,确定获取的该CAS值和分布式存储系统中当前存储的CAS值是否相同,如果相同,则将分布式存储系统中的以该群组标识为主键的应用数据更新为接收的该应用数据,并生成新的CAS值。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
通过这种CAS机制,服务器能够将多个终端发送的应用数据写入分布式存储系统中,因此,现有技术无法完全规避主键冲突的问题。
发明内容
为了解决现有技术的问题,本发明提供了一种应用数据的处理方法、装置和系统。技术方案如下:
一种应用数据的处理方法,所述方法包括:
接收多个终端发送的关键值数据,所述多个终端中的每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述应用中属于的群组的群组标识信息;
向互斥锁服务器发送锁请求,所述锁请求携带所述每个终端发送的关键值数据,并根据所述互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;
根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中。
一种应用数据的处理装置,其特征在于,所述装置包括:
接收模块,用于接收多个终端发送的关键值数据,所述多个终端中的每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述应用中属于的群组的群组标识信息;
第一发送模块,用于向互斥锁服务器发送锁请求,所述锁请求携带所述每个终端发送的关键值数据,并根据所述互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;
存储模块,用于根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中。
一种应用数据的处理系统,其特征在于,所述处理系统包括:逻辑服务器、多个终端、互斥锁服务器和分布式存储系统;
所述多个终端中的每个终端,用于向逻辑服务器发送关键值数据,所述每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述应用中属于的群组的群组标识信息;
所述逻辑服务器,用于向所述互斥锁服务器发送锁请求,所述锁请求携带 所述每个终端发送的关键值数据;
所述互斥锁服务器,用于根据所述锁请求,生成申请结果,并向所述逻辑服务器返回所述申请结果;
所述逻辑服务器,用于根据所述申请结果,选择申请结果为申请锁成功的一个关键值数据,根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入所述分布式存储系统中。
在本发明实施例中,从属于同一个群组的终端发送的关键值数据中选择一个关键值数据,仅对选择的关键值数据执行存储操作,并不用对属于同一个群组的每个终端发送的关键值数据执行存储操作,从而避免了主键冲突的问题,减轻了逻辑服务器的负担。
附图说明
图1是本发明实施例1提供的一种应用数据的处理方法流程图;
图2是本发明实施例2提供的一种应用数据的处理方法流程图;
图3是本发明实施例3提供的一种应用数据的处理装置结构示意图;
图4是本发明实施例4提供的一种逻辑服务器的结构示意图;
图5是本发明实施例5提供的一种应用数据的处理系统架构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例提供了一种存储应用数据的方法,该方法的执行主体为逻辑服务器,参见图1,其中,该方法包括:
步骤101:接收多个终端发送的关键值数据,多个终端中的每个终端发送的关键值数据分别包括每个终端执行应用产生的应用数据和每个终端在应用中属于的群组的群组标识信息;
步骤102:向互斥锁服务器发送锁请求,锁请求携带每个终端发送的关键值数据,并根据互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一 个关键值数据;
步骤103:根据选择的关键值数据包括的群组标识信息,将选择的关键值数据包括的应用数据写入分布式存储系统中。
在本发明实施例中,从属于同一个群组的终端发送的关键值数据中选择一个关键值数据,仅对选择的关键值数据执行存储操作,并不用对属于同一个群组的每个终端发送的关键值数据执行存储操作,避免了主键冲突的问题,从而减轻了逻辑服务器的负担。
实施例2
本发明实施例提供了一种应用数据的处理方法,当逻辑服务器接收到多个终端发送的关键值数据时,可以通过本发明实施例提供的应用数据的处理方法对关键值数据包括的应用数据进行处理,从而避免了主键冲突的问题,降低了逻辑服务器的负担。
参见图2,其中,该方法包括:
步骤201:多个终端中的每个终端向逻辑服务器发送关键值数据;
终端是以群组的形式执行应用,该应用可以为游戏应用或者即时通信应用等;当终端执行完该应用时会产生应用数据,该应用数据可以为执行该应用的时长或者结果等,终端会将该应用数据存储在分布式存储系统中,以供其他终端查询。此时多个终端中的每个终端向逻辑服务器发送关键值数据,多个终端中的每个终端发送的关键值数据分别包括每个终端执行应用产生的应用数据和每个终端在该应用中属于的群组的群组标识信息。
其中,逻辑服务器可以为该应用对应的服务器;群组标识信息可以为群组的名称,群组的ID(identification,标识)或者应用标识和群组的ID的组合等。
对于多个终端中的每个终端,当终端想要执行应用时,终端向逻辑服务器发送加入请求,该加入请求携带终端的终端标识,逻辑服务器接收终端发送的加入请求,并为终端分配群组,存储该群组的群组标识信息和该群组中的终端的终端标识的对应关系;逻辑服务器向终端发送该群组的群组标识信息,并将终端加入该群组执行应用。
当终端执行完该应用时,逻辑服务器生成该应用的应用数据,根据该群组的群组标识信息,从群组标识信息和终端标识的对应关系中获取该群组包括的 各终端的终端标识,向各终端发送该应用数据。各终端接收逻辑服务器发送的群组标识信息和应用数据。
当终端执行完该应用时,逻辑服务器向各终端发送存储界面,该存储界面中包括存储按键和取消按键;当用户想要存储该应用数据时,用户可以点击存储界面中显示的存储按键以提交存储指令给终端,终端根据该存储指令发送关键值数据给逻辑服务器;当用户不想存储该应用数据时,用户可以点击存储界面中显示的取消按键以提交取消指令给终端,终端根据该取消指令,不发送关键值数据给逻辑服务器,并切换到该应用的主界面。
进一步地,终端可以设置操作时长,用户需要在该操作时长内点击存储按键或者取消按键;当检测到用户在该操作时长内没有对终端进行任何操作时,终端直接切换到该应用的主界面。
操作时长可以根据需要进行设置并更改,在本发明实施例中对操作时长不作具体限定;例如,操作时长可以为10s等。
步骤202:逻辑服务器接收每个终端发送的关键值数据,向互斥锁服务器发送锁请求;
对于每个终端,逻辑服务器接收该终端发送的关键值数据,获取当前时间戳作为接收该终端发送的关键值数据的接收时间戳,则该锁请求中除了携带该终端发送的关键值数据,还可以携带接收该关键值数据的接收时间戳。
步骤203:互斥锁服务器接收逻辑服务器发送的锁请求,根据每个终端发送的关键值数据包括的群组标识信息,将属于同一个群组的终端发送的关键值数据聚类在一聚类集合中;
由于同一个群组的群组标识信息相同,则互斥锁服务器根据每个终端发送的关键值数据包括的群组标识信息,找出携带相同的群组标识信息的关键值数据,将找出的关键值数据确定为属于同一个群组的终端发送的关键值数据,将属于同一个群组的终端发送的关键值数据聚类在一聚类集合中。
步骤204:互斥锁服务器根据聚类集合中的每个关键值数据的接收时间戳,选择一关键值数据;
互斥锁服务器根据聚类集合中的每个关键值数据,从锁请求中获取每个关键值数据的接收时间戳,根据每个关键值数据的接收时间戳,选择一个接收时间戳为离当前时间最远的一个关键值数据。
需要说明的是,如果存在多个接收时间戳相同且为离当前时间最远的关键值数据,互斥锁服务器可以从该多个关键值数据中随机选择一个关键值数据。
在本步骤中,互斥锁服务器在选择关键值数据时,也可以忽略每个关键值数据的接收时间戳,随机从每个关键值数据中选择一个关键值数据。
步骤205:为选择的关键值数据生成申请锁成功的申请结果,为每个关键值数据中未选择的关键值数据生成申请锁失败的申请结果;
在本步骤中,互斥锁服务器保证同一个聚类集合中的关键值数据中只有一个关键值数据申请锁成功,其余关键值数据均申请锁失败,从而逻辑服务器仅需要对申请锁成功的关键值数据执行存储操作,忽略聚类集合中未选择的关键值数据,从而并不用对未选择的关键值数据执行存储操作,减少了避免了主键冲突文件,同时减轻了逻辑服务器的负担。
步骤206:互斥锁服务器向逻辑服务器返回每个终端发送的关键值数据的申请结果;
步骤207:逻辑服务器接收互斥锁服务器返回的每个终端发送的关键值数据的申请结果,选择申请结果为申请锁成功的一关键值数据;
其中,申请结果包括申请成功和申请失败。
步骤208:逻辑服务器根据选择的关键值数据包括的群组标识信息,将选择的关键值数据包括的应用数据写入分布式存储系统中。
其中,本步骤可以通过以下步骤(1)至(5)实现,包括:
(1)逻辑服务器根据选择的关键值数据包括的群组标识信息,确定分布式存储系统中是否存在以该群组标识信息为主键的应用数据;
由于一个群组中的多个终端可能执行多次应用,每次应用产生一个应用数据,从而得到多个应用数据,每产生一个应用数据时,终端发送关键值数据给逻辑服务器,逻辑服务器将该应用数据存储在分布式存储系统中,因此,逻辑服务器在存储选择的关键值数据之前,确定分布式存储系统中是否存在以选择的关键值数据包括的群组标识信息为主键的应用数据,如果存在,执行步骤(2),如果不存在,执行步骤(5)。
其中,逻辑服务器确定分布式存储系统中是否存在以选择的关键值数据包括的群组标识信息为主键的应用数据的步骤可以为:
逻辑服务器向分布式存储系统发送查询请求,该查询请求携带选择的关键 值数据包括的群组标识;分布式存储系统接收逻辑服务器发送的查询请求,根据该群组标识确定是否存在以该群组标识信息为主键的应用数据;如果存在,向逻辑服务器发送第一查询响应,第一查询响应用于指示分布式存储系统中存在以该群组标识信息为主键的应用数据;如果不存在,向逻辑服务器发送第二查询响应,第二查询响应用于指示分布式存储系统中不存在以该群组标识信息为主键的应用数据;逻辑服务器接收分布式存储系统发送的第一查询响应或者第二查询响应,根据第一查询响应或者第二查询响应确定分布式存储系统中是否存在以该群组标识信息为主键的应用数据。
(2):如果存在,逻辑服务器根据选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以该群组标识信息为主键的第一应用数据;
如果分布式存储系统中存在以该群组标识信息为主键的应用数据,向分布式存储系统发送读取请求,该读取请求携带该群组标识信息;分布式存储系统接收逻辑服务器发送的读取请求,根据该群组标识信息,获取以该群组标识信息为主键的应用数据作为第一应用数据;向逻辑服务器发送第一应用数据;逻辑服务器接收分布式存储系统发送的第一应用数据。
(3):逻辑服务器根据选择的关键值数据包括的应用数据和第一应用数据,生成第二应用数据;
逻辑服务器将选择的关键值数据包括的应用数据和第一应用数据进行组合,得到第二应用数据。
(4):逻辑服务器以该群组标识信息为主键,将第二应用数据写入分布式存储系统中,结束。
逻辑服务器向分布式存储系统发送该群组标识信息和第二应用数据;分布式存储系统接收逻辑服务器发送的该群组标识信息和第二应用数据,以该群组标识信息为主键,存储第二应用数据。
(5):如果不存在,逻辑服务器以选择的关键值数据包括的群组标识信息为主键,将选择的关键值数据包括的应用数据写入分布式存储系统中。
如果分布式存储系统中不存在以选择的关键值数据包括的群组标识信息为主键的应用数据,逻辑服务器向分布式存储系统发送该群组标识信息和选择的关键值数据包括的应用数据;分布式存储系统接收逻辑服务器发送的该群组标识信息和该应用数据,以该群组标识信息为主键,存储该应用数据。
需要说明的是,本步骤还可以由分布式存储系统确定是否存在以该群组标识信息为主键的应用数据,并存储该应用数据,具体过程如下:
逻辑服务器向分布式存储系统发送选择的关键值数据;分布式存储系统接收逻辑服务器发送的关键值数据,并根据选择的关键值数据包括的群组标识信息,确定是否存在以该群组标识信息为主键的应用数据;如果存在,获取以该群组标识信息为主键的应用数据作为第一应用数据,根据选择的关键值数据包括的应用数据和第一应用数据,生成第二应用数据,以该群组标识信息为主键,存储第二应用数据。如果不存在,以该群组标识信息为主键,存储该应用数据。
进一步地,如果分布式存储系统将选择的关键值数据存储成功,分布式存储系统向逻辑服务器返回第一存储响应,第一存储响应用于指示将选择的关键值数据存储成功;如果分布式存储系统将选择的关键值数据存储失败,分布式存储系统向逻辑服务器返回第二存储响应,第二存储响应用于指示将选择的关键值数据存储失败。逻辑服务器接收分布式存储系统返回的第一存储响应或者第二存储响应,根据第一存储响应确定分布式存储将选择的关键值数据存储成功;或者,根据第二存储响应确定分布式存储系统将选择的关键值数据存储失败。
需要说明的是,对于每个群组中的终端发送的关键值数据都按以上方法进行存储。
步骤209:逻辑服务器向发送选择的关键值数据的终端返回第一存储结果,向多个终端中除该终端之外的其他终端返回第二存储结果。
其中,第一存储结果用于指示其发送的关键值数据存储成功;第二存储结果用于指示其发送的关键值数据存储失败。
进一步地,发送选择的关键值数据的终端接收逻辑服务器发送的第一存储结果,根据第一存储结果确定其发送的关键值数据存储成功;其他终端接收逻辑服务器发送的第二存储结果,根据第二存储结果确定其发送的关键值数据存储失败。
在本发明实施例中,从属于同一个群组的终端发送的关键值数据中选择一个关键值数据,仅对选择的关键值数据执行存储操作,并不用对属于同一个群组的每个终端发送的关键值数据执行存储操作,从而避免了主键冲突的问题,减轻了逻辑服务器的负担。
实施例3
本发明实施例提供了一种应用数据的处理装置,该装置可以为逻辑服务器,参见图3,其中,该装置包括:
接收模块301,用于接收多个终端发送的关键值数据,多个终端中的每个终端发送的关键值数据分别包括每个终端执行应用产生的应用数据和每个终端在应用中属于的群组的群组标识信息;
第一发送模块302,用于向互斥锁服务器发送锁请求,锁请求携带每个终端发送的关键值数据,并根据互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;
存储模块303,用于根据选择的关键值数据包括的群组标识信息,将选择的关键值数据包括的应用数据写入分布式存储系统中。
进一步地,存储模块303,包括:
获取单元,用于根据选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以群组标识信息为主键的第一应用数据;
生成单元,用于根据选择的关键值数据包括的应用数据和第一应用数据,生成第二应用数据;
第一存储单元,用于以群组标识信息为主键,将第二应用数据写入分布式存储系统中。
进一步地,存储模块303,还包括:
确定单元,用于根据选择的关键值数据包括的群组标识信息,确定分布式存储系统中是否存在以群组标识信息为主键的第一应用数据;
如果存在,执行获取单元,用于根据选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以群组标识信息为主键的第一应用数据;
第二存储单元,用于如果不存在,以群组标识为主键,将选择的关键值数据包括的应用数据写入分布式存储系统中。
进一步地,装置还包括:
第二发送模块,用于向发送选择的关键值数据的终端返回第一存储结果,第一存储结果用于指示选择的关键值数据存储成功,以及,
第三发送模块,用于向多个终端中除终端之外的其他终端返回第二存储结 果,第二存储结果用于指示其他终端发送的关键值数据存储失败。
进一步地,锁请求还携带接收每个终端发送的关键值数据的接收时间戳,用于互斥锁服务器根据接收每个终端发送的关键值数据的接收时间戳和群组标识信息生成申请结果,则装置还包括:
获取模块,用于获取接收每个终端发送的关键值数据的接收时间戳。在本发明实施例中,从属于同一个群组的终端发送的关键值数据中选择一个关键值数据,仅对选择的关键值数据执行存储操作,并不用对属于同一个群组的每个终端发送的关键值数据执行存储操作,从而避免了主键冲突的问题,减轻了逻辑服务器的负担。
实施例4
图4是本发明实施例提供的逻辑服务器的结构示意图,该逻辑服务器为上述信息平台提供硬件运行环境。逻辑服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对逻辑服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在逻辑服务器1900上执行存储介质1930中的一系列指令操作。
逻辑服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
逻辑服务器1900可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收多个终端发送的关键值数据,所述多个终端中的每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述 应用中属于的群组的群组标识信息;
向互斥锁服务器发送锁请求,所述锁请求携带所述每个终端发送的关键值数据,并根据所述互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;
根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中。
进一步地,所述根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中,包括:
根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据;
根据所述选择的关键值数据包括的应用数据和所述第一应用数据,生成第二应用数据;
以所述群组标识信息为主键,将所述第二应用数据写入所述分布式存储系统中。
进一步地,所述根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据之前,还包括:
根据所述选择的关键值数据包括的群组标识信息,确定分布式存储系统中是否存在以所述群组标识信息为主键的第一应用数据;
如果存在,执行所述根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据的步骤;
如果不存在,以所述群组标识为主键,将所述选择的关键值数据包括的应用数据写入所述分布式存储系统中。
进一步地,所述根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中之后,还包括:
向发送所述选择的关键值数据的终端返回第一存储结果,所述第一存储结果用于指示所述选择的关键值数据存储成功,以及,
向所述多个终端中除所述终端之外的其他终端返回第二存储结果,所述第二存储结果用于指示所述其他终端发送的关键值数据存储失败。
进一步地,所述锁请求还携带接收所述每个终端发送的关键值数据的接收时间戳,用于所述互斥锁服务器根据接收所述每个终端发送的关键值数据的接 收时间戳和群组标识信息生成申请结果,则所述方法还包括:
获取接收所述每个终端发送的关键值数据的接收时间戳。
在本发明实施例中,从属于同一个群组的终端发送的关键值数据中选择一个关键值数据,仅对选择的关键值数据执行存储操作,并不用对属于同一个群组的每个终端发送的关键值数据执行存储操作,从而避免了主键冲突的问题,减轻了逻辑服务器的负担。
实施例5
本发明实施例提供了一种应用数据的处理系统,参见图5,该处理系统包括:逻辑服务器501、多个终端502、互斥锁服务器503和分布式存储系统504;
所述多个终端502中的每个终端502,用于向逻辑服务器501发送关键值数据,所述每个终端502发送的关键值数据分别包括所述每个终端502执行应用产生的应用数据和所述每个终端502在所述应用中属于的群组的群组标识信息;
所述逻辑服务器501,用于向所述互斥锁服务器503发送锁请求,所述锁请求携带所述每个终端502发送的关键值数据;
所述互斥锁服务器503,用于根据所述锁请求,生成申请结果,并向所述逻辑服务器501返回所述申请结果;
所述逻辑服务器501,用于根据所述申请结果,选择申请结果为申请锁成功的一个关键值数据,根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入所述分布式存储系统504中。
进一步地,所述逻辑服务器501,还用于向所述分布式存储系统504发送所述选择的关键值数据包括的群组标识信息;
所述分布式存储系统504,还用于获取以所述群组标识信息为主键的第一应用数据,向所述逻辑服务器501返回所述第一应用数据;
所述逻辑服务器501,还用于根据所述选择的关键值数据包括的应用数据和所述第一应用数据,生成第二应用数据;
所述逻辑服务器501,还用于向所述分布式存储系统504发送所述第二应用数据;
所述分布式存储系统504,还用于以所述群组标识信息为主键,存储所述第二应用数据。
进一步地,所述分布式存储系统504,还用于确定是否存在以所述群组标识信息为主键的第一应用数据;
如果存在,所述分布式存储系统504,还用于获取以所述群组标识信息为主键的第一应用数据,向所述逻辑服务器501返回所述第一应用数据;
如果不存在,所述分布式存储系统504,还用于以所述群组标识信息为主键,存储所述选择的关键值数据包括的应用数据。
进一步地,所述逻辑服务器501还用于向发送所述选择的关键值数据的终端502返回第一存储结果,以及向所述多个终端502中除所述终端502之外的其他终端502返回第二存储结果;
所述终端502根据所述第一存储结果,确定所述选择的关键值数据存储成功;
所述其他终端502根据所述第二存储结果,确定所述其他终端502发送的关键值数据存储失败。
进一步地,所述锁请求还携带接收所述每个终端502发送的关键值数据的接收时间戳;
则所述互斥锁服务器503,还用于根据所述每个终端502发送的关键值数据包括的群组标识信息,将属于同一个群组的终端502发送的关键值数据聚类在一聚类集合中;
根据所述聚类集合中的每个关键值数据的接收时间戳,选择一关键值数据;
为所述选择的关键值数据生成申请锁成功的申请结果,为所述每个关键值数据中未选择的关键值数据生成申请锁失败的申请结果。
在本发明实施例中,从属于同一个群组的终端发送的关键值数据中选择一个关键值数据,仅对选择的关键值数据执行存储操作,并不用对属于同一个群组的每个终端发送的关键值数据执行存储操作,从而避免了主键冲突的问题,减轻了逻辑服务器的负担。
需要说明的是:上述实施例提供的应用数据的处理装置在应用数据的处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用 数据的处理装置与应用数据的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种应用数据的处理方法,其特征在于,所述方法包括:
接收多个终端发送的关键值数据,所述多个终端中的每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述应用中属于的群组的群组标识信息;
向互斥锁服务器发送锁请求,所述锁请求携带所述每个终端发送的关键值数据,并根据所述互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;
根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中。
2.如权利要求1所述的方法,其特征在于,所述根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中,包括:
根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据;
根据所述选择的关键值数据包括的应用数据和所述第一应用数据,生成第二应用数据;
以所述群组标识信息为主键,将所述第二应用数据写入所述分布式存储系统中。
3.如权利要求2所述的方法,其特征在于,所述根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据之前,还包括:
根据所述选择的关键值数据包括的群组标识信息,确定分布式存储系统中是否存在以所述群组标识信息为主键的第一应用数据;
如果存在,执行所述根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据的步骤;
如果不存在,以所述群组标识为主键,将所述选择的关键值数据包括的应用数据写入所述分布式存储系统中。
4.如权利要求1所述的方法,其特征在于,所述根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中之后,还包括:
向发送所述选择的关键值数据的终端返回第一存储结果,所述第一存储结果用于指示所述选择的关键值数据存储成功,以及,
向所述多个终端中除所述终端之外的其他终端返回第二存储结果,所述第二存储结果用于指示所述其他终端发送的关键值数据存储失败。
5.如权利要求1所述的方法,其特征在于,所述锁请求还携带接收所述每个终端发送的关键值数据的接收时间戳,用于所述互斥锁服务器根据接收所述每个终端发送的关键值数据的接收时间戳和群组标识信息生成申请结果,则所述方法还包括:
获取接收所述每个终端发送的关键值数据的接收时间戳。
6.一种应用数据的处理装置,其特征在于,所述装置包括:
接收模块,用于接收多个终端发送的关键值数据,所述多个终端中的每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述应用中属于的群组的群组标识信息;
第一发送模块,用于向互斥锁服务器发送锁请求,所述锁请求携带所述每个终端发送的关键值数据,并根据所述互斥锁服务器返回的申请结果,选择申请结果为申请锁成功的一个关键值数据;
存储模块,用于根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入分布式存储系统中。
7.如权利要求6所述的装置,其特征在于,所述存储模块,包括:
获取单元,用于根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据;
生成单元,用于根据所述选择的关键值数据包括的应用数据和所述第一应用数据,生成第二应用数据;
第一存储单元,用于以所述群组标识信息为主键,将所述第二应用数据写入所述分布式存储系统中。
8.如权利要求7所述的装置,其特征在于,所述存储模块,还包括:
确定单元,用于根据所述选择的关键值数据包括的群组标识信息,确定分布式存储系统中是否存在以所述群组标识信息为主键的第一应用数据;
如果存在,执行所述获取单元,用于根据所述选择的关键值数据包括的群组标识信息,从分布式存储系统中获取以所述群组标识信息为主键的第一应用数据;
第二存储单元,用于如果不存在,以所述群组标识为主键,将所述选择的关键值数据包括的应用数据写入所述分布式存储系统中。
9.如权利要求6所述的装置,其特征在于,所述装置还包括:
第二发送模块,用于向发送所述选择的关键值数据的终端返回第一存储结果,所述第一存储结果用于指示所述选择的关键值数据存储成功,以及,
第三发送模块,用于向所述多个终端中除所述终端之外的其他终端返回第二存储结果,所述第二存储结果用于指示所述其他终端发送的关键值数据存储失败。
10.如权利要求6所述的装置,其特征在于,所述锁请求还携带接收所述每个终端发送的关键值数据的接收时间戳,用于所述互斥锁服务器根据接收所述每个终端发送的关键值数据的接收时间戳和群组标识信息生成申请结果,则所述装置还包括:
获取模块,用于获取接收所述每个终端发送的关键值数据的接收时间戳。
11.一种应用数据的处理系统,其特征在于,所述处理系统包括:逻辑服务器、多个终端、互斥锁服务器和分布式存储系统;
所述多个终端中的每个终端,用于向逻辑服务器发送关键值数据,所述每个终端发送的关键值数据分别包括所述每个终端执行应用产生的应用数据和所述每个终端在所述应用中属于的群组的群组标识信息;
所述逻辑服务器,用于向所述互斥锁服务器发送锁请求,所述锁请求携带所述每个终端发送的关键值数据;
所述互斥锁服务器,用于根据所述锁请求,生成申请结果,并向所述逻辑服务器返回所述申请结果;
所述逻辑服务器,用于根据所述申请结果,选择申请结果为申请锁成功的一个关键值数据,根据所述选择的关键值数据包括的群组标识信息,将所述选择的关键值数据包括的应用数据写入所述分布式存储系统中。
12.如权利要求11所述的处理系统,其特征在于,
所述逻辑服务器,还用于向所述分布式存储系统发送所述选择的关键值数据包括的群组标识信息;
所述分布式存储系统,还用于获取以所述群组标识信息为主键的第一应用数据,向所述逻辑服务器返回所述第一应用数据;
所述逻辑服务器,还用于根据所述选择的关键值数据包括的应用数据和所述第一应用数据,生成第二应用数据;
所述逻辑服务器,还用于向所述分布式存储系统发送所述第二应用数据;
所述分布式存储系统,还用于以所述群组标识信息为主键,存储所述第二应用数据。
13.如权利要求12所述的处理系统,其特征在于,
所述分布式存储系统,还用于确定是否存在以所述群组标识信息为主键的第一应用数据;
如果存在,所述分布式存储系统,还用于获取以所述群组标识信息为主键的第一应用数据,向所述逻辑服务器返回所述第一应用数据;
如果不存在,所述分布式存储系统,还用于以所述群组标识信息为主键,存储所述选择的关键值数据包括的应用数据。
14.如权利要求11所述的处理系统,其特征在于,
所述逻辑服务器还用于向发送所述选择的关键值数据的终端返回第一存储结果,以及向所述多个终端中除所述终端之外的其他终端返回第二存储结果;
所述终端根据所述第一存储结果,确定所述选择的关键值数据存储成功;
所述其他终端根据所述第二存储结果,确定所述其他终端发送的关键值数据存储失败。
15.如权利要求11所述的处理系统,其特征在于,所述锁请求还携带接收所述每个终端发送的关键值数据的接收时间戳;
则所述互斥锁服务器,还用于根据所述每个终端发送的关键值数据包括的群组标识信息,将属于同一个群组的终端发送的关键值数据聚类在一聚类集合中;
根据所述聚类集合中的每个关键值数据的接收时间戳,选择一关键值数据;
为所述选择的关键值数据生成申请锁成功的申请结果,为所述每个关键值数据中未选择的关键值数据生成申请锁失败的申请结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510439912.3A CN106375359B (zh) | 2015-07-23 | 2015-07-23 | 一种应用数据的处理方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510439912.3A CN106375359B (zh) | 2015-07-23 | 2015-07-23 | 一种应用数据的处理方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106375359A true CN106375359A (zh) | 2017-02-01 |
CN106375359B CN106375359B (zh) | 2019-11-26 |
Family
ID=57880021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510439912.3A Active CN106375359B (zh) | 2015-07-23 | 2015-07-23 | 一种应用数据的处理方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106375359B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
CN103345482A (zh) * | 2013-06-20 | 2013-10-09 | 上海爱数软件有限公司 | 一种网络存储系统及其文件访问冲突处理方法 |
CN103957113A (zh) * | 2014-05-22 | 2014-07-30 | 哈尔滨海能达科技有限公司 | 一种数据传输方法及相关装置 |
US20140366036A1 (en) * | 2013-06-09 | 2014-12-11 | Apple Inc. | Class-Based Mutex |
CN104618518A (zh) * | 2015-03-12 | 2015-05-13 | 中国科学技术大学苏州研究院 | 群组应用场景下多终端协同文件传输方法 |
-
2015
- 2015-07-23 CN CN201510439912.3A patent/CN106375359B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101252603A (zh) * | 2008-04-11 | 2008-08-27 | 清华大学 | 基于存储区域网络san的集群分布式锁管理方法 |
US20140366036A1 (en) * | 2013-06-09 | 2014-12-11 | Apple Inc. | Class-Based Mutex |
CN103345482A (zh) * | 2013-06-20 | 2013-10-09 | 上海爱数软件有限公司 | 一种网络存储系统及其文件访问冲突处理方法 |
CN103957113A (zh) * | 2014-05-22 | 2014-07-30 | 哈尔滨海能达科技有限公司 | 一种数据传输方法及相关装置 |
CN104618518A (zh) * | 2015-03-12 | 2015-05-13 | 中国科学技术大学苏州研究院 | 群组应用场景下多终端协同文件传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106375359B (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563426B1 (en) | Partitioned key-value store with atomic memory operations | |
CN103593147B (zh) | 一种数据读取的方法及装置 | |
US11296940B2 (en) | Centralized configuration data in a distributed file system | |
CN103095687B (zh) | 元数据处理方法及装置 | |
CN110955631B (zh) | 文件访问追踪方法、装置、存储介质及终端 | |
CN105556419B (zh) | 场景功率管理 | |
US10838977B2 (en) | Key-value replication with consensus protocol | |
CN110955584B (zh) | 块设备访问追踪方法、装置、存储介质及终端 | |
US11314712B2 (en) | Method and apparatus for providing serial number, electronic device and readable storage medium | |
CN107800733B (zh) | 分布式系统中会话标识的生成方法及设备 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN111177165A (zh) | 数据一致性检测的方法、装置及设备 | |
CA3055071A1 (en) | Writing composite objects to a data store | |
CN114827178A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN112148350A (zh) | 作品远程版本管理方法、电子设备以及计算机存储介质 | |
CN113051102A (zh) | 文件备份方法、装置、系统、存储介质和计算机设备 | |
CN106815318B (zh) | 一种时序数据库的集群化方法及系统 | |
US9703788B1 (en) | Distributed metadata in a high performance computing environment | |
CN110196680A (zh) | 数据处理方法、装置及存储介质 | |
CN106375359A (zh) | 一种应用数据的处理方法、装置和系统 | |
US20130339800A1 (en) | Failover estimation using contradiction | |
CN114785662B (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
CN111399753B (zh) | 写入图片的方法和装置 | |
CN116701387A (zh) | 数据分段写入方法、数据读取方法及装置 | |
CN112559568A (zh) | 一种虚拟物品确定方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |