CN101315595A - 一种数据读取方法及装置 - Google Patents
一种数据读取方法及装置 Download PDFInfo
- Publication number
- CN101315595A CN101315595A CNA2008101252752A CN200810125275A CN101315595A CN 101315595 A CN101315595 A CN 101315595A CN A2008101252752 A CNA2008101252752 A CN A2008101252752A CN 200810125275 A CN200810125275 A CN 200810125275A CN 101315595 A CN101315595 A CN 101315595A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- buffer
- buffer zone
- reading
- 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
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据读取方法和相应的装置,包括:根据预读策略获取预读数据的大小和地址,在根据预读策略确定需要进行预读时,根据所述预读数据的大小和地址读取光存储介质中的数据并放入缓冲区。本发明实施例中将光存储设备中的数据预先读取出来放入缓冲区,当用户需要时可以直接从内存中读取,大大提高了读取速度。
Description
技术领域
本发明涉及数据读取技术领域,具体涉及一种数据读取方法及装置。
背景技术
在虚拟媒体技术中,在服务器上通过嵌入式系统模拟通用串行总线(USB,Universal Serial Bus)光驱和软驱,嵌入式系统网络来访问本地客户端的光驱,使得本地客户端光驱直接与服务器进行共享。
现有的致密光盘只读存储器(CDROM,Compact Disk Read Only Memory预读技术主要有两种,一是采用硬件方案,即在硬件中保持2MB左右的硬件缓冲区,用户读取数据时会将后面2MB的数据读入缓冲区。下次调用时,如果用户所需数据已在硬件缓冲区中,则不用读取光驱,直接读取缓冲区数据。二是将光盘数据直接读取到硬盘中,用户通过访问硬盘来读取数据。
在对现有技术的研究和实践过程中,本发明的发明人发现,第一种方案由于CDROM中预读缓冲区为硬件实现,通常缓冲区都比较小,无法进行扩展。在第二种方案中,对CPU占用率高,在无规律的频繁访问可能导致性能非常低下。
发明内容
本发明实施例提供数据读取一种数据读取方法及装置。
一种数据读取方法,包括:
根据预读策略获取预读数据的大小和地址,在根据预读策略确定需要进行预读时,根据所述预读数据的大小和地址读取光存储介质中的数据并放入缓冲区;
当判断用户所需数据已在缓冲区时,从缓冲区中读取用户所需数据。
一种数据读取缓冲区管理装置,包括:
接收单元,用于接收预读策略并转发到读取单元;
读取单元,用于在根据预读策略确定需要进行预读时,根据预读策略读取光存储介质中的数据,并转发到缓冲区控制单元;
缓冲区控制单元,用于将接收到的数据存储到缓冲区,判断用户所需数据已在缓冲区时,将用户所需数据发送到发送单元;
发送单元,用于发送接收到的用户所需数据。
本发明实施例中根据预读策略事先确定是否需要进行预读,在确定需要预读时才进行后续的预读操作,可有效避免CPU被无规律的访问,从而防止CPU的占用率较高而导致性能下降的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一种数据读取方法的一个实施例流程图;
图2是本发明一种数据读取方法的一个实施例中预读策略的流程图;
图3是本发明一种数据读取装置一个实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,是本发明数据读取方法的一个实施例的流程图,实现数据读取具体流程包括:
步骤101:缓冲区管理模块根据预读策略获取预读数据的地址和大小。
步骤102:在根据预读策略确定需要进行预读时,执行预读,缓冲区管理模块根据所述预读数据的大小和地址读取CDROM中的数据,将读取到的数据存入缓冲区。
本实施例以光盘为例进行介绍,其他的光存储数据的读取也可采用本方法进行读取。
在步骤102中,缓冲区管理模块将缓冲区分成若干个缓冲行,如果读取的数据大小超过一个缓冲行大小,则将所述数据分成多个缓冲行大小的数据存储到多个缓冲行中,当缓冲区中没有空闲的缓冲行时,将所述数据存储到使用过的缓冲行以覆盖所述缓冲行中原有的数据。
存入缓冲区中的数据地址会进行映射转换成缓冲区标识符(ID,Identity),以便用户读取时能更快的找到所需数据。
步骤103:当用户进行读操作时,缓冲区管理模块根据用户读操作中所需的数据在缓冲区中寻找数据。
当用户进行读操作时,缓冲区管理模块会将所述读操作分解成缓冲行大小的读操作,并计算读操作地址的缓冲行ID,根据所述缓冲区ID分别查找缓冲区行是否存在,若存在则表示用户所需数据已在缓冲区。
步骤104:当缓冲区管理模块查找到用户所需数据时,直接拷贝给用户。
步骤105:当缓冲区管理模块没有查找到用户所需数据时,发出缓存丢失Cache Miss事件,并再次读取。
步骤105中,如果再次读取找到数据则直接拷贝给用户,否则进行步骤106。依据设置,当缓冲区管理模块没有查找到用户所需数据时也可直接进行步骤106;也可依据设置多次的再次读取以提高命中率。
步骤106:当再次查找没有找到用户所需数据时,直接读取CDROM以获取读取数据。
预读策略的好坏直接决定用户读操作在缓冲区中的查找的命中率,用户的读取操作参数会作为一项重要的输入条件加入预读策略中,同时缓冲区管理模块会根据当前预读地址和大小、缓冲区命中情况对预读策略进行微调,确保用户读取数据时最大的缓冲区命中率。图2为本发明一种数据读取方法的一个实施例中预读策略的流程图,其通过预先判断读取的数据大小决定是否做预读动作,若读取的数据过小,则不做预读,可有效防止不必要的预读操作,防止CPU被频繁访问而导致占用率高,效率低下的问题。
本发明实施例中根据预读策略事先确定是否需要进行预读,在确定需要预读时才进行后续的预读操作,可有效避免CPU被无规律的访问,从而防止CPU的占用率较高而导致性能下降的问题。另外本发明实施例中将光存储设备中的数据预先读取出来放入缓冲区,当用户需要时可以直接从内存中读取,大大提高了读取速度;并且无需修改用户操作接口,只要进行简单的初始化参数配置就可以完成,便于实现。
请参阅图3,是本发明数据读取装置一个实施例的结构图,具体包括:
接收单元301,接收预读策略并转发到读取单元302;
读取单元302,在根据预读策略确定需要进行预读时,根据接收的预读策略中的预读数据的大小和地址读取光存储介质中的数据,并转发到缓冲区控制单元303;
缓冲区控制单元303,将接收到的数据存储到缓冲区,判断用户所需数据已在缓冲区时,将用户所需数据发送到发送单元304;
所述缓冲区控制单元303进一步可以包括:
转换单元3031,用于将所述数据地址转换为缓冲区ID;
分解单元3032,用于将用户所需数据分解成大小为缓冲行大小的数据;
查找单元3033,用于计算用户所需数据的地址的缓冲区ID,根据所述缓冲区ID分别查找缓冲区行是否存在,若存在则表示用户所需数据已在缓冲区。
缓冲区控制单元303将缓冲区分成若干个缓冲行,如果收到的数据大小超过缓冲行大小,则将所述数据分成多个缓冲行大小的数据存储到多个缓冲行中,当缓冲区中没有空闲的缓冲行时,将所述数据存储到使用过的缓冲行以覆盖所述缓冲行中原有的数据。
存入缓冲区中的数据地址会进行映射转换成缓冲区ID,以便用户读取时能更快的找到所需数据。
发送单元304,发送接收到的用户所需数据。
预读策略会根据读取的成功率做细微的调节,接收单元301实时的接收预读策略发送到读取单元302,读取单元302会根据收到的预读策略中包含的数据的地址和大小在光存储介质中需找相应的数据,并将读取的数据转发到缓冲区控制单元303,缓冲区控制单元303接到读取单元302发送的数据后会存入缓冲区中各个缓冲行中,并将存入缓冲区中的数据地址进行映射转换成缓冲区ID。当用户读取数据时,缓冲区控制单元303将用户读操作分解成缓冲行大小的读操作,并计算读操作地址的缓冲行ID,根据所述缓冲区ID分别查找缓冲区行是否存在,若存在则表示用户所需数据已在缓冲区。
本发明实施例中根据预读策略事先确定是否需要进行预读,在确定需要预读时才进行后续的预读操作,可有效避免CPU被无规律的访问,从而防止CPU的占用率较高而导致性能下降的问题。另外本发明实施例中将光存储设备中的数据预先读取出来放入缓冲区,当用户需要时可以直接从缓冲区中读取,大大提高了读取速度。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的数据读取方法以及数据读取缓冲区管理装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1、一种数据读取方法,其特征在于,包括:
根据预读策略获取预读数据的大小和地址,在根据预读策略确定需要进行预读时,根据所述预读数据的大小和地址读取光存储介质中的数据并放入缓冲区;
当判断用户所需数据已在缓冲区时,从缓冲区中读取用户所需数据。
2、根据权利要求1所述的数据读取方法,其特征在于,将数据放入缓冲区时还包括:
当缓冲区中没有空闲缓冲行时,将所述数据存储到使用过的缓冲行以覆盖所述缓冲行中原有的数据。
3、根据权利要求1所述的数据读取方法,其特征在于,将数据放入缓冲区时还包括:
当数据大于一个缓冲行大小时,将数据分开存储在多个缓冲行。
4、根据权利要求1所述的数据读取方法,其特征在于,将数据放入缓冲区后还包括:
将所述数据地址转换为缓冲区标识符ID。
5、根据权利要求4所述的数据读取方法,其特征在于,判断用户所需数据已在缓冲区为:
将用户的读操作分解成若干读取数据大小为缓冲行大小的读操作;
计算每一读操作的地址的缓冲区ID,根据所述缓冲区ID分别查找缓冲区行是否存在,若存在则表示用户所需数据已在缓冲区。
6、根据权利要求1所述的数据读取方法,其特征在于,根据预读策略将数据放入缓冲区后还包括:
当用户所需数据不在缓冲区时,再次读取缓冲行;
再次读取该缓冲行,未命中缓冲行时,直接读取致密光盘只读存储器CDROM。
7、一种数据读取缓冲区管理装置,其特征在于,包括接收单元、读取单元、缓冲区控制单元和发送单元:
所述接收单元,用于接收预读策略并转发到所属读取单元;
所述读取单元,用于在根据预读策略确定需要进行预读时,根据预读策略读取光存储介质中的数据,并转发到所述缓冲区控制单元;
所述缓冲区控制单元,用于将接收到的数据存储到缓冲区,判断用户所需数据已在缓冲区时,将用户所需数据发送到所述发送单元;
所述发送单元,用于发送接收到的用户所需数据。
8、根据权利要求7所述的数据读取缓冲区管理装置,其特征在于,所述缓冲区控制单元,用于根据预读策略读取光存储介质中的数据为:
当缓冲区中没有空闲缓冲行时,将所述数据存储到使用过的缓冲行以覆盖所述缓冲行中原有的数据。
9、根据权利要求7所述的数据读取缓冲区管理装置,其特征在于,所述缓冲区控制单元还包括:
转换单元,用于将所述数据地址转换为缓冲区ID。
10、根据权利要求7所述的数据读取缓冲区管理装置,其特征在于,所述缓冲区控制单元还包括:
分解单元,用于将用户所需数据分解成大小为缓冲行大小的数据;
查找单元,用于计算用户所需数据的地址的缓冲区ID,根据所述缓冲区ID分别查找缓冲区行是否存在,若存在则表示用户所需数据已在缓冲区。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101252752A CN101315595A (zh) | 2008-06-30 | 2008-06-30 | 一种数据读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101252752A CN101315595A (zh) | 2008-06-30 | 2008-06-30 | 一种数据读取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101315595A true CN101315595A (zh) | 2008-12-03 |
Family
ID=40106618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101252752A Pending CN101315595A (zh) | 2008-06-30 | 2008-06-30 | 一种数据读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101315595A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976182A (zh) * | 2010-11-15 | 2011-02-16 | 记忆科技(深圳)有限公司 | 一种固态硬盘预读取的方法及其装置 |
CN102521349A (zh) * | 2011-12-12 | 2012-06-27 | 深圳市创新科信息技术有限公司 | 一种文件预读方法 |
CN105573667A (zh) * | 2015-12-10 | 2016-05-11 | 华为技术有限公司 | 一种数据读取方法和存储服务器 |
CN107422994A (zh) * | 2017-08-02 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种提高数据读写性能的方法 |
CN107480150A (zh) * | 2016-06-07 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 一种文件加载方法和装置 |
CN108052651A (zh) * | 2017-12-26 | 2018-05-18 | 新华三技术有限公司 | 配置方法、装置、文件预读方法及电子设备 |
-
2008
- 2008-06-30 CN CNA2008101252752A patent/CN101315595A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976182A (zh) * | 2010-11-15 | 2011-02-16 | 记忆科技(深圳)有限公司 | 一种固态硬盘预读取的方法及其装置 |
CN102521349A (zh) * | 2011-12-12 | 2012-06-27 | 深圳市创新科信息技术有限公司 | 一种文件预读方法 |
CN105573667A (zh) * | 2015-12-10 | 2016-05-11 | 华为技术有限公司 | 一种数据读取方法和存储服务器 |
CN107480150A (zh) * | 2016-06-07 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 一种文件加载方法和装置 |
CN107480150B (zh) * | 2016-06-07 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种文件加载方法和装置 |
CN107422994A (zh) * | 2017-08-02 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种提高数据读写性能的方法 |
CN108052651A (zh) * | 2017-12-26 | 2018-05-18 | 新华三技术有限公司 | 配置方法、装置、文件预读方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101510219B (zh) | 文件数据访问方法、装置以及系统 | |
CN103329111B (zh) | 一种基于块存储的数据处理方法、装置及系统 | |
CN105653684B (zh) | 分布式文件系统的预读方法和装置 | |
CN106776759A (zh) | 分布式文件系统的小文件预读方法及系统 | |
CN104794182B (zh) | 一种并行网络文件系统小文件异步预读装置及方法 | |
CN101315595A (zh) | 一种数据读取方法及装置 | |
CN107590278A (zh) | 一种基于ceph的文件预读方法及相关装置 | |
CN104850502A (zh) | 一种数据的访问方法、装置及设备 | |
CN110837479A (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN105393228A (zh) | 读写闪存中数据的方法、装置及用户设备 | |
CN111666044A (zh) | 一种访问叠瓦式磁记录smr硬盘的方法及服务器 | |
CN103441948A (zh) | 一种数据访问方法、网卡及存储系统 | |
WO2021238260A1 (zh) | 一种预读数据缓存方法、装置、设备及存储介质 | |
CN110727403A (zh) | 元数据管理方法及装置 | |
US7249219B1 (en) | Method and apparatus to improve buffer cache hit rate | |
CN112799595A (zh) | 数据处理方法、设备及存储介质 | |
CN107506154A (zh) | 一种元数据的读取方法、装置及计算机可读存储介质 | |
WO2014153931A1 (zh) | 文件存储方法、装置、访问客户端及元数据服务器系统 | |
US8489686B2 (en) | Method and apparatus allowing scan of data storage device from remote server | |
CN111290974B (zh) | 用于存储设备的缓存淘汰方法与存储设备 | |
CN111290975B (zh) | 使用统一缓存处理读命令与预读命令的方法及其存储设备 | |
CN107180118A (zh) | 一种文件系统缓存数据管理方法及装置 | |
US20100293561A1 (en) | Methods and apparatus for conversion of content | |
CN117806570B (zh) | 在线内存扩展方法、装置、设备及存储介质 | |
CN105893198A (zh) | 一种kvm稳定性的测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081203 |