CN112102014A - 一种记录用户资源的方法和装置 - Google Patents
一种记录用户资源的方法和装置 Download PDFInfo
- Publication number
- CN112102014A CN112102014A CN202011271751.9A CN202011271751A CN112102014A CN 112102014 A CN112102014 A CN 112102014A CN 202011271751 A CN202011271751 A CN 202011271751A CN 112102014 A CN112102014 A CN 112102014A
- Authority
- CN
- China
- Prior art keywords
- storage space
- resource
- user
- account
- storage
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0211—Determining the effectiveness of discounts or incentives
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0235—Discounts or incentives, e.g. coupons or rebates constrained by time limit or expiration date
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例提供了一种记录用户资源的方法和装置,所述方法包括:获取用户新增的第一资源,所述第一资源的失效时间为第一失效时间;在用户的第一存储空间中读取所述第一失效时间对应的第一积分存储单元,其中,所述第一存储空间中包括预定数目的积分存储单元,每个积分存储单元与用户资源的一个失效时间相对应;在所述第一积分存储单元记录了其与所述用户的第二存储空间相对应的情况中,将所述第一资源记录到所述第二存储空间中。
Description
技术领域
本说明书实施例涉及计算机技术领域,更具体地,涉及一种记录用户资源的方法和装置。
背景技术
在互联网平台中或者在区块链中,可使用积分作为用户的一种可累积并可使用的资源,该积分通常具有有效期,用户在消费积分时,通常先消费有效期较短的积分。由于各个用户在平台的使用行为不同,不同的用户账户的积分数量可能相差很大,例如,有的账户的积分记录小于100条,而有的账户的积分记录可能有上万条,因此,不同账户对于积分的存储需求差别较大,从而,如果对各个账户分配固定大小的存储空间,将不能满足不同账户的需求。
因此,需要一种更有效的记录用户积分的方案。
发明内容
本说明书实施例旨在提供一种更有效的记录用户积分的方案,以解决现有技术中的不足。
为实现上述目的,本说明书一个方面提供一种记录用户资源的方法,包括:
获取用户新增的第一资源,所述第一资源的失效时间为第一失效时间;
在用户的第一存储空间中读取所述第一失效时间对应的第一积分存储单元,其中,所述第一存储空间中包括预定数目的积分存储单元,每个积分存储单元与用户资源的一个失效时间相对应;
在所述第一积分存储单元记录了其与所述用户的第二存储空间相对应的情况中,将所述第一资源记录到所述第二存储空间中。
在一种实施方式中,所述方法还包括:
在获取用户新增的第一资源之前,获取用户新增的第二资源,所述第二资源的失效时间为所述第一失效时间;
读取所述第一失效时间对应的第一积分存储单元;
在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源的情况中,在所述用户的存储空间中添加第二存储空间;
在所述第二存储空间中记录所述第二资源和所述第三资源;
在所述第一积分存储单元中记录所述第二存储空间中的当前资源的统计额度。
在一种实施方式中,所述方法还包括:响应于用户的资源使用请求,对所述第一积分存储单元中记录的统计额度进行扣除。
在一种实施方式中,所述方法还包括:在所述统计额度不足的情况中,使用所述第二存储空间中记录的未统计到所述统计额度中的未统计资源。
在一种实施方式中,所述方法还包括,在所述未统计资源在所述使用之后还包括剩余资源的情况中,基于所述剩余资源修改所述第一积分存储单元中记录的统计额度。
在一种实施方式中,在所述未统计资源在所述使用之后没有剩余资源的情况中,删除所述第二存储空间,并删除所述第一积分存储单元中记录的数据。
在一种实施方式中,所述第二存储空间的存储位置与所述第一失效时间关联,其中,将所述第一资源记录到所述第二存储空间中包括,基于与所述第一失效时间对应的信息获取所述第二存储空间,将所述第一资源记录到所述第二存储空间中。
在一种实施方式中,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源的情况中,在所述用户的存储空间中添加第二存储空间包括,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中没有可用的两个积分存储单元的情况中,在所述用户的存储空间中添加第二存储空间。
在一种实施方式中,所述方法还包括:
在所述第一积分存储单元中已经记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中包括可用的两个积分存储单元的情况中,在所述可用的两个积分存储单元中分别记录所述第二资源和第三资源,在所述第一积分存储单元中记录所述第一资源和第二资源在所述第一存储空间中的记录位置。
在一种实施方式中,所述方法还包括:
获取用户新增的第四资源,所述第四资源的失效时间为第四失效时间;
确定所述第四失效时间长于所述第一存储空间对应的最晚失效时间;
在所述用户的存储空间中添加第三存储空间;
在所述第三存储空间中记录所述第四资源。
在一种实施方式中,所述方法还包括,在在所述用户的存储空间中添加第三存储空间之后,在所述第一存储空间中记录对所述第三存储空间的存在指示。
在一种实施方式中,所述方法还包括:
响应于用户的资源使用请求,对所述第三存储空间中的资源进行使用;
基于当前时间更新所述第一存储空间对应的失效时间;
如果所述第三存储空间在所述使用之后包括剩余资源,基于所述第一存储空间的失效时间的更新,将所述剩余资源中的失效时间小于所述第一存储空间当前对应的最晚失效时间的资源更改为在所述第一存储空间中记录。
在一种实施方式中,所述方法还包括,如果所述第三存储空间在所述使用之后或者所述更改之后没有剩余资源,删除所述第三存储空间,修改所述第一存储空间中记录的所述第三存储空间的存在指示。
在一种实施方式中,所述方法由区块链节点执行,所述用户的存储空间为用户的区块链账户对应的存储空间。
本说明书另一方面提供一种记录用户资源的装置,包括:
第一获取单元,配置为,获取用户新增的第一资源,所述第一资源的失效时间为第一失效时间;
第一读取单元,配置为,在用户的第一存储空间中读取所述第一失效时间对应的第一积分存储单元,其中,所述第一存储空间中包括预定数目的积分存储单元,每个积分存储单元与用户资源的一个失效时间相对应;
第一记录单元,配置为,在所述第一积分存储单元记录了其与所述用户的第二存储空间相对应的情况中,将所述第一资源记录到所述第二存储空间中。
在一种实施方式中,所述装置还包括:
第二获取单元,配置为,在获取用户新增的第一资源之前,获取用户新增的第二资源,所述第二资源的失效时间为所述第一失效时间;
第二读取单元,配置为,读取所述第一失效时间对应的第一积分存储单元;
第一添加单元,配置为,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源的情况中,在所述用户的存储空间中添加第二存储空间;
第二记录单元,配置为,在所述第二存储空间中记录所述第二资源和所述第三资源;
第三记录单元,配置为,在所述第一积分存储单元中记录所述第二存储空间中的当前资源的统计额度。
在一种实施方式中,所述装置还包括:扣除单元,配置为,响应于用户的资源使用请求,对所述第一积分存储单元中记录的统计额度进行扣除。
在一种实施方式中,所述装置还包括:第一使用单元,配置为,在所述统计额度不足的情况中,使用所述第二存储空间中记录的未统计到所述统计额度中的未统计资源。
在一种实施方式中,所述装置还包括,第一修改单元,配置为,在所述未统计资源在所述使用之后还包括剩余资源的情况中,基于所述剩余资源修改所述第一积分存储单元中记录的统计额度。
在一种实施方式中,所述装置还包括,第一删除单元,配置为,在所述未统计资源在所述使用之后没有剩余资源的情况中,删除所述第二存储空间,并删除所述第一积分存储单元中记录的数据。
在一种实施方式中,所述第二存储空间的存储位置与所述第一失效时间关联,其中,所述第一记录单元还配置为,基于与所述第一失效时间对应的信息获取所述第二存储空间,将所述第一资源记录到所述第二存储空间中。
在一种实施方式中,所述第一添加单元还配置为,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中没有可用的两个积分存储单元的情况中,在所述用户的存储空间中添加第二存储空间。
在一种实施方式中,所述装置还包括:
第四记录单元,配置为,在所述第一积分存储单元中已经记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中包括可用的两个积分存储单元的情况中,在所述可用的两个积分存储单元中分别记录所述第二资源和第三资源,在所述第一积分存储单元中记录所述第一资源和第二资源在所述第一存储空间中的记录位置。
在一种实施方式中,所述装置还包括:
第三获取单元,配置为,获取用户新增的第四资源,所述第四资源的失效时间为第四失效时间;
确定单元,配置为,确定所述第四失效时间长于所述第一存储空间对应的最晚失效时间;
第二添加单元,配置为,在所述用户的存储空间中添加第三存储空间;
第五记录单元,配置为,在所述第三存储空间中记录所述第四资源。
在一种实施方式中,所述装置还包括,第六记录单元,配置为,在在所述用户的存储空间中添加第三存储空间之后,在所述第一存储空间中记录对所述第三存储空间的存在指示。
在一种实施方式中,所述装置还包括:
第二使用单元,配置为,响应于用户的资源使用请求,对所述第三存储空间中的资源进行使用;
更新单元,配置为,基于当前时间更新所述第一存储空间对应的失效时间;
更改单元,配置为,如果所述第三存储空间在所述使用之后包括剩余资源,基于所述第一存储空间的失效时间的更新,将所述剩余资源中的失效时间小于所述第一存储空间当前对应的最晚失效时间的资源更改为在所述第一存储空间中记录。
在一种实施方式中,所述装置还包括,第二删除单元,配置为,如果所述第三存储空间在所述使用之后或者所述更改之后没有剩余资源,删除所述第三存储空间,第二修改单元,配置为,修改所述第一存储空间中记录的所述第三存储空间的存在指示。
在一种实施方式中,所述装置部署于区块链节点中,所述用户的存储空间为用户的区块链账户对应的存储空间。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的记录用户积分的方案,减少了需要的存储访问带宽,在区块链的情况下减少了执行交易所需要的存储访问带宽,充分利用了预留的基础账户中的存储空间,并加快了处理速度。
附图说明
通过结合附图描述本说明书实施例,可以使得本说明书实施例更加清楚:
图1示出区块链中的账户构成示意图;
图2示出根据本说明书实施例的在用户账户中记录用户积分的方法流程图;
图3示出基础账户包括的内容示意图;
图4示出包括流程A的记录用户积分的方法流程图;
图5示出扩展账户包括的内容示意图;
图6示出在图2中读取的积分记录行记录表内汇总描述时执行的流程B的流程图;
图7示出所述创建的扩展账户的内容示意图;
图8示出在图2中读取的积分记录行记录相同失效日期的积分时执行的流程C的流程图;
图9示出在图2中读取的积分记录行记录不同失效日期的积分时执行的流程D的流程图;
图10示出在图2中确定积分的失效日期不在基础账户范围内时执行的流程E的流程图;
图11为消费扩展账户中的积分的方法流程图;
图12示出消费超长期账户中的积分的方法流程图;
图13示出根据本说明书实施例的一种记录用户资源的装置1300。
具体实施方式
下面将结合附图描述本说明书实施例。
图1示出区块链中的账户构成示意图。如图1中所示,在区块链中,每个节点中都存储有账户数据库,账户数据库中存储了各个账户的数据(即账户状态)。例如,在区块链中设置积分作为一种用户可使用的资源,用户可在区块链进行特定业务时获取积分作为奖励,在使用区块链进行其它特定业务时消费积分等等。在该情况中,可在用户账户中存储用户获取的积分。在区块链中,不同的业务奖励的积分可能设置了不同的有效期,例如,通常情况下,可设置积分的有效期为一年,即积分在从获取的日期开始经过一年之后失效,从而,不同日期获取的积分具有不同的失效日期。另外,业务也可以将积分有效期设置为较短或者较长,例如可设置为一个月或者两年等等。在该情况中,通常在用户的账户中以积分获取的时间先后顺序记录用户获取的各条积分。
由于不同的用户对区块链的使用频次的不同,在区块链中进行的业务也不同,因此,不同用户的账户中记录的积分条目的数目可能区别较大,其中,每个积分条目对应于用户从一个商户获取的一定数额的积分,例如,有的账户记录的积分条目小于100条,而有的账户记录的积分条目可能有上万条。在该情况中,在区块链节点中,如果为每个账户预留的存储空间过小时,不能满足一些积分条目较多的用户,如果为每个账户预留的存储空间过大,对于一些积分条目较少的用户又会浪费存储空间。
为了解决上述问题,如图1中所示,在本说明书实施例中,对于每个用户的账户都设置与基础账户对应的存储空间用于存储预定数目的积分条目,该基础账户对应的存储空间中例如包括365个积分存储单元,每个积分存储单元可用于存储预定字节的数据(例如一个积分条目),从而基础账户最多可存储365条积分条目。当用户的积分条目多于365条时,可为用户账户的存储空间添加与扩展账户对应的存储空间,从而可在扩展账户中为积分条目较多的用户继续记录积分条目。
为了便于积分的使用和查询,可将基础账户的每个积分存储单元设定为与积分的一个失效日期相对应,从而可根据积分的失效日期将积分条目存储到相应的积分存储单元中。当用户账户包括在同一天失效的多个积分条目的情况中,可在该天对应的积分存储单元中记录该多个积分条目的汇总信息,并在基础账户中的其它积分存储单元或者扩展账户中记录该多个积分条目。在该情况中,基础账户中可记录失效期为从基础账户中设定的起始失效日期开始的一年内的积分条目,如果用户获取的积分的失效期长于基础账户对应的失效日期范围,则可在用户账户的存储空间中添加与超长期账户对应存储空间,并在超长期账户中记录失效期较长的积分条目。
在采用扩展账户和超长期账户的方式存储大量积分条目时,本说明书实施例中通过对各个账户的设置使得用户在获取或消费积分时,可以仅修改基础账户、扩展账户和超长期账户中的一个账户,而不需要同时修改多个账户,从而增加了系统的处理效率,并且为对账户的并发修改提供了支持。
另外,在本说明书实施例中,通过使用扩展账户记录某个失效日期对应的多个积分条目,可通过该失效日期推算扩展账户的存储位置,加快了处理流程,避免了存储扩展积分账户名的需要。
可以理解,上文参考图1的描述仅仅是示例性的,而不是限制性的,本说明书实施例不限于此。例如,所述账户数据库不限于记录于区块链节点中,在各种互联网平台中,也可以为用户设置积分获取和消费规则,并在平台中设置如图1中所示的账户数据库。所述区块链中不限于设置积分作为用户可用的资源,例如可设置其他任意已知形式的资源供用户使用。另外,所述积分的失效时间不限于为失效日期,例如,也可以以小时、分钟来限定积分的失效时间,等等。上文虽然描述了对账户数据库中的用户账户的存储空间进行操作,在实际中,也有可能将用户账户数据缓存到内存中进行操作以加快操作速度,因此,所述账户的各个存储空间也可以为内存中的存储空间。
下面将详细描述根据本说明书实施例的记录用户积分的方案。
图2示出根据本说明书实施例的在用户账户中记录用户积分的方法流程图。在区块链的场景中,该方法可由区块链的节点执行,在互联网平台的场景中,该方法可由平台服务器执行。
如图2所示,首先,在步骤S202,获取用户新增的积分。如前文所述,用户获取的积分通常具有有效期,相应地,该积分具有失效日期。例如,用户新增的积分可具有默认的一年的有效期,因此,该积分的失效日期为从当前日期开始的第365天,或者用户新增的积分可具有由特定业务设定的有效期,例如积分的有效期为200天,则该积分的失效日期为从当前日期开始的第200天。
在步骤S204,确定积分的失效日期是否在基础账户对应的失效日期范围内。
图3示出基础账户包括的内容示意图。如图3所示,基础账户中可包括多个记录行(图3中的每行可视为一个记录行),每个记录行对应于基础账户的存储空间中的一个存储单元。图3中的顶部的三个记录行为内容固定的记录行,其分别用于记录超长期账户指示、积分记录行的记录起始位置、积分记录行的起始失效日期。其中,超长期账户指示用于指示当前是否存在超长期账户,具体是,可在该记录行中记录“1”,以指示当前存在用户的超长期账户,在该记录行中记录“0”,以指示当前没有用户的超长期账户。积分记录行的记录起始位置用于指示基础账户中失效日期最早的积分记录行的位置。如图3中所示,基础账户的从第四行开始的预定数目的行(例如365行)为用于记录用户积分的积分记录行,在各个积分记录行的左侧标出的数字为该积分记录行的行数,例如可通过该行数来确定积分记录行的位置,从而,在积分记录行的记录起始位置处可记录“4”,以用于指示图3中的第4行积分记录行为记录起始位置,也就是说,第4行的积分记录行的失效日期是基础账户中记录的积分中的最早失效日期。图3中的起始失效日期用于记录图3中的最早失效日期(也即第4行的积分记录行对应的失效日期)。
图3中的365行积分记录行与从所述起始失效日期开始的365天分别对应,每行积分记录行用于记录具有相应失效日期的积分信息。也就是说,基础账户可用于记录用户的失效日期为从所述起始失效日期开始的365天内的积分的信息。通过在基础账户中记录积分记录行的记录起始位置和起始失效日期,在后续记录积分时,通过将该积分的失效日期与起始失效日期相减,从而可基于该相减的差值确定该积分的存储位置。如果该差值小于365,则可确定该积分的失效日期在基础账户对应的失效日期范围内,从而可执行后续的步骤S206,如果该差值大于等于365,则可确定该积分为超长期积分,从而可执行图3中的流程E,下文中将参考图10对流程E进行描述。
在图3所示的基础账户中,由于采用环形缓冲区的形式来记录积分记录行,因此需要通过固定的记录行来记录积分记录行的记录起始位置。在预定的时间,例如在基础账户中的起始失效日期距离当前日期的天数大于预定天数时,可将起始失效日期更改为当前日期,从而可相应地修改基础账户中的积分记录行的记录起始位置。然而,本说明书实施例不限于此,例如,在基础账户中可从第0行积分记录行开始顺序记录各个积分记录行,即,始终以第0行作为积分记录行的记录起始位置,当将基础账户中的起始失效日期修改为例如当前日期时,可将失效日期为当前日期的积分记录行移动到第0行,并将失效日期在当前日期之前的积分记录行删除。在该情况中,在基础账户中不需要记录积分记录行的记录起始位置。
可以理解,图3所示的基础账户仅仅是本说明书实施例的一个示例,根据本说明书实施例的基础账户不一定具有图3所示的形式,本说明书实施例的基础账户包括可以根据失效时间对积分记录项进行检索的任意形式的基础账户。另外,在本说明书实施例中,如果规定积分的失效日期只能在预定范围(例如365天)内,并且定期更新基础账户中的起始失效日期,例如每日零点将基础账户的起始失效日期更新为当天日期,则将不需要在账户中设置超长期账户,从而,基于不同的账户设置,步骤S204有可能是个可选的步骤,而不是必需的步骤。
在步骤S206,在基础账户读取该失效日期的积分记录行。
如图3中所示,基础账户中示出了五种积分记录行,其中,在积分记录行左侧的“00”指示该积分记录行中记录了积分描述(如图3中的第0行或第4行所示),该积分描述中例如包括积分的发行方、积分数额等信息,并且该积分记录行记录的积分的失效日期即为该积分记录行对应的失效日期,例如,第4行所记录的积分的失效日期即为2020年1月1日。在积分记录行左侧的“01”指示该积分记录行中记录了扩展账户描述(如图3中的第6行所示),该扩展账户描述中记录了扩展账户中的统计额度、以及对该统计额度已使用的已用额度,该统计额度可以是扩展账户中记录的全部积分的总额度,或者可以是扩展账户中记录的部分积分的总额度。在积分记录行左侧的“10”指示该积分记录行中记录了表内汇总描述(如图3中的第5行所示),该表内汇总描述中记录了失效日期为该积分记录行对应的失效日期的至少两个积分的汇总信息,如图3中第5行所示,在表内汇总描述中记录了长度为“2”,起始位置为“1”,也即,该积分记录行汇总记录了图3中基础账户中的从第1行开始的两行积分记录行中的积分。在积分记录行左侧的“11”指示该积分记录行中也记录了积分描述(如图3中第1行和第2行积分记录行所示),该积分描述中也包括例如发行方和数额等信息,与标注为“00”的积分描述不同的是,该标注为“11”的积分描述对应的积分的失效日期为第5行积分记录行对应的失效日期,而不是第1行或第2行积分记录行对应的失效日期。在积分记录行左侧的“001”指示该积分记录行记录的内容为无效内容,例如,当积分的失效日期早于当前日期时,该积分已经失效,从而可对该积分标注“001”,以指示该积分已失效。另外,积分记录行中有可能未记录任何内容,则该积分记录行为未使用的积分记录行(图3中未示出)。基础账户中的无效的积分记录行和未使用的积分记录行都是可用的积分记录行。
假设在步骤S206读取的积分记录行中的内容为扩展账户描述(即标注为01),则执行流程A,下文中将参考图4对流程A进行描述。假设在步骤S206读取的积分记录行中的内容为表内汇总描述(即标注为10),则执行流程B,下文中将参考图6对流程B进行描述。假设在步骤S206读取的积分记录行中的内容为失效日期为该积分记录行对应的失效日期的积分描述(即标注为00),则执行流程C,下文中将参考图8对流程C进行描述。假设在步骤S206读取的积分记录行中的内容为失效日期不是该积分记录行对应的失效日期的积分描述(即标注为11),则执行流程D,下文中将参考图9对流程D进行描述。当在步骤S206中读取的积分记录行为可用的积分记录行的情况中,可直接在该积分记录行中记录所述新增的积分(图2中未示出)。
图3中虽然示出了积分记录行中记录的五种描述的具体形式,本说明书实施例中对于所述五种描述的具体形式不作限定,例如,在图3中的第6行积分记录行中的扩展账户描述中,不限于记录扩展账户中的统计额度及该统计额度的已用额度,而可以仅记录该积分记录行对应于扩展账户。在图3中的第5行积分记录行中的表内汇总描述中,不限于记录该积分记录行对应的连续积分记录行的长度和起始位置,而可以记录该积分记录行对应的各个不连续积分记录行的位置。
图4示出包括流程A的记录用户积分的方法流程图。
在图4所示的方法流程图中,在执行图2中的步骤S202和步骤S206之后,假设在步骤S206中读取的积分记录行中记录了“01”,即指示该积分记录行对应于扩展账户,从而执行图2中的流程A,即执行图4中的步骤S408。
在步骤S408,在所述积分记录行对应的扩展账户中记录用户新增的积分。其中,该积分记录行即为与新增的积分的失效日期对应的积分记录行。
在开始执行步骤S408之后,首先,获取所述扩展账户的名称。所述扩展账户例如以键值对的形式存储,所述键为扩展账户名称,所述值为所述扩展账户中记录的积分。在一种实施方式中,在创建与该积分记录行对应的扩展账户时,可确定扩展账户名称,并将该扩展账户名称记录到所述积分记录行中,从而,可从该积分记录行中读取扩展账户名称。在另一种实施方式中,在创建与该积分记录行对应的扩展账户时,可基于预定规则确定扩展账户名称,从而不需要将该扩展账户名称记录到所述积分记录行中。例如,可将扩展账户的名称设定为“基础账户名称+该积分记录行相对于记录起始位置的行数差”,或者可将扩展账户名称设定为“基础账户名称+该积分记录行的行数”,等等,可以理解,所述积分记录行相对于记录起始位置的行数差和所述积分记录行的行数都是基于该积分记录行对应的失效日期相对于基础账户中的起始失效日期的时间差确定的,即都为与该积分记录行对应的失效日期关联的信息。在获取扩展账户的名称之后,可基于该扩展账户的名称获取该扩展账户并将所述新增的积分记录到该扩展账户中。
图5示出扩展账户包括的内容示意图。如图5所示,与基础账户类似地,扩展账户中也包括多个记录行,其中,顶部的两个记录行为内容固定的记录行,其分别用于记录积分记录起始位置和积分统计结束位置。扩展账户的第三行开始为用于记录积分条目的积分记录行,该积分记录行例如也采用环形缓冲器的形式进行记录,在扩展账户的积分记录行左侧的数字用于标识积分记录行的行数。所述积分记录起始位置用于指示该扩展账户中失效日期最早的积分条目(即第4行积分条目),扩展账户中的积分记录行中的积分条目从积分记录起始位置开始按照积分失效日期的先后顺序排列。积分统计结束位置用于指示额度统计到图3中的第6行中的“统计额度”中的最后一个积分条目,也就是说,在统计所述统计额度时,仅统计到第6行的积分条目,第6行之后(即第7行~第1行)的积分条目尚未统计到所述“统计额度”中,图5中以灰色示出为未统计到统计额度中的积分条目。图5中的第2行和第3行积分记录行的内部左侧的“0”用于指示该积分记录行中的积分条目已经为无效积分条目,例如,在该积分条目对应的积分被使用之后,或者在过了该积分条目的失效日期之后,可将该积分条目标注为无效。在另一个实施方式中,可通过一个记录行记录有效积分条目的结束位置,即,在每次记录新的积分条目之后,更新该有效积分条目的结束位置,在该情况中,不需要对失效的积分条目进行标注。
为了在图5所示的扩展账户中记录新的积分条目,可在该扩展账户中获取记录有效积分条目的最后一行积分记录行(第1行),并在该积分记录行的下一行(即第2行)积分记录行中删除原有的无效记录数据,并记录新增的积分条目。
通过该过程,在获取用户新增积分之后记录用户积分的过程中,只需要对扩展账户进行写入,而不需要对基础账户进行任何修改,从而减少了记录积分时所需要的存储访问带宽,在区块链的场景中,可减少执行交易时所需要的存储访问带宽。
图6示出在图2中读取的积分记录行记录表内汇总描述时执行的流程B的流程图。
参考图3,假设新增的积分的失效日期对应于第5行积分记录行,并且第5行中已经记录了表内汇总描述,即该基础账户中已经记录了失效日期为该第5行积分记录行对应的失效日期的至少两个积分(即第1行和第2行积分记录行中记录的积分)。参考图6,首先执行步骤S608,确定基础账户中是否有可用的积分记录行以用于记录该新增的积分。如图3所示,在基础账户中,第5行的表内汇总描述与第1行和第2行的标注为“11”的积分描述相对应,根据表内汇总描述的不同形式,该可用的积分记录行有可能需要与第2行积分记录行连续或者不连续。例如,在图3所示的表内汇总描述的形式下,需要确定基础账户中是否有与第2行积分记录行连续的可用积分记录行。
参考图3,第3行积分记录行为无效积分记录行,也即为可用的积分记录行,因此在确定存在可用的积分记录行的情况中,可执行步骤S610,在该第3行中记录新增的积分,将该第3行标注为“11”,并修改第5行的表内汇总描述,即将第5行中的长度修改为3。
在上述确定结果为否的情况中,还可以进一步确定基础账户中是否有可用的连续三行积分记录行以用于存储所述基础账户中第1行、第2行中的积分和新增的积分,如果确定结果为是,可以将三部分积分记录到该可用的连续三行积分记录行中,删除第1行和第2行中的记录,并修改第5行的表内汇总描述。在确定结果为否的情况中,则执行步骤S612,创建与所述积分记录行对应的扩展账户。具体是,首先确定扩展账户的名称,例如,该扩展账户的名称例如如上文所述基于所述积分记录行在所述基础账户中的位置确定,通过这样确定扩展账户的名称,不需要另外记录该扩展账户的名称。然后,在用户账户中添加与扩展账户名称对应的存储空间用作为扩展账户。之后执行步骤S614,在该创建的扩展账户中记录具有所述新增积分的失效日期的积分。如上文所述,图3中具有所述失效日期的积分包括第1行中的积分和第2行的积分,因此可将基础账户中的第1行、第2行的积分以及新增的积分记录到图7所示的所述创建的扩展账户中。图7示出所述创建的扩展账户的内容示意图。如图7所示,在进行上述记录之后,所述扩展账户中的前三行积分记录行中包括三个积分条目,并且所述扩展账户的积分项起始位置指向第0行积分记录行。在进行在扩展账户中记录所述三个积分条目之后,执行步骤S616,在基础账户中删除所述积分记录行(即第5行)中的表内汇总描述对应的积分描述,在所述积分记录行中记录扩展账户描述。具体是,在图3所示的基础账户中删除第1行和第2行中记录的内容,或者将第1行和第2行中记录的内容标注为无效,并将第5行的标识修改为“01”,以指示该行与扩展账户对应,并在第5行中记录已用额度(即0)和统计额度(即图7所示的三个积分条目的总积分额度),在对图7中的积分条目进行额度统计之后,可将图7所示的统计结束位置指向第2行,以指示第0~2行对应的积分额度都已经在基础账户中统计过了。
图8示出在图2中读取的积分记录行记录相同失效日期的积分时执行的流程C的流程图。
参考图3,假设新增的积分的失效日期对应于第4行积分记录行,该第4行积分记录行中标注了“00”,即该积分记录行记录了失效日期与该新增积分相同的单个积分描述,即,第4行记录的积分描述中的积分的失效日期为该积分记录行对应的失效日期。在该情况中,参考图8,首先,在步骤S808,确定基础账户中是否存在可用的两行记录行,以用于记录第4行已经记录的积分和新增积分,并在第4行记录表内汇总描述。根据表内汇总描述的不同形式,该两行记录行可能需要为连续的两行记录行,或者可以为不连续的两行记录行。例如,在图3所示的表内汇总描述下,需要确定基础账户中是否存在可用的连续两行记录行。如果确定基础账户中存在可用的连续两行记录行,则可以执行步骤S810,在可用的两行积分记录行中记录第4行已经记录的积分和新增积分,并在新增积分的失效日期对应的积分记录行(即第4行)中记录对上述两个积分的表内汇总描述。如果确定基础账户中没有可用的两行记录行,则执行步骤S812,创建与所述积分记录行对应的扩展账户,步骤S812的具体实施可参考上文对步骤S612的描述,在此不再赘述。之后,执行步骤S814,在扩展账户中记录具有新增积分的失效日期的积分,也即图3中的基础账户中第4行已经记录的积分和新增积分。之后执行步骤S816,步骤S816的具体实施可参考上文对步骤S616中的“在所述积分记录行记录扩展账户描述”部分的内容,在此不再赘述。
图9示出在图2中读取的积分记录行记录不同失效日期的积分时执行的流程D的流程图。
参考图3,假设新增的积分的失效日期对应于第1行积分记录行,该第1行积分记录行中标注了“11”,即该积分记录行记录了失效日期与该新增积分不同的单个积分。在该情况中,参考图9,首先,在步骤S908,确定基础账户中是否有可用的积分记录行,以用于记录第1行中记录的积分。该第1行中记录的积分是与表内汇总描述对应的积分,因此,根据表内汇总描述的不同形式,该可用的积分记录行有可能需要与第2行积分记录行连续,或者不连续。
例如,在图3所示的表内汇总描述的形式下,需要确定基础账户中是否有与第2行积分记录行连续的可用积分记录行,在该确定结果为是的情况中,可执行步骤S910,将新增积分的失效日期对应的积分记录行中的其它失效日期的积分描述记录到该可用的积分记录行(即第3行积分记录行)中,并相应地修改对应的表内汇总描述。之后可以执行步骤S918,在新增积分的失效日期对应的积分记录行(即第1行)中记录该新增积分,并在第1行中标注“00”,以指示第1行中的积分的失效日期即为该积分记录行对应的失效日期。
在上述确定结果为否的情况中,还可以进一步确定基础账户中是否有可用的连续两行积分记录行,如果确定结果为是,可以将第1行和第2行中的积分记录到该可用的连续两行积分记录行中,删除第1行和第2行中的记录,并在所述其它失效日期对应的积分记录行中修改对应的表内汇总描述。在确定结果为否的情况中,则执行步骤S912,创建与所述其它失效日期对应的扩展账户,之后执行步骤S914,在该创建的扩展账户中记录该其它失效日期的积分,即所述第1行和第2行中记录的积分,并在基础账户中的与所述其它失效日期对应的积分记录行中记录扩展账户描述。之后可执行步骤S918,在第1行中记录新增积分,并将第1行标注为“00”。
图10示出在图2中确定积分的失效日期不在基础账户范围内时执行的流程E的流程图。
当在图2中的步骤S204确定新增积分的失效日期在基础账户对应的失效日期范围之外时,则可确定该新增的积分为超长期积分。在该情况中,参考图10,首先执行步骤S1008,确定当前是否存在超长期账户,即,可读取图3中的基础账户中的超长期账户指示,以确定现在是否存在超长期账户。在确定存在的情况中,执行步骤S1010,在超长期账户中记录新增积分。该超长期账户的账户名称例如为“基础账户名称+预定天数(例如365)”,从而基于该超长期名称可获取超长期账户,并在该超长期账户中记录新增的积分。在超长期账户中可与基础账户中类似地通过以每个记录行对应于一个失效日期来记录各个积分,从而超长期账户中也有可能包括表内汇总描述。在另一种实施方式中,在超长期账户中按照积分的失效日期的先后顺序记录各个积分,并且在每个积分描述中包括该积分的失效日期、发行方和数额。
在确定不存在超长期账户的情况中,可执行步骤S1012,创建超长期账户。与创建扩展账户类似地,首先确定超长期账户的名称,例如,通过以预定规则确定超长期账户的名称,例如,将超长期账户名称确定为“基础账户名称+预定天数(例如365)”,从而不需要另外记录超长期账户的名称。然后,在用户账户中添加与超长期账户名称对应的存储空间用作为超长期账户。之后执行步骤S1014,在超长期账户中记录该新增的积分,并执行步骤S1016,将图3中的基础账户中的超长期账户指示修改为指示存在超长期账户。
从图10所示的流程图可见,在需要将新增积分记录到超长期账户的情况中,只需要对超长期账户进行修改,而不需要对基础账户进行修改,因此减少了记录用户积分时需要的存储访问带宽,提高了系统效率,并且由于仅需要对单个存储空间进行修改,更容易实现并发记录积分,从而在区块链中为并发执行交易提供了支持。
当用户希望对账户中的记录进行消费时,通常以积分的失效日期的从先到后的顺序来消费积分。参考图3,响应于用户的消费积分的请求,可从积分的记录起始位置开始获取可用的积分。例如,首先读取图3所示基础账户中的第4行,如上文所述,第4行为积分描述,该行标注了“00”,即指示该行记录的积分的失效时间为该积分记录行对应的失效时间,从而该积分可直接使用。在该情况中,如果第4行记录的积分数额大于用户消费的积分数额,则将该积分数额修改为原积分数额减去用户消费的积分数额的差值。如果第4行记录的积分数额等于用户消费的积分数额,则删除该行积分记录行中记录的积分描述,或者可将该行标注为无效积分。
如果第4行记录的积分数额小于用户消费的积分,则删除该行积分记录行中记录的积分描述,或者可将该行标注为无效积分,并从基础账户继续获取可用的积分。例如,之后可获取基础账户中的第5行积分记录行记录的积分。如上文所述,第5行积分记录行中记录了表内汇总描述,基于该表内汇总描述可获取该表内汇总描述对应的图3中的第1行和第2行的积分描述。从而,可首先对第1行记录的积分进行消费。如果第1行记录的积分数额大于剩余的需要消费的积分数额,则将该第1行中的数额修改为原数额减去剩余消费积分数额的差值。如果第1行记录的积分数额等于剩余的消费积分数额,则删除第1行中记录的内容,并将第2行中记录的积分移到第5行进行记录,即,删除第2行记录的标注为“11”的积分描述,在第5行记录对应的标注为“00”的积分描述,也就是说,由于第1行记录的积分已经消费,使得所述表内汇总描述对应的积分只剩下一个积分记录,因此,不再需要表内汇总的方式对该积分进行记录,而可直接通过积分描述的方式来记录该积分。如果第1行记录的积分数额小于剩余消费积分数额,在删除第1行中的积分描述之后,可进一步对第2行中记录的积分进行消费。如果第2行记录的积分数额大于需要消费的积分数额,则在第5行记录标注为“00”的积分描述,以用于记录第2行记录的积分在消费之后的剩余积分数额,如果第2行记录的积分数额小于等于需要消费的积分数额,则删除第2行记录的积分描述,并删除第5行的表内汇总描述。
在第5行记录的表内汇总描述对应的积分也不足以进行所请求的积分消费的情况中,继续读取图3中后续可用的积分,即读取第6行积分记录行。第6行积分记录行中记录了扩展账户描述,该扩展账户描述例如对应图5所示扩展账户,该扩展账户描述中例如已经记录了对扩展账户中的至少部分积分进行统计获取的统计额度和对该统计额度中的已使用额度。
在读取第6行的扩展账户描述之后,通过图11所示的流程图进行对扩展账户中的积分的消费。图11为消费扩展账户中的积分的方法流程图。如图11所示,首先在步骤S1102,确定扩展账户描述中的可用积分的余额是否充足。参考图3所示基础账户中的第6行积分记录行,该积分记录行中记录了统计额度和已用额度,因此,可用积分的余额即为统计额度与已用额度的差值。可以理解,所述扩展账户描述记录的内容不限于如图3所示,在另一种实施方式中,在扩展账户描述中可直接记录对扩展账户中的多个积分统计获取的统计额度的余额,从而可直接从扩展账户描述中读取可用积分的余额。
如果在步骤S1102确定扩展账户描述中的余额充足,则可仅通过对扩展账户描述进行修改而消费积分。具体是,在图3所示的基础账户中,可将第6行中记录的已用额度修改为原已用额度增加本次消费的积分额度的值。在另一种实施方式中,在扩展账户描述中记录统计额度的余额的情况中,可直接将该余额的值修改为原余额值减去本次消费的积分额度的差值。从该步骤可见,通过以扩展账户描述的形式来记录扩展账户中至少部分积分的统计额度的使用情况,在进行积分消费时,在该统计额度的剩余额度足够的情况中,可仅对基础账户进行修改,而不需要对扩展账户进行修改,从而减少了消费积分时需要的存储访问带宽,在区块链的情况中可减少执行交易所需的存储访问带宽。
如果在步骤S1102确定扩展账户描述中的余额不足,则执行步骤S1106,消费扩展账户中的未统计积分。参考图5所示的扩展账户,其中第4行~第6行积分记录行中的积分为已经统计到扩展账户描述中的积分,第6行之后的积分记录行(即从第7行至第1行)记录的积分尚未统计到扩展账户描述中。因此,可从第7行开始进行积分消费。
在扩展账户中的未统计积分多于需要消费的积分的情况中,确定在基础账户中是否存在空闲的积分记录行用于记录扩展账户中的未统计积分在该消费之后剩余的积分。如果不存在,则执行步骤S1108,修改扩展账户。具体是,将扩展账户中已经消费的积分标注为无效积分,该已经消费的积分包括所述已统计到扩展账户描述中并被消费的积分和上述未统计积分中的经消费的积分。然后,基于未统计积分中在上述消费之后剩余的积分修改扩展账户中的积分记录起始位置和积分统计结束位置,即通过积分记录起始位置和积分统计结束位置标记该段剩余的积分。之后,执行步骤S1110,更新扩展账户描述。具体是,对扩展账户中的未统计积分在上述消费之后剩余的积分统计总额,并在图3所示基础账户的第6行的统计额度中记录该统计总额,并将已用额度修改为0,或者,在扩展账户描述中记录统计额度的余额时,可将该余额修改为上述统计的总额。
当确定在基础账户中存在空闲的积分记录行用于记录扩展账户中的未统计积分在该消费之后剩余的积分的情况中。例如,扩展账户中只剩余一个未使用的积分,则可将该积分以积分描述的形式记录到基础账户中,即,以“00”的形式记录到图3所示基础账户的第6行中。或者,扩展账户中剩余两个未使用的积分,在基础账户中存在除第6行之外的两个可用积分记录行的情况下,可以在基础账户中以表内汇总描述的形式记录该两个未使用的积分。之后,可删除该扩展账户。
在扩展账户中的未统计积分等于或小于需要消费的积分的情况中,则对该未统计积分进行消费之后,删除该扩展账户,并删除基础账户中的扩展账户描述。
在另一种实施方式中,在图3所示的基础账户中的第6行中不记录扩展账户中的任何信息,而只指示具有该积分记录行对应的失效日期的扩展账户的存在。在该情况中,当记录积分时,可仅在扩展账户中进行记录,当读取到该第6行以进行消费时,直接读取所述扩展账户并对扩展账户中的积分进行消费。该记录扩展账户的方式同样使得在记录和消费积分时只需要对一个账户进行修改。
在上述扩展账户中的积分也不足以进行所请求的积分消费的情况中,继续读取图3中第6行之后的可用的积分。当基础账户中的积分都已经消费,则在基于超长期账户指示确定存在超长期账户的情况中,如图12中的流程所示对超长期账户中的积分进行消费。
图12示出消费超长期账户中的积分的方法流程图。如图12所示,首先在步骤S1202,消费超长期账户中的积分。如上文所述,可基于预定规则获取超长期账户名称(例如基础账户名称+365),并通过该超长期账户名称读取该超长期账户,以进行对其中的积分的消费。
之后,执行步骤S1204,更新基础账户的起始失效日期。由于如上文所述,在对超长期账户进行积分消费之前,基础账户中的积分已经都消费了,也就是说,基础账户中目前没有存储可用的积分。为了合理的使用基础账户的存储空间,可将基础账户的起始失效日期修改为当前日期,从而使得将失效日期为从当前日期开始的365天内的日期的积分记录到基础账户中。
之后,执行步骤S1206,基于上述修改的起始失效日期更新超长期账户和基础账户。如果超长期账户在进行该消费之后仍剩余有积分,则根据剩余的各个积分的失效日期,将失效日期在基础账户对应的失效日期范围内的积分移到基础账户中,这些积分在移动到基础账户之后,可能以积分描述的形式存储,或者可能以表内汇总描述或者扩展账户的形式存储。在进行该修改之后,如果超长期账户中没有剩余积分了,即超长期账户为空账户,则可删除该超长期账户,并将基础账户中的超长期账户指示修改为用于指示不存在超长期账户。
如果超长期账户在进行上述消费之后没有剩余的积分,则类似地删除该超长期账户,并将基础账户中的超长期账户指示修改为用于指示不存在超长期账户。如果在对超长期账户的积分都消费之后仍不足以进行所请求的积分消费,则向用户返回无足够的积分可用。
针对上文描述的用户账户,当响应于用户请求查询某个日期失效的积分数额时,首先确定该请求的日期是否在基础账户对应的失效日期范围内,如果该日期在基础账户对应的失效日期之外,并且在基础账户指示存证超长期账户的情况中,从超长期账户中获取失效日期为该日期的积分数额并返回给用户。在进行该对超长期账户的查询之后,也可以将基础账户的起始失效日期更改为当前日期,并基于起始失效日期更新超长期账户和基础账户。
如果所述请求的日期在基础账户对应的失效日期范围内,则在基础账户中确定与该失效日期对应的积分记录行,并读取该积分记录行。如果该积分记录行记录了标注为“00”的积分描述,则获取该积分描述中的积分数额,并向用户返回该数额。如果该积分记录行中记录了表内汇总描述,则读取该表内汇总对应的各个积分描述的数额,计算各个积分描述的数额之和,并将该数额和返回给用户。如果该积分记录行记录了扩展账户描述,则读取扩展账户描述中的剩余额度,并读取扩展账户中的未统计积分总额,计算所述剩余额度与所述未统计积分总额之和,并将该积分和返回给用户。如果该积分记录行记录了标注为“11”的积分描述,说明目前没有失效日期为所述请求的日期的积分,因此,向用户返回数额“0”。
图13示出根据本说明书实施例的一种记录用户资源的装置1300,所述装置1300的部署用于实施如图2~12所示的方法,所述装置1300包括:
第一获取单元1301,配置为,获取用户新增的第一资源,所述第一资源的失效时间为第一失效时间;
第一读取单元1302,配置为,在用户的第一存储空间中读取所述第一失效时间对应的第一积分存储单元,其中,所述第一存储空间中包括预定数目的积分存储单元,每个积分存储单元与用户资源的一个失效时间相对应;
第一记录单元1303,配置为,在所述第一积分存储单元记录了其与所述用户的第二存储空间相对应的情况中,将所述第一资源记录到所述第二存储空间中。
在一种实施方式中,所述装置1300还包括:扣除单元1304,配置为,响应于用户的资源使用请求,对所述第一积分存储单元中记录的统计额度进行扣除。
在一种实施方式中,所述第二存储空间的存储位置与所述第一失效时间关联,其中,所述第一记录单元1303还配置为,基于与所述第一失效时间对应的信息获取所述第二存储空间,将所述第一资源记录到所述第二存储空间中。
在一种实施方式中,所述装置1300还包括:
第四记录单元1305,配置为,在所述第一积分存储单元中已经记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中包括可用的两个积分存储单元的情况中,在所述可用的两个积分存储单元中分别记录所述第二资源和第三资源,在所述第一积分存储单元中记录所述第一资源和第二资源在所述第一存储空间中的记录位置。
在一种实施方式中,所述装置1300还包括:
第三获取单元1306,配置为,获取用户新增的第四资源,所述第四资源的失效时间为第四失效时间;
确定单元1307,配置为,确定所述第四失效时间长于所述第一存储空间对应的最晚失效时间;
第二添加单元1308,配置为,在所述用户的存储空间中添加第三存储空间;
第五记录单元1309,配置为,在所述第三存储空间中记录所述第四资源。
在一种实施方式中,所述装置1300还包括,第六记录单元1310,配置为,在在所述用户的存储空间中添加第三存储空间之后,在所述第一存储空间中记录对所述第三存储空间的存在指示。
在一种实施方式中,所述装置1300部署于区块链节点中,所述用户的存储空间为用户的区块链账户对应的存储空间。
本说明书另一方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述任一项方法。
本说明书另一方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述任一项方法。
通过根据本说明书实施例的记录用户积分的方案,包括以下有益效果:
通过采用基础账户与扩展账户结合的方式,当在扩展账户中记录积分时,不需要对基础账户进行修改,当消费扩展账户中的积分时,在扩展账户描述中的统计额度充足的情况中,可只修改基础账户,而不需要修改扩展账户。从而减少了需要的存储访问带宽,在区块链的情况下减少了执行交易所需要的存储访问带宽;
通过采用基础账户与超长期账户结合的方式,当在超长期账户中记录积分时,不需要对基础账户进行修改,也减少了需要的存储访问带宽;
通过使用表内汇总描述记录相同失效日期的多个积分,可充分利用预留的基础账户中的存储空间,从而可满足积分较稀疏、偶尔有相同失效日期的多个积分的用户的积分存储需求;
另外,通过基于积分的失效日期设置积分的存储位置,将积分的失效日期与基础账户中的记录行相对应,并基于积分的失效日期确定扩展账户和超长期账户的账户名称,加快了处理速度,也避免了另外存储扩展账户和超长期账户的账户名称,节省了存储空间。
需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。其中,软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (30)
1.一种记录用户资源的方法,包括:
获取用户新增的第一资源,所述第一资源的失效时间为第一失效时间;
在用户的第一存储空间中读取所述第一失效时间对应的第一积分存储单元,其中,所述第一存储空间中包括预定数目的积分存储单元,每个积分存储单元与用户资源的一个失效时间相对应;
在所述第一积分存储单元记录了其与所述用户的第二存储空间相对应的情况中,将所述第一资源记录到所述第二存储空间中。
2.根据权利要求1所述的方法,所述方法还包括:
在获取用户新增的第一资源之前,获取用户新增的第二资源,所述第二资源的失效时间为所述第一失效时间;
读取所述第一失效时间对应的第一积分存储单元;
在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源的情况中,在所述用户的存储空间中添加第二存储空间;
在所述第二存储空间中记录所述第二资源和所述第三资源;
在所述第一积分存储单元中记录所述第二存储空间中的当前资源的统计额度。
3.根据权利要求1或2所述的方法,还包括:响应于用户的资源使用请求,对所述第一积分存储单元中记录的统计额度进行扣除。
4.根据权利要求3所述的方法,还包括:在所述统计额度不足的情况中,使用所述第二存储空间中记录的未统计到所述统计额度中的未统计资源。
5.根据权利要求4所述的方法,还包括,在所述未统计资源在所述使用之后还包括剩余资源的情况中,基于所述剩余资源修改所述第一积分存储单元中记录的统计额度。
6.根据权利要求4所述的方法,在所述未统计资源在所述使用之后没有剩余资源的情况中,删除所述第二存储空间,并删除所述第一积分存储单元中记录的数据。
7.根据权利要求1或2所述的方法,其中,所述第二存储空间的存储位置与所述第一失效时间关联,其中,将所述第一资源记录到所述第二存储空间中包括,基于与所述第一失效时间对应的信息获取所述第二存储空间,将所述第一资源记录到所述第二存储空间中。
8.根据权利要求2所述的方法,其中,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源的情况中,在所述用户的存储空间中添加第二存储空间包括,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中没有可用的两个积分存储单元的情况中,在所述用户的存储空间中添加第二存储空间。
9.根据权利要求8所述的方法,还包括:
在所述第一积分存储单元中已经记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中包括可用的两个积分存储单元的情况中,在所述可用的两个积分存储单元中分别记录所述第二资源和第三资源,在所述第一积分存储单元中记录所述第一资源和第二资源在所述第一存储空间中的记录位置。
10.根据权利要求1或2所述的方法,还包括:
获取用户新增的第四资源,所述第四资源的失效时间为第四失效时间;
确定所述第四失效时间长于所述第一存储空间对应的最晚失效时间;
在所述用户的存储空间中添加第三存储空间;
在所述第三存储空间中记录所述第四资源。
11.根据权利要求10所述的方法,还包括,在在所述用户的存储空间中添加第三存储空间之后,在所述第一存储空间中记录对所述第三存储空间的存在指示。
12.根据权利要求10所述的方法,还包括:
响应于用户的资源使用请求,对所述第三存储空间中的资源进行使用;
基于当前时间更新所述第一存储空间对应的失效时间;
如果所述第三存储空间在所述使用之后包括剩余资源,基于所述第一存储空间的失效时间的更新,将所述剩余资源中的失效时间小于所述第一存储空间当前对应的最晚失效时间的资源更改为在所述第一存储空间中记录。
13.根据权利要求12所述的方法,还包括,如果所述第三存储空间在所述使用之后或者所述更改之后没有剩余资源,删除所述第三存储空间,修改所述第一存储空间中记录的所述第三存储空间的存在指示。
14.根据权利要求2所述的方法,其中,所述方法由区块链节点执行,所述用户的存储空间为用户的区块链账户对应的存储空间。
15.一种记录用户资源的装置,包括:
第一获取单元,配置为,获取用户新增的第一资源,所述第一资源的失效时间为第一失效时间;
第一读取单元,配置为,在用户的第一存储空间中读取所述第一失效时间对应的第一积分存储单元,其中,所述第一存储空间中包括预定数目的积分存储单元,每个积分存储单元与用户资源的一个失效时间相对应;
第一记录单元,配置为,在所述第一积分存储单元记录了其与所述用户的第二存储空间相对应的情况中,将所述第一资源记录到所述第二存储空间中。
16.根据权利要求15所述的装置,还包括:
第二获取单元,配置为,在获取用户新增的第一资源之前,获取用户新增的第二资源,所述第二资源的失效时间为所述第一失效时间;
第二读取单元,配置为,读取所述第一失效时间对应的第一积分存储单元;
第一添加单元,配置为,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源的情况中,在所述用户的存储空间中添加第二存储空间;
第二记录单元,配置为,在所述第二存储空间中记录所述第二资源和所述第三资源;
第三记录单元,配置为,在所述第一积分存储单元中记录所述第二存储空间中的当前资源的统计额度。
17.根据权利要求15或16所述的装置,还包括:扣除单元,配置为,响应于用户的资源使用请求,对所述第一积分存储单元中记录的统计额度进行扣除。
18.根据权利要求17所述的装置,还包括:第一使用单元,配置为,在所述统计额度不足的情况中,使用所述第二存储空间中记录的未统计到所述统计额度中的未统计资源。
19.根据权利要求18所述的装置,还包括,第一修改单元,配置为,在所述未统计资源在所述使用之后还包括剩余资源的情况中,基于所述剩余资源修改所述第一积分存储单元中记录的统计额度。
20.根据权利要求17所述的装置,还包括,第一删除单元,配置为,在所述未统计资源在所述使用之后没有剩余资源的情况中,删除所述第二存储空间,并删除所述第一积分存储单元中记录的数据。
21.根据权利要求15或16所述的装置,其中,所述第二存储空间的存储位置与所述第一失效时间关联,其中,所述第一记录单元还配置为,基于与所述第一失效时间对应的信息获取所述第二存储空间,将所述第一资源记录到所述第二存储空间中。
22.根据权利要求16所述的装置,其中,所述第一添加单元还配置为,在所述第一积分存储单元中记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中没有可用的两个积分存储单元的情况中,在所述用户的存储空间中添加第二存储空间。
23.根据权利要求22所述的装置,还包括:
第四记录单元,配置为,在所述第一积分存储单元中已经记录了失效时间为所述第一失效时间的第三资源、并且所述第一存储空间中包括可用的两个积分存储单元的情况中,在所述可用的两个积分存储单元中分别记录所述第二资源和第三资源,在所述第一积分存储单元中记录所述第一资源和第二资源在所述第一存储空间中的记录位置。
24.根据权利要求15或16所述的装置,还包括:
第三获取单元,配置为,获取用户新增的第四资源,所述第四资源的失效时间为第四失效时间;
确定单元,配置为,确定所述第四失效时间长于所述第一存储空间对应的最晚失效时间;
第二添加单元,配置为,在所述用户的存储空间中添加第三存储空间;
第五记录单元,配置为,在所述第三存储空间中记录所述第四资源。
25.根据权利要求24所述的装置,还包括,第六记录单元,配置为,在在所述用户的存储空间中添加第三存储空间之后,在所述第一存储空间中记录对所述第三存储空间的存在指示。
26.根据权利要求24所述的装置,还包括:
第二使用单元,配置为,响应于用户的资源使用请求,对所述第三存储空间中的资源进行使用;
更新单元,配置为,基于当前时间更新所述第一存储空间对应的失效时间;
更改单元,配置为,如果所述第三存储空间在所述使用之后包括剩余资源,基于所述第一存储空间的失效时间的更新,将所述剩余资源中的失效时间小于所述第一存储空间当前对应的最晚失效时间的资源更改为在所述第一存储空间中记录。
27.根据权利要求26所述的装置,还包括,第二删除单元,配置为,如果所述第三存储空间在所述使用之后或者所述更改之后没有剩余资源,删除所述第三存储空间,第二修改单元,配置为,修改所述第一存储空间中记录的所述第三存储空间的存在指示。
28.根据权利要求16所述的装置,其中,所述装置部署于区块链节点中,所述用户的存储空间为用户的区块链账户对应的存储空间。
29.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-14中任一项的所述的方法。
30.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011271751.9A CN112102014B (zh) | 2020-11-13 | 2020-11-13 | 一种记录用户资源的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011271751.9A CN112102014B (zh) | 2020-11-13 | 2020-11-13 | 一种记录用户资源的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112102014A true CN112102014A (zh) | 2020-12-18 |
CN112102014B CN112102014B (zh) | 2021-02-05 |
Family
ID=73785613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011271751.9A Active CN112102014B (zh) | 2020-11-13 | 2020-11-13 | 一种记录用户资源的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112102014B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116823346A (zh) * | 2023-07-17 | 2023-09-29 | 广州百奕信息科技有限公司 | 一种基于区块链技术民航数字资产公共综合服务方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809135A (zh) * | 2014-01-27 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 一种数据存取方法及装置 |
CN109146573A (zh) * | 2018-09-05 | 2019-01-04 | 深圳正品创想科技有限公司 | 基于区块链的商品积分方法及其装置、区块链节点 |
-
2020
- 2020-11-13 CN CN202011271751.9A patent/CN112102014B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809135A (zh) * | 2014-01-27 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 一种数据存取方法及装置 |
CN109146573A (zh) * | 2018-09-05 | 2019-01-04 | 深圳正品创想科技有限公司 | 基于区块链的商品积分方法及其装置、区块链节点 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116823346A (zh) * | 2023-07-17 | 2023-09-29 | 广州百奕信息科技有限公司 | 一种基于区块链技术民航数字资产公共综合服务方法 |
CN116823346B (zh) * | 2023-07-17 | 2024-04-05 | 广州百奕信息科技有限公司 | 一种基于区块链技术民航数字资产公共综合服务方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112102014B (zh) | 2021-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105210060B (zh) | 用于持久系统中的数据库的事务处理 | |
CN106933836B (zh) | 一种基于分表的数据存储方法和系统 | |
CN103782295A (zh) | 分布式数据管理系统中的查询说明计划 | |
CN110134689B (zh) | 基于主体对象标签变化的目标群体筛选方法、系统及计算机设备 | |
CN112102014B (zh) | 一种记录用户资源的方法和装置 | |
CN110019050A (zh) | 一种数据回滚方法、系统、设备及计算机可读存储介质 | |
CN113486036A (zh) | 虚拟资源管理方法及装置、电子设备和存储介质 | |
US9094225B1 (en) | Discovery of short-term and emerging trends in computer network traffic | |
CN111026758B (zh) | 电子券发放方法和装置 | |
CN108288228B (zh) | 社交网络信息获取方法和装置 | |
JP5089631B2 (ja) | 関連性解析システムおよび関連性解析方法 | |
CN107633451A (zh) | 一种涉税业务处理方法、系统 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
JP4938813B2 (ja) | 取引データ処理方法、システム及びプログラム | |
CN111459987A (zh) | 一种更新缓存的方法及装置 | |
US20220156779A1 (en) | Method, apparatus, and computer device for calculating website user credit point | |
CN105849704A (zh) | 缓存管理装置、缓存管理方法和程序 | |
JP2019074874A (ja) | 名寄せシステムおよびプログラム | |
CN111640027A (zh) | 业务数据的处理、业务的处理方法、装置及电子设备 | |
CN111881091B (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN110866036B (zh) | 数据处理方法、系统、装置、终端及可读存储介质 | |
CN103238165A (zh) | 数据管理系统、数据管理方法以及数据管理程序 | |
CN107453946A (zh) | 字段管理方法及装置和电子设备 | |
JP5252009B2 (ja) | データ集計装置およびデータ集計プログラム | |
JP2004348720A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40042999 Country of ref document: HK |