CN116820333A - 一种基于多线程的ssdraid-5持续写入方法 - Google Patents
一种基于多线程的ssdraid-5持续写入方法 Download PDFInfo
- Publication number
- CN116820333A CN116820333A CN202310699101.1A CN202310699101A CN116820333A CN 116820333 A CN116820333 A CN 116820333A CN 202310699101 A CN202310699101 A CN 202310699101A CN 116820333 A CN116820333 A CN 116820333A
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- queue
- stripe
- writing
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000002360 preparation method Methods 0.000 claims abstract description 44
- 230000004931 aggregating effect Effects 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 3
- 230000002688 persistence Effects 0.000 claims 1
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000005299 abrasion Methods 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- 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/061—Improving I/O performance
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
本发明涉及大数据存储技术领域,涉及一种基于多线程的SSDRAID‑5持续写入方法,包括:一、初始化;二、将I/O请求分配给线程;三、判断条带是否活跃,若否,则进行下一步;若是,则进行步骤十一;四、将该条带标记为活跃;五、执行预读请求;六、判断当前线程的预备队列是否有数据且数据是第一次写入;七、判断预备队列是否加锁;八、为预备队列加锁并取出数据,再为预备队列解锁;九、聚合当前线程数据和预备队列的数据;十、做异或校验后写入新数据和校验数据,然后进行步骤六;十一、获取当前活跃线程的ID;十二、判断预备队列是否加锁;十三、将线程的数据写入预备队列。本发明能较佳地持续写入。
Description
技术领域
本发明涉及大数据存储技术领域,具体地说,涉及一种基于多线程的SSDRAID-5持续写入方法。
背景技术
随着电商、直播、短视频的蓬勃发展,互联网数据的逐渐增多。大数据的处理对计算机底层的存储技术要求也越来越高。现在最新的软件存储架构是以stRAID、ScalaRAID等为首的多线程RAID系统,这些系统主要解决Linux multi-Disk(MD),在多线程状态下严重的锁争用问题,优化了RAID系统的吞吐量及延迟。
但现有多线程RAID方案仍忽略了几个方面的问题:第一、系统大多系统采用两阶段提交写入方案,没有考虑在多线程的环境下,两个线程同时写入一个条带时产生的排队延迟。第二、多线程使I/O请求并行处理,提高了I/O的处理数量,但小写请求使RAID系统进行过多的部分条带写,导致对SSD设备读写次数远超过I/O请求的次数,对芯片磨损较大,影响设备的使用寿命。
发明内容
本发明的内容是提供一种基于多线程的SSDRAID-5持续写入方法,该RAID多线程写入方案主要有3个方面的优化:1.保持某一线程持续写入;2.等待线程能够及时释放;3.聚合多个线程的小写数据。该写入方案减少了多线程冲突时的线程等待时间,线程可以及时的释放,有效提升了线程处理数据的效率,降低了用户相应时间;同时,聚合更多的多线程的小写数据,有效降低了RAID系统的部分条带写数量,延长了设备的使用寿命。
根据本发明的一种基于多线程的SSDRAID-5持续写入方法,其包括以下步骤:
一、初始化线程池和预备队列;
二、将I/O请求分配给线程;
三、判断线程访问的条带是否活跃,若否,则进行下一步;若是,则进行步骤十一;
四、将该条带标记为活跃;
五、执行预读请求;
六、判断当前线程的预备队列是否有数据且数据是第一次写入;若是,则进行下一步,若否,则完成;
七、判断预备队列是否加锁,若是,则重新判断,若否,进行下一步;
八、为预备队列加锁并取出数据,再为预备队列解锁;
九、聚合当前线程数据和预备队列的数据;
十、做异或校验后写入新数据和校验数据,然后进行步骤六;
十一、获取当前活跃线程的ID;
十二、判断预备队列是否加锁,若是,则重新判断,若否,进行下一步;
十三、将线程的数据写入预备队列,然后完成。
作为优选,步骤一中,采用一个CPU核心绑定一个线程的方式来减少线程切换的上下文开销。
作为优选,步骤二中,在用户I/O请求到达之后,将用户I/O分配给线程,每一个线程只处理一个I/O请求,并分别获得I/O请求指向的块号、偏移量、读写标识。
作为优选,步骤三中,条带的数据结构中设置变量state,它表示当前条带所处的状态,其中Free表示空闲,说明在该条带上没有产生线程冲突,即线程时第一次访问该条带,Active表示活跃,说明产生了线程冲突,有两个以上的线程需要访问这个条带,即有线程正在该条带上处理I/O请求;
当state=Free时,对应线程则将state设置为Active,表明已经有一个线程占用了这个条带,后续线程再访问这个条带时,会获得这个信息;随后开始执行写入的操作。
作为优选,步骤五中,预读操作为:在执行写入请求之前需要从SSD中读出旧数据和旧校验块,与新写入的数据进行校验计算。
作为优选,步骤八中,为了保证数据一致性,无论是对预备队列进行读还是写,都需要对队列加锁,如果队列被上锁说明有其他线程正在访问线程,需要等待后再对队列进行操作,即判断queue_lock的状态,若为True,表明队列已经上锁,需要等待其他线程处理结束;若为False,说明没有线程访问队列,可以对队列进行读写;为队列上锁之后,再取出队列中的数据并清空队列,当读取结束后,为队列解锁。
作为优选,步骤九中,将队列数据与线程数据相结合,通过偏移量及写入设备号的对比进行数据去重;遍历所有数据的写入设备号,若有设备号相同,说明有数据在短时间内重复写入数据,造成了数据覆盖,那么需要将时间点在前的数据去除掉,这样可减少多次重复的写入操作。
作为优选,步骤十中,将数据聚合后,如果是全条带写的话直接对新数据进行校验计算得出新的校验数据,随后将所有数据写入条带;如果是部分条带写将新数据和旧数据进行异或校验后写入条带;此时就完成了对应线程的一次持续写操作。
作为优选,步骤十一中,当对应线程中state=Active时,后续达到的另一个线程不执行写入I/O请求,它需要获取发生冲突的线程id。
作为优选,所述另一个线程得到对应线程的线程id后,根据线程id,将携带的I/O请求数据放入对应线程的预备队列中;在写入队列之前需要判断预备队列是否上锁,即判断queue_lock的状态,若为True,则说明有线程正在访问队列,需等待;若为False,则可以向条带中写入数据,在上锁之后,将所述另一个线程中的数据写入对应线程的预备队列,写入完成后解锁,随后就可以释放所述另一个线程。
本发明具有如下有益效果:
(1)更优秀的系统吞吐量和用户响应时间:当前的SATASSD的吞吐量在500MB/S左右,而原始的LinuxMD,以5块盘的RAID-5为例,在多线程的环境下,64k顺序写的情况下最多只能达到400MB/s,而多线程的SSD RAID-5持续写入方案能够为RAID系统提供更高的写吞吐量,达到820MB/S。不仅解放了用户访问请求的压力,也提升响应用户访问请求的速度。
(2)更少的额外读写操作:RAID系统在写操作时最消耗时间,因为写操作会引起校验块的更新操作,尤其是小写操作更影响系统的性能。多线程的SSD RAID-5持续写入方案,通过写入预备队列将小写I/O请求临时聚集,减少多次的小写操作,从而转变成一次全条带写操作,减少了部分重复的读写校验块的操作。
(3)更低的闪存芯片磨损:SSD与HDD更新数据的最大区别在于,SSD采用异地更新的策略,只有空白页才能写入数据。脏数据页只有通过SSD的垃圾回收才能变成空白页,过多的小写更新会产生大量的脏数据页,这就会导致SSD进行更多的垃圾回收,对SSD芯片造成磨损。对小写数据的聚集有利于减少闪存芯片磨损。
附图说明
图1为实施例中一种基于多线程的SSDRAID-5持续写入方法的流程图;
图2为实施例中一种基于多线程的SSDRAID-5持续写入方法的结构架构图。
具体实施方式
为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。
实施例
如图1所示,本实施例提供了一种基于多线程的SSDRAID-5持续写入方法,其包括以下步骤:
一、初始化线程池和预备队列;
二、将I/O请求分配给线程;
三、判断线程访问的条带是否活跃,若否,则进行下一步;若是,则进行步骤十一;
四、将该条带标记为活跃;
五、执行预读请求;
六、判断当前线程的预备队列是否有数据且数据是第一次写入;若是,则进行下一步,若否,则完成;
七、判断预备队列是否加锁,若是,则重新判断,若否,进行下一步;
八、为预备队列加锁并取出数据,再为预备队列解锁;
九、聚合当前线程数据和预备队列的数据;
十、做异或校验后写入新数据和校验数据,然后进行步骤六;
十一、获取当前活跃线程的ID;
十二、判断预备队列是否加锁,若是,则重新判断,若否,进行下一步;
十三、将线程的数据写入预备队列,然后完成。
具体步骤为:
(1)初始化线程池结构和预备队列,本实施例采用一个CPU核心绑定一个线程的方式来减少线程切换的上下文开销,所以对于多核服务器线CPU核心越多,开辟的线程越多,效果越好。由于本实施例致力于解决I/O密集型任务:如文件读写,网络访问。所以,线程池中的线程数目设为2*Ncp能达到最好的效果,当同时运行32个线程时,线程池中会预开辟64个线程,减少线程创建和销毁的时间。同时,为每个线程创建相应的预备队列空间,每个队列能容纳50个元素。
(2)在用户I/O请求到达之后,将用户I/O分配给线程,每一个线程只处理一个I/O请求,并分别获得I/O请求指向的块号、偏移量、读写标识,这主要为数据聚合模块提供有效信息。
(3)条带的数据结构中设置变量state,它表示当前条带所处的状态,其中Free表示空闲,说明在该条带上没有产生线程冲突,即线程时第一次访问该条带,Active表示活跃,说明产生了线程冲突,有两个以上的线程需要访问这个条带,即有线程正在该条带上处理I/O请求。
(4)当state=Free时,线程1(对应线程)则将state设置为Active,表明已经有一个线程占用了这个条带,后续线程再访问这个条带时,会获得这个信息;随后开始执行写入的操作。
(5)在执行写入请求之前需要从SSD中读出旧数据和旧校验块,与新写入的数据进行校验计算,这一步的操作为预读操作。
(6)因为线程1是第一次访问该条带,所以继续执行写请求步骤。
(7)在I/O请求写入之前,需要将预备队列中的数据取出来与当前数据进行数据聚合。为了保证数据一致性,无论是对预备队列进行读还是写,都需要对队列加锁,如果队列被上锁说明有其他线程正在访问线程,需要等待后再对队列进行操作,即判断queue_lock的状态,若为True,表明队列已经上锁,需要等待其他线程处理结束;若为False,说明没有线程访问队列,可以对队列进行读写;为队列上锁之后,再取出队列中的数据并清空队列,当读取结束后,为队列解锁。
(8)将队列数据与线程数据相结合,通过偏移量及写入设备号的对比进行数据去重;遍历所有数据的写入设备号,若有设备号相同,说明有数据在短时间内重复写入数据,造成了数据覆盖,那么需要将时间点在前的数据去除掉,这样可减少多次重复的写入操作。这也是提高系统性能的重要步骤之一。
(9)将数据聚合后,如果是全条带写的话直接对新数据进行校验计算得出新的校验数据,随后将所有数据写入条带;如果是部分条带写将新数据和旧数据进行异或校验后写入条带;此时就完成了线程1(对应线程)的一次持续写操作。
(10)当完成一次写操作后,需要检查预备队列,因为线程是并行运行的,很有可能在线程1写入时,其他线程仍向线程1的预备队列中写数据。如果预备队列中又存入了新的数据,则重复(7)(8)(9)的步骤,直到预备队列为空,才释放线程,这是持续写入方案的本质。
(11)当线程1(对应线程)中state=Active时,说明线程2为后续达到的线程,在此之前已经有线程1在访问条带了,线程发生了冲突。此时线程2不执行写入I/O请求。它需要获取发生冲突的线程id。
(12)线程2得到线程1的线程id后,根据线程id,将携带的I/O请求数据放入对应线程的预备队列中;在写入队列之前需要判断预备队列是否上锁,即判断queue_lock的状态,若为True,则说明有线程正在访问队列,需等待;若为False,则可以向条带中写入数据,在上锁之后,将线程2中的数据写入线程1的预备队列,写入完成后解锁,随后就可以释放线程2。其中线程1读取的队列数据就是线程2写入的数据。为了增加线程的并行性,该步骤可以和(5)(8)(9)步骤同时进行。
本实施例公开了一种基于多线程的SSD RAID-5持续写入方案,用于优化RAID系统的写入效率。在LinuxMD中通过多个线程处理多个I/O请求,当线程过多的时候会产生锁开销和上下文切换开销,首先通过一个线程处理一个I/O请求的方式,使RAID系统能最大化的并行处理数据,并减少线程切换和锁开销。然而,更重要的是为线程1创建写预备队列,能够减少线程写入冲突,减少线程处理的排队时间,优化RAID系统的吞吐率和延迟。同时,线程2将I/O请求数据写入线程1的预备队列中时,可以有效的聚合小写数据,将线程1的部分条带写转换成全条带写,减少奇偶校验块的更新次数。这样可以有效的降低SSD闪存芯片的磨损。
值得注意的是,在本实施例的应用下,可以最大限度的保持多线程的并行运行。通常方案采用的都是两阶段写入方案,当其他线程和线程1产生冲突时,会进行线程排队,只有当前一个线程处理完请求后,后一个线程才能继续处理I/O。这违背了多线程的使用初衷,生成5个线程,但只有1个线程在实时运行,多线程的并行性并没有体现,同时多个线程产生冲突时,最后一个线程的排队时间会十分的长,产生很高的尾部延迟,影响RAID系统的响应时间。采用基于多线程的SSD RAID-5持续写入方案后,当其他线程与线程1产生冲突时,并没有等待线程1执行请求,而是将I/O请求的数据放入线程1的预备队列中,完成后,该线程可以去执行其他I/O请求,始终可以保持多线程的并行。
对于本实验发明所应用的硬件环境来说,任何服务器上都可以搭载运行,并且服务器CPU核心数数量越多,所实验出的效果越好。
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
Claims (10)
1.一种基于多线程的SSDRAID-5持续写入方法,其特征在于:包括以下步骤:
一、初始化线程池和预备队列;
二、将I/O请求分配给线程;
三、判断线程访问的条带是否活跃,若否,则进行下一步;若是,则进行步骤十一;
四、将该条带标记为活跃;
五、执行预读请求;
六、判断当前线程的预备队列是否有数据且数据是第一次写入;若是,则进行下一步,若否,则完成;
七、判断预备队列是否加锁,若是,则重新判断,若否,进行下一步;
八、为预备队列加锁并取出数据,再为预备队列解锁;
九、聚合当前线程数据和预备队列的数据;
十、做异或校验后写入新数据和校验数据,然后进行步骤六;
十一、获取当前活跃线程的ID;
十二、判断预备队列是否加锁,若是,则重新判断,若否,进行下一步;
十三、将线程的数据写入预备队列,然后完成。
2.根据权利要求1所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤一中,采用一个CPU核心绑定一个线程的方式来减少线程切换的上下文开销。
3.根据权利要求2所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤二中,在用户I/O请求到达之后,将用户I/O分配给线程,每一个线程只处理一个I/O请求,并分别获得I/O请求指向的块号、偏移量、读写标识。
4.根据权利要求3所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤三中,条带的数据结构中设置变量state,它表示当前条带所处的状态,其中Free表示空闲,说明在该条带上没有产生线程冲突,即线程时第一次访问该条带,Active表示活跃,说明产生了线程冲突,有两个以上的线程需要访问这个条带,即有线程正在该条带上处理I/O请求;
当state=Free时,对应线程则将state设置为Active,表明已经有一个线程占用了这个条带,后续线程再访问这个条带时,会获得这个信息;随后开始执行写入的操作。
5.根据权利要求4所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤五中,预读操作为:在执行写入请求之前需要从SSD中读出旧数据和旧校验块,与新写入的数据进行校验计算。
6.根据权利要求5所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤八中,为了保证数据一致性,无论是对预备队列进行读还是写,都需要对队列加锁,如果队列被上锁说明有其他线程正在访问线程,需要等待后再对队列进行操作,即判断queue_lock的状态,若为True,表明队列已经上锁,需要等待其他线程处理结束;若为False,说明没有线程访问队列,可以对队列进行读写;为队列上锁之后,再取出队列中的数据并清空队列,当读取结束后,为队列解锁。
7.根据权利要求6所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤九中,将队列数据与线程数据相结合,通过偏移量及写入设备号的对比进行数据去重;遍历所有数据的写入设备号,若有设备号相同,说明有数据在短时间内重复写入数据,造成了数据覆盖,那么需要将时间点在前的数据去除掉,这样可减少多次重复的写入操作。
8.根据权利要求7所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤十中,将数据聚合后,如果是全条带写的话直接对新数据进行校验计算得出新的校验数据,随后将所有数据写入条带;如果是部分条带写将新数据和旧数据进行异或校验后写入条带;此时就完成了对应线程的一次持续写操作。
9.根据权利要求8所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:步骤十一中,当对应线程中state=Active时,后续达到的另一个线程不执行写入I/O请求,它需要获取发生冲突的线程id。
10.根据权利要求9所述的一种基于多线程的SSDRAID-5持续写入方法,其特征在于:所述另一个线程得到对应线程的线程id后,根据线程id,将携带的I/O请求数据放入对应线程的预备队列中;在写入队列之前需要判断预备队列是否上锁,即判断queue_lock的状态,若为True,则说明有线程正在访问队列,需等待;若为False,则可以向条带中写入数据,在上锁之后,将所述另一个线程中的数据写入对应线程的预备队列,写入完成后解锁,随后就可以释放所述另一个线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310699101.1A CN116820333B (zh) | 2023-06-12 | 2023-06-12 | 一种基于多线程的ssdraid-5持续写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310699101.1A CN116820333B (zh) | 2023-06-12 | 2023-06-12 | 一种基于多线程的ssdraid-5持续写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116820333A true CN116820333A (zh) | 2023-09-29 |
CN116820333B CN116820333B (zh) | 2024-02-23 |
Family
ID=88115996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310699101.1A Active CN116820333B (zh) | 2023-06-12 | 2023-06-12 | 一种基于多线程的ssdraid-5持续写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116820333B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685408A (zh) * | 2008-09-24 | 2010-03-31 | 国际商业机器公司 | 多个线程并行访问共享数据结构的方法及装置 |
CN101727299A (zh) * | 2010-02-08 | 2010-06-09 | 北京同有飞骥科技有限公司 | 连续数据存储中面向raid5的写操作优化设计方法 |
US20100333096A1 (en) * | 2009-06-26 | 2010-12-30 | David Dice | Transactional Locking with Read-Write Locks in Transactional Memory Systems |
US20130290967A1 (en) * | 2012-04-27 | 2013-10-31 | Irina Calciu | System and Method for Implementing NUMA-Aware Reader-Writer Locks |
CN104636206A (zh) * | 2015-02-05 | 2015-05-20 | 北京创毅视讯科技有限公司 | 一种系统性能的优化方法和装置 |
CN105635208A (zh) * | 2014-10-30 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种业务处理方法和装置 |
US20180060274A1 (en) * | 2016-04-05 | 2018-03-01 | E8 Storage Systems Ltd. | Write Cache and Write-Hole Recovery in Distributed Raid Over Shared Multi-Queue Storage Devices |
US20200004460A1 (en) * | 2018-06-29 | 2020-01-02 | Microsoft Technology Licensing, Llc | Techniques for safely and efficiently enqueueing and dequeueing data on a graphics processor |
CN111737212A (zh) * | 2020-06-19 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统提升性能的方法和设备 |
CN113504874A (zh) * | 2021-06-24 | 2021-10-15 | 中国科学院计算技术研究所 | 基于负载感知的自适应粒度纠删码编解码加速方法及系统 |
CN114780025A (zh) * | 2022-03-29 | 2022-07-22 | 华中科技大学 | 软件raid请求处理方法、控制器及raid存储系统 |
-
2023
- 2023-06-12 CN CN202310699101.1A patent/CN116820333B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685408A (zh) * | 2008-09-24 | 2010-03-31 | 国际商业机器公司 | 多个线程并行访问共享数据结构的方法及装置 |
US20100333096A1 (en) * | 2009-06-26 | 2010-12-30 | David Dice | Transactional Locking with Read-Write Locks in Transactional Memory Systems |
CN101727299A (zh) * | 2010-02-08 | 2010-06-09 | 北京同有飞骥科技有限公司 | 连续数据存储中面向raid5的写操作优化设计方法 |
US20130290967A1 (en) * | 2012-04-27 | 2013-10-31 | Irina Calciu | System and Method for Implementing NUMA-Aware Reader-Writer Locks |
CN105635208A (zh) * | 2014-10-30 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种业务处理方法和装置 |
CN104636206A (zh) * | 2015-02-05 | 2015-05-20 | 北京创毅视讯科技有限公司 | 一种系统性能的优化方法和装置 |
US20180060274A1 (en) * | 2016-04-05 | 2018-03-01 | E8 Storage Systems Ltd. | Write Cache and Write-Hole Recovery in Distributed Raid Over Shared Multi-Queue Storage Devices |
US20200004460A1 (en) * | 2018-06-29 | 2020-01-02 | Microsoft Technology Licensing, Llc | Techniques for safely and efficiently enqueueing and dequeueing data on a graphics processor |
CN111737212A (zh) * | 2020-06-19 | 2020-10-02 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统提升性能的方法和设备 |
CN113504874A (zh) * | 2021-06-24 | 2021-10-15 | 中国科学院计算技术研究所 | 基于负载感知的自适应粒度纠删码编解码加速方法及系统 |
CN114780025A (zh) * | 2022-03-29 | 2022-07-22 | 华中科技大学 | 软件raid请求处理方法、控制器及raid存储系统 |
Non-Patent Citations (2)
Title |
---|
TOMMASO COLOMBO等: "Multi-threaded evolution of the data-logging system of the ATLAS experiment at CERN", 《PUBLISHED IN: 2011 IEEE NUCLEAR SCIENCE SYMPOSIUM CONFERENCE RECORD》 * |
孙志卓等: "连续数据存储中面向RAID5的写操作优化设计", 《计算机研究与发展》, pages 1604 - 1612 * |
Also Published As
Publication number | Publication date |
---|---|
CN116820333B (zh) | 2024-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106991011B (zh) | 基于cpu多线程与gpu多粒度并行及协同优化的方法 | |
US7233335B2 (en) | System and method for reserving and managing memory spaces in a memory resource | |
US8316370B2 (en) | Method and apparatus for accessing a shared data structure in parallel by multiple threads | |
CN1961300A (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
US11474712B2 (en) | Method, apparatus, device and storage medium for managing access request | |
KR20130018742A (ko) | 가비지 콜렉션을 위한 gpu 서포트 | |
US10019283B2 (en) | Predicting a context portion to move between a context buffer and registers based on context portions previously used by at least one other thread | |
CN113590508B (zh) | 动态可重构的内存地址映射方法及装置 | |
CN113778338A (zh) | 分布式存储数据读取效率优化方法、系统、设备和介质 | |
CN114063922A (zh) | 一种主从库流复制加速方法及装置、设备及介质 | |
CN108733585B (zh) | 缓存系统及相关方法 | |
CN114780025A (zh) | 软件raid请求处理方法、控制器及raid存储系统 | |
CN102810133A (zh) | 网络游戏中的射线查询方法和场景服务器 | |
CN107220069B (zh) | 一种针对非易失性内存的Shuffle方法 | |
CN114116665A (zh) | 数据库中并行写入事务日志以提升处理效率的方法 | |
CN116820333B (zh) | 一种基于多线程的ssdraid-5持续写入方法 | |
CN117215491A (zh) | 一种快速数据访问方法、快速数据访问装置及光模块 | |
US20230161476A1 (en) | Data read method, data write method, device, and system | |
CN108052296B (zh) | 一种数据读取方法、设备及计算机存储介质 | |
CN112433672B (zh) | 一种固态硬盘读方法和装置 | |
US8452920B1 (en) | System and method for controlling a dynamic random access memory | |
CN113867801A (zh) | 指令缓存、指令缓存组及其请求合并方法 | |
CN113688099A (zh) | 基于spdk的数据库存储引擎加速方法及系统 | |
CN113467937A (zh) | 一种多核间免锁的内存分配方法、装置和电子设备 | |
CN108897618B (zh) | 一种异构内存架构下基于任务感知的资源分配方法 |
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 |