一种并发数据处理方法、装置及一种电子记账系统的制作方法

文档序号:6465847阅读:213来源:国知局

专利名称::一种并发数据处理方法、装置及一种电子记账系统的制作方法
技术领域
:本发明涉及数据处理技术,特别是涉及一种并发数据处理方法、装置及一种电子记账系统。
背景技术
:在各种业务应用系统中,并发处理是一种常见的处理方式。例如,在金融系统中,对于并发量大的业务如账务处理,就涉及一个账户同时向多个账户付款或一个账户同时从多个账户收款的记账处理。参照图1,是标准的记账处理流程图。以交易过程中的记账处理为例,针对一笔记账请求事件首先,对交易相关账户(包括买方付款的账户和卖方收款的账户)进行资源的加锁,以保证不被其他请求影响数据的准确性;其次,执行买方账户的记账操作,包括记录记账凭证及更新余额,然后执行卖方账户的记账操作,也包括记录记账凭证及更新余额;待记账请求事件处理完毕后,统一释放买方和卖方账户资源的锁。通常,每一次记账都需要对相关账号进行锁资源的操作,从而避免其他操作对正在处理的账号进行再次操作造成数据不一致。但是,随着业务量的不断增大,某些账号会在瞬间产生多个并发操作,所有并发线程中只有一个线程能够持有当时的资源锁,其他线程必须等待锁被释放后再逐一进行记账处理。这种情况下,其他的线程都在等待,严重影响了账务系统的性能。例如,同时有1000名彩民向彩票账号付款,此时,对该彩票账号一共约有1000笔请求队列,而要逐一等待取得锁权限再进行操作,将严重影响系统其他业务的处理。在其他业务系统的并发处理中,也存在多个请求需要在同一时间内占用同一资源的问题,因此极大地影响了业务处理的效率。
发明内容本发明所要解决的技术问题是提供一种并发数据处理方法及装置,以解决并发处理过程中,多个请求在同一时间内占用同一资源的问题。本发明的另一个目的是提供一种电子记账系统,以解决现有的记账系统在处理并发请求时,逐个处理请求而影响系统性能的问题。为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案一种并发数据处理方法,包括将处理时间划分为多个时间片;将并发请求分配到相应的时间片上;循环处理每个时间片上的请求。优选的,所述循环处理每个时间片上的请求,具体包括针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求进行合并处理。其中,将并发请求分配到相应的时间片之前,还包括根据预设的配置信息,判断当前请求是否为并发请求;如果是,则分配到相应的时间片;如果否,则按照正常处理流程进行处理。其中,所述将并发请求分配到相应的时间片具体包括按照请求的时间将并发请求分配到对应该请求时间的时间片上。其中,当所述请求为账务请求时,所述预置条件是指针对相同业务的请求,和/或,针对相同账户的付lt/收款请求。一种并发数据处理装置,包括时间片划分单元,用于将处理时间划分为多个时间片;请求分配单元,用于将并发请求分配到相应的时间片上;时间片处理单元,用于循环处理每个时间片上的请求。优选的,所述时间片处理单元进一步包括循环调度单元,用于循环调度每个时间片上的请求;合并处理单元,用于针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求合并后进行处理。其中,所述请求分配单元进一步包括判断单元,用于根据预设的配置信息,判断当前请求是否为并发请求;分配单元,用于根据判断单元的判断结果,如果是并发请求,则将该请求分配到相应的时间片;如果否,则将该请求分配到常规处理单元,按照正常处理流程进行处理。其中,当所述请求为账务请求时,所述预置条件是指针对相同业务的请求,和/或,针对相同账户的付勤收款请求。一种电子记账系统,包括账务处理单元,用于进行记账处理;存储单元,用于划分时间片来存储账务请求;请求分配单元,用于将并发的账务请求分配到相应的时间片上;时间片循环处理器,用于循环处理每个时间片上的账务请求;针对当前时间片上的请求队列,才艮据预置条件判断是否存在同类请求,如果存在,则将所述同类请求合并后通过账务处理单元进行记账处理。其中,所述请求分配单元进一步包括判断单元,用于根据预设的配置信息,判断当前账务请求是否为并发请求;分配单元,用于根据判断单元的判断结果,如果是并发请求,则将该请求分配到相应的时间片;如果否,则将该请求分配到账务处理单元按照正常处理流程进行记账处理。其中,所述预置条件是指针对相同业务的请求,和/或,针对相同账户的付lt/收款请求。根据本发明提供的具体实施例,本发明具有以下技术效果本发明借用时间片的概念,将时间片的概念应用于网络请求的处理,将高并发的特殊网络请求,按请求的时间分配到不同的时间段上处理,这样就不需要像传统方式一样逐个的处理请求,而是面向时间片进行处理,从而解决了在同一时间占用同一资源的问题,提高了处理效率。而且,在处理同一时间片上的请求时,将同类请求进行合并处理,减少了系统的处理次数,从而减少了对同一资源的频繁加锁、解锁次数,同时降低了该资源访问的队列等待时间。图l是现有技术中标准的记账处理流程示意图2是本发明实施例一所述一种并发数据处理方法的流程图3是本发明优选实施例所述的处理示意图;图4是本发明实施例所述一种并发数据处理装置的结构图5是本发明实施例二中账务系统根据配置信息区分处理通道的示意图6是本发明实施例二中将请求分配到时间片的示意图7是本发明实施例二中对该时间片的处理示意图8是本发明实施例所述一种电子记账系统的结构图。具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明借用时间片的概念,将时间片的概念应用于网络请求的处理,将高并发的特殊网络请求分配到不同的时间段上进行处理,从而解决了在同一时间占用同一资源的问题,提高了处理效率。同时,将一个时间片上可合并的请求进行统一处理,减少了对同一资源的频繁加锁、解锁次数。本发明适用于各种业务系统中的并发业务处理,下面将以金融系统中的并发账务处理为例进行详细说明。其中,所述金融系统既包括金融机构内部的网络系统,还包括基于第三方电子交易平台的金融数据处理系统。在所述金融系统的账务处理中,针对一笔账务请求,涉及付款账户和收款账户两个记账处理过程。因此,并发请求可能是多个并发付款请求,即针对同一个收款账户,有多个交易同时提出付款请求;并发请求也可能是多个并发收款请求,即针对同一个付款账户,有多个交易同时提出收款请求。针对所述高并发账户(包括收款账户和付款账户)的处理,下面通过实施例进行说明。实施例一参照图2,是实施例一所述一种并发数据处理方法的流程图。针对高并发账户的请求,执行以下处理5201,将系统的处理时间划分为多个时间段,每个时间段称为一个时间片。其中,所述系统的处理时间是指处理交易请求的时间。5202,将并发请求分配到相应的时间片上,等待该时间片^:处理。具体分配时,有不同的分配策略,主要依据时间段的划分方法。例如,将一分钟以秒划分为60个时间段,当收到请求时,按照请求的时间自动分配到相应的时间段上,如请求的时间为第20秒,则将该请求分配到第20个时间片上处理。如果是并发请求,即针对某个高并发账户,在同一时刻有多个请求,则将所述多个请求都分配到同一时间片上。S203,按照时间片的顺序,循环依次处理每个时间片上的请求。在处理每个时间片上的请求时,本发明提供了一种优选方式,如下S204,优选的,在处理当前时间片上的请求队列时,根据预置条件判断是否存在同类请求,如果存在,则继续S205;如果不存在,则继续S206。其中,所述同类请求是指可以合并统一处理的请求,例如,针对同一个账户的付款请求,或者是针对同一个账户的收款请求,或者是针对同一个账户的同类或相同业务请求,等等。5205,如果存在同类请求,则将同类请求合并,统一进行处理。5206,如果不存在同类请求,则对每个请求单独处理。在账务处理中,涉及两个账户(付款账户和收款账户)的记账处理。针对每一个账户,都需要通过加锁、解锁操作,才能结束一个请求的处理。如果是同类请求,则可以将针对同一账户的多个请求合并,这样对该账户进行一次加锁、解锁操作就可以完成处理;如果不是同类请求,则需要在处理每个请求的时候,对相应账户进行加、解锁。S207,返回处理结果。将上述处理过程与现有技术相比,现有技术是面向请求的处理方式,是逐个的处理请求,而上述处理过程是面向时间片的处理,因此解决了在同一时间占用同一资源的问题,提高了系统的并发处理效率。同时,在处理同一时间片上的请求时,将同类请求进行合并处理,减少了系统的处理次数,从而减少了对同一资源的频繁加锁、解锁次数,同时降低了该资源访问的队列等待时间。优选的,在实际应用中,还可以包括一个预处理步骤,该步骤在将并发请求分配到时间片之前,先对请求进行一个识别处理,然后再进行分配。具体参照图3,是处理示意图。系统在对一个记账请求进行处理时,先根据预设的配置信息,判断当前请求是否为并发请求。如果是并发请求,则转到特殊记账处理流程,将该请求分配到相应的时间片上等待处理,当时间片被循环处理时,执行记账处理;如果在同一个时间片上存在同类请求,则合并处理。如果不是并发请求,则转到正8常记账处理流程,执行记账处理。其中,所述特殊记账处理是针对高并发的业务或账户进行的特殊处理。为识别出哪些请求需要进行特殊处理,会预先设定一些配置信息,该配置信息设定了哪些业务为高并发业务,这些高并发业务中的哪些数据处理是并发处理,等等。所述配置信息可以根据具体业务进行设定,目的是篩选出高并发的处理请求,以便转到特殊处理流程进4亍基于时间片的处理。基于上述方法的说明,本发明还提供了一种并发数据处理装置的实施例。参照图4,是所述装置的结构图。所述装置主要包括时间片划分单元U41、请求分配单元U42、时间片处理单元U43,其中时间片划分单元U41,用于将处理时间划分为多个时间片;请求分配单元U42,用于将并发请求分配到相应的时间片上;时间片处理单元U43,用于按照时间片的顺序循环处理每个时间片上的请求。优选的,所述时间片处理单元U43进一步包括循环调度单元,用于循环调度每个时间片上的请求;合并处理单元,用于针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求合并后进行统一处理;如果不存在,则对每个请求进行单独处理。优选的,所述请求分配单元U42进一步包括判断单元,用于根据预设的配置信息,判断当前请求是否为并发请求;分配单元,用于根据判断单元的判断结果,如果是并发请求,则将该请求分配到时间片;如果否,则将该请求分配到常规处理单元U44,按照正常处理流程进行处理。其中,所述常规处理单元U44和时间片处理单元U43是两种不同渠道的处理。常规处理单元U44是按照现有技术的方式进行处理,即针对一个请求,分别对涉及的两个账户进行加锁、记账处理、解锁的处理,可参照图l所示。而时间片处理单元U43是针对高并发业务、并发账户的特殊处理,通过时间片及合并同类请求的方式提高并发处理的效率。图4所示装置中未详述的部分可以参见图2、图3所示方法的相关部分,为了篇幅考虑,在此不再详述。实施例二由于目前电子交易的普遍性,下面将以基于第三方电子交易平台的金融数据处理为例,进一步详细说明本发明如何解决电子交易处理中的并发账务问题。在电子交易中,账务处理由第三方支付平台实现,平台设有用户虚拟账户,包括买方虚拟账户和卖方虚拟账户。买方先将交易资金从^l艮行账户转入买方虚拟账户,在交易过程中再由买方虚拟账户转到卖方虚拟账户中,此时交易资金控制在第三方支付平台,卖方无法提现。当买方确认收货之后,交易资金再由卖方虚拟账户转入卖方银行账户。而本发明处理的账务请求是指平台内部交易双方虚拟账户之间的转账处理,如前所述,包括并发付款请求和并发收款请求。下面将以并发付款请求为例进行说明(以下所述账户均指虚拟账户)。如果有多个账户同时向一个账户付款,则针对每一个付款请求,账务处理包括三部分第一,账务系统根据配置信息区分处理通道;第二,将请求分配到时间片;第三,对该时间片的处理。下面通过图5、图6和图7进行详细说明。参照图5,是账务系统根据配置信息区分处理通道的示意图。图中,外围系统是指账务系统之外的系统,如电子交易系统或其他产生请求的业务系统。账务系统是由第三方支付平台实现,用于进行账户之间的转账处理。,支设账务系统中的账户A向账户B转账,账务系统收到外围系统发来的请求后,判断该请求是否为针对高并发业务或高并发账户的请求,如果是,则分配到时间片处理通道,通过时间片的方式进行特殊处理,具体参照图6所示。如果否,则分配到账务常规处理通道,按照现有技术的方式进行处理,即针对一个请求,分别对涉及的两个账户进行加锁、记账处理、解锁的处理,可参照图1所示。参照图6,是将请求分配到时间片的示意图。如果将请求分配到了时间片处理通道,则根据请求的时间,该请求会落入相应的时间片等待处理。如果一个时间片上落入多个请求,则形成了该时间片的请求队列。通常,一次转账涉及到两个账户,分别做付款和收款。如图所示,当账户A向账户B的转账请求落入一个时间片之后,时间片处理通道会将账户A的付款操作和账户B的收款操作分为两个任务排列在时间片队列中。参照图7,是对该时间片的处理示意图。该图表示对一个时间片的处理。图中,时间片轮转处理器用于循环调度时间片来处理各时间片队列中的请求。针对当前调度的目标时间片,首先获f^目标时间片队列中的任务l,进行付款处理;然后获取任务2,进行收款处理;最后,当任务1和任务2都处理完毕后,将任务1和任务2的处理结果返回外围系统。由于本实施例是对并发付款请求的处理,即同时有多个账户向一个账户付款,所以针对每个付款账户(如账户A),都进行一次记账处理,但对于同一个收款账户(如账户B),则需要进行多次记账处理。因此在本例中,账户A不是高并发账户,只进行常规账务处理即可,即直接对账户A进行加锁、记账处理和解锁,其中记账处理包括记录记账凭证和更新账户余额。而账户B是高并发账户,所以在同一个时间片里可能会有多个请求。优选的,为减少对账户B的频繁加、解锁,可以将同类请求合并,当作一个请求进行处理。此时,将可合并的任务2加入汇总列表,该汇总列表记录了同一个时间片上的所有同类请求。然后,将汇总列表的集合进行统一收款处理,即进行一次加锁、记账处理和解锁,就可完成多个请求的收款,举例说明,参照下表,请求A->B、C—〉B落入时间片1。在该时间片的处理中,/人账户A中扣除10元,乂人账户C中扣除20元;而对于并发账户B,进行合并处理的结果是,一次性增加30元。<table>tableseeoriginaldocumentpage12</column></row><table>同样,对于并发收款请求E--〉D、E—>F,都落入时间片2。在该时间片的处理中,对并发账户E进行合并处理,即一次性扣除20元,同时对账户D增力口5元,对贝长户F增力口15元。针对上述电子交易中的并发账务处理方法,本发明实施例还提供了一种电子记账系统。参照图8,是实施例所述一种电子记账系统的结构图。所述系统包括账务处理单元U81,用于进行记账处理,包括记录记账凭证及更新账户余额;存储单元U82,用于划分时间片来存储账务请求;在实际应用中,可以由内存装置来实现;请求分配单元U83,用于将并发的账务请求,按照请求的时间分配到相应的时间片上;时间片循环处理器U84,用于按照时间片的顺序循环处理每个时间片上的账务请求,并针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求合并后通过账务处理单元U81进行统一的记账处理;如果不存在,则直接由账务处理单元U81进行处理。优选的,所述请求分配单元U83进一步包括判断单元,用于根据预设的配置信息,判断当前账务请求是否为并发请求;分配单元,用于根据判断单元的判断结果,如果是并发请求,则将该请求分配到时间片;如果否,则将该请求分配到账务处理单元U81-接照正常处理流程进行记账处理。12所述电子记账系统将传统的面向请求处理变为面向时间片的处理,并对同一时间片上的同类请求进行合并处理,从而极大地提高了高并发业务访问同一资源的效率,减少了对同一资源的加、解锁次数,降低了系统的压力。图8所示系统中未详述的部分可以参见图5、图6、图7所示方法的相关部分,为了篇幅考虑,在此不再详述。以上对本发明所提供的一种并发数据处理方法、装置及一种电子记账系了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种并发数据处理方法,其特征在于,包括将处理时间划分为多个时间片;将并发请求分配到相应的时间片上;循环处理每个时间片上的请求。2、根据权利要求1所述的方法,其特征在于,所述循环处理每个时间片上的请求,具体包括针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求进行合并处理。3、根据权利要求1所述的方法,其特征在于,将并发请求分配到相应的时间片之前,还包括根据预设的配置信息,判断当前请求是否为并发请求;如果是,则分配到相应的时间片;如果否,则按照正常处理流程进行处理。4、根据权利要求1所述的方法,其特征在于,所述将并发请求分配到相应的时间片具体包括按照请求的时间将并发请求分配到对应该请求时间的时间片上。5、根据权利要求1所述的方法,其特征在于当所述请求为账务请求时,所述预置条件是指针对相同业务的请求,和/或,针对相同账户的付款/收款请求。6、一种并发数据处理装置,其特征在于,包括时间片划分单元,用于将处理时间划分为多个时间片;请求分配单元,用于将并发请求分配到相应的时间片上;时间片处理单元,用于循环处理每个时间片上的请求。7、根据权利要求6所述的装置,其特征在于,所述时间片处理单元进一步包括循环调度单元,用于循环调度每个时间片上的请求;合并处理单元,用于针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求合并后进行处理。8、根据权利要求6所述的装置,其特征在于,所述请求分配单元进一步包括判断单元,用于根据预设的配置信息,判断当前请求是否为并发请求;分配单元,用于根据判断单元的判断结果,如果是并发请求,则将该请求分配到相应的时间片;如果否,则将该请求分配到常规处理单元,按照正常处理流程进行处理。9、根据权利要求6所述的装置,其特征在于当所述请求为账务请求时,所述预置条件是指针对相同业务的请求,和/或,针对相同账户的付款/收款请求。10、一种电子记账系统,其特征在于,包括账务处理单元,用于进行记账处理;存储单元,用于划分时间片来存储账务请求;请求分配单元,用于将并发的账务请求分配到相应的时间片上;时间片循环处理器,用于循环处理每个时间片上的账务请求;针对当前时间片上的请求队列,根据预置条件判断是否存在同类请求,如果存在,则将所述同类请求合并后通过账务处理单元进行记账处理。11、根据权利要求10所述的系统,其特征在于,所述请求分配单元进一步包括判断单元,用于才艮据预设的配置信息,判断当前账务请求是否为并发请求;分配单元,用于才艮据判断单元的判断结果,如果是并发请求,则将该请求分配到相应的时间片;如果否,则将该请求分配到账务处理单元按照正常处理流程进行记账处理。12、根据权利要求IO所述的系统,其特征在于所述预置条件是指针对相同业务的请求,和/或,针对相同账户的付款/收款请求。全文摘要本发明公开了一种并发数据处理方法及装置,解决并发处理过程中,多个请求在同一时间内占用同一资源的问题。所述方法包括将处理时间划分为多个时间片;将并发请求分配到不同的时间片上;循环处理每个时间片上的请求。本发明将时间片的概念应用于网络请求的处理,不需要像传统方式一样逐个的处理请求,而是面向时间片进行处理,从而解决了在同一时间占用同一资源的问题,提高了处理效率。而且,在处理同一时间片上的请求时,将同类请求进行合并处理,减少了系统的处理次数,从而减少了对同一资源的频繁加锁、解锁次数,同时降低了该资源访问的队列等待时间。文档编号G06F9/50GK101639792SQ20081013477公开日2010年2月3日申请日期2008年7月29日优先权日2008年7月29日发明者倪行军,立程,旭赵申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1