The application example discloses a data updating method, a data inquiry method and a device. Among them, including the data update method: the default fragmentation rules will receive the data update request to update the data corresponding to the stored separately to the preset number of data partition based on queue; in response to the preset slice data trigger instruction through each data partition in the queue traversal each data partition based on queue the data to update the data sheet in the queue, slice and update the data partition queue corresponding summary data slice cache summary data; data collection in response to the preset trigger instruction from piecewise aggregate data cache access divided according to total, piecewise aggregate data update summary summary data based on the data cache. Using this application example, the system performance can be improved under the condition of ensuring data consistency, and the availability of the system in highly concurrent scenarios can be greatly improved.
【技术实现步骤摘要】
一种数据更新方法、数据查询方法及装置
本申请涉及互联网通信
,特别涉及一种数据更新方法、数据查询方法及装置。
技术介绍
随着互联网通信技术的日新月异,一些大型的互联网系统,由于业务复杂等原因,会出现大量分布式场景。在分布式事务场景中常常会出现大量高并发场景。在高并发场景下需要及时更新汇总数据以便于后续查询读取数据时保证数据的一致性。现有技术中对于高并发场景下汇总数据的更新和读取主要有以下两种方案:第一种是纯数据库方案,是将汇总数据直接存储于数据库中,直接在数据库中更新和读取汇总数据。第二种是数据分片方案,是将一个汇总数据拆分成多个分片存储在数据库,在处理更新请求时只更新分片的汇总数据,在处理读取请求时借助数据库缓存实时汇总多个分片的汇总数据。在实现本申请过程中,专利技术人发现现有技术中至少存在如下问题:现有的纯数据库方案中直接在数据库中更新和读取汇总数据,虽然可以保证数据的高度一致性,但高并发场景下的性能差,且会存在数据库故障以及因数据库中数据存储更新操作需要对数据对象进行加锁,导致的数据热点等问题,系统的可用性不足。数据分片方案通过分片更新可以优化更新请求 ...
【技术保护点】
一种数据更新方法,其特征在于,包括:基于预设分片规则将接收到的数据更新请求所对应的待更新数据分别存储到预设数量的数据分片队列;响应于预设分片数据汇总触发指令遍历每一数据分片队列,在遍历每一数据分片队列时基于数据分片队列中的待更新数据,更新与数据分片队列对应的分片汇总数据缓存中的分片汇总数据;响应于预设数据汇总触发指令从分片汇总数据缓存中获取分片汇总数据,基于分片汇总数据更新汇总数据缓存中的汇总数据。
【技术特征摘要】
1.一种数据更新方法,其特征在于,包括:基于预设分片规则将接收到的数据更新请求所对应的待更新数据分别存储到预设数量的数据分片队列;响应于预设分片数据汇总触发指令遍历每一数据分片队列,在遍历每一数据分片队列时基于数据分片队列中的待更新数据,更新与数据分片队列对应的分片汇总数据缓存中的分片汇总数据;响应于预设数据汇总触发指令从分片汇总数据缓存中获取分片汇总数据,基于分片汇总数据更新汇总数据缓存中的汇总数据。2.根据权利要求1所述的方法,其特征在于,所述基于预设分片规则将接收到的数据更新请求所对应的待更新数据分别存储到预设数量的数据分片队列包括:数据更新请求监听器接收数据更新请求;所述数据更新请求监听器将所述数据更新请求所对应的待更新数据发送至数据分片算法组件;所述数据分片算法组件按照预设分片规则确定所述待更新数据对应的数据分片队列编号,将所述数据分片队列编号发送至所述数据更新请求监听器;所述数据更新请求监听器将所述数据更新请求对应的待更新数据发送至相应的数据分片队列编号的数据分片队列中。3.根据权利要求1所述的方法,其特征在于,所述在遍历每一数据分片队列时基于数据分片队列中的待更新数据,更新与数据分片队列对应的分片汇总数据缓存中的分片汇总数据包括:判断数据分片队列头部的数据是否为待更新数据;当判断出数据分片队列头部的数据为待更新数据时,获取所述待更新数据进入所述数据分片队列的第一时间,从所述数据分片队列中取出所述待更新数据;获取所述数据分片队列对应的分片汇总数据缓存中的当前分片汇总数据更新时的第二时间;判断所述第二时间是否小于等于所述第一时间与预设等待时间之和;当判断出所述第二时间小于等于所述第一时间与预设等待时间之和时,将所述待更新数据合并到所述数据分片队列对应的分片汇总增量数据;将合并到所述分片汇总增量数据中的待更新数据的数量的统计值加一;判断当前统计值是否大于等于预设单批次更新数量上限值;当判断出所述统计值小于预设单批次更新数量上限值时,执行判断数据分片队列头部的数据是否为待更新数据的操作;当判断出当前统计值大于等于预设单批次更新数量上限值时,判断当前分片汇总增量数据是否为零;当判断出当前分片汇总增量数据不为零时,将所述当前分片汇总增量数据合并到相应的分片汇总数据缓存中的分片汇总数据中,将所述第二时间更新为当前时间。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当判断出数据分片队列头部的数据不是待更新数据时,执行判断当前分片汇总增量数据是否为零的操作。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:当判断出所述第二时间大于所述第一时间与预设等待时间之和时,执行判断当前分片汇总增量数据是否为零的操作。6.根据权利要求3所述的方法,其特征在于,所述方法还包括:当判断出当前分片汇总增量数据为零时,结束更新当前分片汇总数据缓存中的分片汇总数据的操作。7.根据权利要求1所述的方法,其特征在于,所述在遍历每一数据分片队列时基于数据分片队列中的待更新数据,更新与数据分片队列对应的分片汇总数据缓存中的分片汇总数据包括:判断数据分片队列头部的数据是否为待更新数据;当判断出数据分片队列头部的数据为待更新数据时,获取所述待更新数据进入所述数据分片队列的第三时间,从所述数据分片队列中取出所述待更新数据;获取所述数据分片队列对应的分片汇总数据缓存中的当前分片汇总数据更新时的第四时间;判断所述第四时间是否小于等于所述第三时间与预设等待时间之和;当判断出所述第四时间小于等于所述第三时间与预设等待时间之和时,将所述待更新数据合并到相应的分片汇总数据缓存中的分片汇总数据中,将所述第四时间更新为当前时间。8.根据权利要求1所述的方法,其特征在于,所述汇总数据缓存包括:分布式内存缓存和/或服务器本地缓存。9.根据权利要求1至8任意一项所述的方法,其特征在于,所述方法还包括:响应于预设数据同步触发指令在数据分片队列的尾部插入预设数据同步标识,记录所述预设数据同步标识插入所述数据分片队列的时间。10.根据权利要求9所述的方法,其特征在于,所述方法还包括:当数据分片队列头部为预设数据同步标识时,获取所述预设数据同步标识插入所述数据分片队列的时间;获取所述数据分片队列对应的分片汇总数据缓存中的当前分片汇总数据更新时的时间;判断所述当前分片汇总数据更新时的时间是否小于等于所述预设数据同步标识插入所述数据分片队列的时间;当判断出所述当前分片汇总数据更新时的时间小于等于所述预设数据同步标识插入所述数据分片队列的时间时,调用外部同步分片汇总数据操作从数据库获取分片汇总数据;将所述分片汇总数据更新到相应的分片汇总数据缓存中;从所述数据分片队列中移除所述预设数据同步标识。11.一种数据查询方法,其特征在于,包括:从服务器本地缓存中查询与查询请求相对应的汇总数据;当所述服务器本地缓存中存在与查询请求相对应的汇总数据时,从所述服务器本地缓存中获取所述汇总数据;当所述服务器本地缓存中不存在与查询请求相对应的汇总数据时,从分布式内存缓存中查询与所述查询请求相对应的汇总数据;当所述分布式内存缓存中存在与所述查询请求相对应的汇总数据时,从所述分布式内存缓存中获取所述汇总数据;其中,所述汇总数据通过下述步骤得到:基于预设分片规则将数据更新请求对应的待更新数据存储到相应的数据分片队列,基于数据分片队列中的待更新数据更新分片汇总数据,基于分片汇总数据更新汇总数据;所述数据更新请求与所述查询请求相对应。12.一种数据更新装置,其特征在于,包括:分片处理模块,用于基于预设分片规则将接收到的数据更新请求所对应的待更新数据分别存储到预设数量的数据分片队列;第一分片汇总数据更新模块,用于响应于预设分片数据汇总触发指令遍历每一数据分片队列,在遍历每一数据分片队列时基于数据分片队列中的待更新数据,更新与数据分片队列对应的分片汇总数据缓存中的分片汇总数据;汇总数据更新模块,用于响应于预设数据汇总触发指令从分片汇总数据缓存中获取分片汇总数据,基于分片汇总数据更新汇总数据缓存中的汇总数据。13.根据权利要求12所述的装置,其特征在于,所述分片处理模块包括:数据更新请求接收单元,用于数据更新请求监听器接收数据更新请求;待更新数据发送单元,用于所述数据更新请求监听器将所述数据更新请求所对应的待更新数据发送至数据分片算法组件;数据分片队列编号单元,用于所述数据分片算法组件按照预设分片规则确定所述待更新数据对应的数据分片队列编号,将所述数据分片队列编号发送至所述数据更新请求监听器;待更新数据存储单元,用...
【专利技术属性】
技术研发人员:钟晓峰,詹浩,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。