CN104346347A - 数据存储方法、装置、服务器及系统 - Google Patents
数据存储方法、装置、服务器及系统 Download PDFInfo
- Publication number
- CN104346347A CN104346347A CN201310316652.1A CN201310316652A CN104346347A CN 104346347 A CN104346347 A CN 104346347A CN 201310316652 A CN201310316652 A CN 201310316652A CN 104346347 A CN104346347 A CN 104346347A
- Authority
- CN
- China
- Prior art keywords
- data
- node
- index
- stored
- storage medium
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种数据存储方法、装置、服务器及系统,通过为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;将所述索引档节点存储至已创建的根索引节点对应的存储介质中;具有可存储无限量数据的有益效果,同时也便于对已存储的数据进行查找。
Description
技术领域
本发明涉及互联网领域,还涉及数据处理技术,尤其涉及一种数据存储方法、装置、服务器及系统。
背景技术
在现有的互联网应用中,与UGC(User Generated Content,用户自产生内容)数据同类型的数据会随时间的增长而不断增长,如用户空间日志、微博、社区评论等常见的互联网应用。这些UGC数据均以时间顺序排列存储,类似一个随时间而不断增长的数据链;通常情况下,越新的数据用户访问越频繁,越老的数据用户访问越少。由于互联网服务是一种长期持续的服务,所以UGC数据会随着时间的推进越来越大;这给数据存储带来了巨大的压力和挑战。
目前对这类数据的存储通常采用限定用户数据的最大存储量,将大于该存储量的数据都丢弃掉;由于这种方式只存储了用户的部分数据,因此牺牲了用户数据的完整性。
发明内容
鉴于此,有必要提供一种数据存储方法、装置、服务器及系统,以提高数据存储量。
本发明实施例公开了一种数据存储方法,包括以下步骤:
为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
本发明实施例还公开了一种数据存储装置,包括:
数据索引创建模块,用于为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
索引档节点创建模块,用于为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
根索引节点创建模块,用于将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
本发明实施例还公开了一种服务器,该服务器包括所述数据存储装置;
所述数据存储装置,包括:
数据索引创建模块,用于为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
索引档节点创建模块,用于为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
根索引节点创建模块,用于将所述索引档节点存储至已创建的根索引节点的存储介质中。
本发明实施例还公开了一种系统,该系统包括至少一个客户端以及至少一个所述服务器,其中所述服务器用于存储所述客户端产生的用户数据;
所述服务器包括所述数据存储装置;
所述数据存储装置,包括:
数据索引创建模块,用于为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
索引档节点创建模块,用于为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
根索引节点创建模块,用于将所述索引档节点存储至已创建的根索引节点的存储介质中。
本发明实施例为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;将所述索引档节点存储至已创建的根索引节点对应的存储介质中;相较于现有技术中将大于一定存储量的数据都丢弃掉的存储方式,本发明实施例具有可存储无限量数据的有益效果;进一步地,由于本发明实施例中的数据链可以无限延长且数据存储介质级数少,因此便于对已存储的数据进行查找。
附图说明
图1是本发明数据存储方法第一实施例流程示意图;
图2是本发明数据存储方法中数据存储整体结构一实施例结构示意图;
图3是本发明数据存储方法第二实施例流程示意图;
图4是本发明数据存储方法中数据链一实施例结构示意图;
图5是本发明数据存储方法第三实施例流程示意图;
图6是本发明数据存储装置第一实施例功能模块示意图;
图7是本发明数据存储装置第二实施例功能模块示意图;
图8是本发明数据存储装置第三实施例功能模块示意图;
图9是本发明服务器一实施例功能模块示意图;
图10是本发明包括图9所述服务器的系统一实施例功能模块示意图。
本发明实施例目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合说明书附图及具体实施例进一步说明本发明的技术方案。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明数据存储方法第一实施例流程示意图;如图1所示,本发明数据存储方法包括以下步骤:
步骤S01、为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
本实施例中服务器为所存储的数据创建数据索引,将对应的数据存储至所述数据索引对应的存储介质中。在一优选的实施例中,服务器建立数据索引时,可以同时设定各数据索引所对应的存储介质所能够存储的最大数据量。
服务器创建数据索引的依据包括但不限于:
根据数据的用途创建数据索引,比如工作数据索引、娱乐数据索引;根据产生数据的应用程序创建数据索引,比如微博数据索引、社区数据索引、空间数据索引等;根据产生数据的行为者创建数据索引,比如用户行为数据索引、系统数据索引等。
步骤S02、为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
本实施例中,服务器根据各数据索引对应的存储介质下已存储的数据,一次性创建预设个数的索引档节点,用以存储各数据索引;同时,服务器建立各索引档节点与各数据索引的映射关系,并根据建立的映射关系,将各数据索引存储至对应的索引档节点的存储介质中。
在一优选的实施例中,服务器创建索引档节点时,也可以同时设置各索引档节点所能够存储的数据索引的最大值;当该索引档节点存储的数据索引对应的存储介质下,已存储的数据超过该索引档节点所能够存储的数据索引的最大值时,新建一索引档节点;将新产生的数据对应的新数据索引存储在该新建的索引档节点对应的存储介质下,同时存储新建的索引档节点与新数据索引的映射关系,便于后续方便地进行数据查找。
步骤S03、将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
服务器创建根索引节点,将各索引档节点存储在该根索引节点对应的存储介质中。在后续进行数据查找时,服务器可以遍历根索引节点对应的存储介质下各索引档节点,以找到对应的索引档节点。
本实施例中,每个根索引节点对应的存储介质下所允许存储的数据空间也是有限的,当一个根索引节点对应的存储介质达到允许存储的最大数据量时,新建一根索引节点,并将对应的数据按照层级关系存储在新建的根索引节点对应的目录中;所述层级关系指的是,新产生的数据存储在数据索引中,数据索引存储在索引档节点对应的存储介质下,索引档节点存储在根索引节点对应的存储介质下。
在一优选的实施例中,服务器可以将上述数据存储在基于SSD硬盘的key/value存储系统中,由于基于SSD硬盘的key/value存储系统能够提供高性能的读写响应,同时可以根据数据的请求量和存储水平进行扩展,因此,将数据存储在该存储系统中便于后续的数据维护和查找。
本实施例数据存储方法应用于超大的链表数据的存储中,其有益效果将更为明显;比如,利用本实施例数据存储方法存储UGC数据时,可以存储无限量大的UGC数据,而不用担心因存储空间不足而不得不丢弃掉对应的数据。
基于图1所述实施例的数据存储方法,服务器建立的数据存储结构如图2所示,图2是本发明数据存储方法中数据存储整体结构一实施例结构示意图;图2所示的结构示意图中,服务器将产生的每条数据抽象为索引数据和原数据;所述索引数据即图1所述实施例中的根索引节点RootIdx…RootIdx(n)、索引档节点IdxArch(n)…IdxArch(1)和数据索引index1…index(n),所述原数据即图1所述实施例中各数据索引对应的存储介质下所存储的数据。本实施例中,数据存储的各级目录的关系一目了然,图2所示的数据存储结构示意图中,可以将索引项分为根索引和数据索引,如根索引节点RootIdx所指向的其中一个数据索引的索引档节点IdxArch(1),该索引档节点IdxArch(1)包括了一组数据索引index1…index(n),而组数据索引分别指向图2所示的最终的原数据。
服务器在后续对已存储的数据进行查找时,只需经历两级索引即可,在可以无限存储数据量的同时,还可以快速查找到对应的已存储数据。
本发明实施例为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;将所述索引档节点存储至已创建的根索引节点对应的存储介质中;具有可存储无限量数据的有益效果,提高了数据存储空间,同时也便于对已存储的数据进行查找。
图3是本发明数据存储方法第二实施例流程示意图;本实施例与图1所述实施例的区别是,可以将图1所述实施例中的步骤S03、将所述索引档节点存储至已创建的根索引节点对应的存储介质中,替换为步骤S11、识别所述根索引节点对应的存储介质中已存储的索引档节点的数量是否达到所述根索引节点对应的存储介质的存储阈值;并根据步骤S11的识别结果为已达到所述根索引节点的存储阈值时,在步骤S11之后执行:步骤S12、新建一根索引节点,将创建的所述索引档节点存储至新建的根索引节点的存储介质中。
本实施例仅对步骤S11和步骤S12进行具体描述,有关本发明数据存储方法所涉及的其他步骤请参照相关实施例的具体描述,在此不再赘述。
如图3所示,在服务器将数据索引存储在对应的索引档节点中后,将该索引档节点存储在根索引节点的存储介质中时,先识别所要存储的根索引节点的存储介质中已存储的索引档节点的数量是否达到所述根索引节点的存储阈值;因为随着存储数据的不断增多,当索引档节点达到一定数量时会触发上一级存储介质对应的根索引节点分裂。当根索引节点的存储介质中已存储的索引档节点的数量达到所述根索引节点的存储阈值时,服务器新建一根索引节点,并将最新的索引档节点对应的存储介质下的数据索引及该数据索引对应的存储介质下的数据保存在最新创建的根索引节点对应的存储介质中。
在服务器识别所述根索引节点的存储介质中已存储的索引档节点的数量未达到所述根索引节点的存储阈值,则继续执行步骤S03、将所述索引档节点存储至已创建的根索引节点的存储介质中,即继续将新建的索引档节点存储至已创建的根索引节点的存储介质下。
随着存储数据的不断增多,创建的根索引节点也不断增多,本实施例中,服务器将创建的各根索引节点组成一数据链,并按照各根索引节点被创建的时间顺序在数据链上依次排列各根索引节点;将最新创建的根索引节点排列在该数据链的最前端,以此类推,最早创建的根索引节点将被排列在数据链的最末端。
图4是本发明数据存储方法中数据链一实施例结构示意图;图4中,服务器按照创建各根索引节点的时间顺序,自左向右依次排列各根索引节点,最早创建的根索引节点排列在图4所示的数据链的左端。基于这样的数据存储结构,该数据链可以无线扩展,因此,存储的数据量可以无限量大。
在一优选的实施例中,由于用户的UGC数据(比如微博、空间等)随着时间的推移将不断增多,因此,可以针对同一账户建立一数据链,将该账户下对应的UGC数据都存储在同一数据链中各级目录对应的存储空间中。
本实施例通过将各根索引节点组成一数据链并按顺序排列各根索引节点,更进一步地完善了数据存储架构。
图5是本发明数据存储方法第三实施例流程示意图;本实施例与图1所述实施例的区别是,在步骤S03、将所述索引档节点存储至已创建的根索引节点对应的存储介质中,之后增加了步骤S04、将所述数据链末端排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,并修改该转存的数据对应的存储介质。
本实施例仅对步骤S04进行具体描述,有关本发明数据存储方法所涉及的其他步骤请参照相关实施例的具体描述,在此不再赘述。
本实施例中,由于最早存储的数据访问量最小,最新存储的数据,访问量通常最多,比如用户微博或者QQ空间上的最新动态;因此,不难理解,本实施例中,数据链末端最早创建的根索引节点对应的存储介质下存储的数据的访问量最少;因此,可以将数据链末端最早创建的根索引节点对应的存储介质下存储的数据批量切换至成本更低、存储量更大的存储介质上,同时修改已存储的索引目录对该数据的指向;也可以根据需要,将数据链上自末端开始排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,这样就能够极大地降低存储的成本。
本实施例中,步骤S04也可以在图2所述实施例的步骤S12、新建一根索引节点,将创建的所述索引档节点存储至新建的根索引节点的存储介质中,的步骤之后执行,执行过程请参照上述相应描述,在此不再赘述。
本实施例将所述数据链末端排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,极大地降低了存储成本。
图6是本发明数据存储装置第一实施例功能模块示意图;如图6所示,本发明数据存储装置包括:数据索引创建模块01、索引档节点创建模块02和根索引节点创建模块03。
数据索引创建模块01,用于为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
本实施例中数据索引创建模块01为所存储的数据创建数据索引,将对应的数据存储至所述数据索引对应的存储介质中。在一优选的实施例中,数据索引创建模块01建立数据索引时,可以同时设定各数据索引所对应的存储介质所能够存储的最大数据量。
数据索引创建模块01创建数据索引的依据包括但不限于:
根据数据的用途创建数据索引,比如工作数据索引、娱乐数据索引;根据产生数据的应用程序创建数据索引,比如微博数据索引、社区数据索引、空间数据索引等;根据产生数据的行为者创建数据索引,比如用户行为数据索引、系统数据索引等。
索引档节点创建模块02,用于为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
本实施例中,索引档节点创建模块02根据各数据索引对应的存储介质下已存储的数据,一次性创建预设个数的索引档节点,用以存储各数据索引;同时,索引档节点创建模块02建立各索引档节点与各数据索引的映射关系,并根据建立的映射关系,将各数据索引存储至对应的索引档节点的存储介质中。
在一优选的实施例中,索引档节点创建模块02创建索引档节点时,也可以同时设置各索引档节点所能够存储的数据索引的最大值;当该索引档节点存储的数据索引对应的存储介质下,已存储的数据超过该索引档节点所能够存储的数据索引的最大值时,新建一索引档节点;将新产生的数据对应的新数据索引存储在该新建的索引档节点对应的存储介质下,同时存储新建的索引档节点与新数据索引的映射关系,便于后续方便地进行数据查找。
根索引节点创建模块03,用于将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
根索引节点创建模块03创建根索引节点,将各索引档节点存储在该根索引节点对应的存储介质中。在后续进行数据查找时,服务器可以遍历根索引节点对应的存储介质下各索引档节点,以找到对应的索引档节点。
本实施例中,每个根索引节点对应的存储介质下所允许存储的数据空间也是有限的,当一个根索引节点对应的存储介质达到允许存储的最大数据量时,新建一根索引节点,并将对应的数据按照层级关系存储在新建的根索引节点对应的目录中;所述层级关系指的是,新产生的数据存储在数据索引中,数据索引存储在索引档节点对应的存储介质下,索引档节点存储在根索引节点对应的存储介质下。
本实施例数据存储装置在存储超大的链表数据时,其有益效果将更为明显;比如,利用本实施例数据存储装置存储UGC数据时,可以存储无限量大的UGC数据,而不用担心因存储空间不足而不得不丢弃掉对应的数据。
有关本实施例数据存储装置所建立的数据存储结构请参照图2所述实施例的具体描述,在此不再赘述。
在一优选的实施例中,所述数据存储装置可以将上述数据存储在基于SSD硬盘的key/value存储系统中,由于基于SSD硬盘的key/value存储系统能够提供高性能的读写响应,同时可以根据数据的请求量和存储水平进行扩展,因此,将数据存储在该存储系统中便于后续的数据维护和查找。
本发明实施例为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;将所述索引档节点存储至已创建的根索引节点对应的存储介质中;具有可存储无限量数据的有益效果,提高了数据存储空间,同时也便于对已存储的数据进行查找。
请再次参照图6,图6中所述根索引节点创建模块03还用于:
识别所述根索引节点的存储介质中已存储的索引档节点的数量是否达到所述根索引节点对应的存储介质的存储阈值;在已存储的索引档节点的数量达到所述存储阈值时,新建一根索引节点,将创建的所述索引档节点存储至新建的根索引节点的存储介质中。
在索引档节点创建模块02将数据索引存储在对应的索引档节点中后,根索引节点创建模块03将该索引档节点存储在根索引节点的存储介质中时,先识别所要存储的根索引节点的存储介质中已存储的索引档节点的数量是否达到所述根索引节点的存储阈值;因为随着存储数据的不断增多,当索引档节点达到一定数量时会触发上一级存储介质对应的根索引节点分裂。当根索引节点的存储介质中已存储的索引档节点的数量达到所述根索引节点的存储阈值时,根索引节点创建模块03新建一根索引节点,并将最新的索引档节点对应的存储介质下的数据索引及该数据索引对应的存储介质下的数据保存在最新创建的根索引节点对应的存储介质中。
在根索引节点创建模块03识别所述根索引节点的存储介质中已存储的索引档节点的数量未达到所述根索引节点的存储阈值,则继续将所述索引档节点存储至已创建的根索引节点的存储介质中,即继续将新建的索引档节点存储至已创建的根索引节点的存储介质下。
图7是本发明数据存储装置第二实施例功能模块示意图;本实施例与图6所述实施例的区别是,增加了数据链创建模块04;本实施例仅对数据链创建模块04进行描述,有关本发明数据存储装置所涉及的其他模块请参照相关实施例的具体描述,在此不再赘述。
如图7所示,本发明数据存储装置还包括数据链创建模块04;
所述数据链创建模块04用于:
将所述根索引节点组成一条数据链,且所述数据链上的根索引节点按照各根索引节点被创建的时间顺序依次排列,最新被创建的根索引节点排列在所述数据链的最前端。
随着存储数据的不断增多,根索引节点创建模块03创建的根索引节点也不断增多,本实施例中,数据链创建模块04将创建的各根索引节点组成一数据链,并按照各根索引节点被创建的时间顺序在数据链上依次排列各根索引节点;将最新创建的根索引节点排列在该数据链的最前端,以此类推,最早创建的根索引节点将被排列在数据链的最末端。数据链的一实施例的结构示意图请参照图4所述实施例的具体描述,在此不再赘述。
在一优选的实施例中,由于用户的UGC数据(比如微博、空间等)随着时间的推移将不断增多,因此,数据链创建模块04可以针对同一账户建立一数据链,将该账户下对应的UGC数据都存储在同一数据链中各级目录对应的存储空间中。
本实施例通过将各根索引节点组成一数据链并按顺序排列各根索引节点,更进一步地完善了数据存储架构。
图8是本发明数据存储装置第三实施例功能模块示意图;本实施例与图7所述实施例的区别是,增加了数据转存模块05。本实施例仅对数据转存模块05进行具体描述,有关本发明数据存储装置所涉及的其他模块请参照相应实施例的具体描述,在此不再赘述。
如图8所示,本发明数据存储装置还包括数据转存模块05;
所述数据转存模块05,用于将所述数据链末端排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,并修改该转存的数据对应的存储介质。
本实施例中,由于最早存储的数据访问量最小,最新存储的数据,访问量通常最多,比如用户微博或者QQ空间上的最新动态;因此,不难理解,本实施例中,数据链末端最早创建的根索引节点对应的存储介质下存储的数据的访问量最少;因此,数据转存模块05可以将数据链末端最早创建的根索引节点对应的存储介质下存储的数据批量切换至成本更低、存储量更大的存储介质上,同时修改已存储的索引目录对该数据的指向;数据转存模块05也可以根据需要,将数据链上自末端开始排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,这样就能够极大地降低存储的成本。
本实施例将所述数据链末端排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,极大地降低了存储成本。
图9是本发明服务器一实施例功能模块示意图。如图9所示,本发明服务器包括:数据存储装置100。
所述数据存储装置100包括:数据索引创建模块01、索引档节点创建模块02和根索引节点创建模块03。
数据索引创建模块01,用于为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
本实施例中数据索引创建模块01为所存储的数据创建数据索引,将对应的数据存储至所述数据索引对应的存储介质中。在一优选的实施例中,数据索引创建模块01建立数据索引时,可以同时设定各数据索引所对应的存储介质所能够存储的最大数据量。
数据索引创建模块01创建数据索引的依据包括但不限于:
根据数据的用途创建数据索引,比如工作数据索引、娱乐数据索引;根据产生数据的应用程序创建数据索引,比如微博数据索引、社区数据索引、空间数据索引等;根据产生数据的行为者创建数据索引,比如用户行为数据索引、系统数据索引等。
索引档节点创建模块02,用于为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
本实施例中,索引档节点创建模块02根据各数据索引对应的存储介质下已存储的数据,一次性创建预设个数的索引档节点,用以存储各数据索引;同时,索引档节点创建模块02建立各索引档节点与各数据索引的映射关系,并根据建立的映射关系,将各数据索引存储至对应的索引档节点的存储介质中。
在一优选的实施例中,索引档节点创建模块02创建索引档节点时,也可以同时设置各索引档节点所能够存储的数据索引的最大值;当该索引档节点存储的数据索引对应的存储介质下,已存储的数据超过该索引档节点所能够存储的数据索引的最大值时,新建一索引档节点;将新产生的数据对应的新数据索引存储在该新建的索引档节点对应的存储介质下,同时存储新建的索引档节点与新数据索引的映射关系,便于后续方便地进行数据查找。
根索引节点创建模块03,用于将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
根索引节点创建模块03创建根索引节点,将各索引档节点存储在该根索引节点对应的存储介质中。在后续进行数据查找时,服务器可以遍历根索引节点对应的存储介质下各索引档节点,以找到对应的索引档节点。
本实施例中,每个根索引节点对应的存储介质下所允许存储的数据空间也是有限的,当一个根索引节点对应的存储介质达到允许存储的最大数据量时,新建一根索引节点,并将对应的数据按照层级关系存储在新建的根索引节点对应的目录中;所述层级关系指的是,新产生的数据存储在数据索引中,数据索引存储在索引档节点对应的存储介质下,索引档节点存储在根索引节点对应的存储介质下。
本实施例数据存储装置100在存储超大的链表数据时,其有益效果将更为明显;比如,利用本实施例数据存储装置100存储UGC数据时,可以存储无限量大的UGC数据,而不用担心因存储空间不足而不得不丢弃掉对应的数据。
有关本实施例数据存储装置100所建立的数据存储结构请参照图2所述实施例的具体描述,在此不再赘述。
在一优选的实施例中,所述数据存储装置100可以将上述数据存储在基于SSD硬盘的key/value存储系统中,由于基于SSD硬盘的key/value存储系统能够提供高性能的读写响应,同时可以根据数据的请求量和存储水平进行扩展,因此,将数据存储在该存储系统中便于后续的数据维护和查找。
本发明实施例为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;将所述索引档节点存储至已创建的根索引节点对应的存储介质中;具有可存储无限量数据的有益效果,提高了数据存储空间,同时也便于对已存储的数据进行查找。
图10是本发明包括图9所述服务器的一种系统一实施例功能模块示意图。本发明一种系统包括至少一个客户端210和至少一个如图9所述的服务器220。图10所示的该系统以包括一个客户端210和一个如图9所述的服务器220为例进行描述。
如图10所示,所述客户端210用于给用户提供软件平台,用户基于所述客户端210提供的平台自产生数据;比如,用户基于客户端210提供的软件平台如空间、微博等,发表日志、说说、上传照片等,客户端210将用户自产生内容数据上传至服务器220;服务器220存储客户端210发送的用户自产生内容数据如UGC数据。
有关服务器220的具体描述请参照上述相关实施例的具体描述,在此不再赘述。
本发明实施例提供了包括至少一个客户端和至少一个服务器的系统,该系统所包含的所述服务器用于存储所述客户端产生的用户数据;所述服务器通过为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;将所述索引档节点存储至已创建的根索引节点对应的存储介质中;具有可存储无限量数据的有益效果,提高了数据存储空间,同时也便于对已存储的数据进行查找。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在图9所示的服务器或者图10所示的系统中的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机、计算机、如图9所示的服务器、图10所示的系统,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制其专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (14)
1.一种数据存储方法,其特征在于,包括以下步骤:
为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
2.如权利要求1所述的方法,其特征在于,所述将所述索引档节点存储至已创建的根索引节点对应的存储介质中,包括:
识别所述根索引节点对应的存储介质中已存储的索引档节点的数量是否达到所述根索引节点对应的存储介质的存储阈值;
在已存储的索引档节点的数量达到所述存储阈值时,新建一根索引节点,将创建的所述索引档节点存储至新建的根索引节点的存储介质中。
3.如权利要求1或2所述的方法,其特征在于,还包括:
将所述根索引节点组成一条数据链,且所述数据链上的根索引节点按照各根索引节点被创建的时间顺序依次排列,最新被创建的根索引节点排列在所述数据链的最前端。
4.如权利要求3所述的方法,其特征在于,所述一条数据链对应存储的所有数据均为同一账户对应的用户自产生内容数据。
5.如权利要求3所述的方法,其特征在于,所述数据链中最新存储的索引档节点存储至排在所述数据链最前端的所述根索引节点对应的存储介质中。
6.如权利要求3所述的方法,其特征在于,还包括:
将所述数据链末端排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,并修改该转存的数据对应的存储介质。
7.一种数据存储装置,其特征在于,包括:
数据索引创建模块,用于为所存储的数据创建数据索引,并将对应的数据存储至所述数据索引对应的存储介质中;
索引档节点创建模块,用于为所述数据索引创建对应的索引档节点,同时建立并存储所述索引档节点与各数据索引的映射关系,按照所述映射关系将所述数据索引存储至所述索引档节点对应的存储介质中;
根索引节点创建模块,用于将所述索引档节点存储至已创建的根索引节点对应的存储介质中。
8.如权利要求7所述的装置,其特征在于,所述根索引节点创建模块还用于:
识别所述根索引节点对应的存储介质中已存储的索引档节点的数量是否达到所述根索引节点对应的存储介质的存储阈值;
在已存储的索引档节点的数量达到所述存储阈值时,新建一根索引节点,将创建的所述索引档节点存储至新建的根索引节点的存储介质中。
9.如权利要求7或8所述的装置,其特征在于,还包括:
数据链创建模块,用于:
将所述根索引节点组成一条数据链,且所述数据链上的根索引节点按照各根索引节点被创建的时间顺序依次排列,最新被创建的根索引节点排列在所述数据链的最前端。
10.如权利要求9所述的装置,其特征在于,所述数据链创建模块用于:
一条数据链存储的所有数据均为同一账户对应的用户自产生内容数据。
11.如权利要求9所述的装置,其特征在于,所述数据链创建模块用于:
将最新存储的索引档节点存储至排在所述数据链最前端的所述根索引节点对应的存储介质中。
12.如权利要求9所述的装置,其特征在于,还包括:
数据转存模块,用于将所述数据链末端排列的预设个数的所述根索引节点的存储介质中已存储的数据转存至其他存储空间,并修改该转存的数据对应的存储介质。
13.一种服务器,其特征在于,包括权利要求7-12任一项所述的数据存储装置。
14.一种系统,其特征在于,包括至少一个客户端以及至少一个如权利要求13所述的服务器,其中所述服务器用于存储所述客户端产生的用户数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310316652.1A CN104346347A (zh) | 2013-07-25 | 2013-07-25 | 数据存储方法、装置、服务器及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310316652.1A CN104346347A (zh) | 2013-07-25 | 2013-07-25 | 数据存储方法、装置、服务器及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104346347A true CN104346347A (zh) | 2015-02-11 |
Family
ID=52501976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310316652.1A Pending CN104346347A (zh) | 2013-07-25 | 2013-07-25 | 数据存储方法、装置、服务器及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346347A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243099A (zh) * | 2015-09-17 | 2016-01-13 | 成都优译信息技术有限公司 | 一种基于翻译文件的大数据实时存储方法 |
CN106528650A (zh) * | 2016-10-14 | 2017-03-22 | 努比亚技术有限公司 | 一种资源查询方法及终端 |
CN106777293A (zh) * | 2016-12-29 | 2017-05-31 | 北京奇虎科技有限公司 | 数据存储和查找方法及装置 |
CN107729570A (zh) * | 2017-11-20 | 2018-02-23 | 北京百度网讯科技有限公司 | 用于服务器的数据迁移方法和装置 |
CN108829740A (zh) * | 2018-05-23 | 2018-11-16 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN109299348A (zh) * | 2018-11-28 | 2019-02-01 | 北京字节跳动网络技术有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551807A (zh) * | 2009-05-07 | 2009-10-07 | 山东中创软件商用中间件股份有限公司 | 文件数据库多级索引技术 |
CN102725754A (zh) * | 2011-12-26 | 2012-10-10 | 华为技术有限公司 | 一种索引数据处理方法及设备 |
CN102890722A (zh) * | 2012-10-25 | 2013-01-23 | 国家电网公司 | 应用于时序历史数据库的索引方法 |
CN103186617A (zh) * | 2011-12-30 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种存储数据的方法和装置 |
-
2013
- 2013-07-25 CN CN201310316652.1A patent/CN104346347A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101551807A (zh) * | 2009-05-07 | 2009-10-07 | 山东中创软件商用中间件股份有限公司 | 文件数据库多级索引技术 |
CN102725754A (zh) * | 2011-12-26 | 2012-10-10 | 华为技术有限公司 | 一种索引数据处理方法及设备 |
CN103186617A (zh) * | 2011-12-30 | 2013-07-03 | 北京新媒传信科技有限公司 | 一种存储数据的方法和装置 |
CN102890722A (zh) * | 2012-10-25 | 2013-01-23 | 国家电网公司 | 应用于时序历史数据库的索引方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243099A (zh) * | 2015-09-17 | 2016-01-13 | 成都优译信息技术有限公司 | 一种基于翻译文件的大数据实时存储方法 |
CN106528650A (zh) * | 2016-10-14 | 2017-03-22 | 努比亚技术有限公司 | 一种资源查询方法及终端 |
CN106528650B (zh) * | 2016-10-14 | 2019-06-21 | 努比亚技术有限公司 | 一种资源查询方法及终端 |
CN106777293A (zh) * | 2016-12-29 | 2017-05-31 | 北京奇虎科技有限公司 | 数据存储和查找方法及装置 |
CN107729570A (zh) * | 2017-11-20 | 2018-02-23 | 北京百度网讯科技有限公司 | 用于服务器的数据迁移方法和装置 |
CN108829740A (zh) * | 2018-05-23 | 2018-11-16 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN108829740B (zh) * | 2018-05-23 | 2021-11-02 | 摇了购(武汉)电子商务有限公司 | 数据存储方法和装置 |
CN109299348A (zh) * | 2018-11-28 | 2019-02-01 | 北京字节跳动网络技术有限公司 | 一种数据查询方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346347A (zh) | 数据存储方法、装置、服务器及系统 | |
CN107515878B (zh) | 一种数据索引的管理方法及装置 | |
US20170031948A1 (en) | File synchronization method, server, and terminal | |
CN103345521B (zh) | 一种在哈希表数据库中处理键值的方法和装置 | |
US20100114843A1 (en) | Index Compression In Databases | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
EP2924594A1 (en) | Data encoding and corresponding data structure in a column-store database | |
CN106156070B (zh) | 一种查询方法、文件合并方法与相关装置 | |
CN102243660A (zh) | 一种数据访问方法及设备 | |
CN106599091B (zh) | 基于键值存储的rdf图结构存储和索引方法 | |
CN103049574B (zh) | 实现文件动态副本的键值文件系统及方法 | |
CN105224532A (zh) | 数据处理方法及装置 | |
CN106897280A (zh) | 数据查询方法及装置 | |
CN103593447B (zh) | 用于数据库表的数据处理方法和装置 | |
CN107423321B (zh) | 适用大批量小文件云存储的方法及其装置 | |
CN104408128B (zh) | 一种基于b+树异步更新索引的读优化方法 | |
CN104699815A (zh) | 数据处理方法和系统 | |
CN105138527A (zh) | 一种数据分类回归方法及装置 | |
CN103930890A (zh) | 数据处理方法、装置及重删处理器 | |
CN104462080A (zh) | 针对检索结果进行分组统计的索引结构创建方法和系统 | |
CN102831181B (zh) | 缓存文件的目录刷新方法 | |
CN112527836A (zh) | 一种基于t-box平台的大数据查询方法 | |
CN110413724B (zh) | 一种数据检索方法和装置 | |
CN112231398A (zh) | 数据存储方法、装置、设备及存储介质 | |
CN112181302A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150211 |