CN103699336B - 一种磁盘阵列数据分布与重建方法及系统 - Google Patents
一种磁盘阵列数据分布与重建方法及系统 Download PDFInfo
- Publication number
- CN103699336B CN103699336B CN201310641681.5A CN201310641681A CN103699336B CN 103699336 B CN103699336 B CN 103699336B CN 201310641681 A CN201310641681 A CN 201310641681A CN 103699336 B CN103699336 B CN 103699336B
- Authority
- CN
- China
- Prior art keywords
- disk
- data
- disk array
- hotspare
- reconstruction
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明涉及磁盘阵列数据分布与重建方法和系统,该磁盘阵列包括磁盘阵列控制器、正常盘、热备盘,其中磁盘阵列控制器负责管理数据在正常盘上的分布、某一个或多个磁盘故障后的磁盘阵列重建,某一个或多个磁盘故障后,磁盘阵列控制器即选择热备盘进行重建;热备盘的存储空间划分成交替分布的数据空间和空闲空间;主磁盘中存储读出I/O热度统计存储区大小的数据,该数据经过异或运算后,运算结果写入热备盘的数据空间,在完成一次重建操作中,热备盘上I/O的磁头寻道距离减少,磁盘阵列重建速度加快。
Description
技术领域
本发明涉及所属的技术领域是:信息存储领域,尤其涉及一种磁盘阵列数据分布与重建方法及系统。
背景技术
磁盘阵列是将多个物理磁盘通过一定的数据分布方式组织起来通过并发I/O提供数据读写服务的一种存储系统。磁盘是机械组件,其失效概率非常高。当磁盘阵列中一个磁盘失效之后,磁盘阵列进入降级模式,磁盘阵列的并发吞吐量降低,读写I/O的平均响应时间升高。因此,如何在磁盘阵列中一个磁盘失效后在尽可能短的时间内将数据重建到热备盘上,是一个非常重要的,亟待解决的问题。特别是随着磁盘容量的迅速增加而磁盘转速却基本没有提升的情况下,将大容量、低带宽的磁盘上的数据重建到热备盘所需的时间非常长,导致另一块磁盘故障进而导致数据丢失的概率非常高。
针对磁盘阵列重建这个问题,已有部分研究成果。
面向条带的重建算法SOR(Striped Oriented Reconstruction)通过创建多个并发的线程,每个线程对应一个条带单元Stripe,挖掘多个Stripe重建的并行性来提升重建速度。SOR的优点是相对单条带串行重建,多个条带通过并行重建,使得多个条带可以并行进行,可以提升重建速度;其缺点是仍然存在单条带重建线程的性能问题,即同一个条带跨越多个磁盘,而多个磁盘的I/O会彼此等待,性能受限;同时,多个重建线程如对磁盘上不同区域的条带进行重建,会带来较长距离的磁盘寻道,从而限制了重建速度。
面向磁盘的重建算法DOR(Disk Oriented Reconstruction)通过为每个磁盘创建一个线程,充分挖掘磁盘带宽从而提升重建速度。DOR的优点是较为充分的利用磁盘带宽,提升重建速度;其缺点是对磁盘带宽的激进使用会对前端I/O的响应时间和带宽有一定的影响,多个线程独立挖掘磁盘带宽,容易造成缓冲中存在大量的不足满条带的数据片,另外该方案没有充分结合负载特征进行优化。
基于热度的多线程重建优化算法PRO(Popularity Based Multi-threadReconstruction Optimization)通过充分挖掘Web类负载局部性强的特性,对不同的存储区域的数据赋予不同的重建优先级,存储区域内的数据的访问热度越高,存储区域的重建优先级越高。PRO是对SOR和DOR的改进方案。PRO的优点是存储区域内的数据访问热度越高,存储区域重建优先级越高;其缺点是PRO仅仅适用于网页Web类只读类型的负载的场景,对于写负载和读负载均表现出局部性的场景,同样会导致磁头的长距离寻道。
负载重定向WorkOut(Workload Outsourcing)通过将热点数据和所有写数据重定向到另外一个磁盘阵列上来加速降低磁盘阵列的重建。WorkOut的主要缺点是失效磁盘阵列的重建依赖于另外一个磁盘阵列。
图1为现有技术的磁盘阵列重建原理图。
10为当前正在重建区域对应的主磁盘组中的数据区,40为对应10的热备盘中的“重建数据区”;20为当前非正在重建区域对应的前端I/O读请求在主磁盘组中的读数据区,50为对应20的热备盘中的“读顺便重建数据区”;30为当前非正在重建区域对应的前端I/O写请求在主磁盘组中的写数据区,60为对应30的热备盘中的“写顺便重建数据区”。
现有技术的磁盘阵列重建过程为:
步骤1、将热备盘划分为多个重建区域40、50、60。
步骤2、周期性统计每个重建区域的前端I/O访问热度。
步骤3、选择前端I/O访问热度最高的重建区域10,为其对应的重建线程分配定长的时间片资源,启动其重建过程,对数据区40进行重建。
步骤4、如果前端I/O读请求将数据区20的整个条带的数据读入缓存,则在热备盘上顺便重建相应的数据区50。
步骤5、如果前端I/O写请求将数据区30的整个条带的数据写入磁盘阵列,则在热备盘上顺便重建相应的数据区60。
现有技术磁盘阵列重建过程存在如下的问题:在读写混合负载场景下,热备盘的磁头将在“重建数据区”、“读顺便重建数据区”和“写顺便重建数据区”之间移动,频繁的磁头寻道操作将大大降低热备盘的重建带宽,从而延长磁盘阵列重建时间,导致数据丢失的可能性增大。
发明内容
为了解决上述问题,本发明的目的在于提出一种磁盘阵列数据分布与重建方法及系统,通过将空闲存储空间散布在热备盘,缩短读写混合负载场景下热备盘磁头在“重建数据区”、“读顺便重建数据区”和“写顺便重建数据区”之间寻道距离的方法及系统,提升磁盘阵列的重建速度。
具体地讲,本发明公开了一种磁盘阵列数据分布与重建系统,该系统包括磁盘阵列控制器、正常盘、热备盘,其中磁盘阵列控制器负责管理数据在正常盘上的分布、某一个或多个磁盘故障后的磁盘阵列重建,某一个或多个磁盘故障后,磁盘阵列控制器即选择热备盘进行重建;热备盘的存储空间划分成交替分布的数据空间和空闲空间;主磁盘中存储读出I/O热度统计存储区大小的数据,该数据经过异或运算后,运算结果写入热备盘的数据空间,从而完成一次重建操作。
该磁盘阵列控制器包括:
重建模块,用于选择磁盘阵列的起始地址对应的重建单元开始重建;
读请求处理模块,用于处理前端应用的I/O读请求;
写请求处理模块,用于处理前端应用I/O写请求。
本发明还公开了一种磁盘阵列数据分布与重建方法,包括如下步骤:
步骤1、将热备盘的存储空间划分成交替分布的数据空间和空闲空间;
步骤2、从主磁盘中读出I/O热度统计存储区大小的数据,经过异或运算后,将运算结果写入热备盘的数据空间,完成一次重建操作。
包括:
步骤21、选择磁盘阵列的起始地址对应的重建单元开始重建;具体包括:
如果对应的主磁盘上的数据未在缓存中命中,则向主磁盘发送读I/O请求,读取未在缓存中命中的数据,并置于缓存;
如果对应的主磁盘上的数据在缓存中命中,则将缓存中对应的主磁盘上四份数据进行异或运算,并将异或运算得到的结果数据写入热备盘上重建数据区。
步骤22、处理前端应用的I/O读请求;具体包括:
将前端应用I/O读请求分裂为多个子I/O读请求,读取未在缓存中命中的数据,并置于缓存;
如果前端应用I/O读请求对应的条带的所有数据全部在缓存中,则将条带对应的数据进行异或运算,并将异或运算的结果数据写入并重定向到热备盘上距离当前重建数据区最近的空闲空间中,并记录被重定向的数据的目标位置和被重定向之后的位置。
步骤23、处理前端应用I/O写请求。具体包括:
将前端应用I/O写请求分裂为多个子I/O写请求。
如果前端应用I/O写请求对应的条带的所有最新版本的数据全部在缓存中,则将条带对应的数据进行异或运算,并将异或运算的结果写入并重定向到热备盘上距离当前重建数据区最近的空闲空间中,并记录被重定向的数据的目标位置和被重定向之后的位置。
本发明的技术效果:
热备盘的存储空间被分为“数据空间”和“空闲空间”且交替分布的技术效果是可以将不同类型的I/O在热备盘上聚集。
对于热备盘上的I/O,将“读顺便重建数据区”和“写顺便重建数据区”对应的I/O重定向到“重建数据区”临近的“空闲空间”,其技术效果是热备盘上I/O的磁头寻道距离减少,磁盘阵列重建速度加快。
总的技术效果:缩短磁头寻道距离,加快磁盘阵列重建,降低数据丢失概率。成本低,开销小。
附图说明
图1为现有技术的磁盘阵列重建原理图;
图2为本发明的磁盘阵列重建原理图。
具体实施方式
磁盘阵列(Redundant Arrays of Inexpensive Disks,RAID),由磁盘阵列控制器、正常盘、热备盘组成。
磁盘阵列(RAID)技术主要包含RAID0~RAID7等数个规范。RAID5仅容单盘错,RAID6可容双盘错。在RAID5磁盘阵列中,配置一块热备盘,在RAID6磁盘阵列中,配置两块热备盘。当RAID5中的一个正常盘发生故障后,利用热备盘开始磁盘阵列重建。当RAID5中磁盘阵列重建过程中另一个正常盘故障、或RAID5中同时有两块或两块以上磁盘故障,则数据丢失,无法进行重建。当RAID6中的一个正常盘发生故障后,利用两块热备盘中的任意一个开始磁盘阵列重建,当RAID6种的两块正常盘发生故障后,利用两块热备盘开始磁盘阵列重建。当RAID6重建过程中第三块磁盘故障、或RAID6中同时有三块或三块以上磁盘故障,则数据丢失,无法进行重建。
磁盘阵列控制器负责管理数据在正常盘上的分布、某一个或多个磁盘故障后的磁盘阵列重建。某一个或多个磁盘故障后,磁盘阵列控制器即选择热备盘进行重建。该磁盘阵列控制器包括三个模块:重建模块,用于选择磁盘阵列的起始地址对应的重建单元开始重建;读请求处理模块,用于处理前端应用的I/O读请求;写请求处理模块,用于处理前端应用I/O写请求。热备盘的存储空间划分成交替分布的数据空间和空闲空间;主磁盘中存储读出I/O热度统计存储区大小的数据,该数据经过异或运算后,运算结果写入热备盘的数据空间,从而完成一次重建操作。
磁盘阵列数据分布与重建方法,包括如下步骤:
步骤1、将热备盘的存储空间划分成交替分布的数据空间和空闲空间;
步骤2、从主磁盘中读出I/O热度统计存储区大小的数据,经过异或运算后,将运算结果写入热备盘的数据空间,完成一次重建操作。
步骤2具体包括如下步骤:
步骤21、选择磁盘阵列的起始地址对应的重建单元开始重建;
步骤22、处理前端应用的I/O读请求;
步骤23、处理前端应用I/O写请求。
步骤21具体包括如下步骤:
步骤31、如果对应的主磁盘上的数据未在缓存中命中,则向主磁盘发送读I/O请求,读取未在缓存中命中的数据,并置于缓存;
步骤32、如果对应的主磁盘上的数据在缓存中命中,则将缓存中对应的主磁盘上四份数据进行异或运算,并将异或运算得到的结果数据写入热备盘上重建数据区。
步骤22具体包括如下步骤:
步骤41、将前端应用I/O读请求分裂为多个子I/O读请求,读取未在缓存中命中的数据,并置于缓存;
步骤42、如果前端应用I/O读请求对应的条带的所有数据全部在缓存中,则将条带对应的数据进行异或运算,并将异或运算的结果数据写入并重定向到热备盘上距离当前重建数据区最近的空闲空间中,并记录被重定向的数据的目标位置和被重定向之后的位置。
步骤23具体包括如下步骤:
步骤51、将前端应用I/O写请求分裂为多个子I/O写请求。
步骤52、如果前端应用I/O写请求对应的条带的所有最新版本的数据全部在缓存中,则将条带对应的数据进行异或运算,并将异或运算的结果写入并重定向到热备盘上距离当前重建数据区最近的空闲空间中,并记录被重定向的数据的目标位置和被重定向之后的位置。
下面通过图2实施例具体说明重建的过程。
图2中所示的“主磁盘1”、“主磁盘2”、“主磁盘3”、“主磁盘4”为处于正常状态的磁盘,“故障盘6”为故障盘。“故障盘6”发生故障之后,用“热备盘5”替换,开始重建。
首先将热备盘的存储空间划分成交替分布的“数据空间”和“空闲空间”。“数据空间”如图2中“热备盘5”上R2、R4、R6和R8所示,“空闲空间”如图2中“热备盘5”上R1、R3、R5和R7所示。其中R代表Region。设定I/O热度统计周期T和I/O热度统计存储区大小S。I/O热度统计存储区的大小S同时也是磁盘阵列重建的基本单位,即每一次重建操作均从主磁盘中读出S大小的数据,经过异或运算之后,将运算结果写入热备盘。
将热备盘的存储空间分成交替分布的“数据空间”R2、R4、R6和R8和“空闲空间”R1、R3、R5和R7之后,本发明的磁盘阵列重建方法有如下步骤:
步骤1、选择磁盘阵列的起始地址对应的重建单元开始重建,同时接收前端应用发送到磁盘阵列的I/O读请求和I/O写请求。如果是重建请求,跳转至步骤2;否则,如果是前端应用的I/O读请求或I/O写请求,跳转至步骤6。
步骤2、依此判断对应主磁盘1、主磁盘2、主磁盘3、主磁盘4上的四份数据是否在缓存中命中。如果是,跳转至步骤4;否则,跳转至步骤3。
步骤3、向主磁盘发送读I/O请求,读取未在缓存中命中的数据,并置于缓存。
步骤4、将缓存中对应主磁盘1、主磁盘2、主磁盘3、主磁盘4上的四份数据进行异或运算。
步骤5、将异或运算得到的结果数据写入热备盘上“重建数据区”R2。
步骤6、如果是前端应用I/O读请求,跳转至步骤7;否则,如果是前端应用I/O写请求,跳转至步骤10。
步骤7、将前端应用I/O读请求分裂为多个子I/O读请求,读取未在缓存中命中的数据,并置于缓存。
步骤8、如果前端应用I/O读请求对应的条带的所有数据全部在缓存中,则将条带对应的数据进行异或运算。
步骤9、将异或运算的结果数据写入并重定向到热备盘上距离当前“重建数据区”R2最近的空闲空间R3中50的位置,并记录被重定向的数据的目标位置和被重定向之后的位置。
步骤10、将前端应用I/O写请求分裂为多个子I/O写请求。
步骤11、如果前端应用I/O写请求对应的条带的所有最新版本的数据全部在缓存中,则将条带对应的数据进行异或运算。
步骤12、将异或运算的结果写入并重定向到热备盘上距离当前“重建数据区”R2最近的空闲空间R3中60的位置,并记录被重定向的数据的目标位置和被重定向之后的位置。
Claims (5)
1.一种磁盘阵列数据分布与重建方法,其特征在于,包括如下步骤:
步骤1、将热备盘的存储空间划分成交替分布的数据空间和空闲空间;
步骤2、从主磁盘中读出I/O热度统计存储区大小的数据,经过异或运算后,将运算结果写入热备盘的数据空间,完成一次重建操作;
其中所述步骤2具体包括如下步骤:
步骤21、选择磁盘阵列的起始地址对应的重建单元开始重建;
步骤22、处理前端应用的I/O读请求;
步骤23、处理前端应用I/O写请求。
2.如权利要求1所述的磁盘阵列数据分布与重建方法,其特征在于,所述步骤21具体包括如下步骤:
步骤31、如果对应的主磁盘上的数据未在缓存中命中,则向主磁盘发送读I/O请求,读取未在缓存中命中的数据,并置于缓存;
步骤32、如果对应的主磁盘上的数据在缓存中命中,则将缓存中对应的主磁盘上四份数据进行异或运算,并将异或运算得到的结果数据写入热备盘上重建数据区。
3.如权利要求1所述的磁盘阵列数据分布与重建方法,其特征在于,所述步骤22具体包括如下步骤:
步骤41、将前端应用I/O读请求分裂为多个子I/O读请求,读取未在缓存中命中的数据,并置于缓存;
步骤42、如果前端应用I/O读请求对应的条带的所有数据全部在缓存中,则将条带对应的数据进行异或运算,并将异或运算的结果数据写入并重定向到热备盘上距离当前重建数据区最近的空闲空间中,并记录被重定向的数据的目标位置和被重定向之后的位置。
4.如权利要求1所述的磁盘阵列数据分布与重建方法,其特征在于,所述步骤23具体包括如下步骤:
步骤51、将前端应用I/O写请求分裂为多个子I/O写请求;
步骤52、如果前端应用I/O写请求对应的条带的所有最新版本的数据全部在缓存中,则将条带对应的数据进行异或运算,并将异或运算的结果写入并重定向到热备盘上距离当前重建数据区最近的空闲空间中,并记录被重定向的数据的目标位置和被重定向之后的位置。
5.一种磁盘阵列数据分布与重建系统,其特征在于,该磁盘阵列包括磁盘阵列控制器、正常盘、热备盘,其中磁盘阵列控制器负责管理数据在正常盘上的分布、某一个或多个磁盘故障后的磁盘阵列重建,某一个或多个磁盘故障后,磁盘阵列控制器即选择热备盘进行重建;热备盘的存储空间划分成交替分布的数据空间和空闲空间;主磁盘中存储读出I/O热度统计存储区大小的数据,该数据经过异或运算后,运算结果写入热备盘的数据空间,从而完成一次重建操作;
其中该磁盘阵列控制器包括:
重建模块,用于选择磁盘阵列的起始地址对应的重建单元开始重建;
读请求处理模块,用于处理前端应用的I/O读请求;
写请求处理模块,用于处理前端应用I/O写请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310641681.5A CN103699336B (zh) | 2013-12-03 | 2013-12-03 | 一种磁盘阵列数据分布与重建方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310641681.5A CN103699336B (zh) | 2013-12-03 | 2013-12-03 | 一种磁盘阵列数据分布与重建方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103699336A CN103699336A (zh) | 2014-04-02 |
CN103699336B true CN103699336B (zh) | 2016-09-07 |
Family
ID=50360877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310641681.5A Active CN103699336B (zh) | 2013-12-03 | 2013-12-03 | 一种磁盘阵列数据分布与重建方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103699336B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598336B (zh) * | 2015-02-04 | 2018-04-24 | 深圳神州数码云科数据技术有限公司 | 基于raid算法的重建方法及装置 |
CN105302492A (zh) * | 2015-11-18 | 2016-02-03 | 浙江大华技术股份有限公司 | 一种磁盘阵列raid重建方法及装置 |
CN106326038A (zh) * | 2016-08-22 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种热备空间的选择方法及系统 |
CN109725822B (zh) * | 2017-10-27 | 2022-03-11 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN110413454B (zh) * | 2018-04-28 | 2022-04-05 | 华为技术有限公司 | 基于存储阵列的数据重建方法、装置及存储介质 |
CN111782135A (zh) * | 2019-06-14 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据存储方法、系统、数据节点和计算机可读存储介质 |
CN113391945A (zh) * | 2020-03-12 | 2021-09-14 | 伊姆西Ip控股有限责任公司 | 用于存储管理的方法、电子设备以及计算机程序产品 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9613088D0 (en) * | 1996-06-21 | 1996-08-28 | Memory Corp Plc | Memory device |
US6904441B2 (en) * | 2001-03-27 | 2005-06-07 | Hewlett-Packard Development Company, L.P. | Method and apparatus for providing file system access to a disk array |
US7024586B2 (en) * | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
CN101055511B (zh) * | 2007-05-16 | 2010-05-26 | 华为技术有限公司 | 一种存储阵列系统及其数据操作方法 |
CN102034517A (zh) * | 2009-09-25 | 2011-04-27 | 英业达股份有限公司 | 磁盘阵列的重新生成新数据的架构与方法 |
-
2013
- 2013-12-03 CN CN201310641681.5A patent/CN103699336B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103699336A (zh) | 2014-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103699336B (zh) | 一种磁盘阵列数据分布与重建方法及系统 | |
CN107250975B (zh) | 数据存储系统和数据存储方法 | |
CN103294412B (zh) | 实现用于瓦状磁体记录的大块随机写入热备份固态驱动器 | |
CN102023809B (zh) | 存储系统、从存储系统读取数据的方法及写入数据的方法 | |
KR101259557B1 (ko) | 클러스터 데이터 관리 시스템 및 클러스터 데이터 관리 시스템에서 병렬 처리를 이용한 데이터 복구 방법 | |
CN101436149B (zh) | 磁盘阵列数据重建方法 | |
CN104503923B (zh) | 一种非对称磁盘阵列高速缓存调度方法 | |
CN100498678C (zh) | 对廉价磁盘冗余阵列进行读写操作的方法和系统 | |
CN101833422B (zh) | 磁盘阵列的数据处理方法及设备 | |
EP2180407A2 (en) | Fast data recovery from HDD failure | |
CN101923501B (zh) | 一种磁盘阵列多级容错方法 | |
CN101221537A (zh) | 降级数据的方法和系统 | |
JP2013054407A (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
CN102326141A (zh) | Raid配置信息的处理方法及装置、raid控制器 | |
CN102637147A (zh) | 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法 | |
CN103577115B (zh) | 数据的排布处理方法、装置和服务器 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
US9389790B2 (en) | Method and apparatus for determining redundant array of independent disks | |
Varma et al. | Destage algorithms for disk arrays with non-volatile caches | |
CN107402890B (zh) | 一种基于固态盘阵列和缓存的数据处理方法及系统 | |
CN104484135A (zh) | 一种快速数据读取方法及装置 | |
CN1987799A (zh) | 一种适用于磁盘阵列的数据重建方法 | |
US20130254480A1 (en) | Storage system and operation method of a storage system | |
CN104182359A (zh) | 一种缓存分配方法及装置 | |
Wu et al. | {IDO}: Intelligent Data Outsourcing with Improved {RAID} Reconstruction Performance in {Large-Scale} Data Centers |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210225 Address after: Room 1146, 11 / F, research complex building, Institute of computing technology, Chinese Academy of Sciences, No. 6, South Road, Haidian District, Beijing, 100190 Patentee after: Zhongkehai micro (Beijing) Technology Co.,Ltd. Address before: 100190 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District Patentee before: Institute of Computing Technology, Chinese Academy of Sciences |