CN101196916A - 一种分段存储文件的方法及装置 - Google Patents
一种分段存储文件的方法及装置 Download PDFInfo
- Publication number
- CN101196916A CN101196916A CNA2007103016459A CN200710301645A CN101196916A CN 101196916 A CN101196916 A CN 101196916A CN A2007103016459 A CNA2007103016459 A CN A2007103016459A CN 200710301645 A CN200710301645 A CN 200710301645A CN 101196916 A CN101196916 A CN 101196916A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- file
- data segment
- information
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的实施例中公开了一种分段存储文件的方法,该方法包括:将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器;服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间的关系。本发明的实施例中公开了一种客户端和一种服务器。通过使用上述的方法和装置,可大大节省服务器中的存储空间,显著地降低了系统成本;同时,还可大大提高检索或查询的精度,实现更精准的定位。
Description
技术领域
本发明涉及文件存储技术,尤其是指一种分段存储文件的方法及装置。
背景技术
在现有技术中,对于流媒体等大数据文件的下载,通常采用的方法为:先使用简单的分块方式将提供下载的文件分成多个数据块,并将这些数据块分别存储在一个或多个客户端上(也可以直接存储在服务器上),同时,各个存储数据块的客户端将自身所存储的资源上报给服务器;当某个用户需下载上述文件时,该用户可通过其所在的客户端向服务器发送下载请求,指定需要下载的数据块(或称之为区间段)或整个数据文件;服务器根据所接收到的下载请求,查询所需下载的数据块所在的客户端,并将查询结果,即通过查询所得到的所需下载的数据块所在的客户端的信息返回给上述发送下载请求的客户端;该发送下载请求的客户端根据接收到的客户端信息,可通过使用各种支持分块下载的软件到相应的客户端下载所需的数据块或整个数据文件。
在现有技术中,由于对文件进行分块后,需要在服务器上分别记录每一个数据块的相关信息,因此将占用服务器中大量的存储空间。
发明内容
有鉴于此,本发明实施例的主要目的在于提供一种分段存储文件的方法及装置,从而节省了服务器中的存储空间。
为达到上述目的,本发明实施例中的技术方案是这样实现的:
本发明实施例中提供了一种分段存储文件的方法,该方法包括:
将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;
每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器;
服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间的关系。
本发明实施例中还提供了一种客户端,该客户端包括:采集模块和上报模块;
所述采集模块,用于接收并存储从文件中分割出的数据段;
所述上报模块,用于将同一个文件的数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器。
本发明实施例中还提供了一种服务器,其特征在于,该服务器包括:资源存储模块和资源管理模块;
所述资源存储模块,用于存储由各客户端发送的记录文件;
所述资源管理模块,用于根据所述资源存储模块中存储的记录文件,记录每个客户端与其所存储的数据段之间的关系。
综上可知,本发明的实施例中提供了一种分段存储文件的方法及装置。在上述的方法和装置中,由于每个客户端将同一个文件的数据段的信息记录在同一个记录文件中,并将所述记录文件发送给服务器,因此在服务器中只需少量的存储空间即可存储所有数据段的信息,从而大大节省了服务器中的存储空间,显著地降低了系统成本。
附图说明
图1为本发明实施例中分段存储文件的方法的流程图。
图2所示为本发明实施例中在客户端分段存储文件的示意图。
图3所示为本发明实施例中资源查询方法的流程图。
图4为本发明实施例中客户端和服务器的结构图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施例对本发明再作进一步详细的说明。
图1为本发明实施例中分段存储文件的方法的流程图。如图1所示,本发明实施例中分段存储文件的方法包括如下所述的步骤:
步骤101,以指定的分割单位将大文件分割成多个数据段,并分别存储于一个或多个客户端。
在本步骤中,所述指定的分割单位可以是预先设定的时间间隔或文件长度。例如,对于流媒体文件,可采用秒或秒的倍数为分割单位;对于非流媒体文件,可采用KB(例如,32KB或32KB的倍数)为分割单位。为了叙述的简便,在以下的描述中,将以以秒为分割单位进行分割为例进行说明。
图2所示为本发明实施例中在客户端分段存储文件的示意图。如图2所示,假设所需存储的文件为一种视频格式的文件,该视频文件的播放时间为500秒(即长度为600秒)。因此,可将上述视频文件以秒为单位平均分成500个数据段,并将第0~100秒和第200~300秒的数据段存储在客户端A上;将第101~199秒的数据段存储在客户端B上;将第301~500秒的数据段存储在客户端C上。
另外,在本步骤中,如果实际情况需要,也可将一个大文件的所有数据段均存储在一个客户端上,所用的分段存储方法与上述方法相同。
此外,在本步骤中,也可根据实际情况的需要,将同一个数据段存储在不同的客户端上,以保证一定的数据冗余度。
步骤102,各客户端将所存储的资源进行索引。
在本步骤中,各客户端将各自存储的数据段的信息进行索引,即将同一个文件的数据段的信息记录在同一个记录文件中。在本发明的实施例中,所述的记录文件可以是一个资源描述表,所述资源描述表的格式如表1所示:
表1
资源ID(16字节) | 开始段1(秒/K)2字节 | 结束段1(秒/K)2字节 |
开始段2(秒/K)2字节 | 结束段2(秒/K)2字节 | |
...... | ...... |
在上述的表1中,资源ID表示该数据段所属的大文件的编号,由于在本发明的实施例中,每一个大文件都具有一个唯一的编号,因此可通过资源ID来区分不同的大文件;上述表1中的开始段表示客户端中所存储的数据段的起始位置;结束段表示客户端中所存储的数据段的结束位置,而当结束段的数值为0时,表示该数据段一直延续到该数据段所属大文件的末尾。以图2所示的分段存储方式为例,当将如图2所示的大文件分段存储于客户端A、B和C时,客户端A、B和C中的资源描述表将分别如表2、3、4所示:
表2客户端A的资源描述表
资源ID(16字节) | 0 | 100 |
200 | 300 |
表3客户端B的资源描述表
资源ID(16字节) | 101 | 199 |
表4客户端A的资源描述表
资源ID(16字节) | 301 | 0 |
步骤103,各客户端上报资源情况到服务器。
在本步骤中,各客户端可将各自所存储的数据段的资源描述表发送给服务器,使得服务器可得知资源的存储情况。
由步骤102可知,由于同一个客户端中可能存储多个数据段,因此可将所有属于同一个大文件(即资源ID相同)的数据段的信息记录在同一个资源描述表中并发送给服务器,从而大大减少资源描述表在服务器中所占用的存储空间。例如,在现有技术中,如果将一个大文件分割成n个数据段,则需要分别记录n个数据段的信息,每个数据段的信息中都至少包括该数据段所属的大文件的资源ID(16字节),因此服务器中至少需要16n个字节来存储n个数据段的信息。而如果使用如表1所示的资源描述表,则服务器只需(4n+16)个字节即可记录n个数据段的信息。因此,使用本步骤中的资源描述表来记录各数据段的信息,将大大节省服务器中的存储空间。
步骤104,服务器记录各客户端与各数据段之间的关系。
在本步骤中,服务器可分别记录各个客户端与其所存储的数据段之间的关系,并可根据上述的关系形成一个关系列表,以供查询。
通过上述的步骤101~104,可将一个大文件以秒或Kb为分割单位分割成多个数据段,然后将多个数据端分别存储于一个或多个客户端,并将各客户端所存储的数据段的信息上报给服务器。
当某个用户需要查询上述大文件的指定数据段(例如,全部或者部分数据段)时,该用户可通过客户端向上述服务器进行查询。图3所示为本发明实施例中资源查询方法的流程图。如图3所示,本发明实施例中资源查询方法包括如下所述的步骤:
步骤301,查询客户端向服务器发送查询请求。
在本步骤中,查询客户端可向服务器发送查询请求,要求查询指定数据段的信息(例如,该数据段被存储的位置等信息)。
步骤302,服务器检索关系列表。
在本步骤中,服务器根据所接收到的查询请求检索关系列表,从关系列表中检索出所述指定数据段所在的客户端的信息(例如,IP地址等)。
现有技术中对所述大文件进行分段时,分段的粒度较大,例如,分段后的各个数据段的大小一般为2兆字节(MB)或者1MB;因此,在对各数据段进行查询时,只能定位到具体的某个数据段,所以定位的精度比较低,不利于对流媒体格式或其他格式的大文件的检索。而在本发明的实施例中,由于所述的大文件是以秒或KB为单位来进行分段的,所以当服务器对数据段进行检索时,可以将检索结果精确到秒或KB,从而可对所需检索的数据段进行精确地定位。
步骤303,服务器将检索出的客户端信息返回给查询客户端。
例如,在本步骤中,服务器可以向发送查询请求的查询客户端返回一个列表,该列表中记录了存储有指定数据段的各客户端的信息。
步骤304,查询客户端根据服务器返回的信息进行相应处理。
例如,在本步骤中,查询客户端可根据服务器所返回的各客户端的信息,选择一个或多个客户端,并从所选择的客户端下载所述指定的数据段。
此外,由于同一个数据段可能存储在不同的客户端上,因此步骤302的检索结果中可能有多个客户端。所以,步骤301中的查询请求中可以携带一个参数,该参数用于指示需要服务器返回的客户端的个数;服务器可根据上述查询请求中的上述参数,返回指定个数的客户端。例如,当查询请求中的参数的值为n时,则服务器可在查询到第n个符合查询条件的客户端的信息后即停止查询,并将上述查询到的n个客户端的信息返回给发送查询请求的客户端。
图4为本发明实施例中客户端和服务器的结构图。如图4所示,本发明实施例中的客户端包括:采集模块和上报模块。
采集模块,用于接收并存储从文件中分割出的数据段;
上报模块,用于将同一个文件的数据段的信息记录在同一个记录文件中,将该记录文件发送给服务器。
上述的客户端还可包括一个查询模块。该查询模块用于向服务器发送查询请求,要求查询指定数据段的信息;并接收服务器返回的所述指定数据段的信息。
本发明实施例中的服务器包括:资源存储模块和资源管理模块。
资源存储模块,用于存储由各客户端发送的记录文件;
资源管理模块,用于根据资源存储模块中存储的记录文件,记录每个客户端与其所存储的数据段之间的关系;还可用于根据所接收到的查询请求,查询所述记录的每个客户端与其所存储的数据段之间的关系,将所述指定数据段所在的客户端的信息返回给查询客户端。
通过本发明实施例中所提供的方法和装置,在服务器中只需少量的存储空间即可存储所有数据段的信息,从而大大节省了服务器中的存储空间,显著地降低了系统成本;同时,由于各客户端中所存储的数据段是以秒或KB为分割单位的,因此在进行检索或查询时,可以大大提高检索或查询的精度,将所需检索或查询的数据段定位到秒或KB,从而实现更精准的定位。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种分段存储文件的方法,其特征在于,该方法包括:
将文件分割成至少两个数据段,将各数据段分别存储于至少一个客户端;
每个客户端将同一个文件的各数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器;
服务器根据接收到的记录文件,记录每个客户端与其所存储的数据段之间的关系。
2.根据权利要求1所述的方法,其特征在于,所述将文件分割成至少两个数据段具体包括:
以指定的分割单位将文件分割成至少两个数据段。
3.根据权利要求1所述的方法,其特征在于:所述指定的分割单位为时间间隔或文件长度。
4.根据权利要求3所述的方法,其特征在于:所述的时间间隔为秒;所述的文件长度为千字节。
5.根据权利要求1所述的方法,其特征在于,所述记录文件中包括:
所述被分割的文件的标识、所述数据段的起始位置和所述数据段的结束位置。
6.根据权利要求1所述的方法,其特征在于,所述记录每个客户端与其所存储的数据段之间的关系之后还包括:
当查询客户端向服务器发送查询请求,要求查询指定数据段的信息时,所述服务器根据所述查询请求,查询所述记录的每个客户端与其所存储的数据段之间的关系,将所述指定数据段所在的客户端的信息返回给查询客户端。
7.根据权利要求6所述的方法,其特征在于:所述查询请求携带一个参数,该参数用于指示需要服务器返回的客户端的个数。
8.根据权利要求7所述的方法,其特征在于,所述将所述指定数据段所在的客户端的信息返回给查询客户端包括:
当服务器查询到所述参数指定的个数的符合查询请求的客户端的信息后,服务器停止查询,将上述查询到客户端信息返回给所述查询客户端。
9.一种客户端,其特征在于,该客户端包括:采集模块和上报模块;
所述采集模块,用于接收并存储从文件中分割出的数据段;
所述上报模块,用于将同一个文件的数据段的信息记录在同一个记录文件中,将所述记录文件发送给服务器。
10.根据权利要求9所述的客户端,其特征在于,该客户端还包括:查询模块;
所述查询模块,用于向所述服务器发送查询请求,要求查询指定数据段的信息;并接收所述服务器返回的所述指定数据段的信息。
11.一种服务器,其特征在于,该服务器包括:资源存储模块和资源管理模块;
所述资源存储模块,用于存储由各客户端发送的记录文件;
所述资源管理模块,用于根据所述资源存储模块中存储的记录文件,记录每个客户端与其所存储的数据段之间的关系。
12.根据权利要求11所述的服务器,其特征在于:
所述资源管理模块,还用于根据所接收到的查询请求,查询所述记录的每个客户端与其所存储的数据段之间的关系,将所述指定数据段所在的客户端的信息返回给查询客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103016459A CN101196916A (zh) | 2007-12-27 | 2007-12-27 | 一种分段存储文件的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007103016459A CN101196916A (zh) | 2007-12-27 | 2007-12-27 | 一种分段存储文件的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101196916A true CN101196916A (zh) | 2008-06-11 |
Family
ID=39547329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007103016459A Pending CN101196916A (zh) | 2007-12-27 | 2007-12-27 | 一种分段存储文件的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101196916A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103615A (zh) * | 2009-12-21 | 2011-06-22 | 北大方正集团有限公司 | 一种检索结果三段式有序收集方法及系统 |
CN103377211A (zh) * | 2012-04-20 | 2013-10-30 | 上海梅山钢铁股份有限公司 | 一种热连轧生产过程中高频数据的存储和读取方法 |
CN106855866A (zh) * | 2015-12-09 | 2017-06-16 | 北大方正集团有限公司 | Xml文档存储方法及装置 |
CN107134041A (zh) * | 2017-04-26 | 2017-09-05 | 成都国星通信有限公司 | 一种景区客流量数据采集系统与方法 |
CN111586112A (zh) * | 2020-04-23 | 2020-08-25 | 合肥联宝信息技术有限公司 | 一种数据传输方法、装置以及计算机可读存储介质 |
US20230034931A1 (en) * | 2021-07-28 | 2023-02-02 | Charter Communications Operating, Llc | Generating video on demand (vod) using network digital video recording (ndvr) |
-
2007
- 2007-12-27 CN CNA2007103016459A patent/CN101196916A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103615A (zh) * | 2009-12-21 | 2011-06-22 | 北大方正集团有限公司 | 一种检索结果三段式有序收集方法及系统 |
CN103377211A (zh) * | 2012-04-20 | 2013-10-30 | 上海梅山钢铁股份有限公司 | 一种热连轧生产过程中高频数据的存储和读取方法 |
CN106855866A (zh) * | 2015-12-09 | 2017-06-16 | 北大方正集团有限公司 | Xml文档存储方法及装置 |
CN107134041A (zh) * | 2017-04-26 | 2017-09-05 | 成都国星通信有限公司 | 一种景区客流量数据采集系统与方法 |
CN111586112A (zh) * | 2020-04-23 | 2020-08-25 | 合肥联宝信息技术有限公司 | 一种数据传输方法、装置以及计算机可读存储介质 |
CN111586112B (zh) * | 2020-04-23 | 2022-04-15 | 合肥联宝信息技术有限公司 | 一种数据传输方法、装置以及计算机可读存储介质 |
US20230034931A1 (en) * | 2021-07-28 | 2023-02-02 | Charter Communications Operating, Llc | Generating video on demand (vod) using network digital video recording (ndvr) |
US11818435B2 (en) * | 2021-07-28 | 2023-11-14 | Charter Communications Operating, Llc | Generating video on demand (VOD) using network digital video recording (NDVR) |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102473092B (zh) | 索引缓存树 | |
CN101196916A (zh) | 一种分段存储文件的方法及装置 | |
CN103678523A (zh) | 分布式高速缓存cache数据访问方法和装置 | |
CN102609488B (zh) | 客户端及其数据查询方法、服务端和数据查询系统 | |
US6473781B1 (en) | Communication system and method | |
CN101046807B (zh) | 存储数据已读信息的方法及装置 | |
CN103927265A (zh) | 一种内容分级存储装置、内容获取方法及内容获取装置 | |
CN109033360B (zh) | 一种数据查询方法、装置、服务器及存储介质 | |
CN105338297A (zh) | 一种视频数据存储及回放系统、装置和方法 | |
CN102375853A (zh) | 分布式数据库系统、在其中建立索引的方法和查询方法 | |
CN102130959A (zh) | 一种实现云存储资源调度的系统及方法 | |
CN102841860A (zh) | 一种大数据量信息存储与访问方法 | |
CN103257831A (zh) | 存储器的读写控制方法及对应的存储器 | |
CN101799788B (zh) | 一种分级管理存储资源的方法及系统 | |
CN103473229A (zh) | 一种内存检索系统和方法、以及实时检索系统和方法 | |
CN102739622A (zh) | 一种可扩展的数据存储系统 | |
CN102708165A (zh) | 分布式文件系统中的文件处理方法及装置 | |
US11625412B2 (en) | Storing data items and identifying stored data items | |
CN105808618A (zh) | Feed 数据的存储和查询方法及其装置 | |
CN106681995B (zh) | 数据缓存方法、数据查询方法及装置 | |
CN104573035A (zh) | 缓存服务方法及装置、新闻信息获取方法及系统 | |
CN108681866B (zh) | 运单的处理方法、系统、设备和存储介质 | |
US20090157694A1 (en) | Method and system for managing file metadata transparent about address changes of data servers and movements of their disks | |
US7509473B2 (en) | Segmented storage system mapping | |
CN102572011A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080611 |