CN105096065A - 一种库存扣减方法和装置 - Google Patents
一种库存扣减方法和装置 Download PDFInfo
- Publication number
- CN105096065A CN105096065A CN201410154377.2A CN201410154377A CN105096065A CN 105096065 A CN105096065 A CN 105096065A CN 201410154377 A CN201410154377 A CN 201410154377A CN 105096065 A CN105096065 A CN 105096065A
- Authority
- CN
- China
- Prior art keywords
- product
- stock
- snapshot
- match
- reduce
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种库存扣减方法,包括:接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求;在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息;对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量;判断所述扣减后数量是否大于等于零;若是,则对所述匹配成功的订单请求和产品发起交易请求。本申请同时提供一种库存扣减装置。采用本申请提供的方法,实现了匹配阶段参考的产品库存数量根据匹配结果的实时同步变化,不仅能够有效提高匹配后交易的成功率,同时可以提高***的稳定性。
Description
技术领域
本申请涉及库存扣减技术,具体涉及一种用于计算机***的库存扣减方法。本申请同时涉及一种用于计算机***的库存扣减装置。
背景技术
随着科学技术和互联网的发展,用户的需求越来越多样化,同时各种产品和服务也越来越丰富,为了将两者有机结合起来,为用户提供更为及时的、针对性更强的服务,交易匹配服务的概念应运而生。所谓交易匹配服务,是指服务型公司或者个人,从用户的实际需求出发,作为第三方,将多边信息集合在一起,通过整理和评估,将有效的信息有针对性地反馈给用户,这个过程统称为交易匹配服务。通过交易匹配服务,一方面用户不用自行去搜索、查找就可以及时得到所需的产品或者服务,从而享受更为快捷方便的用户体验;另一方面,通过为用户提供更优质更方便的服务,从事交易匹配服务的行业也可以从中赢取利润、获得更好的发展。
具体到金融领域,计算机***可以是提供交易匹配服务的***,通常称为交易匹配***,通过该交易匹配***,买方可以提前提出特定交易条件的订单请求,交易匹配***通常采取批量处理订单请求的方式进行匹配处理,即:将已经提交的订单请求与产品信息库中的产品(包括理财产品、股票、期货等)信息进行匹配,如果匹配成功,则自动对匹配成功的订单请求和产品发起交易。
由此可见,交易匹配***不仅用于实现订单请求和产品的匹配功能,一般还包括启动交易的功能,此时,就会涉及扣减产品库存的问题。在现有技术中,一般有以下两种扣减产品库存的方式:1)在下单环节扣减库存;2)支付后扣减库存。基于交易匹配***自身的特点,无论采用上述哪种扣减方式都会存在缺陷,具体原因分析如下。
从上面介绍的交易匹配***的工作方式可以看出,匹配过程和交易过程并不是同步完成的,也就是说交易匹配***对某个订单请求匹配成功并启动交易***后,并不会等待该交易完成,而是立刻对下一个订单请求执行匹配操作。而实际交易过程中,一般需要与用户进行进一步的交互,如需要用户最终确认等,因此该匹配成功的交易是否实际完成、以及实际完成的时间都是不确定的。在这种情况下,如果采用传统的库存扣减方法,那么在匹配阶段就无法实现参与匹配的产品数量与产品实际库存数量实时同步变化,导致匹配阶段所参考的产品库存数量与可用于匹配的有效库存数量存在较大的差别,匹配成功的产品到了交易阶段执行扣减库存的操作时,可能出现失败的现象;上述情况发生后,交易匹配***只好重新处理这部分订单请求,以致影响***效率。如果失败现象过多,甚至有可能会导致整个***崩溃。
发明内容
本申请提供一种库存扣减方法,以解决现有技术无法实现在匹配阶段参考的产品库存数量根据匹配结果实时同步变化、导致匹配成功的产品在交易阶段出现扣减库存失败的问题。本申请另外提供一种库存扣减装置。
本申请提供一种库存扣减方法,包括:
接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求;
在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息;
对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量;
判断所述扣减后数量是否大于等于零;若是,则对所述匹配成功的订单请求和产品发起交易请求。
可选的,所述方法还包括:
启动匹配分片,在所述匹配分片内对归属该匹配分片的订单请求,依次执行所述查找操作、所述对产品库存数量执行扣减的操作、以及根据扣减后数量发起交易的操作;并且,在启动匹配分片时,根据产品中心的产品记录,将所述供购买的产品信息集合存储到内存中,作为产品快照;
相应的,所述在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息是指,在产品快照中查找与所述订单请求中的待购买产品信息相匹配的产品信息。
可选的,在启动匹配分片时,还要根据产品中心的库存记录,将所述供购买的产品信息集合中的产品的库存数量存储到内存中,作为库存快照;
相应的,所述对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量是指,
在所述库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量。
可选的,所述方法还包括:
在执行交易过程中,在产品中心的数据库记录中对所述产品的库存数量执行扣减操作。
可选的,所述启动匹配分片的步骤由多台匹配服务器同时执行;
相应的,所述将供购买的产品信息集合中的产品的库存数量存储到内存中作为库存快照中,所述内存为分布式缓存;
相应的,所述在所述库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量,是对库存快照进行的原子性操作。
可选的,若执行扣减操作后所述产品在库存快照中的数量小于零,则执行下述操作:
将所述产品在库存快照中的数量还原为执行所述扣减操作之前的数量。
可选的,所述方法还包括:
判断执行所述还原操作后所述产品在库存快照中的数量是否小于预先设定的该产品的最小申购数量;
若是,则将该产品的快照信息从产品快照中移除。
本申请同时提供一种库存扣减装置,包括:
订单生成单元,用于接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求;
订单匹配单元,用于在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息;
库存扣减单元,用于对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量;
数量判断单元,用于判断所述扣减后数量是否大于等于零;
交易发起单元,用于当所述数量判断单元的输出为“是”时,对所述匹配成功的订单请求和产品发起交易请求。
可选的,所述装置还包括:
匹配分片管理单元,包括匹配分片管理单元本体、和产品快照生成子单元;
所述匹配分片管理单元本体,用于启动匹配分片,并且在所述匹配分片内触发所述订单匹配单元、所述库存扣减单元、所述数量判断单元和所述交易发起单元,使这些单元处理待匹配的订单请求;
所述产品快照生成子单元,用于在启动匹配分片时,根据产品中心的产品记录,将供购买的产品信息集合存储到内存中,作为产品快照;
相应的,所述订单匹配单元用于,在所述产品快照生成子单元生成的产品快照中查找与所述订单请求中的待购买产品信息相匹配的产品信息。
可选的,所述匹配分片管理单元还包括:
库存快照生成子单元,用于在启动匹配分片时,根据产品中心的库存记录,将所述供购买的产品信息集合中的产品的库存数量存储到内存中,作为库存快照;
相应的,所述库存扣减单元用于,在所述库存快照生成子单元生成的库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量。
可选的,所述装置还包括:
交易扣减单元,用于在执行交易过程中,在产品中心的数据库记录中对所述产品的库存数量执行扣减操作。
可选的,所述匹配分片管理单元、所述订单匹配单元、所述库存扣减单元、所述数量判断单元和所述交易发起单元由多台匹配服务器承担;
相应的,所述库存快照生成子单元具体用于,在启动匹配分片时,根据产品中心的库存记录,将供购买的产品信息集合中的产品的库存数量存储到分布式缓存中,作为库存快照;
相应的,所述库存扣减单元对匹配成功的产品执行的、扣减其购买数量并获取扣减后数量的操作,是对库存快照进行的原子性操作。
可选的,所述装置还包括:
扣减还原单元,用于当所述数量判断单元的输出结果为“否”时,将所述产品在库存快照中的数量还原为执行所述扣减操作之前的数量。
可选的,所述装置还包括:
移除判断单元,用于判断执行所述还原操作后所述产品在库存快照中的数量是否小于预先设定的该产品的最小申购数量;
产品移除单元,用于当所述移除判断单元的输出结果为“是”时,将所述产品的快照信息从产品快照中移除。
与现有技术相比,本申请具有以下优点:
本申请提供的库存扣减方法,通过在匹配阶段对匹配成功的产品的库存数量执行扣减操作,即:匹配成功后,就对相关产品的库存数量进行扣减,从而在匹配阶段实现了产品库存数量根据匹配结果实时同步变化的理想状况,并且只有当匹配成功的产品存在有效库存的情况下才能进一步发起交易请求,从而有效提高匹配后交易的成功率。
附图说明
图1为本申请的一种库存扣减方法的实施例流程图;
图2为本申请的根据扣减后数量进行相应处理的实施例流程图;
图3为本申请的一种库存扣减装置的实施例示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请中,针对现有的交易匹配***在交易阶段(包括下单环节和支付环节)进行库存扣减所引发的问题,分别提供了一种在交易之前进行库存扣减的方法以及一种库存扣减装置。采用本申请提供的库存扣减方法,不仅能够有效提高匹配后交易的成功率,同时可以提高***的稳定性。但是,本申请的技术方案并不仅仅局限于交易匹配***,对于要求匹配阶段参考的产品库存数量根据匹配结果同步变化的应用场景,都可以采用本申请的技术方案。为了便于描述,下面以交易匹配***作为应用场景,对本申请的技术方案进行详细的说明。
请参考图1,其为本申请的一种库存扣减方法的实施例流程图。所述方法包括如下步骤:
步骤101:接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求。
用户在提出对某种产品的购买申请时,通常会提供待购买产品的相关信息,例如:待购买产品的类型、期望收益率、年限等,同时还会指定购买数量,这些信息都是后续进行匹配和交易的重要依据。本步骤接收用户提出的购买申请,并生成包含上述待购买产品信息和购买数量的订单请求。在具体的实施过程中,可以将生成的订单请求添加到匹配处理队列中等待处理。
步骤102:在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息。
本申请所述交易匹配***的基本处理流程是这样的:按照预先设定的时间间隔启动匹配分片,每个匹配分片启动后,从匹配处理队列中拉取订单请求,并在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息,若匹配成功则发起交易请求,然后再从队列中拉取下一个未处理的订单请求,重复上述操作,直到匹配处理队列中没有订单请求或者本匹配分片结束。由此可见,本步骤是整个交易匹配***中的核心环节。
本步骤所述的在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息的过程,实际上就是一个执行匹配操作的过程。为了实现本步骤的功能,除了拉取未处理的订单请求外,还需要获取执行匹配操作所需的产品信息(即:本申请所述的供购买的产品信息集合)。现有技术下,供购买的产品信息存储在产品中心的产品数据库中,在匹配过程中需要大量的读取产品数据,因此会频繁访问产品数据库,由于查询量巨大,使产品数据库成为整个***的性能瓶颈,导致匹配效率低下。为了改善这一状况,本申请提供一种优选实施方式,即:在每个匹配周期启动的时候,先根据产品中心的产品记录,将执行匹配操作所需的产品信息从产品数据库加载到内存中,作为产品快照,这样每次只需将订单请求中的产品信息与产品快照中的产品信息进行匹配就可以了,与访问数据库相比,访问内存的操作要更为快捷,因此采用产品快照的方式可以有效提高匹配效率。
在具体的实施过程中,考虑到内存空间是有限的,每次加载到内存的产品信息不一定是产品数据库的全量数据,只需要加载当前匹配所需要使用的产品数据就可以了。例如,根据近期的总体订单情况,发现理财产品的订单需求量占据了80%,在将产品中心的产品数据库加载产品信息到内存时,就从产品数据库中以较大的比例加载理财产品,并且只加载拥有有效库存、处于在售状态并允许匹配的理财产品,而收益率越高、发布时间越早的产品在匹配过程中拥有越高的处理优先级,因此在内存空间受限的情况下,可以优先加载这部分产品数据。
本申请提供的库存扣减方法,也可应用于采用集群的分布式交易匹配***,为了与分布式处理机制相适应,在分布式交易匹配***中,通常由一台预先指定或者随机指定的中心匹配服务器向集群中的所有匹配服务器发送启动匹配指令,从而使本***内的所有匹配服务器能够几乎同时启动匹配分片,开始进行匹配处理。
中心匹配服务器除了负责向所有匹配服务器发送启动匹配指令外,还可以负责执行从产品数据库加载产品信息的任务。在分布式环境下,从产品数据库读取产品数据并加载到内存中,可以采用加载到分布式缓存中实现。这是由于,在分布式环境下如果仍然按照前面描述的方式工作,即:由每台匹配服务器在匹配分片的启动过程中,从产品数据库读取产品数据并加载到本服务器的内存中,势必会出现大量并发的数据库访问,影响匹配分片的启动速度,而且每台匹配服务器执行的都是重复的数据库访问操作。为避免上述状况,在分布式环境下,可以将从产品数据库读取产品信息的任务交由中心匹配服务器完成,即:中心匹配服务器从产品数据库中读取产品信息,并在分布式缓存中保存一份产品信息,然后再向分布式集群的所有匹配服务器发起启动匹配的指令,集群中的每台匹配服务器接收到指令后,在启动匹配分片时,先将分布式缓存中的产品信息复制到本匹配服务器的内存中,然后按照前面描述的步骤进行匹配处理。
上面所述的将产品信息从分布式缓存加载到本机内存中的过程,通常也称为“捞取”操作,通过该捞取操作,每台匹配服务器都在本地内存中都得到了一份当前最新的产品信息的快照,即:产品快照。在后续的匹配分片的工作过程中,可以直接使用本机内存中的产品快照进行匹配操作,从而提升匹配性能。对于匹配分片的启动过程来说,采用这种方式,既可以提高启动效率,同时也降低了由于大量并发访问对数据库造成的压力。
将本申请技术方案应用于分布式交易匹配***,在上述匹配分片启动加载产品快照的步骤中、以及后续执行产品库存的扣减操作等步骤都需要分布式缓存的支持。分布式缓存技术的出现,主要是基于数据共享的需求。在很多应用场景下,不同的应用程序或者不同的服务器在运行时需要多次处理相同的数据并与其他应用程序或者服务器共享处理结果。传统的采用数据库进行操作的模式,由于数据库的访问性能限制,以及数据库在处理事务方面的扩展性不好,很可能成为***的瓶颈,因此并不适合运行时数据共享。
而采用分布式缓存可以解决这些问题。本申请技术方案所述的分布式缓存,是指在分布式环境下,不同匹配服务器共用的同一个缓存服务,虽然相关的缓存可能在物理上分布于多个单独的物理机器中,但是却为使用缓存的多个应用程序或者服务器提供了一个单一的高速缓存的逻辑视图,从而多个应用程序或者服务器可以方便地访问同一个缓存并通过缓存实现数据共享。相比于传统的数据库服务,分布式缓存具备高性能、动态扩展,高可用,较易用等特点。
分布式缓存是一项相对比较成熟的技术,是在集群之间相互共享数据的理想途径,目前存在的各种缓存产品也比较多。具体采用何种分布式缓存产品或者技术,不是本申请技术方案的核心,只要能够实现在集群之间共享并维护产品数据和库存数据的功能即可,本申请对此不作具体的限定。
在本申请的技术方案中,匹配分片启动后,可以直接访问产品数据库,执行订单请求和产品信息的匹配操作,也可以按照上述方式先加载产品快照、然后执行订单请求和产品快照信息的匹配操作,查找是否存在满足订单请求所指定的要求的产品。如果存在所述满足要求的产品,说明匹配成功,就可以继续执行步骤103的扣减操作了。
步骤103:对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量。
由于交易匹配***自身工作流程的特点,针对某个订单请求的匹配过程和交易过程并不是同步完成的,交易过程由于可能涉及到与用户交互(如:需要用户最终确认等)等因素,因此,交易过程的完成时间是不确定的。
本申请提供的库存扣减方法,考虑到交易匹配***的上述特点,没有采用现有交易平台在下单或者支付环节(这两个环节对应本申请所述的交易过程或交易阶段)扣减库存的方式,而是在匹配阶段,根据所述订单请求中指定的购买数量,立即扣减所述匹配成功产品的库存数量,从而在匹配阶段实现了产品库存数量根据匹配结果实时同步更新的理想状况,这样就避免了在交易阶段才执行扣减库存操作所导致的、匹配阶段参考的产品库存数量与可用于匹配的有效库存数量存在较大差别的问题。而且,在后续的步骤104中,只有当扣减后数量大于等于零的情况下,才发出交易请求,因为在匹配阶段已经成功地完成了对产品库存的扣减,在交易阶段就不会出现因为库存不足导致交易失败的现象,从而提高匹配后交易的成功率。
考虑到产品的库存信息通常也存储在产品中心的数据库中,在匹配过程中随着匹配的成功也会频繁的读取产品库存数据并执行更新库存数据的操作(扣减操作就是一种更新库存数据的过程),与使用产品快照的原因类似,为了避免使存放产品库存数据的数据库成为整个***的性能瓶颈,本申请提供一种优选实施方式,在启动匹配分片的时候,根据产品中心的库存记录,将进行匹配处理所需产品的库存数量存储到内存中,作为库存快照。
在采用匹配集群的分布式交易匹配***中,对于产品数据来说,各台匹配服务器只是读取该信息用于匹配,因此可以将产品数据加载到本地的内存中使用,但是对于库存数据来说,作为各台匹配服务器之间共享的重要数据,每台匹配服务器都会针对库存数据执行读取和更新的操作,如果各台匹配服务器都直接访问数据库中的库存数据,那么由于并发访问导致的对数据库锁的争夺将成为性能瓶颈;如果简单地将库存数据加载到每台匹配服务器的内存中,显然无法实现库存数据的实时共享,针对上述问题,本申请的技术方案采用将进行匹配处理所需产品的库存数量存储到分布式缓存中作为库存快照的方式,一方面提高对产品库存数据的访问性能,另一方面实现各台匹配服务器之间对产品库存数据的实时共享。
基于上面的描述可以看出,采用库存快照的方式,性能要优于直接访问产品中心的数据库的方式,因此下面主要针对采用库存快照的实施方式,进一步说明。
通常情况下对匹配成功的产品,直接从库存快照中扣减其购买数量就可以了,在本步骤中之所以还要获取扣减后的库存数量,是考虑到可能出现的边界情况,在后续的步骤104中要根据扣减后的库存数量是否大于等于零采取不同的处理方式,因此在本步骤中还要进一步获取扣减后的库存数量,为步骤104进行正确判断、并进行完善的后续处理提供必要的数据支撑,具体可以参见步骤104中的说明。
如果在分布式匹配交易***中应用本申请提供的方法,那么在本步骤中执行的扣减购买数量、并获取扣减后数量的操作是针对存储在分布式缓存中的库存快照、使用分布式缓存提供的接口执行的原子性操作(为了便于描述,简称为“扣减并获取扣减后数量”的原子性操作)。以下详细介绍该原子性操作的含义。
在分布式匹配交易***的应用场景中,不可避免地会出现来自多个匹配服务器的扣减请求对库存快照的并发访问,由于每个访问都不知道有其他并发访问的存在,因此在读取同样的库存快照数量,并同时进行扣减时,就可能出现后执行的扣减操作重写由之前的扣减操作所做的更新,导致出现数据更新丢失的情况。
例如:某产品在库存快照中的库存数量为100,匹配服务器A请求扣减10,匹配服务器B请求扣减20,并且A、B同时请求扣减(即:并发请求),A和B都基于读取到的100执行各自的扣减操作,A从100扣减后得到90,而B也从100扣减后得到80的错误结果,也就是说匹配服务器A所作的扣减更新丢失了。
为了解决并发扣减存在的上述问题,必须对并发扣减操作进行访问控制,避免多个扣减请求同时修改库存快照导致数据更新丢失;另一方面,由于执行完扣减操作后还要执行一次获取扣减后数量的操作,如果在这两个操作(扣减和获取)中间***其他扣减操作或者更新操作,那么上述获取操作就无法获得正确的数据。基于上述两方面的考虑,本申请提供的优选实施方式对匹配成功的初步交易涉及产品的库存快照,执行“扣减并获取扣减后数量”的原子性操作。
本申请所述的“扣减并获取扣减后数量”的原子性操作指的是,当有多个请求同时对库存快照进行扣减操作时,会通过加锁或者是获取信号量等方式实现排队机制,保证多个并发请求对库存快照的访问是互斥的,而且必须将扣减库存快照和获取扣减后数量这两个操作作为一个完整的动作来执行,在整个动作未执行完毕之前,不允许执行其他更新库存快照的操作,从而在保证库存快照正确性的同时,也确保每个请求都能得到正确的扣减后库存数量。
以上面相同的例子举例说明,某产品在库存快照中的数量为100,匹配服务器A请求扣减10,匹配服务器B请求扣减20,A、B同时请求,采用本申请所述的执行“扣减并获取扣减后数量”的原子性操作,如果匹配服务器A先获取了对库存快照的访问控制,那么结果是A得到扣减后库存数量为90,B随后获取对库存快照的访问控制,B得到扣减后库存数量为70;如果匹配服务器B先获取对库存快照的访问控制,那么结果就是B得到80,A得到70,上述两种情况下得到的结果都是正确的。
步骤104:判断所述扣减后数量是否大于等于零;若是,则对所述匹配成功的订单请求和产品发起交易请求。
本申请提供的技术方案,将所述扣减后数量的具体取值作为是否发起交易的依据,具体说,在所述扣减后数量大于等于零的情况下,针对所述匹配成功的订单请求和产品发起交易请求。然而,在具体的实施过程中,除了上述处理之外,还需要对所述扣减后数量小于零的情况进行处理。因此,作为一种优选实施方式,本步骤包括判断扣减后数量是否大于等于零、发起交易请求、执行还原操作、判断是否需要移除、以及移除产品快照这样5个子步骤,请参见附图2,其为本申请的根据扣减后数量进行相应处理的实施例流程图,下面结合附图对这5个子步骤逐一加以说明。
步骤104-1:判断执行所述扣减操作后所述产品在库存快照中的数量是否大于等于零;若是,执行步骤104-2,否则转到步骤104-3执行。
之所以进行这一步判断,是为了检测不可避免会出现的边界情况。在一个匹配分片中,随着匹配的执行,产品的库存数量必然会逐渐减少,可能会出现无法满足订单请求所要求的购买数量的情况,执行本步骤就是为了检测这种情况,并根据检测结果执行相应的处理。如果执行扣减操作后,所述产品在库存快照中的数量大于等于零,说明该产品的库存数量能够满足当前匹配成功的订单请求对购买数量的要求,因此可以执行步骤104-2发起交易;否则,说明该产品库存已经不足,无法满足所述订单请求对购买数量的要求,这种情况下,就不能发起相应的交易请求,而是转到步骤104-3执行。
步骤104-2:对所述匹配成功的订单请求和产品发起交易请求,并且在执行交易过程中,对所述产品的库存数量执行扣减操作。本次扣减结束。
执行到本步骤,就说明对所述匹配成功的产品的扣减操作已经成功了,此时发起的交易过程不会出现因为库存数量不足而导致交易失败的情况,因此可以发起相应的交易请求,并且可以在交易过程中对产品中心的数据库记录的库存数量进行相应的扣减。本步骤完成后,本次扣减操作就全部结束了,匹配分片可以继续处理匹配处理队列中的下一个订单请求。以下对本步骤的机理进行详细的说明。
对于采用扣减库存快照的实施方式,需要在交易阶段执行扣减库存的操作(为了便于与扣减库存快照相区分,对交易阶段执行的库存扣减操作称为对真实库存的扣减),虽然匹配成功的初步交易涉及的产品,其库存数量是充足的,但是交易过程中仍然可能由于其他各种原因导致交易不成功,也就是说交易的执行结果与匹配阶段的结果可能不一致,因此有必要在交易阶段对交易成功的产品执行对真实库存的扣减操作,并在整个***层面上以真实库存数据为准,在每一个匹配分片启动时加载最新的真实库存数据作为库存快照,并在分片内部以库存快照为依据进行匹配处理。采取这种管理方式,一方面保证了整个交易匹配***的处理以真实库存数据为依据,另一方面也实现了在匹配分片内部库存信息根据匹配结果实时同步变化,这两方面的有机结合实现了对库存数量的有效管理。
另外,将本申请提供的方法应用于分布式交易匹配***,则可以获取更为显著的有益效果。在采用集群实现的分布式交易匹配***中,匹配的实现是由多台匹配服务器以大规模并发的方式完成,如果采用现有交易平台的下单后扣减、支付后扣减方式,那么针对有限的产品库存,可能会出现多台匹配服务器同时匹配成功的现象,也就是说在匹配阶段会出现大量热门产品超卖,导致上述的匹配成功产品在交易阶段扣减库存失败的现象大量出现,对匹配后交易的成功率产生显著影响。此外,由于匹配阶段导致的热门产品超卖,引发交易阶段需要重复、频繁地扣减真实库存,并且这种情况的操作频率有可能很高而且不可控,而产品中心一般为单独设置的服务器,频繁的实时访问会导致整个交易匹配***不稳定。
在分布式交易匹配***中采用本申请提供的库存扣减方法,则可以有效改善上述问题。一方面,在匹配成功后对相关产品的库存快照执行扣减并获取扣减后数量的原子性操作、并且只有当扣减后库存数量大于等于零的情况下,才有可能执行本步骤发起交易过程,因此保证了在匹配阶段对产品库存的扣减总量不会超过当前匹配分片启动时的产品库存的真实值,从而实现了在大规模并发场景下对产品库存信息的有效管理,有效避免出现热门产品超卖的现象,提高匹配后交易的成功率;另一方面,可以降低对真实库存扣减的操作频率,采用本申请的技术方案,虽然也会在交易阶段执行真实库存的扣减操作,但是,由于在匹配阶段采用了预扣减库存快照的方式,可避免出现热门产品超卖的情况,有效降低在交易阶段对真实库存执行不必要的过度扣减的可能性,从而提高***稳定性。
步骤104-3:将所述产品在库存快照中的数量还原为执行所述扣减操作之前的数量。
一方面,执行本步骤,说明执行扣减操作后,所述匹配成功的产品,在库存快照中的数量小于零,即:该产品当前的库存数量无法满足所述订单请求指定的购买数量,这种情况下可以认为针对所述订单请求的匹配失败,因此不能发起相应的交易请求。
另一方面,由于针对所述订单请求的匹配处理失败,那么在本次匹配处理中已经执行的扣减操作是不合理的,因此应该消除本次匹配处理的扣减操作对后续其他匹配处理的影响,具体说,应该将所述产品的库存快照的数量还原为执行扣减操作之前的数量,这样其他针对相同产品、并且购买数量小于或者等于该产品还原后库存快照数量的订单请求,还可以继续匹配成功。
本步骤所述的还原操作,具体说,就是将针对所述产品的库存快照、在执行扣减操作时扣减的数量(即:订单请求中指定的购买数量),累加到当前该产品的库存快照的数量上,即:将预先扣减的那部分数量再增加回去,从而消除本次扣减对该产品的库存快照的影响。
步骤104-4:判断执行所述还原操作后所述产品在库存快照中的数量是否小于预先设定的该产品的最小申购数量;若是,执行步骤104-5,否则,本次扣减处理结束。
在具体实施过程中,存在这样一种情况,所述匹配成功的产品在库存快照中的数量已经小到了一定的程度,以至于后续的针对该产品的匹配操作成功后,都会得到扣减后库存小于零的结果,那么就可能在匹配分片内出现针对该产品的多个不同的订单请求反复出现匹配成功、扣减失败、还原、再匹配、再次扣减失败、再还原....这样的操作,而没有一个匹配处理最终是成功的,这样无疑会降低整个匹配***的匹配效率。
为了避免出现这种情况,本申请的技术方案提供了一种解决方法,在判断出所述初步交易产品在库存快照中的扣减后数量小于零并执行还原操作后,应该执行本步骤:判断执行所述还原操作后所述产品在库存快照中的数量是否小于预先设定的该产品的最小申购数量;如果是,则执行步骤104-5对该产品快照进行移除处理;否则,说明该产品的库存数量还有可能满足某些订单请求的要求,因此不用执行移除快照的操作,至此本次扣减操作结束,匹配分片可以继续处理匹配处理队列中的下一个订单请求。
考虑到在集群环境中,不可避免地会出现并发访问库存快照的情况,与执行“扣减并获取扣减后数量”的原子性操作类似,在本步骤为了避免并发执行的更新库存快照的操作可能导致对库存快照的更新丢失,同时也为了避免在执行还原和获取还原后数量这两个操作之间,有其他的扣减或还原操作发生,导致获取不正确的还原后数量,因此在具体的实施中,对扣减后数量小于零的产品快照,可以执行“还原并获取还原后数量”的原子性操作。也就是说,采用排队机制保证多个并发请求对库存快照的访问是互斥的,并且将步骤104-3中的执行还原操作和本步骤中的获取还原后数量作为一个整体来执行,在整个动作未执行完毕之前,不允许执行其他更新库存快照的操作,从而在保证库存快照正确性的同时,也确保每个还原操作都能得到正确的还原后库存数量。
步骤104-5:将所述产品的快照信息从产品快照中移除。
之所以执行本步骤,说明所述产品在库存快照中的库存数量已经小于该产品的最小申购数量,那么即使该产品的各方面条件(例如年限、收益率等)都满足某订单请求中指定的条件,但是因为其库存数量不足,因此是不可能成功实现交易的。通过执行本步骤从产品快照中移除库存数量小于最小申购数量的产品,在匹配阶段就不会执行关于该产品的匹配操作,自然也就不会有针对该产品的匹配成功的情况发生。一方面可以减少不必要的匹配时间,另一方面可以减少步骤104-4中所描述的针对该产品匹配成功后重复执行的扣减、还原操作,从而能够提高整个交易匹配***的执行效率。
在单机环境下,移除某个产品的快照,只需要从存储在内存中的产品快照中删除与该产品相关的信息即可。在分布式环境下,移除某个产品的快照,也可以参照单机环境下的做法,即:某台匹配服务器在匹配分片的处理过程中,发现某个产品在库存快照中的库存数量小于该产品的最小申购数量,那么直接从本匹配服务器的内存(即:本机的产品快照)中删除与该产品相关的信息即可。
考虑到匹配集群的工作特点,在匹配分片启动的时候,首先会将匹配所需的产品信息存储到分布式缓存中,然后再由各台匹配服务器捞取到自己的内存中,形成本匹配服务器的产品快照,在每个匹配分片中将待匹配的订单请求和产品快照进行匹配处理,从而达到提升匹配阶段性能的目的。如果仅仅将库存数量小于最小申购数量的产品从检测出这一情况的匹配服务器的内存中移除,那么其他匹配服务器的内存中依然有该产品的相关信息,其他匹配服务器都需要经过同样的匹配成功、扣减失败、还原、判断还原后数量的操作步骤,才能够将该产品从自己的内存中移除,由于每台匹配服务器都执行重复的操作和判断,从整体上看会降低匹配的效率。
在实际实施中,可以采取如下方式改善上述状况。发现某个产品的库存数量小于该产品的最小申购数量的匹配服务器可以直接从分布式缓存中删除与该产品相关的信息,然后采用消息等机制或者通过分布式缓存提供的事件通知机制,通知本***内的各台匹配服务器产品信息已更新,匹配服务器收到通知后相应地根据分布式缓存当前存储的产品信息更新本地工作内存中的产品信息,从而本***内的匹配服务器都将该产品从本机的内存(即:产品快照)中移除,从而避免了每台匹配服务器执行不必要的重复操作。当然,不同的分布式缓存具备不同的机制、对应用方提供不同的接口,在具体的实施过程中,也可以采用与上述描述不同的方式,例如,可以不采用通知机制,而是设置匹配服务器定期根据分布式缓存的状况执行更新或者捞取操作等,或者是采用其他移除产品快照的方式,这些并不是本申请的核心,本申请不作具体的限定。
上面从具体实施的角度描述了本申请的技术方案。在本实施例中,重点描述了采用库存快照和产品快照的实现方式,是为了获取执行速度更快的有益效果,在其他实施方式中可以不采用快照,而是直接对数据库执行相关操作,只要在匹配阶段扣减相应的库存数量并进行相关的正确处理,都可以实现本申请的技术方案;本实施例在扣减后库存数量小于零的情况下,为了消除扣减库存失败对后续匹配处理的影响,使得后续匹配处理能够尽可能多的匹配成功,执行了还原库存快照的操作;此外,本实施例在还原库存快照后,还执行了将库存数量小于最小申购数量的产品移除产品快照的步骤,则是为了减少对此类产品所做的不必要的匹配处理,上述这些处理都是为了进一步优化本技术方案的实施效果,在其他的实施过程中,也可以不执行这些步骤。上述这些实施方式的变更,都不影响本申请提供的库存扣减方法的核心,因此依然能够实现本申请提供的方法,并且取得同样的有益效果:实现了匹配阶段参考的产品库存数量根据匹配结果的实时同步变化,有效提高匹配后交易的成功率。
在应用本申请的技术方案时,还需要作一些额外的考虑。由于交易匹配***自身的特点,其匹配阶段和交易阶段是异步的,因此在每个匹配分片启动时获取的库存快照,不能完全正确地反映本匹配分片可以使用的有效库存数量(因为之前匹配分片发起的交易可能处于尚未完成的状态,随着交易的陆续完成还会对真实库存进行扣减)。但是与传统的库存扣减方法相比较,采用本申请提供的方法可以比较有效地缓解这一问题,能够将每个匹配分片对库存的扣减总量限制为不超过启动该匹配分片时的真实库存,特别是在大规模并发的应用场景下,能够避免出现无法控制的超卖现象,将匹配成功但是交易失败的可能性尽可能地降低。
作为一种技术方案,总是希望能够获得更优的实施效果。对于上述存在的问题,可以采用调整匹配分片的启动时间间隔的方式进一步缓解,即:在启动新的匹配分片时为之前匹配分片的交易留出较为充分的处理时间,该时间越长,之前匹配分片发起的交易完成的可能性就越大,完成的扣减真实库存的操作就越多,那么启动新的匹配分片时获取的库存数量就越接近于当前匹配分片所能够使用的有效库存数量,就会最大限度地减少匹配成功但是交易阶段扣减失败的情况。
上述实施方式虽然可以解决或者在某种程度上改善可能存在的匹配成功但是交易失败的问题,但是其代价是匹配分片不能连续启动,每两个匹配分片之间都必然存在或长或短的时间间隔,因此可能导致用户的订单请求无法得到及时的处理,从而影响整个匹配***的工作效率,也降低了匹配服务器的利用率。
综上所述,在具体实施本申请的技术方案时,要充分考虑上述两个方面,权衡利弊,根据交易的执行方式、所需的执行时间、用户订单请求的规模、以及用户对及时处理订单请求的需求,选择启动匹配分片的较为合理的时间间隔,一方面在新的匹配分片启动前尽可能多地完成交易,另一方面最大限度地满足用户对实时处理的需求,从而实现一个相对理想的交易匹配***。
在上述的实施例中,提供了一种库存扣减方法,与之相对应的,本申请还提供一种库存扣减装置。
请参看图3,其为本申请提供的一种库存扣减装置的实施例示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关的部分请参见方法实施例的对应说明即可。下述描述的装置实施例仅仅是示意性的。
本实施例的一种库存扣减装置,包括:订单生成单元301,用于接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求;订单匹配单元302,用于在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息;库存扣减单元303,用于对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量;数量判断单元304,用于判断所述扣减后数量是否大于等于零;交易发起单元305,用于当所述数量判断单元的输出为“是”时,对所述匹配成功的订单请求和产品发起交易请求。
可选的,所述装置还包括:
匹配分片管理单元,包括匹配分片管理单元本体、和产品快照生成子单元;
所述匹配分片管理单元本体,用于启动匹配分片,并且在所述匹配分片内触发所述订单匹配单元、所述库存扣减单元、所述数量判断单元和所述交易发起单元,使这些单元处理待匹配的订单请求;
所述产品快照生成子单元,用于在启动匹配分片时,根据产品中心的产品记录,将供购买的产品信息集合存储到内存中,作为产品快照;
相应的,所述订单匹配单元用于,在所述产品快照生成子单元生成的产品快照中查找与所述订单请求中的待购买产品信息相匹配的产品信息。
可选的,所述匹配分片管理单元还包括:
库存快照生成子单元,用于在启动匹配分片时,根据产品中心的库存记录,将所述供购买的产品信息集合中的产品的库存数量存储到内存中,作为库存快照;
相应的,所述库存扣减单元用于,在所述库存快照生成子单元生成的库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量。
可选的,所述装置还包括:
交易扣减单元,用于在执行交易过程中,在产品中心的数据库记录中对所述产品的库存数量执行扣减操作。
可选的,所述匹配分片管理单元、所述订单匹配单元、所述库存扣减单元、所述数量判断单元和所述交易发起单元由多台匹配服务器承担;
相应的,所述库存快照生成子单元具体用于,在启动匹配分片时,根据产品中心的库存记录,将供购买的产品信息集合中的产品的库存数量存储到分布式缓存中,作为库存快照;
相应的,所述库存扣减单元对匹配成功的产品执行的、扣减其购买数量并获取扣减后数量的操作,是对库存快照进行的原子性操作。
可选的,所述装置还包括:
扣减还原单元,用于当所述数量判断单元的输出结果为“否”时,将所述产品在库存快照中的数量还原为执行所述扣减操作之前的数量。
可选的,所述装置还包括:
移除判断单元,用于判断执行所述还原操作后所述产品在库存快照中的数量是否小于预先设定的该产品的最小申购数量;
产品移除单元,用于当所述移除判断单元的输出结果为“是”时,将所述产品的快照信息从产品快照中移除。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
Claims (10)
1.一种库存扣减方法,其特征在于,包括:
接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求;
在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息;
对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量;
判断所述扣减后数量是否大于等于零;若是,则对所述匹配成功的订单请求和产品发起交易请求。
2.根据权利要求1所述的库存扣减方法,其特征在于,还包括:
启动匹配分片,在所述匹配分片内对归属该匹配分片的订单请求,依次执行所述查找操作、所述对产品库存数量执行扣减的操作、以及根据扣减后数量发起交易的操作;并且,在启动匹配分片时,根据产品中心的产品记录,将所述供购买的产品信息集合存储到内存中,作为产品快照;
相应的,所述在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息是指,在产品快照中查找与所述订单请求中的待购买产品信息相匹配的产品信息。
3.根据权利要求2所述的库存扣减方法,其特征在于,在启动匹配分片时,还要根据产品中心的库存记录,将所述供购买的产品信息集合中的产品的库存数量存储到内存中,作为库存快照;
相应的,所述对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量是指,
在所述库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量。
4.根据权利要求3所述的库存扣减方法,其特征在于,包括:
在执行交易过程中,在产品中心的数据库记录中对所述产品的库存数量执行扣减操作。
5.根据权利要求4所述的库存扣减方法,其特征在于,所述启动匹配分片的步骤由多台匹配服务器同时执行;
相应的,所述将供购买的产品信息集合中的产品的库存数量存储到内存中作为库存快照中,所述内存为分布式缓存;
相应的,所述在所述库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量,是对库存快照进行的原子性操作。
6.根据权利要求3-5任意一项所述的库存扣减方法,其特征在于,若执行扣减操作后所述产品在库存快照中的数量小于零,则执行下述操作:
将所述产品在库存快照中的数量还原为执行所述扣减操作之前的数量。
7.根据权利要求6所述的库存扣减方法,其特征在于,还包括:
判断执行所述还原操作后所述产品在库存快照中的数量是否小于预先设定的该产品的最小申购数量;
若是,则将该产品的快照信息从产品快照中移除。
8.一种库存扣减装置,其特征在于,包括:
订单生成单元,用于接收用户的购买申请,并生成包含待购买产品信息和购买数量的订单请求;
订单匹配单元,用于在供购买的产品信息集合中查找与所述订单请求中的待购买产品信息相匹配的产品信息;
库存扣减单元,用于对匹配成功的产品,根据所述订单请求中指定的购买数量,扣减所述产品的库存数量并获取扣减后数量;
数量判断单元,用于判断所述扣减后数量是否大于等于零;
交易发起单元,用于当所述数量判断单元的输出为“是”时,对所述匹配成功的订单请求和产品发起交易请求。
9.根据权利要求8所述的库存扣减装置,其特征在于,还包括:
匹配分片管理单元,包括匹配分片管理单元本体、和产品快照生成子单元;
所述匹配分片管理单元本体,用于启动匹配分片,并且在所述匹配分片内触发所述订单匹配单元、所述库存扣减单元、所述数量判断单元和所述交易发起单元,使这些单元处理待匹配的订单请求;
所述产品快照生成子单元,用于在启动匹配分片时,根据产品中心的产品记录,将供购买的产品信息集合存储到内存中,作为产品快照;
相应的,所述订单匹配单元用于,在所述产品快照生成子单元生成的产品快照中查找与所述订单请求中的待购买产品信息相匹配的产品信息。
10.根据权利要求9所述的库存扣减装置,其特征在于,所述匹配分片管理单元还包括:
库存快照生成子单元,用于在启动匹配分片时,根据产品中心的库存记录,将所述供购买的产品信息集合中的产品的库存数量存储到内存中,作为库存快照;
相应的,所述库存扣减单元用于,在所述库存快照生成子单元生成的库存快照中,对匹配成功的产品,扣减其购买数量,并获取扣减后该产品在库存快照中的数量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410154377.2A CN105096065B (zh) | 2014-04-16 | 2014-04-16 | 一种库存扣减方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410154377.2A CN105096065B (zh) | 2014-04-16 | 2014-04-16 | 一种库存扣减方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105096065A true CN105096065A (zh) | 2015-11-25 |
CN105096065B CN105096065B (zh) | 2019-08-20 |
Family
ID=54576434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410154377.2A Active CN105096065B (zh) | 2014-04-16 | 2014-04-16 | 一种库存扣减方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105096065B (zh) |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468690A (zh) * | 2015-11-17 | 2016-04-06 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
CN106021597A (zh) * | 2016-06-07 | 2016-10-12 | 中国建设银行股份有限公司 | 用于账务交易的数据表更新的方法及*** |
CN106095877A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 一种红包数据处理方法和装置 |
CN106294746A (zh) * | 2016-08-10 | 2017-01-04 | 中国银行股份有限公司 | 一种并发交易数据处理方法及装置 |
CN106384438A (zh) * | 2016-11-24 | 2017-02-08 | 陕西合生杰森科技有限公司 | 液体自助加注装置、自助加注与充注方法、远程监管方法 |
WO2017092599A1 (zh) * | 2015-12-04 | 2017-06-08 | 阿里巴巴集团控股有限公司 | 一种库存异常数据的检测方法、装置及电子设备 |
CN106997546A (zh) * | 2016-01-26 | 2017-08-01 | ***通信集团安徽有限公司 | 一种订单处理方法及装置 |
CN107424036A (zh) * | 2017-04-26 | 2017-12-01 | 北京微影时代科技有限公司 | 数据处理方法及装置 |
CN108416656A (zh) * | 2018-03-12 | 2018-08-17 | 上海哔哩哔哩科技有限公司 | 高可用库存管理方法、服务器及高可用库存管理*** |
CN109118147A (zh) * | 2018-08-28 | 2019-01-01 | 深圳市鼎昇贸易有限公司 | 多平台库存分享方法及相关产品 |
CN109191233A (zh) * | 2018-07-31 | 2019-01-11 | 上海哔哩哔哩科技有限公司 | 一种秒杀下单请求处理方法、装置和存储介质 |
CN109377120A (zh) * | 2018-08-21 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 基于云服务的库存管理方法、装置及电子设备 |
CN109472458A (zh) * | 2018-10-17 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 奖品库存分配方法、装置、计算机设备及存储介质 |
CN109544072A (zh) * | 2018-11-21 | 2019-03-29 | 北京京东尚科信息技术有限公司 | 热点库存本地化扣减方法、***、设备以及介质 |
CN109919531A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 库存询量方法及装置、存储介质 |
CN110019330A (zh) * | 2017-09-07 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
CN110310060A (zh) * | 2019-05-27 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 基于分片的库存管理方法以及装置 |
CN110347692A (zh) * | 2019-06-03 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于缓存的库存管理方法以及装置 |
CN110745449A (zh) * | 2019-10-18 | 2020-02-04 | 艾信智慧医疗科技发展(苏州)有限公司 | 智能货柜的控制方法及智能货柜 |
CN111125180A (zh) * | 2018-10-30 | 2020-05-08 | 千寻位置网络有限公司 | 库存数据的统计方法及装置、服务器及分布式购买*** |
CN111324622A (zh) * | 2020-02-20 | 2020-06-23 | 中国建设银行股份有限公司 | 一种资源抢购的处理方法、装置、设备及存储介质 |
CN111583516A (zh) * | 2020-04-22 | 2020-08-25 | 深圳市优必选科技股份有限公司 | 自动售货机的控制方法及自动售货机 |
CN112069253A (zh) * | 2020-08-20 | 2020-12-11 | 上海钧正网络科技有限公司 | 适用于多场景的库存项管理方法、***、终端及存储介质 |
CN112102040A (zh) * | 2020-09-27 | 2020-12-18 | 中国建设银行股份有限公司 | 一种分布式环境下全局库存控制方法及*** |
CN112418747A (zh) * | 2019-12-19 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 电商热点商品库存扣减控制方法及*** |
CN112860746A (zh) * | 2021-02-01 | 2021-05-28 | 上海悦易网络信息技术有限公司 | 一种基于缓存削减的方法、设备及*** |
CN113159652A (zh) * | 2021-05-24 | 2021-07-23 | 汇信软投(佛山)软件科技发展有限公司 | 隔热胶条库存率下调方法及装置 |
CN113204561A (zh) * | 2021-05-21 | 2021-08-03 | 长沙市到家悠享家政服务有限公司 | 多******数据保持一致性的方法及采用其的多*** |
CN113450171A (zh) * | 2020-03-27 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 一种订单处理方法和装置 |
CN113807760A (zh) * | 2021-01-07 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 库存信息处理方法、装置及可读存储介质和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103426072A (zh) * | 2013-07-16 | 2013-12-04 | 无限极(中国)有限公司 | 一种高并发竞争库存的订单处理***及其处理方法 |
-
2014
- 2014-04-16 CN CN201410154377.2A patent/CN105096065B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103426072A (zh) * | 2013-07-16 | 2013-12-04 | 无限极(中国)有限公司 | 一种高并发竞争库存的订单处理***及其处理方法 |
Cited By (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468690B (zh) * | 2015-11-17 | 2018-11-30 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
CN105468690A (zh) * | 2015-11-17 | 2016-04-06 | 中国建设银行股份有限公司 | 一种库存数据处理方法和装置 |
WO2017092599A1 (zh) * | 2015-12-04 | 2017-06-08 | 阿里巴巴集团控股有限公司 | 一种库存异常数据的检测方法、装置及电子设备 |
CN106845881A (zh) * | 2015-12-04 | 2017-06-13 | 阿里巴巴集团控股有限公司 | 一种库存异常数据的检测方法、装置及电子设备 |
CN106997546A (zh) * | 2016-01-26 | 2017-08-01 | ***通信集团安徽有限公司 | 一种订单处理方法及装置 |
CN106021597A (zh) * | 2016-06-07 | 2016-10-12 | 中国建设银行股份有限公司 | 用于账务交易的数据表更新的方法及*** |
CN106095877A (zh) * | 2016-06-07 | 2016-11-09 | 中国建设银行股份有限公司 | 一种红包数据处理方法和装置 |
CN106294746A (zh) * | 2016-08-10 | 2017-01-04 | 中国银行股份有限公司 | 一种并发交易数据处理方法及装置 |
CN106384438A (zh) * | 2016-11-24 | 2017-02-08 | 陕西合生杰森科技有限公司 | 液体自助加注装置、自助加注与充注方法、远程监管方法 |
CN107424036A (zh) * | 2017-04-26 | 2017-12-01 | 北京微影时代科技有限公司 | 数据处理方法及装置 |
CN110019330B (zh) * | 2017-09-07 | 2021-07-06 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
CN110019330A (zh) * | 2017-09-07 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 信息输出方法和装置 |
CN109919531B (zh) * | 2017-12-13 | 2022-08-19 | 腾讯科技(深圳)有限公司 | 库存询量方法及装置、存储介质 |
CN109919531A (zh) * | 2017-12-13 | 2019-06-21 | 腾讯科技(深圳)有限公司 | 库存询量方法及装置、存储介质 |
CN108416656A (zh) * | 2018-03-12 | 2018-08-17 | 上海哔哩哔哩科技有限公司 | 高可用库存管理方法、服务器及高可用库存管理*** |
CN109191233B (zh) * | 2018-07-31 | 2022-09-02 | 上海幻电信息科技有限公司 | 一种秒杀下单请求处理方法、装置和存储介质 |
CN109191233A (zh) * | 2018-07-31 | 2019-01-11 | 上海哔哩哔哩科技有限公司 | 一种秒杀下单请求处理方法、装置和存储介质 |
CN109377120A (zh) * | 2018-08-21 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 基于云服务的库存管理方法、装置及电子设备 |
CN109118147A (zh) * | 2018-08-28 | 2019-01-01 | 深圳市鼎昇贸易有限公司 | 多平台库存分享方法及相关产品 |
CN109472458A (zh) * | 2018-10-17 | 2019-03-15 | 深圳壹账通智能科技有限公司 | 奖品库存分配方法、装置、计算机设备及存储介质 |
CN111125180A (zh) * | 2018-10-30 | 2020-05-08 | 千寻位置网络有限公司 | 库存数据的统计方法及装置、服务器及分布式购买*** |
CN109544072A (zh) * | 2018-11-21 | 2019-03-29 | 北京京东尚科信息技术有限公司 | 热点库存本地化扣减方法、***、设备以及介质 |
CN110310060A (zh) * | 2019-05-27 | 2019-10-08 | 阿里巴巴集团控股有限公司 | 基于分片的库存管理方法以及装置 |
CN110347692B (zh) * | 2019-06-03 | 2023-05-26 | 创新先进技术有限公司 | 基于缓存的库存管理方法以及装置 |
CN110347692A (zh) * | 2019-06-03 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 基于缓存的库存管理方法以及装置 |
CN110745449A (zh) * | 2019-10-18 | 2020-02-04 | 艾信智慧医疗科技发展(苏州)有限公司 | 智能货柜的控制方法及智能货柜 |
CN112418747A (zh) * | 2019-12-19 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 电商热点商品库存扣减控制方法及*** |
CN111324622A (zh) * | 2020-02-20 | 2020-06-23 | 中国建设银行股份有限公司 | 一种资源抢购的处理方法、装置、设备及存储介质 |
CN113450171A (zh) * | 2020-03-27 | 2021-09-28 | 北京沃东天骏信息技术有限公司 | 一种订单处理方法和装置 |
CN111583516A (zh) * | 2020-04-22 | 2020-08-25 | 深圳市优必选科技股份有限公司 | 自动售货机的控制方法及自动售货机 |
CN112069253A (zh) * | 2020-08-20 | 2020-12-11 | 上海钧正网络科技有限公司 | 适用于多场景的库存项管理方法、***、终端及存储介质 |
CN112102040A (zh) * | 2020-09-27 | 2020-12-18 | 中国建设银行股份有限公司 | 一种分布式环境下全局库存控制方法及*** |
CN113807760A (zh) * | 2021-01-07 | 2021-12-17 | 北京沃东天骏信息技术有限公司 | 库存信息处理方法、装置及可读存储介质和电子设备 |
CN112860746B (zh) * | 2021-02-01 | 2023-04-07 | 上海万物新生环保科技集团有限公司 | 一种基于缓存削减的方法、设备及*** |
CN112860746A (zh) * | 2021-02-01 | 2021-05-28 | 上海悦易网络信息技术有限公司 | 一种基于缓存削减的方法、设备及*** |
CN113204561A (zh) * | 2021-05-21 | 2021-08-03 | 长沙市到家悠享家政服务有限公司 | 多******数据保持一致性的方法及采用其的多*** |
CN113159652A (zh) * | 2021-05-24 | 2021-07-23 | 汇信软投(佛山)软件科技发展有限公司 | 隔热胶条库存率下调方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105096065B (zh) | 2019-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105096065A (zh) | 一种库存扣减方法和装置 | |
CN111752957B (zh) | 一种基于缓存化的销售锁定方法及*** | |
CN103886079B (zh) | 一种数据处理方法和*** | |
CN104699712B (zh) | 对数据库中的库存记录信息进行更新的方法及装置 | |
CN105988862B (zh) | 分布式事务处理方法及装置 | |
US9146944B2 (en) | Systems and methods for supporting transaction recovery based on a strict ordering of two-phase commit calls | |
CN108389080A (zh) | 交易处理方法及平台 | |
CN105096122A (zh) | 一种分片式交易匹配方法和装置 | |
CN106844014A (zh) | 分布式事务防悬挂的实现方法和装置 | |
JP5352421B2 (ja) | データアクセス装置、データアクセス方法およびデータアクセスプログラム | |
CN111666088A (zh) | Pod的更替方法、装置、电子设备及计算机可读存储介质 | |
CN112559496B (zh) | 一种分布式数据库事务原子性实现方法及装置 | |
US11522966B2 (en) | Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment | |
CN111325494A (zh) | 库存管理方法、装置、***及存储介质 | |
CN107146075B (zh) | 请求处理方法及装置 | |
CN112416952B (zh) | 管理及同步库存数据的方法、设备、可读存储介质 | |
CN113807784A (zh) | 运单状态更新的处理方法、装置、设备及存储介质 | |
US11971903B2 (en) | Atomically bridging transactions across different blockchains | |
CN118132212B (zh) | 一种数据处理方法、装置、设备、介质及程序产品 | |
CN112199213B (zh) | 一种挂单交互数据的数据交互方法及服务器 | |
CN109857523A (zh) | 一种用于实现数据库高可用性的方法及装置 | |
CN115239494A (zh) | 支付交易处理方法及装置 | |
CN112749174B (zh) | 高并发处理方法、装置、处理设备及计算机存储介质 | |
US20220358459A1 (en) | Distributed Ledger Platform for Improved Return Logistics | |
CN101488134A (zh) | 数据库***的复制环境内的高性能修改事务的方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191212 Address after: P.O. Box 31119, grand exhibition hall, hibiscus street, 802 West Bay Road, Grand Cayman, Cayman Islands Patentee after: Innovative advanced technology Co., Ltd Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands Patentee before: Alibaba Group Holding Co., Ltd. |
|
TR01 | Transfer of patent right |