CN103984508A - 基于飞腾处理器平台的raid多线程并发读写方法 - Google Patents
基于飞腾处理器平台的raid多线程并发读写方法 Download PDFInfo
- Publication number
- CN103984508A CN103984508A CN201410205009.6A CN201410205009A CN103984508A CN 103984508 A CN103984508 A CN 103984508A CN 201410205009 A CN201410205009 A CN 201410205009A CN 103984508 A CN103984508 A CN 103984508A
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- raid
- threads
- disk array
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于飞腾处理器平台的RAID多线程并发读写方法,在对向RAID磁盘阵列的读操作或者写操作大规模数据时,根据飞腾处理器平台的处理器核心数以及读/写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据确定的子线程个数创建多个子线程并调度到不同的处理器核心上运行,从而能够向多个RAID磁盘中并行读取数据,能够充分挖掘飞腾处理器的并发处理能力、提升RAID磁盘阵列I/O性能,能够显著减少读取数据的时间,提高磁盘吞吐率,具有读取数据快、磁盘吞吐率高的优点。
Description
技术领域
本发明涉及计算机领域中的大规模并发读写技术,具体涉及一种基于飞腾处理器平台的独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)多线程并发读写方法。
背景技术
随着计算机技术和信息科技的发展,数据成为了各行各业尤其重要并且保持飞速增长的资源。中国互联网信息中心统计,我国网页数量超过330亿,且年增长率超过100%;数据调查公司IDC报告显示,2011年的全球数据总量已达到1.8ZB(万亿GB),预计到2020年全球电子设备存储的数据将暴增至40ZB。数据量的不断增大给数据的存储和读写速度带来了巨大挑战,尤其大规模数据读写时的I/O性能问题成为了许多计算机系统的瓶颈。为了满足各种用户的存储需求,RAID技术应运而生,大量应用于现代企业级存储中。RAID 技术可以将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借助条带化和镜像等存储方式,来提高性能或建立数据冗余以防驱动器发生故障。
传统的磁盘读写优化技术大多基于x86体系结构;而飞腾处理器平台的飞腾处理器基于sparc体系结构,与x86体系结构无法兼容。同x86体系结构相比,飞腾处理器的单核处理能力较低,容易成为大规模数据读写时系统I/O的瓶颈;但另一方面,飞腾处理器的多核并行处理能力突出,而传统的锁机制等针对x86体系结构的优化虽然减少了磁盘I/O竞争,但在很大程度上限制了磁盘I/O的并发度,不利于合理利用飞腾处理器的多核并行处理能力。
综上所述,目前飞腾处理器平台的RAID读写方法无法充分发挥飞腾处理器平台及RAID磁盘阵列的多线程并发读写能力。目前研究高并发、高性能的RAID磁盘阵列读写方法是本领域技术人员极为关注的技术问题,现有研究中没有公开文献涉及在飞腾处理器平台上使用多线程并发读写来提高RAID磁盘阵列读写性能的方法。
发明内容
本发明要解决的技术问题是提供一种能够充分挖掘飞腾处理器的并发处理能力、提升RAID磁盘阵列I/O性能、读取数据快、磁盘吞吐率高的基于飞腾处理器平台的RAID多线程并发读写方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于飞腾处理器平台的RAID多线程并发读写方法,其实施步骤如下:
1)判断接收的数据读写指令的操作类型,如果数据读写指令为读操作则跳转执行步骤2),如果数据读写指令为写操作则跳转执行步骤3);
2)获取读操作对应读数据在RAID磁盘阵列中的分布信息元数据,根据飞腾处理器平台的处理器核心数以及读数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据所述读数据在RAID磁盘阵列中的分布信息元数据为各个子线程计算并分配各自的读取数据起始地址以及读取数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行读取RAID磁盘阵列中各个目标磁盘中的数据,在所有子线程读取数据完毕之后,将各个子线程读取的数据进行拼合并返回,读操作结束并退出;
3)根据写操作的写入数据大小、RAID磁盘阵列的条带大小、RAID磁盘阵列的磁盘个数为写操作的写入数据预划分RAID磁盘阵列空间,根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据写操作的写入数据大小、RAID磁盘阵列的条带大小和子线程个数对所写入数据进行拆分,分别为各子线程划分写入内容,为各子线程计算各自的写入数据起始地址以及写入数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行向各个磁盘写入数据,写操作结束并退出。
进一步地,所述步骤2)中根据飞腾处理器平台的处理器信息以及RAID磁盘阵列的配置情况确定子线程个数时,所述子线程个数的数量为处理器核心数、读数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
进一步地,所述步骤3)中根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数时,所述子线程个数的数量为处理器核心数、写数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
本发明基于飞腾处理器平台的RAID多线程并发读写方法具有下述技术效果:本发明在对向RAID磁盘阵列的读操作或者写操作大规模数据时,根据飞腾处理器平台的处理器核心数以及读/写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据确定的子线程个数创建多个子线程并调度到不同的处理器核心上运行,从而能够向多个RAID磁盘中并行读取数据,能够充分挖掘飞腾处理器的并发处理能力、提升RAID磁盘阵列I/O性能,能够显著减少读取数据的时间,提高磁盘吞吐率,具有读取数据快、磁盘吞吐率高的优点。
附图说明
图1为本发明实施例的方法流程示意图。
具体实施方式
如图1所示,本实施例基于飞腾处理器平台的RAID多线程并发读写方法的实施步骤如下:
1)判断接收的数据读写指令的操作类型,如果数据读写指令为读操作则跳转执行步骤2),如果数据读写指令为写操作则跳转执行步骤3)。
2)获取读操作对应读数据在RAID磁盘阵列中的分布信息元数据,根据飞腾处理器平台的处理器核心数以及读数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据读数据在RAID磁盘阵列中的分布信息元数据为各个子线程计算并分配各自的读取数据起始地址以及读取数据长度,根据确定的子线程个数创建多个子线程,将多个子线程分别调度到不同的处理器核心运行,并行读取RAID磁盘阵列中各个目标磁盘中的数据,在所有子线程读取数据完毕之后,将各个子线程读取的数据进行拼合并返回,读操作结束并退出。本实施例通过创建多个子线程,并调度到不同的飞腾处理器核心上运行,从而能够向多个RAID磁盘中并行读取数据,可以显著减少读取数据的时间,提高磁盘吞吐率。
本实施例步骤2)中根据飞腾处理器平台的处理器信息以及RAID磁盘阵列的配置情况确定子线程个数时,子线程个数的数量为处理器核心数、读数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
3)根据写操作的写入数据大小、RAID磁盘阵列的条带大小、RAID磁盘阵列的磁盘个数为写操作的写入数据预划分RAID磁盘阵列空间,根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据写操作的写入数据大小、RAID磁盘阵列的条带大小和子线程个数对所写入数据进行拆分,分别为各子线程划分写入内容,为各子线程计算各自的写入数据起始地址以及写入数据长度,根据确定的子线程个数创建多个子线程,将多个子线程分别调度到不同的处理器核心运行,并行向各个磁盘写入数据,写操作结束并退出。本实施例根据写入数据大小和RAID磁盘阵列信息创建多个子线程,并调度到不同的飞腾处理器核心上运行,从而并行化向多个RAID磁盘中写入数据,可以显著提高RAID磁盘阵列的I/O性能。
本实施例步骤3)中根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数时,子线程个数的数量为处理器核心数、写数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种基于飞腾处理器平台的RAID多线程并发读写方法,其特征在于实施步骤如下:
1)判断接收的数据读写指令的操作类型,如果数据读写指令为读操作则跳转执行步骤2),如果数据读写指令为写操作则跳转执行步骤3);
2)获取读操作对应读数据在RAID磁盘阵列中的分布信息元数据,根据飞腾处理器平台的处理器核心数以及读数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据所述读数据在RAID磁盘阵列中的分布信息元数据为各个子线程计算并分配各自的读取数据起始地址以及读取数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行读取RAID磁盘阵列中各个目标磁盘中的数据,在所有子线程读取数据完毕之后,将各个子线程读取的数据进行拼合并返回,读操作结束并退出;
3)根据写操作的写入数据大小、RAID磁盘阵列的条带大小、RAID磁盘阵列的磁盘个数为写操作的写入数据预划分RAID磁盘阵列空间,根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数,根据写操作的写入数据大小、RAID磁盘阵列的条带大小和子线程个数对所写入数据进行拆分,分别为各子线程划分写入内容,为各子线程计算各自的写入数据起始地址以及写入数据长度,根据所述确定的子线程个数创建多个子线程,将所述多个子线程分别调度到不同的处理器核心运行,并行向各个磁盘写入数据,写操作结束并退出。
2.根据权利要求1所述的基于飞腾处理器平台的RAID多线程并发读写方法,其特征在于:所述步骤2)中根据飞腾处理器平台的处理器信息以及RAID磁盘阵列的配置情况确定子线程个数时,所述子线程个数的数量为处理器核心数、读数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
3.根据权利要求2所述的基于飞腾处理器平台的RAID多线程并发读写方法,其特征在于:所述步骤3)中根据飞腾处理器平台的处理器核心数以及写数据占用RAID磁盘阵列中磁盘个数确定子线程个数时,所述子线程个数的数量为处理器核心数、写数据占用RAID磁盘阵列中磁盘个数两者中的较小值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410205009.6A CN103984508A (zh) | 2014-05-15 | 2014-05-15 | 基于飞腾处理器平台的raid多线程并发读写方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410205009.6A CN103984508A (zh) | 2014-05-15 | 2014-05-15 | 基于飞腾处理器平台的raid多线程并发读写方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103984508A true CN103984508A (zh) | 2014-08-13 |
Family
ID=51276503
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410205009.6A Pending CN103984508A (zh) | 2014-05-15 | 2014-05-15 | 基于飞腾处理器平台的raid多线程并发读写方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103984508A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699465A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
CN105740170A (zh) * | 2016-01-22 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存脏页刷写方法及装置 |
TWI582582B (zh) * | 2015-12-28 | 2017-05-11 | 鴻海精密工業股份有限公司 | 提高raid讀取性能的系統及方法 |
CN111427508A (zh) * | 2019-01-09 | 2020-07-17 | 深圳市茁壮网络股份有限公司 | 一种文件均衡分布方法及装置 |
WO2021174654A1 (zh) * | 2020-03-06 | 2021-09-10 | 苏州浪潮智能科技有限公司 | 一种io请求处理方法、装置、设备及可读存储介质 |
CN114924911A (zh) * | 2022-05-19 | 2022-08-19 | 广州鼎甲计算机科技有限公司 | Windows操作系统有效数据备份方法、装置、设备和存储介质 |
-
2014
- 2014-05-15 CN CN201410205009.6A patent/CN103984508A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699465A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
CN104699465B (zh) * | 2015-03-26 | 2017-05-24 | 中国人民解放军国防科学技术大学 | 向量处理器中支持simt的向量访存装置和控制方法 |
TWI582582B (zh) * | 2015-12-28 | 2017-05-11 | 鴻海精密工業股份有限公司 | 提高raid讀取性能的系統及方法 |
CN105740170A (zh) * | 2016-01-22 | 2016-07-06 | 浪潮(北京)电子信息产业有限公司 | 一种缓存脏页刷写方法及装置 |
CN111427508A (zh) * | 2019-01-09 | 2020-07-17 | 深圳市茁壮网络股份有限公司 | 一种文件均衡分布方法及装置 |
CN111427508B (zh) * | 2019-01-09 | 2023-07-21 | 深圳市茁壮网络股份有限公司 | 一种文件均衡分布方法及装置 |
WO2021174654A1 (zh) * | 2020-03-06 | 2021-09-10 | 苏州浪潮智能科技有限公司 | 一种io请求处理方法、装置、设备及可读存储介质 |
CN114924911A (zh) * | 2022-05-19 | 2022-08-19 | 广州鼎甲计算机科技有限公司 | Windows操作系统有效数据备份方法、装置、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103984508A (zh) | 基于飞腾处理器平台的raid多线程并发读写方法 | |
US9208820B2 (en) | Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems | |
US8726070B2 (en) | System and method for information handling system redundant storage rebuild | |
US9996557B2 (en) | Database storage system based on optical disk and method using the system | |
US10678764B2 (en) | Heterogeneous type database storage system based on optical disc, and method for using system | |
US9135262B2 (en) | Systems and methods for parallel batch processing of write transactions | |
CN102326141A (zh) | Raid配置信息的处理方法及装置、raid控制器 | |
CN102682012A (zh) | 一种文件系统内读写数据的方法及装置 | |
CN103229136B (zh) | 磁盘阵列刷盘方法及磁盘阵列刷盘装置 | |
CN102637147A (zh) | 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法 | |
CN104572248B (zh) | 虚拟机动态保存快照的方法 | |
US9841989B2 (en) | Parallel data processing system, computer, and parallel data processing method | |
CN103500089A (zh) | 一种适应于Mapreduce计算模型的小文件存储系统 | |
CN102521419A (zh) | 分级存储的实现方法和系统 | |
CN114138200B (zh) | 一种基于RocksDB的预写日志方法及系统 | |
CN106469123A (zh) | 一种基于nvdimm的写缓存分配、释放方法及其装置 | |
CN107665219A (zh) | 一种日志管理方法及装置 | |
Adams et al. | Respecting the block interface–computational storage using virtual objects | |
CN103473185A (zh) | 缓存写入的方法、缓存装置和存储系统 | |
CN103365926A (zh) | 在文件系统中用于保存快照的方法和装置 | |
CN102609486A (zh) | 一种Linux文件系统的数据读写加速方法 | |
CN115933994B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN105956090B (zh) | 一种基于i/o自适应的日志文件系统数据存储方法 | |
CN109783032A (zh) | 一种基于异构计算的分布式存储加速方法及装置 | |
CN104571959A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140813 |