一种数据存储方法及装置的制作方法

文档序号:6607670阅读:174来源:国知局
专利名称:一种数据存储方法及装置的制作方法
技术领域
本发明涉及网络共享数据技术领域,尤其涉及一种数据存储方法及装置。
背景技术
随着互联网发展,在线视频点播服务已成为互联网中一项广泛应用的服 务。为了能够为用户提供更加清晰及流畅的在线视频,在线视频点播业务中普遍使用 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,文件系统将接收的共享数据χ缓存到目标存储区域A,并标记目标存 储区域A为可用状态,以指示文件系统能够根据用户指令在该目标存储区域A写入用户数 据;这样,文件系统根据用户指令确定要向硬盘空间写入用户数据时,从硬盘空间中 的标记为可用状态的存储区域中,为要写入的用户数据分配存储空间;并将用户数据写入 到为该用户数据所分配的存储空间中。对于文件系统接收共享数据χ的应用场景,可以是用户在线使用共享数据X过程 接收共享数据X,也可以是预先由服务器部署的。文件系统确定了共享数据X的目标存储区 域A,并在用户接收共享数据过程中将接收的共享数据X缓存到目标存储区域A。不同的是 文件系统将缓存了共享数据χ的目标存储区域A标记为可用状态。标记为可用状态意味着 如果文件系统接收用户指令要写入新的用户数据时,该目标存储区域A对于文件系统来说 是用户存储可用空间,且在有新的用户数据写入目标存储区域A之前,目标存储区域A仍存 储的是共享数据X。注意本发明中标记为可用状态,用于指示文件系统可在目标存储区域A写入用户 数据,但并不指示能够写入共享数据,所以缓存有共享数据的目标存储区域A对于文件系 统来说为用户存储可用空间,因此共享数据χ的缓存对于文件系统是不可见,因此缓存共 享数据χ的目标存储区域A被文件系统视为裸盘。步骤S103,在缓存过程中,独立于文件系统另外记录所缓存的共享数据在目标存 储区域A中的位置信息,以使网络中需要使用该共享数据的终端能够根据所述位置信息获 取共享数据。既然共享数据χ的缓存对文件系统是不可见的,所以本发明要独立于文件系统另 外记录所缓存的共享数据在目标存储区域A中的位置信息,具体地,如记录A的物理位置索 引及A缓存的共享数据文件名等。这样在接收到网络中任一用户包括该用户本身的共享数 据请求时,可以根据另外记录的上述位置信息检索到请求的共享数据,从而实现向网络中 需要使用该共享数据的终端能够获取该共享数据。可见,本发明对共享数据的缓存并不是完全独立于文件系统盲目存储,其存储位 置是由文件系统确定,本发明对共享数据的存储也并不是完全由文件系统进行管理,文件 系统在完成确定缓存位置及将共享数据缓存到其确定的缓存位置后,会将这些缓存位置标 记为可用状态,相当于释放了共享数据占用的存储空间,而本发明通过独立于文件系统另 外记录所缓存共享数据的存储位置信息,可以实现向网络中任一用户终端传输共享数据。因此,本发明在不影响用户体验的前提下,使用闲置的硬盘空间和带宽,可在数据 共享网络中的各终端节点上存放共享数据,而不会因占用终端节点用户存储空间而影响终 端节点的性能;提高了共享数据在终端节点存储的稳定性;通过将共享数据存放在各终端节点,增加了共享数据源,因此在不影响用户使用及提供终端节点存储稳定性的情况下提 高了用户在线使用共享数据的数据传输速率。依照本发明的较佳实施例中,为了进一步降低共享数据被覆盖的风险,大的共享 数据文件应该被分散成“块”,写在硬盘的不同位置。目前文件系统最小空间分配单位是 “簇”,但对于裸盘应用来说,以“簇”为单位分散数据,读写效率过低,且空间管理代价较大。 因此,本发明较佳实施例中,文件系统将若干连续的“簇”组合在一起,在逻辑上构成预设容 量的存储块,这样裸盘空间分配和管理将以存储块为基本单位,进一步降低共享数据被覆 盖风险且方便了裸盘管理。本实施例中的数据存储方法,如图2所示,包括步骤S201,确定用户要接收的的共享数据χ的总数据量Xl ;如用户在线视频点播时,如果点击了某个视频文件,可与获取到该视频文件的总 大小。步骤S202,文件系统获取硬盘空间中未写入数据的存储块;文件系统作为对文件存储和管理的系统,能够获取硬盘空间的数据占用请情况, 具体地,可用DeviceIOControl函数的FSCTL_GET_VOLUME_BITMAP选项获知磁盘的bitmap 的使用情况,以便从硬盘中未被写入任何数据的存储空间作为目标存储区域。本实施例中对存储空间进行了存储块划分,因此以存储块为单位获取未写入任何 数据的存储块。步骤S203,将未写入数据的存储块中至少一个存储块作为目标存储区域A,目标 存储区域A的总容量不小于总数据量Xl ;优选地,选取存储块时,选取使用频率比较低即不经常被使用的存储块作为目标 存储区域A。这样可以降低共享数据被覆盖的风险。本实施例中文件系统通过建立分块表维护划分得到的存储块使用信息,优选地, 根据文件系统建立的用于维护划分得到的存储块使用信息的分块表,获取不同存储块对应 的使用频率及当前使用情况;根据不同存储块对应的使用频率及当前使用情况,确定硬盘 空间中未写入数据的存储块;按使用频率从低到高的顺序选取未写入数据的存储块作为目 标存储区域。上述划分得到每一存储块包括若干个连续的簇,分块表维护的每一存储块使用信 息,具体包括1)存储块中有任一簇被写入用户数据时,将该存储块的当前使用情况标记为系统 已用空间;有此标记的存储,既不能写入用户数据也不能写入共享数据;2)存储块中每一簇既未被写入用户数据且未被写入共享数据时,将该存储块标记 为裸盘可用空间;有此标记的存储块,既可以写入用户据也可以写入共享数据。3)存储块中有所有簇被写入共享数据时,将存储块标记为裸盘已用空间;由于共享数据块是以窗体文件方式移动的,所以如果存储块缓存共享数据时所有 簇被写入共享数据。本实施例从标记为裸盘可用空间的存储块中,按使用频率从低到高的顺序选取存储块作为目标存储区域。标记为裸盘已用空间的存储块对于文件系统来说为可用状态,可以被写入用户数 据。从而实现以块为单位标记。对于标记为系统已用空间,但有部分簇被写入用户数据部 分簇被写入共享数据的存储,可以进一步细化该存储的标记。以实现向该存储块中写入共 享数据的位置能够写入用户数据。步骤S204,将接收的共享数据分成与预设容量相匹配的共享数据块后,分别缓存 到作为目标存储区域的存储块中;这样,实现了一个的共享数据文件被拆分成多个数据块的分块存储,一方面方便 裸盘管理,一方面降低共享数据被覆盖的风险。步骤S205,标记缓存有共享数据的作为目标存储区域A的存储块为可用状态,以 指示文件系统能够根据用户指令在这存储块写入用户数据;通过该步骤,作为目标存储区域A的存储块对于文件系统来说被视为用户存储可 用空间。文件系统将作为目标存储区域A的存储块标记为可用状态,此时如果文件系统有 新的用户数据写入请求,则此部分存储块可接受新的用户数据写入从而覆盖原数据块,但 在有新的用户数据写入之前,此存储块仍存储的是之前写入的共享数据块。步骤S206,在缓存过程中独立于文件系统,另外记录所缓存的共享数据在作为目 标存储区域A的存储块中位置信息,以使网络中需要使用该共享数据的终端能够获取共享 数据。本发明实施例中在缓存过程中记录所缓存的共享数据在所述目标存储区域中位 置信息,具体包括获取缓存有共享数据的存储块对应的位置信息,位置信息包括该存储 块所缓存的共享数据文件名和该存储块的物理位置索引;将获取的不同存储块对应的位置 信息保存到能够被操作系统查找到的文件中。优选地,如图3所示,步骤S204具体包括以下步骤步骤S2041,文件系统创建至少一个窗体文件,并按设定规则为每一窗体文件分配 预设容量的存储区域,窗体文件总大小与总数据量Xi相匹配;在需要向存储空间写入共享数据χ时,文件系统创建窗体文件并为每一个创建的 窗体文件分配预设容量的存储空间,这样窗体文件大小与存储块大小相等,总的窗体文件 大小与总数据量Xl相匹配,因此可以先将共享数据文件放在窗体文件中。具体地,可以利用Windows操作系统提供的创建窗体文件函数CreateFile创建窗 体文件。步骤S2042,通过将接收的共享数据写入到创建的窗体文件中,将接收的共享数据 分成与预设容量相匹配的共享数据块;步骤S2043,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域 的存储块。利用创建窗体文件函数CreateFile创建窗体文件时,窗体文件的位置是由确定 算法按设定规则决定的,而不是任意指定的,因此文件系统创建的窗体文件几乎不会刚好 与存储块的位置重合,所以要经过一次移动的过程使共享数据块存储于存储块中,将共享 数据块移动到预先指定的存储块,这样将便于对存储块进行管理。
具体地,可以利用操作系统提供的移动窗体文件函数NtFsControlFile,将写入共 享数据的窗体文件按一一对应方式移至作为目标存储区域的存储块。Windows提供的移动窗体文件函数NtFsControlFile可将数据块从磁盘中的一个 存储位置移至另一个存储位置,Windows中的磁盘整理程序即是通过该函数实现,磁盘整理 程序是将在磁盘中不连续存储的数据转至连续的物理存储位置,并可指定目标存储位置。优选地,将写入共享数据的窗体文件按一一对应方式移至作为目标存储区域的存 储块过程中,还包括步骤S2044,确定目标存储区域中有存储块已写入共享数据块之外的数据时,停止 向该存储块移动窗体文件;有可能在移动过程,某个存储块被文件系统写入用户数据而更新为系统已用空 间,此时要停止向该存储块移动窗体文件。步骤S2045,待另外确定未写入数据的存储块后,将停止移动的窗体文件重新移动 至另外确定的存储块中。文件系统实现文件的存储管理时,对于一个文件的存储通常会记录该文件的物理 位置索引,且文件系统依据物理位置索引确定用户存储可用空间。文件系统删除一个文件 时,存在一个特点仅删除记录的该文件在硬盘中物理位置的索引,而不覆盖数据本身,这 样该文件占用的硬盘空间被文件系统视为用户存储可用空间。因此,只要另外记录文件的 物理位置索引,仍然可以读取被文件系统删除的文件。优选地,文件系统将目标存储区域标记为可用状态,具体包括通过删除移动后的 窗体文件在文件系统中的物理位置索引,将作为目标存储区域的存储块标记为可用状态。下面结合一个具体示例说明本发明实施例提供的数据存储过程,如图4所示,包 括步骤S401,确定用户要接收的共享数据χ的总数据量Xl ;假设共享数据χ的总数据量不大于划分的存储块的容量。步骤S402,文件系统获取硬盘空间中未写入数据的存储块;如图5所示,扫描整体硬盘,获取到以存储块为单位的硬盘基本信息及使用状态, 包括各存储块的编号及使用状态,从而获取到未写入数据的存储块;步骤S403,从未写入数据的存储块选取编号为4的存储块作为目标存储区域A,作 为写入共享数据x的目标位置,如图5中Stepl对应部分;步骤S404,创建一个窗体文件,并按设定规则为该窗体文件分配预设容量的编号 为m的存储块;步骤S405,将接收的共享数据χ写入到创建的窗体文件中,即将共享数据写入到 存储块m,如图5所示中st印2对应部分;窗体文件占用的硬盘空间由操作系统决定,通常不会与目标位置重合。步骤S406,调用操作系统API,将写入共享数据的窗体文件移至编号为4的存储块 中,如图5中st印3对应部分。步骤S407,删除移动后的窗体文件在文件系统中的物理位置索引,释放窗体文件 占用的硬盘空间,并在分块表将存储块4标记为裸盘已用空间,如图5中st印4对应部分。 本文将存储块4中存储的共享数据称为裸盘文件。
11
该步骤中,编号为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,用于独立于文件系统,将获取的不 同存储块对应的位置信息保存到能够被操作系统查找到的文件中。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
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所述的装置,其特征在于,所述记录单元,具体包括 位置信息获取单元,用于在缓存过程中获取缓存有共享数据的存储块对应的位置信 息,所述位置信息包括该存储块所缓存的共享数据的文件名和该存储块的物理位置索引;集中存储单元,用于独立于文件系统,将获取的不同存储块对应的位置信息保存到能 够被操作系统查找到的文件中。
全文摘要
本发明涉及数据共享技术领域,尤其涉及一种数据存储方法及装置,该方法包括文件系统确定用于缓存共享数据的目标存储区域;文件系统将接收的共享数据缓存到所述目标存储区域,并标记所述目标存储区域为可用状态,以指示文件系统能够根据用户指令在该目标存储区域写入用户数据;在缓存过程中独立于文件系统另外记录所缓存的共享数据在所述目标存储区域中的位置信息,以使根据所述位置信息能获取该共享数据。本发明提供数据存储方法及装置,使共享数据在单个网络终端存储时,不会影响用户硬盘存储空间且提高了共享数据在单个网络终端存储的稳定性。
文档编号G06F17/30GK101968791SQ201010252868
公开日2011年2月9日 申请日期2010年8月10日 优先权日2010年8月10日
发明者王璟琦 申请人:深圳市飘移网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1