CN101968791A - 一种数据存储方法及装置 - Google Patents
一种数据存储方法及装置 Download PDFInfo
- Publication number
- CN101968791A CN101968791A CN 201010252868 CN201010252868A CN101968791A CN 101968791 A CN101968791 A CN 101968791A CN 201010252868 CN201010252868 CN 201010252868 CN 201010252868 A CN201010252868 A CN 201010252868A CN 101968791 A CN101968791 A CN 101968791A
- Authority
- CN
- China
- Prior art keywords
- storage block
- shared data
- data
- storage area
- file system
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据共享技术领域,尤其涉及一种数据存储方法及装置,该方法包括:文件***确定用于缓存共享数据的目标存储区域;文件***将接收的共享数据缓存到所述目标存储区域,并标记所述目标存储区域为可用状态,以指示文件***能够根据用户指令在该目标存储区域写入用户数据;在缓存过程中独立于文件***另外记录所缓存的共享数据在所述目标存储区域中的位置信息,以使根据所述位置信息能获取该共享数据。本发明提供数据存储方法及装置,使共享数据在单个网络终端存储时,不会影响用户硬盘存储空间且提高了共享数据在单个网络终端存储的稳定性。
Description
技术领域
本发明涉及网络共享数据技术领域,尤其涉及一种数据存储方法及装置。
背景技术
随着互联网发展,在线视频点播服务已成为互联网中一项广泛应用的服务。为了能够为用户提供更加清晰及流畅的在线视频,在线视频点播业务中普遍使用P2P(Peer-to-Peer,点对点)或P2SP(Peer to Server&Peer,点对服务器和点)技术来提高视频数据传输速度,保证视频内容播放流畅。
P2P就是网络中客户端可以直接连接到网络中其它客户端去获取数据,而不是像P2S(Peer to Server,点对服务器)那样只能连接到服务器去获取数据。即网络中客户端在接收数据的同时,还要向其它客户端上传本地接收的数据。
P2SP实际上是对P2P技术的进一步延伸,它不但支持P2P技术,同时还通过检索服务器数据库把服务器资源和P2P资源整合到了一起。
视频点播服务商多采用P2SP技术,客户端在线视频点播过程中,将接收的视频数据进行缓存,当有其它客户端点播该客户端缓存的视频数据对应的视频内容时,除了可以从服务器获取该视频内容外,还可以从已缓存了该视频内容的一个或多个客户端同时获取该视频内容,因此可大大提高视频数据的传输速度。
可见,提高数据传输速度一个最可行的办法是增加数据来源。P2P技术和P2SP技术基于该原理在客户端缓存其接收的数据,由于这些数据可以被其他客户端共享,本文将客户端缓存的这些数据称为共享数据,网络中客户端互相共享网络中其它客户端缓存的共享数据,从而增加了数据来源。
客户端对接收的共享数据采用的缓存方式具体为:
在客户端确定要在线使用共享数据时,由文件***为要使用的共享数据分配硬盘空间,并将接收的共享数据缓存在所分配的硬盘空间中。
文件***是操作***中负责管理和存储文件信息的软件机构。上述在线视频点播过程中缓存的共享数据并不是操作***根据用户指令进行存储的,本文将操作***根据用户指令存储的数据称为用户数据。
采用该方式时,由于共享数据经文件***按用户数据对待进行存储,在文件***有用户数据写入硬盘时不会再占用这些共享数据占用的硬盘空间。
因此采用该方式的缺点是共享数据的缓存占用了硬盘空间使用户硬盘空间变小,可能会导致用户数据无法正常存储,从而对用户的使用产生影响。
另外,也可以通过增加服务器的方式来提高数据传输速度,但是增加服务器会增加成本,不适于广泛推广。
可见现有通过增加数据源来提供数据传输速率的办法中,会导致增加成本或占用用户硬盘空间,都不是理想的提高数据传输速率的方案。
发明内容
本发明实施例提供一种数据存储方法及装置,用于优化用户在线使用共享数据时的共享存储方法。
本发明提供一种数据存储方法,包括:
文件***确定用于缓存共享数据的目标存储区域;
文件***将接收的共享数据缓存到所述目标存储区域,并标记所述目标存储区域为可用状态,以指示文件***能够根据用户指令在该目标存储区域写入用户数据;
在缓存过程中独立于文件***另外记录所缓存的共享数据在所述目标存储区域中的位置信息,以使根据所述位置信息能获取共享数据。
本发明还提供一种数据存储装置,包括:
目标区域确定单元,用于利用文件***确定用于缓存共享数据的目标存储区域;
缓存单元,用于利用文件***将接收的共享数据缓存到所述目标存储区域;
标记单元,用于利用文件***将缓存有共享数据的目标存储区域标记为可用状态,以指示文件***能够根据用户指令在该目标存储区域写入用户数据;
记录单元,用于缓存过程中独立于文件***,另外记录所缓存的共享数据在所述目标存储区域中的位置信息,以使根据所述位置信息能获取共享数据。
利用本发明提供的数据存储方法及装置,具有以下有益效果:可在数据共享网络中的各终端节点上存放共享数据,而不会因占用终端节点用户存储空间而影响终端节点的性能;提高了共享数据在终端节点存储的稳定性;通过将共享数据存放在各终端节点,增加了共享数据源,因此在不影响用户使用及提供终端节点存储稳定性的情况下,大大提高了用户在线使用共享数据的数据传输速率。
附图说明
图1为本发明数据存储方法流程图;
图2为依照本发明实施例中数据存储方法流程图;
图3为依照本发明实施例将共享数据块缓存到作为目标存储区域的存储块的流程图;
图4依照本发明实施例中示例的数据存储方法流程图;
图5为依照本发明实施例中示例的数据存储方法对应的硬盘使用情况示意图;
图6依照本发明实施例中数据存储装置结构图。
具体实施方式
下面结合附图和实施例对本发明提出的数据存储方法及装置进行更详细地说明。
为了克服现有完全通过文件***为共享数据分配存储空间而占有用户硬盘存储空间,本发明提供一种数据存储方法,在不减少用户硬盘存储空间且不容易被覆盖的情况提高了在线共享数据传输速率,如图1所示,该方法包括:
步骤S101,文件***确定用于缓存共享数据的目标存储区域A;
本发明实施例中缓存共享数据的目标存储区域A由文件***确定。文件***是操作***中负责管理和存储文件信息的软件机构。例如FAT(File Allocation Table)文件***、NTFS(New Technology File System)文件***等。
具体的应用场景可以是用户在线使用共享数据x如用户进行在线视频点播,对于该应用场景,用户点击了某个视频文件的点播按钮时,则说明用户要在线使用共享数据。在线使用共享数据的特点是,用户仅需要读取共享数据,对共享数据的存储不是必要的。用户要在线使用共享数据时,会对用户接收的共享数据进行缓存,具体缓存的数据在存储单元(比如硬盘)中的存储位置是由文件***确定的。
步骤S102,文件***将接收的共享数据x缓存到目标存储区域A,并标记目标存储区域A为可用状态,以指示文件***能够根据用户指令在该目标存储区域A写入用户数据;
这样,文件***根据用户指令确定要向硬盘空间写入用户数据时,从硬盘空间中的标记为可用状态的存储区域中,为要写入的用户数据分配存储空间;并将用户数据写入到为该用户数据所分配的存储空间中。
对于文件***接收共享数据x的应用场景,可以是用户在线使用共享数据x过程接收共享数据x,也可以是预先由服务器部署的。文件***确定了共享数据x的目标存储区域A,并在用户接收共享数据过程中将接收的共享数据x缓存到目标存储区域A。不同的是文件***将缓存了共享数据x的目标存储区域A标记为可用状态。标记为可用状态意味着如果文件***接收用户指令要写入新的用户数据时,该目标存储区域A对于文件***来说是用户存储可用空间,且在有新的用户数据写入目标存储区域A之前,目标存储区域A仍存储的是共享数据x。
注意本发明中标记为可用状态,用于指示文件***可在目标存储区域A写入用户数据,但并不指示能够写入共享数据,所以缓存有共享数据的目标存储区域A对于文件***来说为用户存储可用空间,因此共享数据x的缓存对于文件***是不可见,因此缓存共享数据x的目标存储区域A被文件***视为裸盘。
步骤S103,在缓存过程中,独立于文件***另外记录所缓存的共享数据在目标存储区域A中的位置信息,以使网络中需要使用该共享数据的终端能够根据所述位置信息获取共享数据。
既然共享数据x的缓存对文件***是不可见的,所以本发明要独立于文件***另外记录所缓存的共享数据在目标存储区域A中的位置信息,具体地,如记录A的物理位置索引及A缓存的共享数据文件名等。这样在接收到网络中任一用户包括该用户本身的共享数据请求时,可以根据另外记录的上述位置信息检索到请求的共享数据,从而实现向网络中需要使用该共享数据的终端能够获取该共享数据。
可见,本发明对共享数据的缓存并不是完全独立于文件***盲目存储,其存储位置是由文件***确定,本发明对共享数据的存储也并不是完全由文件***进行管理,文件***在完成确定缓存位置及将共享数据缓存到其确定的缓存位置后,会将这些缓存位置标记为可用状态,相当于释放了共享数据占用的存储空间,而本发明通过独立于文件***另外记录所缓存共享数据的存储位置信息,可以实现向网络中任一用户终端传输共享数据。
因此,本发明在不影响用户体验的前提下,使用闲置的硬盘空间和带宽,可在数据共享网络中的各终端节点上存放共享数据,而不会因占用终端节点用户存储空间而影响终端节点的性能;提高了共享数据在终端节点存储的稳定性;通过将共享数据存放在各终端节点,增加了共享数据源,因此在不影响用户使用及提供终端节点存储稳定性的情况下提高了用户在线使用共享数据的数据传输速率。
依照本发明的较佳实施例中,为了进一步降低共享数据被覆盖的风险,大的共享数据文件应该被分散成“块”,写在硬盘的不同位置。目前文件***最小空间分配单位是“簇”,但对于裸盘应用来说,以“簇”为单位分散数据,读写效率过低,且空间管理代价较大。因此,本发明较佳实施例中,文件***将若干连续的“簇”组合在一起,在逻辑上构成预设容量的存储块,这样裸盘空间分配和管理将以存储块为基本单位,进一步降低共享数据被覆盖风险且方便了裸盘管理。
本实施例中的数据存储方法,如图2所示,包括:
步骤S201,确定用户要接收的的共享数据x的总数据量X1;
如用户在线视频点播时,如果点击了某个视频文件,可与获取到该视频文件的总大小。
步骤S202,文件***获取硬盘空间中未写入数据的存储块;
文件***作为对文件存储和管理的***,能够获取硬盘空间的数据占用请情况,具体地,可用DeviceIOControl函数的FSCTL_GET_VOLUME_BITMAP选项获知磁盘的bitmap的使用情况,以便从硬盘中未被写入任何数据的存储空间作为目标存储区域。
本实施例中对存储空间进行了存储块划分,因此以存储块为单位获取未写入任何数据的存储块。
步骤S203,将未写入数据的存储块中至少一个存储块作为目标存储区域A,目标存储区域A的总容量不小于总数据量X1;
优选地,选取存储块时,选取使用频率比较低即不经常被使用的存储块作为目标存储区域A。这样可以降低共享数据被覆盖的风险。
本实施例中文件***通过建立分块表维护划分得到的存储块使用信息,优选地,根据文件***建立的用于维护划分得到的存储块使用信息的分块表,获取不同存储块对应的使用频率及当前使用情况;根据不同存储块对应的使用频率及当前使用情况,确定硬盘空间中未写入数据的存储块;按使用频率从低到高的顺序选取未写入数据的存储块作为目标存储区域。
上述划分得到每一存储块包括若干个连续的簇,分块表维护的每一存储块使用信息,具体包括:
1)存储块中有任一簇被写入用户数据时,将该存储块的当前使用情况标记为***已用空间;
有此标记的存储,既不能写入用户数据也不能写入共享数据;
2)存储块中每一簇既未被写入用户数据且未被写入共享数据时,将该存储块标记为裸盘可用空间;
有此标记的存储块,既可以写入用户据也可以写入共享数据。
3)存储块中有所有簇被写入共享数据时,将存储块标记为裸盘已用空间;
由于共享数据块是以窗体文件方式移动的,所以如果存储块缓存共享数据时所有簇被写入共享数据。
本实施例从标记为裸盘可用空间的存储块中,按使用频率从低到高的顺序选取存储块作为目标存储区域。
标记为裸盘已用空间的存储块对于文件***来说为可用状态,可以被写入用户数据。从而实现以块为单位标记。对于标记为***已用空间,但有部分簇被写入用户数据部分簇被写入共享数据的存储,可以进一步细化该存储的标记。以实现向该存储块中写入共享数据的位置能够写入用户数据。
步骤S204,将接收的共享数据分成与预设容量相匹配的共享数据块后,分别缓存到作为目标存储区域的存储块中;
这样,实现了一个的共享数据文件被拆分成多个数据块的分块存储,一方面方便裸盘管理,一方面降低共享数据被覆盖的风险。
步骤S205,标记缓存有共享数据的作为目标存储区域A的存储块为可用状态,以指示文件***能够根据用户指令在这存储块写入用户数据;
通过该步骤,作为目标存储区域A的存储块对于文件***来说被视为用户存储可用空间。
文件***将作为目标存储区域A的存储块标记为可用状态,此时如果文件***有新的用户数据写入请求,则此部分存储块可接受新的用户数据写入从而覆盖原数据块,但在有新的用户数据写入之前,此存储块仍存储的是之前写入的共享数据块。
步骤S206,在缓存过程中独立于文件***,另外记录所缓存的共享数据在作为目标存储区域A的存储块中位置信息,以使网络中需要使用该共享数据的终端能够获取共享数据。
本发明实施例中在缓存过程中记录所缓存的共享数据在所述目标存储区域中位置信息,具体包括:获取缓存有共享数据的存储块对应的位置信息,位置信息包括:该存储块所缓存的共享数据文件名和该存储块的物理位置索引;将获取的不同存储块对应的位置信息保存到能够***作***查找到的文件中。
优选地,如图3所示,步骤S204具体包括以下步骤:
步骤S2041,文件***创建至少一个窗体文件,并按设定规则为每一窗体文件分配预设容量的存储区域,窗体文件总大小与总数据量X1相匹配;
在需要向存储空间写入共享数据x时,文件***创建窗体文件并为每一个创建的窗体文件分配预设容量的存储空间,这样窗体文件大小与存储块大小相等,总的窗体文件大小与总数据量X1相匹配,因此可以先将共享数据文件放在窗体文件中。
具体地,可以利用Windows操作***提供的创建窗体文件函数CreateFile创建窗体文件。
步骤S2042,通过将接收的共享数据写入到创建的窗体文件中,将接收的共享数据分成与预设容量相匹配的共享数据块;
步骤S2043,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
利用创建窗体文件函数CreateFile创建窗体文件时,窗体文件的位置是由确定算法按设定规则决定的,而不是任意指定的,因此文件***创建的窗体文件几乎不会刚好与存储块的位置重合,所以要经过一次移动的过程使共享数据块存储于存储块中,将共享数据块移动到预先指定的存储块,这样将便于对存储块进行管理。
具体地,可以利用操作***提供的移动窗体文件函数NtFsControlFile,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
Windows提供的移动窗体文件函数NtFsControlFile可将数据块从磁盘中的一个存储位置移至另一个存储位置,Windows中的磁盘整理程序即是通过该函数实现,磁盘整理程序是将在磁盘中不连续存储的数据转至连续的物理存储位置,并可指定目标存储位置。
优选地,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块过程中,还包括:
步骤S2044,确定目标存储区域中有存储块已写入共享数据块之外的数据时,停止向该存储块移动窗体文件;
有可能在移动过程,某个存储块被文件***写入用户数据而更新为***已用空间,此时要停止向该存储块移动窗体文件。
步骤S2045,待另外确定未写入数据的存储块后,将停止移动的窗体文件重新移动至另外确定的存储块中。
文件***实现文件的存储管理时,对于一个文件的存储通常会记录该文件的物理位置索引,且文件***依据物理位置索引确定用户存储可用空间。文件***删除一个文件时,存在一个特点:仅删除记录的该文件在硬盘中物理位置的索引,而不覆盖数据本身,这样该文件占用的硬盘空间被文件***视为用户存储可用空间。因此,只要另外记录文件的物理位置索引,仍然可以读取被文件***删除的文件。
优选地,文件***将目标存储区域标记为可用状态,具体包括:通过删除移动后的窗体文件在文件***中的物理位置索引,将作为目标存储区域的存储块标记为可用状态。
下面结合一个具体示例说明本发明实施例提供的数据存储过程,如图4所示,包括:
步骤S401,确定用户要接收的共享数据x的总数据量X1;
假设共享数据x的总数据量不大于划分的存储块的容量。
步骤S402,文件***获取硬盘空间中未写入数据的存储块;
如图5所示,扫描整体硬盘,获取到以存储块为单位的硬盘基本信息及使用状态,包括各存储块的编号及使用状态,从而获取到未写入数据的存储块;
步骤S403,从未写入数据的存储块选取编号为4的存储块作为目标存储区域A,作为写入共享数据x的目标位置,如图5中step1对应部分;
步骤S404,创建一个窗体文件,并按设定规则为该窗体文件分配预设容量的编号为m的存储块;
步骤S405,将接收的共享数据x写入到创建的窗体文件中,即将共享数据写入到存储块m,如图5所示中step2对应部分;
窗体文件占用的硬盘空间由操作***决定,通常不会与目标位置重合。
步骤S406,调用操作***API,将写入共享数据的窗体文件移至编号为4的存储块中,如图5中step3对应部分。
步骤S407,删除移动后的窗体文件在文件***中的物理位置索引,释放窗体文件占用的硬盘空间,并在分块表将存储块4标记为裸盘已用空间,如图5中step4对应部分。本文将存储块4中存储的共享数据称为裸盘文件。
该步骤中,编号为4的存储块中,写入了有效的共享数据。由于最后删除了窗体文件在文件***中的物理位置索引,对文件***来说,存储块4区域未被使用,仍然属于可用空间。这样,文件***仍然可以向存储块4区域写入用户数据,而在被覆盖之前,存储块4区域中的保存的裸盘文件一直有效。
步骤S408,对于已经写入共享数据的存储块,记录该存储块对应的位置信息,包括存储块物理位置索引、存储的共享数据文件名、在文件中的偏移量、写入时间、状态(正常、损坏、破损但可恢复)等。将全部写入共享数据的存储块即标记为裸盘已用空间的存储块的位置信息保存到一个操作***可见的正常文件中,作为全部共享数据的索引。
该步骤的记录过程是在向步骤S406中缓存共享数据块过程中完成的。
本发明提供的上述数据存储方法,可在网络节点的存储设备中存储共享数据以备用,且不会占用节点的存储空间的方法,将共享数据存放于网络节点中,可大大节省共享数据提供者的存储成本。
具体应用时,本发明提供的数据存储方法,可在P2P网络中的各P节点存放共享数据,例如可将广告等不是很重要的数据内容以该方法存放在P中,需要时可及时从P获取,而在各P节点需要使用存储空间存放非P2P网络共享数据时,可即时释放出该部分存放共享数据的存储空间,以便P进行使用,而不会消耗P过多资源。
依照本发明另一实施例中,还提供一种数据存储装置,如图6所示,包括:目标区域确定单元601,用于利用文件***确定用于缓存共享数据的目标存储区域;缓存单元602,用于利用文件***将接收的共享数据缓存到所述目标存储区域;标记单元603,用于利用文件***将缓存有共享数据的目标存储区域标记为可用状态,以指示文件***能够根据用户指令在该目标存储区域写入用户数据;记录单元604,用于缓存过程中独立于文件***,另外记录所缓存的共享数据在所述目标存储区域中位置信息,以使根据所述位置信息能获取该共享数据。
较佳地,该装置还包括:存储块划分单元605,用于在确定用于缓存共享数据的目标存储区域之前,利用文件***将硬盘空间在逻辑上划分为至少两个预设容量的存储块;所述目标区域确定单元601具体包括:数据量确定单元601a,用于确定要接收的共享数据的总数据量;空闲存储块获取单元601b,用于利用文件***获取硬盘空间中未写入数据的存储块;目标存储块确定单元601c,利用文件***将未写入数据的存储块中至少一个存储块作为目标存储区域,所述目标存储区域的总容量不小于所述总数据量;所述缓存单元602,具体用于利用文件***将接收的共享数据分成与预设容量相匹配的共享数据块后,分别缓存到作为目标存储区域的存储块中。
较佳地,所述缓存单元602,具体包括:窗体文件创建单元602a,用于利用文件***创建至少一个窗体文件,并按设定规则为每一窗体文件分配所述预设容量的存储区域,所述窗体文件总大小与所述总数据量相匹配;分块写入单元602b,用于利用文件***通过将接收的共享数据写入到创建的窗体文件中,将接收的共享数据分成与预设容量相匹配的共享数据块;窗体文件移动单元602c,用于利用文件***将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
较佳地,该所述缓存单元还包括:停止移动单元602d,用于将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块过程中,确定目标存储区域中有存储块已写入共享数据块之外的数据时,停止向该存储块移动窗体文件;重新移动单元602e,用于待另外确定未写入数据的存储块后,将停止移动的窗体文件重新移动至另外确定的存储块中。
所述窗体文件创建单元602a具体利用操作***提供的创建窗体文件函数,创建至少一个窗体文件;所述窗体文件移动单元602c,具体利用操作***提供的移动窗体文件函数,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
本实施例中所述标记单元603,具体用于通过删除移动后的窗体文件在文件***中的物理位置索引,将作为目标存储区域的存储块标记为可用状态;所述记录单元604,具体用于在缓存过程中,独立于文件***另外记录所缓存的共享数据在作为目标存储区域的存储块中的位置信息。
较佳地,所述空闲存储块获取单元601b,具体包括:存储块使用信息获取单元,用于根据文件***建立的用于维护划分得到的存储块使用信息的分块表,获取不同存储块对应的使用频率及当前使用情况;空闲存储块确定单元,用于根据不同存储块对应的使用频率及当前使用情况,确定硬盘空间中未写入数据的存储块;所述目标存储块确定单元601c,具体用于按使用频率从低到高的顺序选取未写入数据的存储块作为目标存储区域。
所述记录单元604,具体包括:位置信息获取单元604a,用于在缓存过程中获取缓存有共享数据的存储块对应的位置信息,所述位置信息包括该存储块所缓存的共享数据文件名和该存储块的物理位置索引;集中存储单元604b,用于独立于文件***,将获取的不同存储块对应的位置信息保存到能够***作***查找到的文件中。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (18)
1.一种数据存储方法,其特征在于,包括:
文件***确定用于缓存共享数据的目标存储区域;
文件***将接收的共享数据缓存到所述目标存储区域,并标记所述目标存储区域为可用状态,以指示文件***能够根据用户指令在该目标存储区域写入用户数据;
在缓存过程中独立于文件***另外记录所缓存的共享数据在所述目标存储区域中的位置信息,以使根据所述位置信息能获取该共享数据。
2.如权利要求1所述的方法,其特征在于:所述文件***确定用于缓存共享数据的目标存储区域之前,还包括:
所述文件***将硬盘空间在逻辑上划分为至少两个预设容量的存储块;
所述文件***确定用于缓存共享数据的目标存储区域,具体包括:
确定要接收的共享数据的总数据量;
获取硬盘空间中未写入数据的存储块;
将未写入数据的存储块中至少一个存储块作为目标存储区域,所述目标存储区域的总容量不小于所述总数据量;
所述文件***将接收的共享数据缓存到所述目标存储区域,具体包括:
将接收的共享数据分成与预设容量相匹配的共享数据块后,分别缓存到作为目标存储区域的存储块中。
3.如权利要求2所述的方法,其特征在于,所述文件***将接收的共享数据分成与预设容量相匹配的共享数据块,具体包括:
文件***创建至少一个窗体文件,并按设定规则为每一窗体文件分配所述预设容量的存储区域,所述窗体文件总大小与所述总数据量相匹配;
通过将接收的共享数据写入到创建的窗体文件中,将接收的共享数据分成与预设容量相匹配的共享数据块;
所述将共享数据块分别缓存到作为目标存储区域的存储块中,具体包括:
将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
4.如权利要求3所述的方法,其特征在于,所述文件***将所述目标存储区域标记为可用状态,具体包括:
通过删除移动后的窗体文件在文件***中的物理位置索引,将作为目标存储区域的存储块标记为可用状态;
所述在缓存过程中另外记录所缓存的共享数据在所述目标存储区域对应的位置信息,具体包括:
在缓存过程中,独立于文件***另外记录所缓存的共享数据在作为目标存储区域的存储块中的位置信息。
5.如权利要求3所述的方法,其特征在于,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块过程中,还包括:
确定目标存储区域中有存储块已写入共享数据块之外的数据时,停止向该存储块移动窗体文件;
待另外确定未写入数据的存储块后,将停止移动的窗体文件重新移动至另外确定的存储块中。
6.如权利要求3所述的方法,其特征在于,所述创建至少一个窗体文件具体包括:
利用操作***提供的创建窗体文件函数,创建至少一个窗体文件;
所述将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块,具体包括:
利用操作***提供的移动窗体文件函数,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
7.如权利要求2所述的方法,其特征在于,所述文件***获取硬盘空间中未写入数据的存储块,具体包括:
根据文件***建立的用于维护划分得到的存储块使用信息的分块表,获取不同存储块对应的使用频率及当前使用情况;
根据不同存储块对应的使用频率及当前使用情况,确定硬盘空间中未写入数据的存储块;
所述文件***将未写入数据的存储块中至少一个存储块作为目标存储区域,具体包括:
按使用频率从低到高的顺序选取未写入数据的存储块作为目标存储区域。
8.如权利要求7所述的方法,其特征在于,所述划分得到每一存储块包括若干个连续的簇,所述分块表对每一存储块使用信息的维护,具体包括:
存储块中有任一簇被写入用户数据时,将该存储块的当前使用情况标记为***已用空间;
存储块中每一簇既未被写入用户数据且未被写入共享数据时,将该存储块标记为裸盘可用空间;
存储块中所有簇被写入共享数据时,将该存储块标记为裸盘已用空间;
按使用频率从低到高的顺序选取未写入数据的存储块作为目标存储区域,具体包括:
从标记为裸盘可用空间的存储块中,按使用频率从低到高的顺序选取存储块作为目标存储区域。
9.如权利要求2所述的方法,其特征在于,在缓存过程中另外记录所缓存的共享数据在所述目标存储区域中的位置信息,具体包括:
获取缓存有共享数据的存储块对应的位置信息,所述位置信息包括该存储块所缓存的共享数据文件名和该存储块的物理位置索引;
独立于文件***,将获取的不同存储块对应的位置信息保存到能够***作***查找到的文件中。
10.如权利要求1~9任一所述的方法,其特征在于,还包括:
文件***根据用户指令确定要向硬盘空间写入用户数据时,从硬盘空间中的标记为可用状态的存储区域中,为要写入的用户数据分配存储空间;
所述文件***将用户数据写入到为该用户数据所分配的存储空间中。
11.一种数据存储装置,其特征在于,包括:
目标区域确定单元,用于利用文件***确定用于缓存共享数据的目标存储区域;
缓存单元,用于利用文件***将接收的共享数据缓存到所述目标存储区域;
标记单元,用于利用文件***将缓存有共享数据的目标存储区域标记为可用状态,以指示文件***能够根据用户指令在该目标存储区域写入用户数据;
记录单元,用于缓存过程中独立于文件***,另外记录所缓存的共享数据在所述目标存储区域中的位置信息,以使根据所述位置信息能获取共享数据。
12.如权利要求11所述的装置,其特征在于,该装置还包括:
存储块划分单元,用于在确定用于缓存共享数据的目标存储区域之前,利用所述文件***将硬盘空间在逻辑上划分为至少两个预设容量的存储块;
所述目标区域确定单元具体包括:
数据量确定单元,用于确定要接收的共享数据的总数据量;
空闲存储块获取单元,用于利用文件***获取硬盘空间中未写入数据的存储块;
目标存储块确定单元,利用文件***将未写入数据的存储块中至少一个存储块作为目标存储区域,所述目标存储区域的总容量不小于所述总数据量;
所述缓存单元,具体用于利用文件***将接收的共享数据分成与预设容量相匹配的共享数据块后,分别缓存到作为目标存储区域的存储块中。
13.如权利要求12所述的装置,其特征在于,所述缓存单元,具体包括:
窗体文件创建单元,用于利用文件***创建至少一个窗体文件,并按设定规则为每一窗体文件分配所述预设容量的存储区域,所述窗体文件总大小与所述总数据量相匹配;
分块写入单元,用于利用文件***通过将接收的共享数据写入到创建的窗体文件中,将接收的共享数据分成与预设容量相匹配的共享数据块;
窗体文件移动单元,用于利用文件***将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
14.如权利要求13所述的装置,其特征在于,所述标记单元,具体用于通过删除移动后的窗体文件在文件***中的物理位置索引,将作为目标存储区域的存储块标记为可用状态;
所述记录单元,具体用于在缓存过程中,独立于文件***另外记录所缓存的共享数据在作为目标存储区域的存储中的位置信息。
15.如权利要求13所述的装置,其特征在于,所述缓存单元还包括:
停止移动单元,用于将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块过程中,确定目标存储区域中有存储块已写入共享数据块之外的数据时,停止向该存储块移动窗体文件;
重新移动单元,用于待另外确定未写入数据的存储块后,将停止移动的窗体文件重新移动至另外确定的存储块中。
16.如权利要求13所述的装置,其特征在于,所述窗体文件创建单元具体利用操作***提供的创建窗体文件函数,创建至少一个窗体文件;
所述窗体文件移动单元,具体利用操作***提供的移动窗体文件函数,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。
17.如权利要求12所述的装置,其特征在于,所述空闲存储块获取单元,具体包括:
存储块使用信息获取单元,用于根据文件***建立的用于维护划分得到的存储块使用信息的分块表,获取不同存储块对应的使用频率及当前使用情况;
空闲存储块确定单元,用于根据不同存储块对应的使用频率及当前使用情况,确定硬盘空间中未写入数据的存储块;
所述目标存储块确定单元,具体用于按使用频率从低到高的顺序选取未写入数据的存储块作为目标存储区域。
18.如权利要求12所述的装置,其特征在于,所述记录单元,具体包括:
位置信息获取单元,用于在缓存过程中获取缓存有共享数据的存储块对应的位置信息,所述位置信息包括该存储块所缓存的共享数据的文件名和该存储块的物理位置索引;
集中存储单元,用于独立于文件***,将获取的不同存储块对应的位置信息保存到能够***作***查找到的文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010252868 CN101968791B (zh) | 2010-08-10 | 2010-08-10 | 一种数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010252868 CN101968791B (zh) | 2010-08-10 | 2010-08-10 | 一种数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101968791A true CN101968791A (zh) | 2011-02-09 |
CN101968791B CN101968791B (zh) | 2012-12-26 |
Family
ID=43547948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010252868 Expired - Fee Related CN101968791B (zh) | 2010-08-10 | 2010-08-10 | 一种数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101968791B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544157A (zh) * | 2012-07-11 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种数据的存储方法和设备 |
CN106776793A (zh) * | 2016-11-23 | 2017-05-31 | 广州酷狗计算机科技有限公司 | 一种播放音频数据的方法和装置 |
US10381007B2 (en) | 2011-12-07 | 2019-08-13 | Qualcomm Incorporated | Low power integrated circuit to analyze a digitized audio stream |
CN111444154A (zh) * | 2020-03-26 | 2020-07-24 | 涵涡智航科技(玉溪)有限公司 | 一种在单片机***中高效存储日志文件的方法 |
CN115168259A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和计算机可读存储介质 |
CN115292247A (zh) * | 2022-09-28 | 2022-11-04 | 北京鼎轩科技有限责任公司 | 一种文件读取方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050004925A1 (en) * | 2003-05-07 | 2005-01-06 | Nathaniel Stahl | Copy-on-write mapping file system |
CN101635831A (zh) * | 2009-08-24 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 一种p2p直播视频节点数据共享的方法、装置及代理*** |
-
2010
- 2010-08-10 CN CN 201010252868 patent/CN101968791B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050004925A1 (en) * | 2003-05-07 | 2005-01-06 | Nathaniel Stahl | Copy-on-write mapping file system |
CN101635831A (zh) * | 2009-08-24 | 2010-01-27 | 成都市华为赛门铁克科技有限公司 | 一种p2p直播视频节点数据共享的方法、装置及代理*** |
Non-Patent Citations (1)
Title |
---|
《计算机应用研究》 20090315 章华等 基于孩子兄弟树的FAT32文件删除恢复算法 1116-1118 1-18 第26卷, 第03期 2 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10381007B2 (en) | 2011-12-07 | 2019-08-13 | Qualcomm Incorporated | Low power integrated circuit to analyze a digitized audio stream |
US11069360B2 (en) | 2011-12-07 | 2021-07-20 | Qualcomm Incorporated | Low power integrated circuit to analyze a digitized audio stream |
US11810569B2 (en) | 2011-12-07 | 2023-11-07 | Qualcomm Incorporated | Low power integrated circuit to analyze a digitized audio stream |
CN103544157A (zh) * | 2012-07-11 | 2014-01-29 | 阿里巴巴集团控股有限公司 | 一种数据的存储方法和设备 |
CN103544157B (zh) * | 2012-07-11 | 2017-08-15 | 阿里巴巴集团控股有限公司 | 一种数据的存储方法和设备 |
CN106776793A (zh) * | 2016-11-23 | 2017-05-31 | 广州酷狗计算机科技有限公司 | 一种播放音频数据的方法和装置 |
CN111444154A (zh) * | 2020-03-26 | 2020-07-24 | 涵涡智航科技(玉溪)有限公司 | 一种在单片机***中高效存储日志文件的方法 |
CN111444154B (zh) * | 2020-03-26 | 2020-11-27 | 涵涡智航科技(玉溪)有限公司 | 一种在单片机***中高效存储日志文件的方法 |
CN115168259A (zh) * | 2022-09-06 | 2022-10-11 | 浪潮电子信息产业股份有限公司 | 一种数据存取方法、装置、设备和计算机可读存储介质 |
CN115292247A (zh) * | 2022-09-28 | 2022-11-04 | 北京鼎轩科技有限责任公司 | 一种文件读取方法、装置、电子设备和存储介质 |
CN115292247B (zh) * | 2022-09-28 | 2022-12-06 | 北京鼎轩科技有限责任公司 | 一种文件读取方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101968791B (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101968791B (zh) | 一种数据存储方法及装置 | |
CN106708427B (zh) | 一种适用于键值对数据的存储方法 | |
US9058112B2 (en) | Retrieving data in a storage system using thin provisioning | |
CN104317742B (zh) | 一种优化空间管理的自动精简配置方法 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
US8775737B2 (en) | Efficient cache management | |
CN101556557B (zh) | 一种基于对象存储设备的对象文件组织方法 | |
CN103984640B (zh) | 实现数据预取方法及装置 | |
CN107463447B (zh) | 一种基于远程直接非易失内存访问的b+树管理方法 | |
KR101672901B1 (ko) | 분산 파일 시스템에서 소형 파일에 대한 접근성 향상을 위한 캐시 관리 시스템 | |
CN101277211A (zh) | 数据缓存方法及装置 | |
CN103530387A (zh) | 一种hdfs针对小文件的改进方法 | |
CN103488685B (zh) | 一种基于分布式存储***的碎片文件存储方法 | |
CN102331986A (zh) | 一种数据库缓存管理方法及一种数据库服务器 | |
CN103116552A (zh) | 用于在分布式存储***中分配存储空间的方法和装置 | |
US20120173594A1 (en) | System and Method for Managing Discardable Objects | |
CN103678523A (zh) | 分布式高速缓存cache数据访问方法和装置 | |
CN103049574B (zh) | 实现文件动态副本的键值文件***及方法 | |
CN108776682A (zh) | 基于对象存储的随机读写对象的方法和*** | |
CN101571869A (zh) | 一种智能卡的文件存储、读取方法及装置 | |
CN101527736A (zh) | 分布式文件***中业务内容处理、更新方法与装置 | |
CN102694828A (zh) | 一种分布式缓存***数据存取的方法及装置 | |
CN109189772A (zh) | 用于无文件***存储介质的文件管理方法及*** | |
CN102546674A (zh) | 一种基于网络存储装置的目录树缓存***及方法 | |
CN102523301A (zh) | 一种云存储中在客户端缓存数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121226 Termination date: 20130810 |