CN102567419B - 基于树结构的海量数据存储装置及方法 - Google Patents
基于树结构的海量数据存储装置及方法 Download PDFInfo
- Publication number
- CN102567419B CN102567419B CN201010621365.8A CN201010621365A CN102567419B CN 102567419 B CN102567419 B CN 102567419B CN 201010621365 A CN201010621365 A CN 201010621365A CN 102567419 B CN102567419 B CN 102567419B
- Authority
- CN
- China
- Prior art keywords
- data
- tree construction
- node
- message
- data message
- 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.)
- Active
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
-
- 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
- G06F16/2246—Trees, e.g. B+trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于树结构的海量数据存储装置及方法。其中,所述基于树结构的海量数据存储装置包括输入/输出模块、数据创建模块、数据查询模块、数据维护模块、存储器和主控制模块。本发明所公开的基于树结构的海量数据存储装置及方法易于扩展、节省存储空间,能够显著提高查询效率。
Description
技术领域
本发明涉及数据存储装置及方法,更具体地,涉及基于树结构的海量数据存储装置及方法。
背景技术
目前,随着信息数据处理需求的日益增长以及不同领域的业务种类的日益丰富,海量数据的存储及查询(例如金融卡的BIN(BankIdentification Number,即***)的存储)变得越来越重要。
通常,在现有的海量数据存储装置及方法中,采用容器(例如结构体)来存储各个数据,即每个不同的数据信息存储在不同的容器中,并且所述多个容器以顺序方式或链表方式存储。在这种数据存储结构中,每个不同的数据信息占用的存储空间是不能复用的。此外,在现有的数据存储结构中,如果需要存储的数据量为n,则其查询操作的时间复杂度大约为O(n),甚至有时会达到O(nlogn)。
然而,由于随着业务种类的日益丰富,需要存储的数据信息也越来越多,同时基于具体应用需求的数据信息格式(例如结构,位数等)的变化也越来越频繁,从而需要经常对数据信息的存储格式进行动态的调整。
因此,上述现有的技术方案存在如下问题:当在特定应用领域中(例如金融卡***存储)待存储的数据量显著增长时,所需的存储空间将产生量级的增加,从而会消耗大量资源;同时,在数据量显著增长的情况下,查询所需的时间增加,从而会降低整个应用***的效率和性能;当需要改变数据信息的格式时,现有的方式需要对容器的基础结构(例如结构体的定义)进行调整,从而导致***扩展能力不足或者扩展过程复杂。
因此,存在如下需求:提供一种易于扩展、节省存储空间,能够显著提高查询效率的基于树结构的海量数据存储装置及方法。
发明内容
为了解决上述现有技术方案所存在的缺陷,本发明提出了一种基于树结构的海量数据存储装置及方法。
本发明的目的是通过以下技术方案实现的:
一种基于树结构的海量数据存储装置,所述基于树结构的海量数据存储装置包括:
输入/输出模块,所述输入/输出模块用于从应用服务器处接收请求信息并将所述请求信息传送给主控制模块,以及将结果数据或响应信息传送回所述应用服务器;
数据创建模块,所述数据创建模块用于根据来自所述主控制模块的指令和初始数据信息创建所述树结构并将创建的所述树结构存储在存储器中,以及将指向所述树结构的根节点的指针传送回所述主控制模块;
数据查询模块,所述数据查询模块用于根据来自所述主控制模块的指令和数据信息并基于针对所述树结构的预定的查询规则完成指定的查询过程,并将查询结果传送回所述主控制模块;
数据维护模块,所述数据维护模块用于根据来自所述主控制模块的指令和数据信息完成针对所述树结构的维护操作,并将指示操作结果的响应信息传送回所述主控制模块;
存储器,所述存储器用于存储所述树结构;
主控制模块,所述主控制模块用于接收并解析由所述输入/输出模块传送的请求信息,并根据解析结果构造包括数据信息和指令的报文,并将所述报文传送到对应的处理模块,以及将处理模块返回的结果数据或响应信息传送回所述输入/输出模块。
在上面所公开的方案中,优选地,所述数据维护模块进一步包括:
修改单元,所述修改单元用于根据来自所述主控制模块的指令和数据信息查询所述树结构,并修改匹配到的相应的节点的值;
删除单元,所述删除单元用于根据来自所述主控制模块2的指令和数据信息查询所述树结构,并在匹配成功时改变匹配到的最后一个节点的标志位的值;
增加单元,所述增加单元用于根据来自所述主控制模块的指令和数据信息查询所述树结构,并创建没有匹配到的节点。
在上面所公开的方案中,优选地,所述请求信息包括数据信息和/或操作命令信息。
在上面所公开的方案中,优选地,所述树结构是十叉树。
在上面所公开的方案中,优选地,所述十叉树中的每个父节点包括多个指针,所述多个指针分别指向其各个子节点。
在上面所公开的方案中,优选地,所述十叉树中的每个节点包括数据位和标志位,其中所述数据位用于存储对应于所述数据信息的一位数据,所述标志位的值是0和1中的一个。
在上面所公开的方案中,优选地,所述十叉树的根节点的数据位和标志位的值均被设置为0。
在上面所公开的方案中,优选地,所述十叉树中对应于数据信息的最后一个数据位的节点的标志位的值被设置为1,所述十叉树中的其余节点的标志位的值被设置为0。
在上面所公开的方案中,优选地,所述十叉树的每一节点在树结构中所处的层级对应于所述数据信息的每一位在所述数据信息中的顺序。
本发明的目的还通过以下技术方案实现:
一种基于树结构的海量数据存储方法,所述基于树结构的海量数据存储方法包括如下步骤:
(A1)从应用服务器处接收数据信息及初始化指令;
(A2)根据所述初始化指令并基于树结构存储所述数据信息。
在上面所公开的方案中,优选地,所述方法进一步包括:
(A3)接收来自所述应用服务器的查询指令和待查询的数据信息,并基于所述查询指令和待查询的数据信息以及针对所述树结构的预定的查询规则完成指定的查询操作,并将查询结果传送回所述应用服务器。
在上面所公开的方案中,优选地,所述方法进一步包括:
(A4)接收来自所述应用服务器的维护指令和待维护的数据信息,并基于所述维护指令和待维护的数据信息完成针对所述树结构的维护操作,并将指示操作结果的响应信息传送回所述应用服务器。
在上面所公开的方案中,优选地,所述步骤(A4)进一步包括:
(B1)当所述维护指令是修改命令时,根据所述修改命令和待维护的数据信息查询所述树结构,并修改匹配到的相应的节点的值;
(B2)当所述维护指令是删除命令时,根据所述删除命令和待维护的数据信息查询所述树结构,并在匹配成功时改变匹配到的最后一个节点的标志位的值;
(B3)当所述维护指令是增加命令时,根据所述增加命令和待维护的数据信息查询所述树结构,并创建没有匹配到的节点。
在上面所公开的方案中,优选地,所述树结构是十叉树。
在上面所公开的方案中,优选地,所述十叉树中的每个父节点包括多个指针,所述多个指针分别指向其各个子节点。
在上面所公开的方案中,优选地,所述十叉树中的每个节点包括数据位和标志位,其中所述数据位用于存储对应于所述数据信息的一位数据,所述标志位的值是0和1中的一个。
在上面所公开的方案中,优选地,所述十叉树的根节点的数据位和标志位的值均被设置为0。
在上面所公开的方案中,优选地,所述十叉树中对应于数据信息的最后一个数据位的节点的标志位的值被设置为1,所述十叉树中的其余节点的标志位的值被设置为0。
在上面所公开的方案中,优选地,所述十叉树的每一节点在树结构中所处的层级对应于所述数据信息的每一位在所述数据信息中的顺序。
本发明所公开的基于树结构的海量数据存储装置及方法具有如下优点:易于扩展;节省存储空间;能够显著提高查询效率。
附图说明
结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1为根据本发明的实施例的基于树结构的海量数据存储装置的结构图;
图2为根据本发明的实施例的十叉树结构的示意图;
图3为根据本发明的实施例的基于树结构的海量数据存储方法的流程图;
具体实施方式
图1是根据本发明的实施例的基于树结构的海量数据存储装置的结构图。如图1所示,本发明所公开的数据存储装置1用于基于树结构存储海量数据。如图1所述,所述数据存储装置1包括主控制模块2、输入/输出模块3、数据创建模块4、数据查询模块5、数据维护模块6和存储器7。其中,所述输入/输出模块3用于从应用服务器处接收请求信息并将所述请求信息传送给主控制模块2,以及将结果数据或响应信息传送回所述应用服务器。所述数据创建模块4用于根据来自所述主控制模块2的指令和初始数据信息创建所述树结构并将创建的所述树结构存储在存储器7中,以及将指向所述树结构的根节点的指针传送回所述主控制模块2。所述数据查询模块5用于根据来自所述主控制模块2的指令和数据信息并基于针对所述树结构的预定的查询规则完成指定的查询过程,并将查询结果传送回所述主控制模块2。所述数据维护模块6用于根据来自所述主控制模块2的指令和数据信息完成针对所述树结构的维护操作,并将指示操作结果的响应信息传送回所述主控制模块2。所述存储器7用于存储所述树结构。所述主控制模块2用于接收并解析由所述输入/输出模块3传送的请求信息,并根据解析结果构造包括数据信息和指令的报文,并将所述报文传送到对应的处理模块,以及将处理模块返回的结果数据或响应信息传送回所述输入/输出模块3。
如图1所示,在本发明所公开的数据存储装置中,优选地,所述数据维护模块6进一步包括修改单元8、删除单元9和增加单元10。其中,所述修改单元8用于根据来自所述主控制模块2的指令和数据信息查询所述树结构,并修改匹配到的相应的节点的值。所述删除单元9用于根据来自所述主控制模块2的指令和数据信息查询所述树结构,并在匹配成功时改变匹配到的最后一个节点的标志位的值。所述增加单元10用于根据来自所述主控制模块2的指令和数据信息查询所述树结构,并创建没有匹配到的节点。
优选地,在本发明所公开的数据存储装置中,所述请求信息包括数据信息和/或操作命令信息。
图2是根据本发明的实施例的十叉树结构的示意图。如图2所示,优选地,在本发明所公开的数据存储装置中,所述树结构是十叉树(即树中的每个父节点至多具有10个子节点)。由于需要存储的数据信息(例如***)是数字集,而每位数字是0-9中的一个,因此所述树结构被选择为十叉树。
如图2所示,优选地,在本发明所公开的数据存储装置中,所述十叉树中的每个父节点包括多个指针,所述多个指针分别指向其各个子节点。
如图2所示,优选地,在本发明所公开的数据存储装置中,所述十叉树中的每个节点包括数据位和标志位,其中所述数据位用于存储对应于所述数据信息(例如***)的一位数据,所述标志位的值是0和1中的一个。
如图2所示,优选地,在本发明所公开的数据存储装置中,所述十叉树的根节点被设置为(0,0)(即所述根节点的数据位和标志位的值均被设置为0)。
如图2所示,优选地,在本发明所公开的数据存储装置中,所述十叉树中对应于数据信息的最后一个数据位的节点的标志位的值被设置为1,所述十叉树中的其余节点的标志位的值被设置为0。
优选地,在本发明所公开的数据存储装置中,所述十叉树的每一级节点对应于所述数据信息的每一位,即每一节点在树结构中所处的层级对应于所述数据信息的每一位在所述数据信息中的顺序(例如第1级子节点对应于数据信息的第1位数据)。
优选地,所述预定的查询规则是自根向上的结合树的查询算法,从而能够基于数据匹配完成所述树结构的遍历。本领域的技术人员应该理解,可以使用能够完成相同功能的任何其它查询算法。
如图1-2所示,示例性地,本发明所公开的数据存储装置的树结构的创建过程如下:创建根节点(所述根节点被设置为(0,0));从根节点出发,对于每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构;如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则基于所述树的结构创建该位数据对应的节点;以此类推,直至对应于每一个所述数据信息的最后一位的节点均已建立。图2示意性地示出了根据数据信息集合[42230,42231,42236,42453,42457,6247,6255,6256,6258](即包括上述9个数据信息)构建的十叉树结构。由上可知,在本发明所公开的数据存储装置中,以树结构按位存储每一个数据信息,即不同的数据信息(例如***)中相同的数字有很大一部分是占用相同的空间,因此可以显著节省存储空间。
如图1-2所示,示例性地,本发明所公开的数据存储装置的树结构的查询过程如下:从根节点出发,对于待查询每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果匹配到对应于所述数据信息的最后一位数字的节点并且所述节点的标志位的值为1,则查询成功;否则,查询失败。由上可知,在本发明所公开的数据存储装置中,所述十叉树的查询效率与基数N(即数据信息的总量)无关,而与所述数据信息的长度相关,即不管数据信息总量的大小,最多只会比较数据信息的长度次,因此可以显著地提高整个***的性能和效率。
如图1-2所示,示例性地,本发明所公开的数据存储装置的树结构的增加过程如下:从根节点出发,对于待增加的每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则基于所述树的结构创建该位数据对应的节点;以此类推,直至对应于每一个所述数据信息的最后一位数字的节点均已建立。
如图1-2所示,示例性地,本发明所公开的数据存储装置的树结构的删除过程如下:从根节点出发,对于待删除的每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则退出;如果匹配到对应于每一个所述数据信息的最后一位数字的节点,则将该节点的标志位的值设置为0;
如图1-2所示,示例性地,当已存在的数据信息的数字值需要改变时,本发明所公开的数据存储装置的树结构的修改过程如下:从根节点出发,对于待修改的每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则将所述节点的数据位设置为新的值并继续向下遍历;以此类推,直至所有需修改的节点的数据位均被设置为新的值。其中,旧的数据信息与新的数据信息的对应关系(即将旧的数据信息修改为对应的新的数据信息)包含在所述请求信息中。
如图1-2所示,示例性地,当已存在的数据信息的长度需要改变时,本发明所公开的数据存储装置的树结构的修改过程如下:(1)当数据信息的长度减短时,修改过程如下:从根节点出发,对于每一个新的减短的数据信息(例如更短的***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则退出;如果匹配到对应于每一个所述新的数据信息的最后一位数字的节点,则将该节点的标志位的值设置为1;(2)当数据信息的长度加长时,修改过程如下:从根节点出发,对于每一个新的加长的数据信息(例如更长的***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则基于所述树的结构创建该位数据对应的节点;以此类推,直至对应于每一个所述新的数据信息的最后一位数字的节点均已建立。
由上可知,在本发明所公开的数据存储装置中,以树结构按位存储每一个数据信息,因此当需要对数据信息(例如***)进行增加,删除以及修改操作时,只需对相应的节点进行操作即可,而不用修改基础数据结构,因而***易于扩展。
图3是根据本发明的实施例的基于树结构的海量数据存储方法的流程图。如图3所示,本发明所公开的基于树结构的海量数据存储方法包括如下步骤:(A1)从应用服务器处接收数据信息及初始化指令;(A2)根据所述初始化指令并基于树结构存储所述数据信息。
如图3所示,本发明所公开的基于树结构的海量数据存储方法进一步包括:(A3)接收来自所述应用服务器的查询指令和待查询的数据信息,并基于所述查询指令和待查询的数据信息以及针对所述树结构的预定的查询规则完成指定的查询操作,并将查询结果传送回所述应用服务器。
如图3所示,本发明所公开的基于树结构的海量数据存储方法进一步包括:(A4)接收来自所述应用服务器的维护指令和待维护的数据信息,并基于所述维护指令和待维护的数据信息完成针对所述树结构的维护操作,并将指示操作结果的响应信息传送回所述应用服务器。
如图3所示,在本发明所公开的基于树结构的海量数据存储方法中,所述步骤(A4)进一步包括:(B1)当所述维护指令是修改命令时,根据所述修改命令和待维护的数据信息查询所述树结构,并修改匹配到的相应的节点的值;(B2)当所述维护指令是删除命令时,根据所述删除命令和待维护的数据信息查询所述树结构,并在匹配成功时改变匹配到的最后一个节点的标志位的值;(B3)当所述维护指令是增加命令时,根据所述增加命令和待维护的数据信息查询所述树结构,并创建没有匹配到的节点。
优选地,在本发明所公开的数据存储方法中,所述树结构是十叉树(即树中的每个父节点至多具有10个子节点)。由于需要存储的数据信息(例如***)是数字集,而每位数字是0-9中的一个,因此所述树结构被选择为十叉树。
优选地,在本发明所公开的数据存储方法中,所述十叉树中的每个父节点包括多个指针,所述多个指针分别指向其各个子节点。
优选地,在本发明所公开的数据存储方法中,所述十叉树中的每个节点包括数据位和标志位,其中所述数据位用于存储对应于所述数据信息(例如***)的一位数据,所述标志位的值是0和1中的一个。
优选地,在本发明所公开的数据存储方法中,所述十叉树的根节点被设置为(0,0)(即所述根节点的数据位和标志位的值均被设置为0)。
优选地,在本发明所公开的数据存储方法中,所述十叉树中对应于数据信息的最后一个数据位的节点的标志位的值被设置为1,所述十叉树中的其余节点的标志位的值被设置为0。
优选地,在本发明所公开的数据存储方法中,所述十叉树的每一级节点对应于所述数据信息的每一位,即每一节点在树结构中所处的层级对应于所述数据信息的每一位在所述数据信息中的顺序(例如第1级子节点对应于数据信息的第1位数据)。
优选地,所述预定的查询规则是自根向上的结合树的查询算法,从而能够基于数据匹配完成所述树结构的遍历。本领域的技术人员应该理解,可以使用能够完成相同功能的任何其它查询算法。
示例性地,在本发明所公开的数据存储方法中,所述树结构的创建过程如下:创建根节点(所述根节点被设置为(0,0));从根节点出发,对于每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构;如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则基于所述树的结构创建该位数据对应的节点;以此类推,直至对应于每一个所述数据信息的最后一位的节点均已建立。由上可知,在本发明所公开的数据存储方法中,以树结构按位存储每一个数据信息,即不同的数据信息(例如***)中相同的数字有很大一部分是占用相同的空间,因此可以显著节省存储空间。
示例性地,在本发明所公开的数据存储方法中,所述树结构的查询过程如下:从根节点出发,对于待查询每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果匹配到对应于所述数据信息的最后一位数字的节点并且所述节点的标志位的值为1,则查询成功;否则,查询失败。由上可知,在本发明所公开的数据存储方法中,所述十叉树的查询效率与基数N(即数据信息的总量)无关,而与所述数据信息的长度相关,即不管数据信息总量的大小,最多只会比较数据信息的长度次,因此可以显著地提高整个***的性能和效率。
示例性地,在本发明所公开的数据存储方法中,所述树结构的增加过程如下:从根节点出发,对于待增加的每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则基于所述树的结构创建该位数据对应的节点;以此类推,直至对应于每一个所述数据信息的最后一位数字的节点均已建立。
示例性地,在本发明所公开的数据存储方法中,所述树结构的删除过程如下:从根节点出发,对于待删除的每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则退出;如果匹配到对应于每一个所述数据信息的最后一位数字的节点,则将该节点的标志位的值设置为0;
示例性地,当已存在的数据信息的数字值需要改变时,在本发明所公开的数据存储方法中,所述树结构的修改过程如下:从根节点出发,对于待修改的每一个数据信息(例如每一个***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则将所述节点的数据位设置为新的值并继续向下遍历;以此类推,直至所有需修改的节点的数据位均被设置为新的值。其中,旧的数据信息与新的数据信息的对应关系(即将旧的数据信息修改为对应的新的数据信息)包含在所述请求信息中。
示例性地,当已存在的数据信息的长度需要改变时,在本发明所公开的数据存储方法中,所述树结构的修改过程如下:(1)当数据信息的长度减短时,修改过程如下:从根节点出发,对于每一个新的减短的数据信息(例如更短的***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则退出;如果匹配到对应于每一个所述新的数据信息的最后一位数字的节点,则将该节点的标志位的值设置为1;(2)当数据信息的长度加长时,修改过程如下:从根节点出发,对于每一个新的加长的数据信息(例如更长的***)中的每一位数据遍历所述树结构(即依次匹配树上的节点);如果针对某一位数据存在匹配的节点,则继续向下遍历;如果针对某一位数据不存在匹配的节点,则基于所述树的结构创建该位数据对应的节点;以此类推,直至对应于每一个所述新的数据信息的最后一位数字的节点均已建立。
由上可知,在本发明所公开的数据存储方法中,以树结构按位存储每一个数据信息,因此当需要对数据信息(例如***)进行增加,删除以及修改操作时,只需对相应的节点进行操作即可,而不用修改基础数据结构,因而***易于扩展。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (7)
1.一种基于树结构的海量数据存储装置,所述基于树结构的海量数据存储装置包括:
输入/输出模块,所述输入/输出模块用于从应用服务器处接收请求信息并将所述请求信息传送给主控制模块,以及将结果数据或响应信息传送回所述应用服务器;
数据创建模块,所述数据创建模块用于根据来自所述主控制模块的指令和初始数据信息创建所述树结构并将创建的所述树结构存储在存储器中,以及将指向所述树结构的根节点的指针传送回所述主控制模块;
数据查询模块,所述数据查询模块用于根据来自所述主控制模块的指令和数据信息并基于针对所述树结构的预定的查询规则完成指定的查询过程,并将查询结果传送回所述主控制模块;
数据维护模块,所述数据维护模块用于根据来自所述主控制模块的指令和数据信息完成针对所述树结构的维护操作,并将指示操作结果的响应信息传送回所述主控制模块;
存储器,所述存储器用于存储所述树结构;
主控制模块,所述主控制模块用于接收并解析由所述输入/输出模块传送的请求信息,并根据解析结果构造包括数据信息和指令的报文,并将所述报文传送到对应的处理模块,以及将处理模块返回的结果数据或响应信息传送回所述输入/输出模块;
其中,所述树结构是十叉树,并且所述十叉树的每一节点在树结构中所处的层级对应于所述数据信息的每一位在所述数据信息中的顺序;
其中,所述十叉树中的每个父节点包括多个指针,所述多个指针分别指向其各个子节点,所述十叉树中的每个节点包括数据位和标志位,其中所述数据位用于存储对应于所述数据信息的一位数据,所述标志位的值是0和1中的一个,所述十叉树的根节点的数据位和标志位的值均被设置为0,所述十叉树中对应于数据信息的最后一个数据位的节点的标志位的值被设置为1,所述十叉树中的其余节点的标志位的值被设置为0。
2.根据权利要求1所述的基于树结构的海量数据存储装置,其特征在于,所述数据维护模块进一步包括:
修改单元,所述修改单元用于根据来自所述主控制模块的指令和数据信息查询所述树结构,并修改匹配到的相应的节点的值;
删除单元,所述删除单元用于根据来自所述主控制模块的指令和数据信息查询所述树结构,并在匹配成功时改变匹配到的最后一个节点的标志位的值;
增加单元,所述增加单元用于根据来自所述主控制模块的指令和数据信息查询所述树结构,并创建没有匹配到的节点。
3.根据权利要求2所述的基于树结构的海量数据存储装置,其特征在于,所述请求信息包括数据信息和/或操作命令信息。
4.一种基于树结构的海量数据存储方法,所述基于树结构的海量数据存储方法包括如下步骤:
(A1)从应用服务器处接收数据信息及初始化指令;
(A2)根据所述初始化指令并基于树结构存储所述数据信息;
其中,所述树结构是十叉树,并且所述十叉树的每一节点在树结构中所处的层级对应于所述数据信息的每一位在所述数据信息中的顺序;
其中,所述十叉树中的每个父节点包括多个指针,所述多个指针分别指向其各个子节点,所述十叉树中的每个节点包括数据位和标志位,其中所述数据位用于存储对应于所述数据信息的一位数据,所述标志位的值是0和1中的一个,所述十叉树的根节点的数据位和标志位的值均被设置为0,所述十叉树中对应于数据信息的最后一个数据位的节点的标志位的值被设置为1,所述十叉树中的其余节点的标志位的值被设置为0。
5.根据权利要求4所述的基于树结构的海量数据存储方法,其特征在于,所述方法进一步包括:
(A3)接收来自所述应用服务器的查询指令和待查询的数据信息,并基于所述查询指令和待查询的数据信息以及针对所述树结构的预定的查询规则完成指定的查询操作,并将查询结果传送回所述应用服务器。
6.根据权利要求5所述的基于树结构的海量数据存储方法,其特征在于,所述方法进一步包括:
(A4)接收来自所述应用服务器的维护指令和待维护的数据信息,并基于所述维护指令和待维护的数据信息完成针对所述树结构的维护操作,并将指示操作结果的响应信息传送回所述应用服务器。
7.根据权利要求6所述的基于树结构的海量数据存储方法,其特征在于,所述步骤(A4)进一步包括:
(B1)当所述维护指令是修改命令时,根据所述修改命令和待维护的数据信息查询所述树结构,并修改匹配到的相应的节点的值;
(B2)当所述维护指令是删除命令时,根据所述删除命令和待维护的数据信息查询所述树结构,并在匹配成功时改变匹配到的最后一个节点的标志位的值;
(B3)当所述维护指令是增加命令时,根据所述增加命令和待维护的数据信息查询所述树结构,并创建没有匹配到的节点。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010621365.8A CN102567419B (zh) | 2010-12-31 | 2010-12-31 | 基于树结构的海量数据存储装置及方法 |
JP2013546563A JP2014502756A (ja) | 2010-12-31 | 2011-12-29 | ツリー構造に基づくマスデータストレージの装置および方法 |
US13/977,649 US20140052710A1 (en) | 2010-12-31 | 2011-12-29 | Device and method of mass data storage based on tree structure |
EP11853163.1A EP2660729A4 (en) | 2010-12-31 | 2011-12-29 | DEVICE AND METHOD FOR STORING MASS DATA USING ARBORESCENT STRUCTURE |
PCT/CN2011/002209 WO2012088767A1 (zh) | 2010-12-31 | 2011-12-29 | 基于树结构的海量数据存储装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010621365.8A CN102567419B (zh) | 2010-12-31 | 2010-12-31 | 基于树结构的海量数据存储装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567419A CN102567419A (zh) | 2012-07-11 |
CN102567419B true CN102567419B (zh) | 2014-07-16 |
Family
ID=46382252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010621365.8A Active CN102567419B (zh) | 2010-12-31 | 2010-12-31 | 基于树结构的海量数据存储装置及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20140052710A1 (zh) |
EP (1) | EP2660729A4 (zh) |
JP (1) | JP2014502756A (zh) |
CN (1) | CN102567419B (zh) |
WO (1) | WO2012088767A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399904B (zh) * | 2013-07-26 | 2018-10-02 | 浙江吉利汽车研究院有限公司 | 数据处理方法及数据处理*** |
TW201508283A (zh) * | 2013-08-29 | 2015-03-01 | Hon Hai Prec Ind Co Ltd | 儲存裝置測試方法及系統 |
CN106802927A (zh) * | 2016-12-22 | 2017-06-06 | 上海大汉三通数据通信有限公司 | 一种数据存储方法及查询方法 |
CN107067323B (zh) * | 2016-12-29 | 2021-10-26 | ***股份有限公司 | 金融数据处理***以及批量贷记交易分发***及其方法 |
KR102109467B1 (ko) * | 2019-04-30 | 2020-05-12 | 주식회사 데이타젠네트웍스 | 업무영역의 상관관계를 이용한 데이터 식별 시스템 및 방법 |
CN114465741B (zh) * | 2020-11-09 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 一种异常检测方法、装置、计算机设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1260090A (zh) * | 1997-02-21 | 2000-07-12 | 艾利森电话股份有限公司 | 因特网上的数据高速缓冲存储器 |
CN101398869A (zh) * | 2008-10-07 | 2009-04-01 | 深圳市蓝韵实业有限公司 | 一种海量数据存储方法 |
CN101866305A (zh) * | 2010-05-21 | 2010-10-20 | 武汉大学 | 支持数据查询和快速恢复的连续数据保护方法及*** |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5628002A (en) * | 1992-11-02 | 1997-05-06 | Woodrum; Luther J. | Binary tree flag bit arrangement and partitioning method and apparatus |
US5644763A (en) * | 1995-06-28 | 1997-07-01 | Sybase, Inc. | Database system with improved methods for B-tree maintenance |
JP3630057B2 (ja) * | 2000-01-26 | 2005-03-16 | 日本電気株式会社 | 検索用データ構造構築方法、その装置、及び機械可読プログラム記録媒体 |
US6907032B2 (en) * | 2000-03-06 | 2005-06-14 | Goremote Internet Communications, Inc. | Method for selecting terminating gateways for an internet telephone call using a tree search |
US6785687B2 (en) * | 2001-06-04 | 2004-08-31 | Hewlett-Packard Development Company, L.P. | System for and method of efficient, expandable storage and retrieval of small datasets |
US20040230690A1 (en) * | 2003-05-17 | 2004-11-18 | Teh Jin Teik | Protocol for data hosting servers |
CA2573632A1 (en) * | 2004-07-12 | 2006-01-19 | Fexco | Direct currency conversion |
US8645350B2 (en) * | 2008-07-11 | 2014-02-04 | Adobe Systems Incorporated | Dictionary compilations |
US8095677B1 (en) * | 2009-05-21 | 2012-01-10 | Sendmail, Inc. | Configuration rule generation with compressed address sets |
US8838563B2 (en) * | 2010-07-08 | 2014-09-16 | Xconnect Global Networks Limited | Method and system for routing a telephone call |
US8204887B2 (en) * | 2010-08-27 | 2012-06-19 | Hewlett-Packard Development Company, L.P. | System and method for subsequence matching |
-
2010
- 2010-12-31 CN CN201010621365.8A patent/CN102567419B/zh active Active
-
2011
- 2011-12-29 US US13/977,649 patent/US20140052710A1/en not_active Abandoned
- 2011-12-29 EP EP11853163.1A patent/EP2660729A4/en not_active Ceased
- 2011-12-29 JP JP2013546563A patent/JP2014502756A/ja not_active Ceased
- 2011-12-29 WO PCT/CN2011/002209 patent/WO2012088767A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1260090A (zh) * | 1997-02-21 | 2000-07-12 | 艾利森电话股份有限公司 | 因特网上的数据高速缓冲存储器 |
CN101398869A (zh) * | 2008-10-07 | 2009-04-01 | 深圳市蓝韵实业有限公司 | 一种海量数据存储方法 |
CN101866305A (zh) * | 2010-05-21 | 2010-10-20 | 武汉大学 | 支持数据查询和快速恢复的连续数据保护方法及*** |
Non-Patent Citations (1)
Title |
---|
CN1O1866305A 2010.10.20 |
Also Published As
Publication number | Publication date |
---|---|
JP2014502756A (ja) | 2014-02-03 |
CN102567419A (zh) | 2012-07-11 |
EP2660729A4 (en) | 2016-10-19 |
WO2012088767A1 (zh) | 2012-07-05 |
US20140052710A1 (en) | 2014-02-20 |
EP2660729A1 (en) | 2013-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567419B (zh) | 基于树结构的海量数据存储装置及方法 | |
CN103150394B (zh) | 面向高性能计算的分布式文件***元数据管理方法 | |
US9495398B2 (en) | Index for hybrid database | |
CN102799679B (zh) | 基于Hadoop的海量空间数据索引更新***及方法 | |
CN102103497A (zh) | 有限状态机执行装置和方法、在应用中的建立和使用方法 | |
CN104731569B (zh) | 一种数据处理方法及相关设备 | |
CN102169507A (zh) | 一种分布式实时搜索引擎 | |
CN103177027A (zh) | 获取动态Feed索引的方法和*** | |
CN103246700A (zh) | 基于HBase的海量小文件低延时存储方法 | |
US9665612B2 (en) | Run-time decision of bulk insert for massive data loading | |
CN110347651A (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及*** | |
CN103051543A (zh) | 一种路由前缀的处理、查找、增加及删除方法 | |
CN105117433A (zh) | 一种基于Hive解析HFile统计查询HBase的方法和*** | |
US9065469B2 (en) | Compression match enumeration | |
CN104111924A (zh) | 一种数据库*** | |
CN105389367A (zh) | 基于Mongo数据库的电网图形多时态多级分布式存储方法 | |
US9292549B2 (en) | Method and system for index serialization | |
CN101788990A (zh) | Trie树双数组的全局优化构造方法及*** | |
CN102253990A (zh) | 一种交互应用多媒体数据的查询方法及其装置 | |
CN103310008A (zh) | 一种云控制服务器及其文件索引方法 | |
CN103699627B (zh) | 一种基于Hadoop集群的超大文件并行数据块定位方法 | |
CN116595106A (zh) | 一种用户分群方法、设备及存储介质 | |
US20150347409A1 (en) | Convert Command Into a BULK Load Operation | |
CN105354310B (zh) | 基于MapReduce的地图瓦片存储布局优化方法 |
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 |