CN116820333A - 一种基于多线程的ssdraid-5持续写入方法 - Google Patents

一种基于多线程的ssdraid-5持续写入方法 Download PDF

Info

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
Application number
CN202310699101.1A
Other languages
English (en)
Other versions
CN116820333B (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.)
Qinghai Normal University
Original Assignee
Qinghai Normal University
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 Qinghai Normal University filed Critical Qinghai Normal University
Priority to CN202310699101.1A priority Critical patent/CN116820333B/zh
Publication of CN116820333A publication Critical patent/CN116820333A/zh
Application granted granted Critical
Publication of CN116820333B publication Critical patent/CN116820333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明涉及大数据存储技术领域,涉及一种基于多线程的SSDRAID‑5持续写入方法,包括:一、初始化;二、将I/O请求分配给线程;三、判断条带是否活跃,若否,则进行下一步;若是,则进行步骤十一;四、将该条带标记为活跃;五、执行预读请求;六、判断当前线程的预备队列是否有数据且数据是第一次写入;七、判断预备队列是否加锁;八、为预备队列加锁并取出数据,再为预备队列解锁;九、聚合当前线程数据和预备队列的数据;十、做异或校验后写入新数据和校验数据,然后进行步骤六;十一、获取当前活跃线程的ID;十二、判断预备队列是否加锁;十三、将线程的数据写入预备队列。本发明能较佳地持续写入。

Description

一种基于多线程的SSDRAID-5持续写入方法
技术领域
本发明涉及大数据存储技术领域,具体地说,涉及一种基于多线程的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,则可以向条带中写入数据,在上锁之后,将所述另一个线程中的数据写入对应线程的预备队列,写入完成后解锁,随后就可以释放所述另一个线程。
CN202310699101.1A 2023-06-12 2023-06-12 一种基于多线程的ssdraid-5持续写入方法 Active CN116820333B (zh)

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)

* Cited by examiner, † Cited by third party
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存储系统

Patent Citations (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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