[发明专利]一种SSD混合读写的方法、装置、设备及存储介质有效
申请号: | 201910016888.0 | 申请日: | 2019-01-08 |
公开(公告)号: | CN109739443B | 公开(公告)日: | 2022-02-18 |
发明(设计)人: | 苗森 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 ssd 混合 读写 方法 装置 设备 存储 介质 | ||
本申请公开了一种SSD混合读写的方法、装置、设备及存储介质,该方法包括:接收到写请求时,通过锁管理器进行加锁处理;接收到读请求时,向锁管理器申请锁,当申请到锁时进行读操作,当申请不到锁时挂到待处理列表上。本申请采用专门的锁管理器进行读写锁的管理,可以实现IO过程中的读写加解锁,保证混合读写中写的原子性,并保证混合读写时的数据正确性,另外由于使用专门的锁管理器进行管理,能够降低IO延迟。
技术领域
本发明涉及存储技术领域,特别是涉及一种SSD混合读写的方法、装置、设备及存储介质。
背景技术
固态硬盘(Solid State Drives,SSD)作为一种存储设备,其最基本的功能就是完成数据的读写和存储操作,在SSD运行过程中,经常会遇到读写混合并且读写落到同一段逻辑块地址(Logical Block Address,LBA)的情况,在这种情况下,需要进行处理以保证每个读到的数据都是正确的数据。
目前,现有的做法通常是当写的时候,往逻辑物理映射表(L2P table)中写入锁定位(lock bit),然后当读到来时,首先判断此bit是否被lock,被lock时则不去读,不被lock时才能完成正常的读操作。此种方案某次读写都需要有两次对自己核内的L2P的操作,浪费本核处理IO时间。并且在正常的IO过程中,如果不能保证写的原子性,那么一旦有读插入,就会发生读数据错误。
因此,如何实现写的原子性,保证读写时的数据正确性,是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种SSD混合读写的方法、装置、设备及存储介质,可以实现IO过程中的读写加解锁,保证混合读写中写的原子性,并保证混合读写时的数据正确性,还可以降低IO延迟。其具体方案如下:
一种SSD混合读写的方法,包括:
接收到写请求时,通过锁管理器进行加锁处理;
接收到读请求时,向所述锁管理器申请锁,当申请到锁时进行读操作,当申请不到锁时挂到待处理列表上。
优选地,在本发明实施例提供的上述SSD混合读写的方法中,接收到写请求时,通过锁管理器进行加锁处理,具体包括:
接收到写请求时,发送消息给锁管理器;所述消息包含起始的逻辑块地址和所述逻辑块地址的个数;
通过所述锁管理器对所述逻辑块地址的范围进行判断,并对判断后的所述范围对应的逻辑块地址进行加锁处理。
优选地,在本发明实施例提供的上述SSD混合读写的方法中,在执行写请求的过程中,对于同一个逻辑块地址,后一个写请求的完成顺序要晚于前一个写请求的完成。
优选地,在本发明实施例提供的上述SSD混合读写的方法中,接收到读请求时,向所述锁管理器申请锁,当申请到锁时进行读操作,当申请不到锁时挂到待处理列表上,具体包括:
接收到读请求时,向所述锁管理器申请锁;
当申请到锁时,进行正常的读数据操作;
当申请不到锁时,将所述读请求的上下文保存到待处理列表中等待锁释放后触发所述待处理列表的处理。
优选地,在本发明实施例提供的上述SSD混合读写的方法中,还包括:
在写请求完成后,释放锁;
轮询所述待处理列表,判断是否为空;
若否,则顺序取出所述读请求的上下文进行读处理。
本发明实施例还提供了一种SSD混合读写的装置,包括:
写请求模块,用于接收到写请求时,通过锁管理器进行加锁处理;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910016888.0/2.html,转载请声明来源钻瓜专利网。