CN102117308B - 一种数据处理方法和数据处理系统 - Google Patents

一种数据处理方法和数据处理系统 Download PDF

Info

Publication number
CN102117308B
CN102117308B CN 201010042662 CN201010042662A CN102117308B CN 102117308 B CN102117308 B CN 102117308B CN 201010042662 CN201010042662 CN 201010042662 CN 201010042662 A CN201010042662 A CN 201010042662A CN 102117308 B CN102117308 B CN 102117308B
Authority
CN
China
Prior art keywords
data recording
result
write
reads
cyclic buffer
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.)
Expired - Fee Related
Application number
CN 201010042662
Other languages
English (en)
Other versions
CN102117308A (zh
Inventor
王迎峰
邓福喜
张宗元
李升林
林伟军
廖炳才
柳江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aspire Digital Technologies Shenzhen Co Ltd
Original Assignee
Aspire Digital Technologies Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aspire Digital Technologies Shenzhen Co Ltd filed Critical Aspire Digital Technologies Shenzhen Co Ltd
Priority to CN 201010042662 priority Critical patent/CN102117308B/zh
Publication of CN102117308A publication Critical patent/CN102117308A/zh
Application granted granted Critical
Publication of CN102117308B publication Critical patent/CN102117308B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及数据处理技术,针对现有数据处理方法效率低下的缺陷,提供一种数据处理方法和数据处理系统。数据处理方法包括在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。本发明还提供了数据处理系统。本发明技术方案处理效率更高,并可减少了系统资源消耗以及减少回写操作与数据库交互的次数,本发明技术方案在运行过程中无需进行内存的动态申请和释放,减少了系统CPU的消耗。

Description

一种数据处理方法和数据处理系统
技术领域
本发明涉及数据处理技术,更具体地说,涉及一种数据处理方法和数据处理系统。
背景技术
现有数据处理方法多采用单线程处理方式,其大致流程为:
1、从数据库批量读取一批数据;
2、逐条处理读取的数据,所述处理可以是例如但不限于数据计算、流程控制等;
3、根据步骤2中的处理结果,更新对应的数据在原始数据表中的状态信息。
上述处理方法的优点是操作简单,实现方便。然而不难想象,由于采用单线程处理,上述处理方法的处理效率十分低下,在处理对象庞大的情况下,往往存在性能瓶颈。此外,在上述处理方案中,步骤3的执行严格依赖于步骤2的处理结果,整个处理流程必须按照步骤1、2、3的顺序串行执行。因此,当任一步骤因出现异常导致处理停滞时,其他步骤均无法正常进行。而且步骤1在从数据库中读取数据时需要使用记录集游标,这种游标是一种临界资源,多任务并发访问时必须对其进行资源同步,而同步处理必然导致效率瓶颈。
因此,需要一种数据处理解决方案,能够有效解决现有技术之中存在的上述问题。
发明内容
本发明要解决的技术问题在于,针对现有数据处理方法效率低下的缺陷,提供一种数据处理方法和数据处理系统。
本发明解决其技术问题所采用的技术方案是:
构造一种数据处理方法,包括:
读取步骤,包括在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;
处理步骤,包括多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;
回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。
在本发明提供的种数据处理方法中,在读取多条数据记录后,所述读取步骤还包括,对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所述去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环缓冲区,然后将相同的数据记录从读取的数据记录中删除。
在本发明提供的数据处理方法中,所述处理步骤还包括,对于每一条处理结果,在将其写入循环缓冲区后,发出检测通知;
所述回写步骤还包括在收到检测通知时,检测循环缓冲区内处理结果的数量是否到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库。
在本发明提供的数据处理方法中,所述回写步骤还包括,在检测到循环缓冲区为空时,发出所述读取通知。
在本发明提供的数据处理方法中,所述轮询方式为Leader-Follower模式。
本发明还提供了一种数据处理系统,包括:
读取模块,用于在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;
处理模块,用于通过多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;
回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。
在本发明提供的数据处理系统中,在读取多条数据记录后,所述读取模块还用于,对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所述去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环缓冲区,然后将相同的数据记录从读取的数据记录中删除。
在本发明提供的数据处理系统中,所述处理模块还用于,对于每一条处理结果,在将其写入循环缓冲区后,发出检测通知;
所述回写模块还用于在收到检测通知时,检测循环缓冲区内处理结果的数量是否到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库。
在本发明提供的数据处理系统中,所述回写模块还用于,在检测到循环缓冲区为空时,发出所述读取通知。
在本发明提供的数据处理系统中,所述轮询方式为Leader-Follower模式。
实施本发明的技术方案,具有以下有益效果:本发明提供的数据处理方法和数据处理系统采用线程池技术通过多线程方式处理读取的数据记录,因此处理效率更高;同时,在采用多线程方式处理读取的数据记录时,本发明提供的技术方案采用了Leader-Followers方式对并发的多个处理线程进行调配,减少了系统资源竞争;而且,本发明提供的技术方案将数据处理过程和数据回写过程分离,减少了与数据库的连接数,以及回写操作与数据库交互的次数;此外,本发明在内部采用循环缓存区进行处理结果缓存,整个缓存区循环使用,运行过程中无需进行内存的动态申请和释放,减少了系统CPU的消耗;最后,本发明提供的技术方案为上层应用提供了简洁的API,有助于大幅度降低开发难度和工作量。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是依据本发明一较佳实施例的数据处理方法的读取步骤的流程图;
图2是依据本发明一较佳实施例的数据处理系统的逻辑结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种数据处理方法和数据处理系统,采用线程池技术通过多线程方式处理读取的数据记录,因此处理效率更高;同时,在采用多线程方式处理读取的数据记录时,本发明提供的技术方案采用了Leader-Followers方式对并发的多个处理线程进行调配,减少了系统资源竞争;而且,本发明提供的技术方案将数据处理过程和数据回写过程分离,减少了与数据库的连接数,以及回写操作与数据库交互的次数;此外,本发明在内部采用循环缓存区进行处理结果缓存,整个缓存区循环使用,运行过程中无需进行内存的动态申请和释放,减少了系统CPU的消耗;最后,本发明提供的技术方案为上层应用提供了简洁的API,有助于大幅度降低开发难度和工作量。下面就结合附图和具体实施例来对本发明提供的技术方案进行详细描述。
本发明提供的数据处理方法包括读取步骤、处理步骤和回写步骤。下面分别对这三个步骤进行详细描述。
图1是依据本发明一较佳实施例的数据处理方法的读取步骤100的流程图。如图1所示,读取步骤100开始于步骤102。
随后,在下一步骤104,接收读取通知。在具体实现过程中,读取通知可在启动时触发,也可在回写步骤中触发。有关在回写步骤中触发读取通知的内容将在下文进行详细描述。
随后,在下一步骤106,退出休眠模式。
随后,在下一步骤108,从数据库中读取预设数量的数据记录。
随后,在下一步骤110,执行去重操作,包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结果(例如但不限于“已处理”),并将生成的处理结果写入循环缓冲区,然后将相同的数据记录从读取的数据记录中删除。有关循环缓冲区的内容将在下文进行详细描述。
随后,在下一步骤112,将执行去重操作后的数据记录写入消息队列。
随后,在下一步骤114,进入休眠模式。
最后,读取步骤100结束于步骤116。
如上文所述,本发明提供的数据处理方法还包括处理步骤。在具体实现过程中,处理步骤进一步包括多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区,并且对于每一条处理结果,在将其写入循环缓冲区后,发出检测通知。有关检测通知的内容将在下文进行详细描述。
在具体实现过程中,上述轮询方式可以是例如但不限于Leader-Follower(领导者-追随者)模式。在具体实现过程中,基于Leader-Follower模式进行的处理步骤包括如下具体步骤:
S1、初始化处理线程池中的n个处理线程,选取其中一个处理线程为Leader线程,其他处理线程作为Follower线程进行等待;
S2、Leader线程在消息队列上阻塞等待数据记录;
S3、Leader线程读取到数据记录后转变为工作线程,并开始处理读取的数据记录,以及选取一个Follower线程为新的Leader线程。新的Leader线程回到步骤S2。其中,工作线程在处理读取的数据记录时,对读取到的数据记录进行反序列化,调用应用层重载的数据处理接口ProcRowData()进行数据处理,并在处理完成后将数据记录序列化后写入循环缓存区。随后,工作线程转化为Follower线程加入线程池的Follower队列,阻塞等待重新被选取为Leader线程。
如上文所述,本发明提供的数据处理方法还包括回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。此外,在检测到循环缓冲区为空时,发出所述读取通知。由上文所述可知,该读取通知将触发执行读取步骤。
由上文所述可知,本发明提供的数据处理方法采用半同步半异步的数据处理机制,通过在读取步骤和处理步骤之间,以及处理步骤和回写步骤之间增加数据缓存机制(读取步骤和处理步骤之间通过消息队列来实现数据缓存,处理步骤和回写步骤之间通过循环缓冲区来实现数据缓存),弱化三个步骤在逻辑上的耦合,使得读取步骤、处理步骤和回写步骤可以分别在三类独立线程上异步并发处理,从而有效地提升处理性能。
此外,数据处理采用线程池的方式并发进行,线程池采用Leader-Followers(领导者-追随者)模式,减少了对临界资源的竞争,优化了并发处理的性能。处理线程池每次自动推举一个线程作为Leader线程读取消息队列。这样,对消息队列这种临界资源,每次只有一个线程进行访问,消除了临界资源的竞争开销和性能损失。此外,Leader线程在读取到数据记录转变为工作线程立即开始处理读取的数据记录,并且选取一个Follower线程为新的Leader线程。在工作线程处理数据记录的过程中,新的Leader线程在读取数据记录后也会立即转变为工作线程立即开始处理读取的数据记录。如此一来,在同一时刻便可能存在多条工作线程并发处理读取的数据记录,满足了数据记录并发快速处理的性能要求。
在本发明提供的技术方案中,回写步骤通过设置专门的数据回写线程来完成。这种方式将已处理完毕的处理结果集中在数据回写线程中进行批量回写,避免了处理线程池中各处理线程各自回写数据,从而减少了对数据库的连接数要求,同时减少回写操作与数据库交互的次数,优化了处理性能和资源消耗。
本发明还提供了一种数据处理系统,下面就结合图2对其进行详细描述。
图2是依据本发明一较佳实施例的数据处理系统200的逻辑结构示意图。如图2所示,本发明提供的数据处理系统包括读取模块202、处理模块204和回写模块206。
读取模块202用于在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式。
在具体实现过程中,上述轮询方式为Leader-Follower模式。
在具体实现过程中,读取模块202用于执行上文所述的读取步骤中的各项操作;在读取多条数据记录后,所述读取模块202还用于,对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所述去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环缓冲区,然后将相同的数据记录从读取的数据记录中删除。
处理模块204用于通过多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区。
在具体实现过程中,处理模块204用于执行上文所述的处理步骤中的各项操作。
回写步骤206用于在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中。
在具体实现过程中,处理模块204还用于,对于每一条处理结果,在将其写入循环缓冲区后,发出检测通知;
回写模块206还用于在收到检测通知时,检测循环缓冲区内处理结果的数量是否到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库。
此外,回写模块206还用于,在检测到循环缓冲区为空时,发出读取通知。
在具体实现过程中,回写模块206用于执行上文所述的回写步骤中的各项操作。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种数据处理方法,其特征在于,包括:
读取步骤,包括在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;
处理步骤,包括多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;
回写步骤,包括在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中;
其中,在读取多条数据记录后,所述读取步骤还包括,对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所述去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环缓冲区,然后将相同的数据记录从读取的数据记录中删除。
2.根据权利要求1所述的数据处理方法,其特征在于,所述处理步骤还包括,对于每一条处理结果,在将其写入循环缓冲区后,发出检测通知;
所述回写步骤还包括在收到检测通知时,检测循环缓冲区内处理结果的数量是否到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库。
3.根据权利要求1所述的数据处理方法,其特征在于,所述回写步骤还包括,在检测到循环缓冲区为空时,发出所述读取通知。
4.根据权利要求1所述的数据处理方法,其特征在于,所述轮询方式为Leader-Follower模式。
5.一种数据处理系统,其特征在于,包括:
读取模块,用于在收到读取通知时,退出休眠模式,从数据库中读取预设数量的数据记录并将其写入消息队列,然后进入休眠模式;
处理模块,用于通过多个处理线程基于轮询方式处理消息队列中的数据记录并将处理结果写入循环缓冲区;
回写模块,用于在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库中;
其中,在读取多条数据记录后,所述读取模块还用于,对读取的数据记录执行去重操作,然后将去重操作后的数据记录写入所述消息队列,所述去重操作包括对于读取的每条数据记录,在检查到所读取的数据记录中存在与其相同的数据记录时,为相同的数据记录生成预先设置的处理结果,并将生成的处理结果写入循环缓冲区,然后将相同的数据记录从读取的数据记录中删除。
6.根据权利要求5所述的数据处理系统,其特征在于,所述处理模块还用于,对于每一条处理结果,在将其写入循环缓冲区后,发出检测通知;
所述回写模块还用于在收到检测通知时,检测循环缓冲区内处理结果的数量是否到达预先设置的阈值,在检测到循环缓冲区内处理结果的数量到达预先设置的阈值时,从循环缓冲区读取预设数量的处理结果并回写到数据库。
7.根据权利要求5所述的数据处理系统,其特征在于,所述回写模块还用于,在检测到循环缓冲区为空时,发出所述读取通知。
8.根据权利要求5所述的数据处理系统,其特征在于,所述轮询方式为Leader-Follower模式。
CN 201010042662 2010-01-06 2010-01-06 一种数据处理方法和数据处理系统 Expired - Fee Related CN102117308B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010042662 CN102117308B (zh) 2010-01-06 2010-01-06 一种数据处理方法和数据处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010042662 CN102117308B (zh) 2010-01-06 2010-01-06 一种数据处理方法和数据处理系统

Publications (2)

Publication Number Publication Date
CN102117308A CN102117308A (zh) 2011-07-06
CN102117308B true CN102117308B (zh) 2012-11-14

Family

ID=44216082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010042662 Expired - Fee Related CN102117308B (zh) 2010-01-06 2010-01-06 一种数据处理方法和数据处理系统

Country Status (1)

Country Link
CN (1) CN102117308B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843937A (zh) * 2016-03-31 2016-08-10 北京奇虎科技有限公司 数据处理方法和装置

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103065238B (zh) * 2012-12-20 2016-08-31 北京讯鸟软件有限公司 一种通过内存对名单信息动态预准备的方法
CN103473329A (zh) * 2013-09-17 2013-12-25 广州市信息安全测评中心 持久化数据队列及其加载的方法和装置
CN103970597B (zh) * 2014-04-24 2017-06-20 烽火通信科技股份有限公司 读写均衡的阻塞队列实现方法及装置
CN104182490B (zh) * 2014-08-11 2018-06-19 浪潮(北京)电子信息产业有限公司 一种管理数据访问的方法及装置
CN107153653B (zh) * 2016-03-03 2020-06-26 阿里巴巴集团控股有限公司 一种分库分表的轮询访问方法及装置
CN107239319B (zh) * 2016-03-29 2021-05-28 阿里巴巴集团控股有限公司 一种虚拟机的数据存储方法和装置
CN110196884B (zh) * 2019-05-31 2022-04-29 北京大米科技有限公司 基于分布式数据库的数据写入方法、存储介质和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517917A (zh) * 2003-01-27 2004-08-04 ������������ʽ���� 在多线程环境中管理和持久结构相关联的事务处理的方法
CN1658162A (zh) * 2005-03-25 2005-08-24 上海高智软件系统有限公司 提高归属位置寄存器接口系统处理速度的方法
CN1858735A (zh) * 2005-12-30 2006-11-08 华为技术有限公司 一种海量数据的处理方法
US7140018B1 (en) * 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
CN101551808A (zh) * 2009-05-13 2009-10-07 山东中创软件商用中间件股份有限公司 支持多进程的嵌入式的树型数据库技术

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7140018B1 (en) * 2000-06-20 2006-11-21 International Business Machines Corporation Method of using a distinct flow of computational control as a reusable abstract data object
CN1517917A (zh) * 2003-01-27 2004-08-04 ������������ʽ���� 在多线程环境中管理和持久结构相关联的事务处理的方法
CN1658162A (zh) * 2005-03-25 2005-08-24 上海高智软件系统有限公司 提高归属位置寄存器接口系统处理速度的方法
CN1858735A (zh) * 2005-12-30 2006-11-08 华为技术有限公司 一种海量数据的处理方法
CN101551808A (zh) * 2009-05-13 2009-10-07 山东中创软件商用中间件股份有限公司 支持多进程的嵌入式的树型数据库技术

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843937A (zh) * 2016-03-31 2016-08-10 北京奇虎科技有限公司 数据处理方法和装置

Also Published As

Publication number Publication date
CN102117308A (zh) 2011-07-06

Similar Documents

Publication Publication Date Title
CN102117308B (zh) 一种数据处理方法和数据处理系统
CN106790599B (zh) 一种基于多核无锁环形缓冲区的共生虚拟机通信方法
CN103218176B (zh) 数据处理方法及装置
US8627024B2 (en) Snapshot based replication
CN101236515B (zh) 多核系统单核异常的恢复方法
US20130160028A1 (en) Method and apparatus for low latency communication and synchronization for multi-thread applications
US8751727B2 (en) Storage apparatus and storage system
CN102693162A (zh) 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法
CN103218329A (zh) 数字信号处理数据传输
CN106844017A (zh) 用于网站服务器处理事件的方法和设备
CN103679022A (zh) 病毒扫描方法和装置
CN100451972C (zh) 提高多核系统访问临界资源速度的方法和装置
CN101359321A (zh) 一种实现处理器相互通讯的方法及装置
CN115687228B (zh) 一种基于PCIe总线的星载固态存储系统及方法
CN103049396A (zh) 数据的刷写方法及装置
CN106681660B (zh) Io调度方法及io调度装置
KR20080105390A (ko) 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치
CN1804792B (zh) 在长等待时间指令执行期间允许存储转发的方法和系统
CN103677900A (zh) 一种计算机设备系统启动加速的方法和装置
US20140082624A1 (en) Execution control method and multi-processor system
CN102455932A (zh) 一种任务实例串行执行方法、装置及系统
CN111176566B (zh) 一种支持queue命令的eMMC读写控制方法及存储介质
CN103607451B (zh) 支持并发的客户端与服务器端的文档操作同步方法
CN101923517B (zh) 一种缓冲区管理方法及系统
CN101324863B (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
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121114

Termination date: 20140106