【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种用于磁盘寻址的方法和装置。
技术介绍
在采用机械硬盘介质存储数据的时候,经常遇到数据读写位置随机的情况,从而导致在读写过程中,大部分的时间浪费在磁盘介质的寻址过程中。尤其在一次请求中,需要寻址的读写I /O接口对应的内存较小,使所请求的数据分布在多个I /O接口对应的内存中,基于读写位置的随机性,这种性能损耗更加严重,导致在磁盘寻址的时间浪费严重。现有技术中,提出了如下两种减小磁盘寻址时间的方法·I)采用高速缓冲寄存器Cache对偏离当前磁头较大的数据进行缓存。再次读写数据的时候,根据Cache中是否存储该数据来判断是否要读写Cache,如果Cache中有,则不需要从磁盘读取,直接在Cache中读取,如果Cache中没有,再从磁盘中读取。该方法不需要全部读写都通过在磁盘中寻址实现,在一定程度上节省了磁盘寻址的时间。2)采用Linux电梯解决方法。在I/O调度过程中,该方法在处理磁盘中的读写I/O接口的消息请求时,选择最优方案将所述消息请求合并排序后进行处理,某些不在最优方案中的消息请求会被暂时挂起,当有一个新的I/o接口的请求加入到消息请求队列时,首先检查磁盘中每个挂起的消息请求是否可以合并到新消息请求队列中,如果可以,结合磁头的当前位置,合并后的新的消息请求队列选择最优顺序进行读写I/o接口的操作。如果合并失败,则会把所述挂起的消息请求插入到合适的位置。该方法可以通过一定的排序完成读写I/o接口的消息请求,在一定程度上节省磁盘寻址的时间。但是在上述解决磁盘寻址的时间浪费的两种方法中,还存在以下问题采用高速缓冲寄 ...
【技术保护点】
一种用于磁盘寻址的方法,其特征在于,该方法包括:接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I/O接口;确定读操作请求消息请求的I/O接口位置的第一范围,所述第一范围为所述第一队列中所述请求的I/O接口的位置距离最远的两个读操作请求消息请求的I/O接口确定的范围;将I/O接口的位置属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/O接口进行第一排序,获得操作请求消息的第二队列;将I/O接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,将所述第三队列的写操作请求消息请求的数据写入缓存中;根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作。
【技术特征摘要】
1.一种用于磁盘寻址的方法,其特征在于,该方法包括 接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I/O接口; 确定读操作请求消息请求的I/O接口位置的第一范围,所述第一范围为所述第一队列中所述请求的I/o接口的位置距离最远的两个读操作请求消息请求的I/O接口确定的范围; 将I/o接口的位置属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/o接口进行第一排序,获得操作请求消息的第二队列; 将I/o接口的位置不属于所述第一范围的写操作请求消息确定为第三队列,将所述第三队列的写操作请求消息请求的数据写入缓存中; 根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作。2.根据权利要求I所述的方法,其特征在于,在获得所述操作请求消息的第二队列后,该方法还包括 确定缓存中的数据对应的I/o接口的位置是否有属于所述第一范围的第一 I/O接口 ;若有所述第一 I/o接口,按照所述第一排序,在所述第二队列中插入对所述第一 I/O接口对应的数据进行写操作的写操作请求消息; 或将属于所述第一范围的写操作请求消息请求的I/O接口与所有读操作请求消息请求的I/o接口进行第一排序,获得操作请求消息的第二队列之前,还包括 确定缓存中的数据对应的I/o接口的位置是否有属于所述第一范围的第一 I/O接口 ;若有所述第一 I/o接口,将对所述第一 I/O接口对应的数据进行写操作的写操作请求消息插入到所述磁盘的第一队列中。3.根据权利要求I或2所述的方法,其特征在于,在将所述第三队列的写操作请求消息请求的数据写入缓存中前,该方法还包括 检查所述缓存中的存储空间是否已满; 若所述缓存中的存储空间已满,确定第二 I/o接口,所述第二 I/O接口为所述第三队列中请求的I/o接口和所述缓存的数据对应的I/O接口中的位置最接近第二队列的I/O接Π ; 若所述缓存中存在所述第二 I/o接口,按照所述第一排序,在所述第二队列中插入对所述第二 I/o接口对应的数据进行写操作的写操作请求消息; 若所述第三队列中存在所述第二 I/o接口,按照所述第一排序,将所述第三队列的第二I/o接口对应的写操作请求消息插入到所述第二队列中。4.根据权利要求1-3任一项所述的方法,其特征在于,所述第一排序为 以当前磁头所在I/o接口的位置为第一上一 I/O接口,将距离上一 I/O接口的位置最近的I/o接口确定为下一 I/O接口,按照I/O接口的排序对应的获取所述操作请求消息的排序。5.根据权利要求4所述的方法,其特征在于,将所述第三队列的写操作请求消息请求的数据写入缓存中前,该方法还包括 检查所述第一队列中是否全为写操作请求消息; 若所述第一队列中全为写操作请求消息,则确定第三I/o接口和第四I/O接口,所述第三I/o接口为与上一 I/O接口的距离小于第一预设范围的I/O接口,所述第四I/O接口为与所述第三I/o接口的任一 I/O接口的距离大于第一预设范围的I/O接口,所述第四I/O接口对应的写操作请求消息确定为第三队列; 根据所述第一排序,将所述第三I/o接口对应的写操作请求消息插入到所述第二队列。6.根据权利要求1-5任一项所述的方法,其特征在于, 接收对所述磁盘进行随机读写的操作请求消息的第一队列后,还包括 统计所述第一队列请求的I/o接口分别对应的磁盘区域的I/O接口的请求频率,判断所述磁盘区域是否为偏僻区域; 根据所述第二队列的操作请求消息,对所述磁盘依次进行所述请求的操作之后,还包括 若所述第一队列的读操作请求消息请求的I/o接口中存在偏僻区域的第五I/O接口,将所述读操作请求消息请求第五I/o接口读取的数据写入到所述缓存中。7.一种用于磁盘寻址的装置,其特征在于,所述装置包括接收单元、确定单元和处理单元; 所述接收单元,用于接收对所述磁盘进行随机读写的操作请求消息的第一队列,所述每个操作请求消息中携带有对所述磁盘进行操作请求时对应的I...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。