CN103793391B - 远端动态数据的处理与验证方法和系统 - Google Patents
远端动态数据的处理与验证方法和系统 Download PDFInfo
- Publication number
- CN103793391B CN103793391B CN201210422636.6A CN201210422636A CN103793391B CN 103793391 B CN103793391 B CN 103793391B CN 201210422636 A CN201210422636 A CN 201210422636A CN 103793391 B CN103793391 B CN 103793391B
- Authority
- CN
- China
- Prior art keywords
- node
- data
- leaf
- value
- numerical value
- 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/2457—Query processing with adaptation to user needs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (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
本发明提供一种远端动态数据的处理与验证方法和系统。首先提供级数为n的基数树状结构,其包括根节点、数个中间节点与数个叶节点。取得并记录n个初始数值以表示空的基数树状结构,其中属于相同级的节点被指派同一初始数值。每次进行数据处理操作时,在所有叶节点中判定第一叶节点,计算并记录从第一叶节点到根节点的最短路径上各节点的数值。在进行特定数据的查验时,在所有叶节点中找出对应特定数据的第二叶节点,取得从第二叶节点到根节点的最短路径上各节点的同级节点,根据用于验证根节点的数字签章、上述同级节点的数值与特定数据来产生查验结果。
Description
技术领域
本发明是有关于一种远端数据的处理及查验方法,且特别是有关于一种储存在远端动态数据的处理及查验方法和系统。
背景技术
随着云计算(Cloud Computing)的兴起,各式云端服务也越来越受到重视。以云端储存服务为例,其是通过网际网络整合多台伺服器以供个人或企业用户将数据存放在上述储存环境中。云端储存服务确保用户在有网络的环境下便能轻易地取得数据,同时也可作为数据备份以及数据分享的用途。
一般而言,云端储存服务的优劣是取决于数据的安全性与完整性。对于云端储存服务的用户来说,多半希望能快速且轻便地验证存放在远端的数据是否全部被妥善保存,以及其中某些特定的重要数据是否未遭受破坏。倘若用户存放在远端的数据是属于不再更动的静态(static)数据,目前已有适于储存静态数据且便于验证其完整性的数据结构被广泛地应用在云端储存服务之中。然而,对于用户经常需要进行修改或删减的动态(dynamic)数据来说,若要采用原用以储存静态数据的数据结构来储存的,则由于数据量难以维持不变,且需要频繁地重建数据结构,因此需要相当高的计算成本。
发明内容
有鉴于此,本发明提供一种远端动态数据的处理与验证方法和系统,用以针对储存在远端的动态数据提供稳定且有效率的查验机制,其能有效地判断远端动态数据的完整性。
本发明提出一种远端动态数据的处理与验证方法,此方法包括提供用于数据储存的基数树状结构,此基数树状结构包括一根节点、数个中间节点与数个叶节点,且基数树状结构的级数为n,n为正整数。此方法还包括取得并记录n个初始数值以表示尚未储存数据的基数树状结构,而在尚未储存数据的基数树状结构中,属于相同级的节点被指派相同的初始数值。此方法还包括每当对基数树状结构进行数据处理操作时,在所有的叶节点中判定出第一叶节点,重新计算从第一叶节点到根节点的最短路径上每一节点的数值,并记录重新计算所得到的数值。此方法还包括在对基数树状结构进行特定数据的查验时,在所有的叶节点中找出与特定数据相对应的至少一第二叶节点,取得从各第二叶节点到根节点的最短路径上的每一节点的同级节点(siblingnode),并根据目前用于验证根节点的数字签章、所取得的各同级节点的数值以及特定数据,产生特定数据的查验结果。
从又一观点来看,本发明提出一种远端数据的动态处理与验证系统,包括可通过网络相互连接并传递信息的数据储存伺服器与客户端装置。其中,数据储存伺服器包括相互耦接的数据库与数据库管理单元。数据库提供用于数据储存的基数树状结构。基数树状结构包括一根节点、多个中间节点与多个叶节点,且级数为n(n为正整数)。数据库管理单元取得并记录n个初始数值以表示尚未储存数据的基数树状结构,其中,属于相同级的节点被指派相同的初始数值。每当客户端装置欲对基数树状结构进行数据处理操作时,数据库管理单元在所有的叶节点中判定出第一叶节点,重新计算从第一叶节点到根节点的最短路径上的每一节点的数值,并记录重新计算而得到的数值,再通过网络将目前用于认证根节点的数字签章传送至客户端装置。而当客户端装置欲对基数树状结构进行特定数据的查验时,数据库管理单元在所有的叶节点中找出与特定数据相对应的至少一第二叶节点,取得从各第二叶节点到根节点的最短路径上每一节点的同级节点,并通过网络将目前用于认证根节点的数字签章、所取得的各同级节点的数值以及特定数据传送至客户端装置,以由客户端装置根据数字签章、所接收到的各同级节点的数值以及特定数据来产生特定数据的查验结果。
基于上述,本发明在利用基数树状结构储存远端动态数据时,并不会针对基数树状结构中的所有节点去记录其数值,而仅记录每次因数据处理操作而产生数值变化的节点,据此有助于数据的动态处理,并可提升大数据量的处理速度。另外在数据查验方面,则能利用记录在根节点的数字签章以及从特定叶节点到根节点的最短路径上所有节点的同级节点来检查该笔数据的完整性,也可达到对该笔数据进行负查询(negative query)的功效。使用基数树状结构有助于让使用者在客户端装置快速且轻便地验证数据是否被妥善且完整地存放在远端的数据储存伺服器,提升使用者对数据储存伺服器的信赖度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明的一实施例所示出处理与验证远端动态数据的环境示意图;
图2是依照本发明的一实施例所示出的远端动态数据的处理与验证方法的流程图;
图3是依照本发明的一实施例所示出的尚未储存数据的基数树状结构的示意图;
图4是依照本发明的一实施例所示出的对基数树状结构进行数据处理操作的流程图;
图5和图6是依照本发明的一实施例所示出的将目标数据新增至基数树状结构的示意图;
图7是依照本发明的一实施例所示出的对基数树状结构进行特定数据的查验的流程图;
图8是依照本发明的一实施例所示出的在基数树状结构中查验特定数据的示意图。
附图标记说明:
100:远端数据的动态处理与验证系统;
110:数据储存伺服器;
113:数据库;
115:数据库管理单元;
120:客户端装置;
130:网络;
S210~S230:本发明的一实施例所述的远端数据的动态处理与验证方法的各步骤;
300、800:基数树状结构;
R:根节点;
I10、I11、I20、I21、I22、I23:中间节点;
T0、T1、T2、T3、T4、T5、T6、T7:叶节点;
S410~S490:本发明的一实施例所述的对基数树状结构进行数据处理操作的各步骤;
S710~S790:本发明的一实施例所述的对基数树状结构进行特定数据的查验的各步骤。
具体实施方式
在云端科技的蓬勃发展之下,无论是企业或个人用户均已十分习惯将数据储存在云端业者提供的数据储存伺服器。当用户储存的是需要经常修改或增减内容的动态数据时,由于数据量不固定,因此传统适用于静态数据的数据结构则无法提供理想的处理速度。本发明便是基于上述需求而提出一种基数树状结构,并提出使用此基数树状结构来处理及查验数据的方法、系统与电脑可读介质。相较于传统的数据结构,采用本发明所提出的基数树状结构能缩短每次变动数据所需要的处理时间,同时可以快速验证庞大数据的完整性(integrity)与正确性。
图1是依照本发明的一实施例所示出的处理与验证远端动态数据的环境示意图。请参阅图1,数据储存伺服器110与客户端装置120是通过网络130相互传递数据。网络130例如是网际网络,但不局限于此。客户端装置120可以是电脑系统、移动装置,或任何具备网络连接能力的装置,在此并不限制其种类。
数据储存伺服器110是由提供云端储存服务的云端业者所管理。需注意的是,图1是为了方便说明而仅示出一台数据储存伺服器110,然而实际上云端业者可同时控管多台数据储存伺服器以提供云端储存服务。当用户向云端业者取得云端储存服务的使用权限后,便可通过网络130将客户端装置120中的数据上传并储存于数据储存伺服器110。其中,由客户端装置120上传的同一份数据可能被储存在单一个数据储存伺服器,或被分散储存在数个数据储存伺服器。
数据储存伺服器110包括相互耦接的数据库113与数据库管理单元115。其中,数据库113是采用基数树状结构做为储存数据的方式,基数树状结构将于后配合图示再做说明。数据库113可以传统硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid State Drive,SSD)等做为储存介质。或者,数据库113也可存放在其他类型的储存装置中,在此并不加以限制。
在一实施例中,数据库管理单元115例如是具备数据运算及处理能力的硬件元件,好比像中央处理器、芯片组、微处理器、可程序化控制器、特殊应用集成电路(ApplicationSpecific Integrated Circuit,ASIC)或其他类似装置或上述装置的组合。在另一实施例中,数据库管理单元115也可以是具备数据运算及处理能力的软件元件,例如操作系统或应用程序。或者,数据库管理单元115也可以是上述硬件元件及软件元件的组合。数据库管理单元115用以对数据库113的内容进行管理,包括因应客户端装置120的需求而进行数据的新增、删除以及更新等处理操作,并可因应客户端装置120的需求取得并回传查验特定数据所需要的信息,以供客户端装置120进行验证。
在本实施例中,数据储存伺服器110与客户端装置120是构成远端数据的动态处理与验证系统100。在远端数据的动态处理与验证系统100中,当用户需对储存在数据储存伺服器110的数据进行各种动态操作时,数据储存伺服器110能快速地完成处理,而当用户欲对数据储存伺服器110中的巨量数据进行完整性及正确性的查验时,数据储存伺服器110仅将必要的信息回传给客户端装置120,进而让客户端装置120能轻便地产生验证结果。
以下将以图2来说明远端数据的动态处理与验证系统100的详细运作方式。请同时参阅图1与图2。
首先在步骤S210中,数据库113提供用于数据储存的基数树状结构,此基数树状结构包括一个根节点、数个中间节点与数个叶节点。叶节点是用以储存来自客户端装置120的使用者数据,而根节点及中间节点则用以储存对使用者数据进行验证所需要的信息。在本实施例中,基数树状结构的级数为n,且n为不小于2的正整数。举例来说n可以是20,但本发明并不以此为限。
接着如步骤S220所示,数据库管理单元115取得n个初始数值,并记录这n个初始数值以表示尚未储存数据的基数树状结构。为了方便说明,尚未储存数据的基数树状结构也称为空的基数树状结构。
在本实施例所示的基数树状结构当中,除了叶节点之外的每个节点的分支度(degree)均为2。基此,级数为n的基数树状结构总共会具有2n-1个节点,其中2n-1个为叶节点,1个为根节点,其余为中间节点。n的数值越大,则基数树状结构的叶节点数量越多,故能储存更大量的使用者数据。然而需注意的是,在尚未储存任何数据的基数树状结构中,属于相同级的节点都会被指派相同的初始数值,因此即便级数为n的基数树状结构具有2n-1个节点,但实际上只需要n个初始数值的储存空间便足以表示整个空的基数树状结构。在本实施例中,数据库管理单元115是以下列算式(1)来取得n个初始数值:
其中,C为预设常数(例如,0),H(x,y)可为以x及y分别为第一及第二输入值的预设的杂凑函数,但不以此为限。εL则表示在尚未储存数据的基数树状结构中,数据库管理单元115指派给属于第L级的所有节点的初始数值。其中,叶节点位于第n-1级,而根节点位于第0级。假设预设常数为0,那么在空的基数树状结构中,所有位于第n-1级的叶节点都将被指派为εn-1(即,0);所有位于第n-2级的节点都会被指派为εn-2,也即将0和0分别做为第一及第二输入值再代入杂凑函数所得到的结果,以此类推。
图3是依照本发明的一实施例所示出的尚未储存数据的基数树状结构的示意图。请参阅图3,在本实施例中,基数树状结构300的级数为4,共有15个节点,包括一个根节点R,6个中间节点I10、I11、I20、I21、I22、I23,以及8个叶节点T0、T1、T2、T3、T4、T5、T6、T7。由于基数树状结构300尚未储存任何使用者数据,因此数据库管理单元115仅需以4个初始数值便能表示还是空的基数树状结构300,这4个初始数值例如是以上述算式(1)计算所得。其中,根节点R的数值为初始数值ε0、中间节点I10、I11的数值为初始数值ε1、中间节点I20、I21、I22、I23的数值为初始数值ε2、叶节点T0、T1、T2、T3、T4、T5、T6、T7的数值为初始数值ε3。
接下来请回到图2的步骤S230,数据库管理单元115会根据客户端装置120的要求对基数树状结构进行数据的新增、删除或更新等数据处理操作(步骤A),或因应客户端装置120的要求在基数树状结构中进行特定数据的查验(步骤B)。步骤A及步骤B的详细内容将于后配合图示再做说明。
如上所述,数据库管理单元115是利用n个初始数值表示级数为n且尚未储存数据的基数树状结构,因此空的基数树状结构实际上需要的储存空间为n个初始数值的储存空间,其远小于储存基数树状结构的每个节点所需要的储存空间。即便是在有数据存入基数树状结构之后,每当要进行数据处理操作之际,数据库管理单元115也只会更新并储存与这次数据处理操作相关的部分节点的数值,而不需要针对每一次的数据处理操作都去更新并储存基数树状结构的所有节点的数值。
以下将以图4来说明对基数树状结构进行数据处理操作的详细流程,请参阅图4。在本实施例中,假设数据储存伺服器110接获来自客户端装置120的要求,而需对基数树状结构进行一数据处理操作。其中,数据处理操作包括将一目标数据新增至基数树状结构、利用目标数据对已存在于基数树状结构的旧数据做更新,或将目标数据自基数树状结构删除。
如步骤S410所示,数据库管理单元115在所有叶节点中判定出第一叶节点。详言之,数据库管理单元115首先将数据处理操作所对应的目标数据代入预设的杂凑函数,以得到目标数据的杂凑值。接着,数据库管理单元115对目标数据的杂凑值以及所有叶节点的总数进行一对映函式运算,如模数运算(即,目标数据的杂凑值除以叶节点总数所得到的余数)在所有的叶节点中判定出第一叶节点。也就是说,每笔数据会通过上述对映函式运算对应到固定的叶节点。例如,假设叶节点总数为LN,数据库管理单元115可将所有叶节点由左至右依序对应至识别码0至LN-1,而在取得目标数据的杂凑值除以LN的余数之后,便以所对应的识别码等于此余数的叶节点做为第一叶节点。
接下来在步骤S420中,数据库管理单元115重新指派第一叶节点的数值。在本实施例中,每个叶节点可用于储存两笔以上的不同数据。基此,数据库管理单元115首先判断第一叶节点是否也用于储存不同于目标数据且与目标数据无关的其他数据。具体来说,其他数据并非由目标数据所构成,也不是产生自目标数据。
倘若第一叶节点未用于储存其他数据,则当数据处理操作是将目标数据自基数树状结构删除时,数据库管理单元115将第一叶节点的数值重新指派为基数树状结构在尚未储存数据时叶节点被指派的初始数值(例如,由算式(1)得到的初始数值εn-1)。此外,当数据处理操作是将目标数据加入至基数树状结构时,数据库管理单元115将第一叶节点的数值重新指派为目标数据的杂凑值。必须说明的是,加入目标数据包括将目标数据新增至基数树状结构,或利用目标数据对已加入基数树状结构的旧数据进行更新。
在第一叶节点也用于储存其他数据的情况下,当数据处理操作是将目标数据自基数树状结构删除时,表示第一叶节点目前所储存的数值是产生自目标数据的杂凑值以及其他数据的杂凑值,因此数据库管理单元115会将第一叶节点的数值重新指派为其他数据的杂凑值,使得第一叶节点不再被用来储存目标数据。另外,当数据处理操作是将目标数据加入至基数树状结构时,数据库管理单元115根据目标数据与其他数据重新指派第一叶节点的数值。举例来说,数据库管理单元115将目标数据与其他数据合并为整合数据后,再将整合数据代入杂凑函数以得到整合数据的杂凑值,并且将第一叶节点的数值指派为整合数据的杂凑值。或者,数据库管理单元115将目标数据的杂凑值与其他数据的杂凑值合并为整合杂凑值,再将第一叶节点的数值重新指派为整合杂凑值。
在另一实施例中,为了进一步降低数据处理操作所需的运算成本,每一叶节点只用于储存一笔数据。基此,数据库113会提供具有更大级数的基数树状结构,以减少数笔数据对应到相同叶节点的机率。以级数为20的基数树状结构为例,由于其具有220个叶节点,因此两笔数据对应至相同叶节点的机率仅有约百万分之一(即,1/220)。即使仍发生了数笔数据对应至相同叶节点的情况,也可以前述实施例的方式进行特别处理。由于一个叶节点所能储存的数据量远小于整个基数树状结构能储存的数据量,倘若有某个叶节点发生数据错误的情况,特别针对该叶节点做处理的效率也会高于对整体数据进行处理。
完成第一叶节点的数值更新后,数据库管理单元115重新计算从第一叶节点到根节点的最短路径上每一节点的数值,并记录重新计算所得到的数值。
由于从第一叶节点到根节点的最短路径上的所有节点会构成一有序集合,因此如步骤S430所示,数据库管理单元115在这些节点之中,依照特定顺序取得一处理节点。其中,特定顺序是从第一叶节点开始往根节点方向逐层回溯各祖先节点(ancestor node)。也即,在第一次执行步骤S430时,数据库管理单元115会取得第一叶节点来做为处理节点,在第二次执行步骤S430时,数据库管理单元115会取得第一叶节点的父节点(parent node)来做为处理节点,以此类推。
接着在步骤S440中,数据库管理单元115将处理节点的数值与处理节点的同级节点(Sibling node)的数值依左右分支的顺序依序做为预设杂凑函数H(x,y)的第一和第二输入值。其中,同级节点是指在基数树状结构中与处理节点具有相同父节点的节点。详言之,如步骤S443所示,数据库管理单元115判断处理节点为左节点或右节点。若处理节点为左节点,则如步骤S445所示,数据库管理单元115将处理节点与处理节点的同级节点分别的数值分别作为杂凑函数的第一和第二输入值。若处理节点为右节点,则如步骤S447所示,数据库管理单元115将处理节点的同级节点与处理节点分别的数值分别作为杂凑函数的第一和第二输入值。
接下来如步骤S450所示,数据库管理单元115将第一和第二输入值代入杂凑函数以计算得到杂凑函数输出数值,并在步骤S460中,将处理节点的父节点的数值重新指派为杂凑函数输出数值。
之后在步骤S470中,数据库管理单元115在从第一叶节点到根节点的最短路径上的所有节点之中,依照特定顺序再次取得一处理节点,并如步骤S480所示,判断处理节点是否为根节点。
若处理节点不为根节点,则回到步骤S440,并重复步骤S440至步骤S480。
若处理节点为根节点,则如步骤S490所示,数据库管理单元115重新产生用于验证根节点的数字签章,并通过网络130将此数字签章传送至客户端装置120。据此完成这次数据处理操作的流程。
如图4所示,在数据库管理单元115每进行一次数据处理操作时,会产生数值更动的节点仅是所找出的第一叶节点到根节点的最短路径上的所有节点。倘若基数树状结构的级数n够大,则叶节点的数量够多,那么在使用基数树状结构的过程中,由于多数叶节点会处于尚未储存数据的状态,因此每次加入数据时都可以直接存入对应的叶节点,而不需要改变整个基数树状结构的架构,基此十分有助于提升动态加入数据的效率。并且,尚未储存数据的节点也不需占用额外的储存空间。因此,虽然基数树状结构的节点数量庞大,但实际上需要用来记录基数树状结构的储存空间却会小于所有节点实际需要的储存空间。
图5是依照本发明的一实施例所示出的将目标数据新增至尚未储存数据的基数树状结构300的示意图。请参阅图5,在本实施例中假设数据库管理单元115根据目标数据而判定的第一叶节点为叶节点T2,数据库管理单元115首先将叶节点T2的数值指派为目标数据的杂凑值。接着,取得从叶节点T2到根节点R的最短路径所包括的所有节点,并且按照特定顺序依序将叶节点T2、中间节点I21、中间节点I10、根节点R取作为处理节点而更新其数值。
举例来说,当处理节点为叶节点T2时,由于其同级节点(即,叶节点T3)尚未储存使用者数据,因此数据库管理单元115会配合此次数据处理操作将叶节点T3的数值指派为由算式(1)所取得的初始数值ε3。接着,由于叶节点T2为左节点,因此数据库管理单元115将叶节点T2的数值作为第一输入值,并将叶节点T3的数值作为第二输入值,以算式(1)计算得到杂凑函数输出数值。并以此杂凑函数输出数值来作为叶节点T2的父节点(即,中间节点I21)的数值。
接下来,数据库管理单元115以中间节点I21做为处理节点。类似地,由于中间节点I21的同级节点(即,中间节点I20)尚未储存使用者数据,因此数据库管理单元115会配合此次数据处理操作而将中间节点I20的数值指派为由算式(1)所取得的初始数值ε2。并将中间节点I21的数值作为第二输入值,中间节点I20的数值作为第一输入值以计算杂凑函数输出数值,再将中间节点I21的父节点(即,中间节点I10)的数值指派为该杂凑函数输出数值。
接着,数据库管理单元115以中间节点I10做为处理节点。由于中间节点I10的同级节点(即,中间节点I11)尚未储存使用者数据,因此数据库管理单元115会配合此次数据处理操作将中间节点I11的数值指派为由算式(1)所取得的初始数值ε1。并将中间节点I11的数值作为第二输入值,将I10的数值作为第一输入值,代入算式(1)计算得到杂凑函数输出数值,再将中间节点I10的父节点(即,根节点R)的数值指派为杂凑函数输出数值。
之后,数据库管理单元115取得根节点R做为处理节点,并重新产生用于验证根节点R的数字签章。至此便完成了将目标数据新增至基数树状结构300的流程。在上述实施例中,针对此次的数据处理操作,数据库管理单元115实际上仅需更新并储存4个节点的数值,其余未有更动的节点的数值则不需额外进行处理,也不需要额外取得储存空间来储存。
延续图5所示的实施例,图6所示出的是再将另一个目标数据新增至基数树状结构300的示意图。在本实施例中,数据库管理单元115根据目标数据而判定的第一叶节点为叶节点T7,因此针对此次数据处理操作,数据库管理单元115实际仅需依序更新并储存叶节点T7、中间节点I23、中间节点I11以及根节点R这4个节点的数值,由于流程与前述实施例相似,故在此不再赘述。
假设客户端装置120接着要对已储存在叶节点T7中的数据进行更新,数据库管理单元115在接收来自客户端装置120的目标数据后,计算目标数据的杂凑值,并将叶节点T7重新指派为此杂凑值,并依序更新中间节点I23、中间节点I11,以及根节点R这4个节点的数值,据此完成数据更新的操作。
之后,假设客户端装置120欲删除已记录在叶节点T7中的数据,数据库管理单元115将叶节点T7的数值重新指派为由算式(1)所计算而得到的初始数值ε3,并且更新中间节点I23、中间节点I11,以及根节点R这4个节点的数值,而完成删除操作后的基数树状结构300将如图5所示。
如上所述,数据储存伺服器110是先提供一个具有高级数的空的基数树状结构。空的基数树状结构虽然具有相当高的节点数量,但因实际上仅需以符合级数的数个初始数值便足以表示整个基数树状结构,因此并不需要庞大的储存空间。之后,在每次需要进行如新增、删除、更新等数据处理操作时,不需要对基数树状结构本身的架构做任何改变,可直接选择用以储存数据的叶节点,并仅需进行相关的叶节点、中间节点以及根节点的数值更新与记录即可。据此,能大幅提升动态操作数据的处理速度,且所需要的储存空间大小也相当合理。
就客户端装置120而言,也只需要记录因最近一次数据处理操作而改变的根节点的数值,其余信息则都由数据储存伺服器110负责记录。据此,即便使用者数据的数据量再巨大,都不会增加客户端装置120的负担。
图7是依照本发明的一实施例所示出的对基数树状结构进行特定数据的查验的流程图。在本实施例中,查验结果包括确定特定数据存在或不存在于基数树状结构及/或确定特定数据的完整性。
客户端装置120可通过网络130对数据储存伺服器110发出要查验特定数据的要求。如步骤S710所示,数据库管理单元115接收特定数据。
接着在步骤S720中,数据库管理单元115判断特定数据的数据量是否超过门槛值,门槛值例如是一千百万位元组(Gigabyte,GB),但本发明并不以此为限。
若特定数据的数据量并未超过门槛值,则如步骤S730所示,数据库管理单元115可利用模数运算在所有的叶节点中找出与特定数据相对应的一或多个第二叶节点。由于同一个档案可能被切割为数个子数据并被存放在不同的叶节点中,因此当待查验的特定数据仅存放在单一个节点时,第二叶节点的数量为1。而当待查验的特定数据遍布于数个节点时,第二叶节点的数量大于1。
接下来在步骤S740中,数据库管理单元115取得从各第二叶节点到根节点的最短路径上的每一节点的同级节点,并如步骤S750所示,数据库管理单元115将所取得的各同级节点的数值、以及特定数据本身回传给客户端装置120,以由客户端装置120根据来自数据储存伺服器110的上述数据以及记录在客户端装置120的最新的数字签章来产生特定数据的查验结果。
以图8为例,在本实施例中假设客户端装置120要求在基数树状结构800中对特定数据进行查验。当数据库管理单元115接获来自客户端装置120的特定数据后,首先在所有的叶节点中找出特定数据所对应的第二叶节点(例如,叶节点T2)。接着,数据库管理单元115取得叶节点T2至根节点R的最短路径上的所有节点(即,叶节点T2、中间节点I21、中间节点I10、根节点R),再取得叶节点T2、中间节点I21以及中间节点I10各自的同级节点(即叶节点T3、中间节点I20以及中间节点I11)的数值,并将上述同级节点的数值以及特定数据本身回传给客户端装置120。由于客户端装置120知晓数据储存伺服器110所采用的是何种杂凑函数,因此可通过同样的杂凑函数、记录在客户端装置120的最新且用于验证根节点R的数字签章,以及所接收到的信息来验证特定数据的完整性。进一步来说,客户端装置120可利用上述信息进行负查询,以确认特定信息是否确实不存在基数树状结构之中。
请回到步骤S720,倘若特定数据的数据量超过门槛值,数据库管理单元115则利用统计抽样原则来进行查验。
详言之,如步骤S760所示,数据库管理单元115从所有的叶节点中抽取符合预设抽样数量的数个抽样叶节点。在本实施例中,预设抽样数量可以是预设值(例如460,但本发明并不以此为限),或与叶节点总数有关。
接下来在步骤S770中,数据库管理单元115取得从各抽样叶节点到根节点的最短路径上的每一节点的同级节点,并在步骤S780中,将各抽样叶节点所对应的同级节点的数值,以及各抽样叶节点被指派的数值回传给客户端装置120,以由客户端装置120根据来自数据储存伺服器110的上述数据以及记录在客户端装置120的最新的数字签章来产生抽样查验结果。最后如步骤S790所示,客户端装置120以抽样查验结果做为特定数据的查验结果。
在本发明的一实施例中,上述远端动态数据的处理与验证方法可实作为电脑可读介质上的电脑可读码,电脑可读码包括多个指令,用以在执行后实现上述远端动态数据的处理与验证方法的各步骤。举例来说,电脑可读介质可以是任何能通过电脑系统读取的数据储存装置,包括只读存储器(ReadOnly Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、只读光盘存储器(compact disc read only memory,CD-ROM)、磁带、软盘、光学数据储存装置以及载波(例如通过网际网络的数据传输)等,在此并不限制其范围。
综上所述,本发明所述的远端动态数据的处理与验证方法、系统和电脑可读介质能快速验证存放在远端的庞大数据的完整性,据此让客户端可以快速且轻便地取得验证结果。除此之外,用户端还可以执行负查询,以验证远端中确实不存在某笔数据。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (9)
1.一种远端动态数据的处理与验证方法,其特征在于,包括:
提供用于数据储存的一基数树状结构,该基数树状结构包括一根节点、多个中间节点与多个叶节点,且该基数树状结构的级数为n,n为正整数;
以下列算式(1)来取得该n个初始数值:
其中,C为一预设常数,H(x,y)为一杂凑函数,且x及y分别为该杂凑函数的一第一输入值及一第二输入值,εL表示在尚未储存数据的该基数树状结构中,属于第L级的节点被指派的初始数值,其中该些叶节点位于第n-1级,且该根节点位于第0级;
取得并记录n个初始数值以表示尚未储存数据的该基数树状结构,其中在尚未储存数据的该基数树状结构中,属于相同级的节点被指派相同的初始数值;
每当对该基数树状结构进行一数据处理操作时,在该些叶节点中判定出一第一叶节点并更新该第一叶节点的数值,重新计算从该第一叶节点到该根节点的最短路径上每一节点的数值,并记录重新计算所得到的数值;以及
在对该基数树状结构进行一特定数据的查验时,在该些叶节点中找出与该特定数据相对应的至少一第二叶节点,取得从各该至少一第二叶节点到该根节点的最短路径上的每一节点的同级节点,并根据目前用于验证该根节点的一数字签章、所取得的各同级节点的数值以及该特定数据,产生该特定数据的一查验结果。
2.根据权利要求1所述的远端动态数据的处理与验证方法,其特征在于,在该些叶节点中判定出该第一叶节点的步骤包括:
将该数据处理操作所对应的一目标数据代入一杂凑函数以得到该目标数据的杂凑值;
对该目标数据的杂凑值以及该些叶节点的一总数进行一函式对应运算;以及
依据该函式对应运算的结果在该些叶节点中判定出该第一叶节点。
3.根据权利要求2所述的远端动态数据的处理与验证方法,其特征在于, 在判定出该第一叶节点的步骤之后,该方法还包括:
判断该第一叶节点是否也用于储存一其他数据,其中该其他数据与该目标数据不同且无关,其中该其他数据并非由目标数据所构成,也不是产生自目标数据;
若该第一叶节点未用于储存该其他数据,则当该数据处理操作是将该目标数据自该基数树状结构删除时,将该第一叶节点的数值重新指派为该基数树状结构在尚未储存数据时该些叶节点被指派的初始数值,而当该数据处理操作是将该目标数据加入至该基数树状结构时,将该第一叶节点的数值重新指派为该目标数据的杂凑值;以及
若该第一叶节点也用于储存该其他数据,则当该数据处理操作是将该目标数据自该基数树状结构删除时,将该第一叶节点的数值重新指派为该其他数据的杂凑值,并且当该数据处理操作是将该目标数据加入至该基数树状结构时,根据该目标数据与该其他数据重新指派该第一叶节点的数值。
4.根据权利要求3所述的远端动态数据的处理与验证方法,其特征在于,根据该目标数据与该其他数据重新指派该第一叶节点的数值的步骤包括:
将该目标数据与该其他数据合并为一整合数据;
将该整合数据代入该杂凑函数以得到该整合数据的杂凑值;以及
将该第一叶节点的数值重新指派为该整合数据的杂凑值。
5.根据权利要求3所述的远端动态数据的处理与验证方法,其特征在于,根据该目标数据与该其他数据重新指派该第一叶节点的数值的步骤包括:
将该目标数据的杂凑值与该其他数据的杂凑值合并为一整合杂凑值;以及
将该第一叶节点的数值重新指派为该整合杂凑值。
6.根据权利要求2所述的远端动态数据的处理与验证方法,其特征在于,重新计算从该第一叶节点到该根节点的最短路径上每一节点的数值的步骤包括:
a、依照一特定顺序,在从该第一叶节点到该根节点的最短路径上的所有节点之中取得一处理节点,其中该特定顺序是从该第一叶节点开始往该根节点方向逐层回溯各祖先节点;
b、依照该处理节点与该处理节点的同级节点在该基数树状结构中的左右 分支顺序,将该处理节点的数值与该处理节点的同级节点的数值分别做为该杂凑函数的一第一输入值及一第二输入值;
c、将该第一输入值及该第二输入值代入该杂凑函数以得到一杂凑函数输出数值;
d、将该处理节点的父节点的数值重新指派为该杂凑函数输出数值;以及
e、重复步骤a至步骤d,直到该处理节点为该根节点时,重新产生用于验证该根节点的该数字签章。
7.根据权利要求1所述的远端动态数据的处理与验证方法,其特征在于,该查验结果至少包括下列其中之一:确定该特定数据存在或不存在于该基数树状结构、确定该特定数据的完整性。
8.根据权利要求1所述的远端动态数据的处理与验证方法,其特征在于,还包括:
当该特定数据的数据量超过一门槛值,从该些叶节点中抽取符合一预设抽样数量的多个抽样叶节点;
取得从各该些抽样叶节点到该根节点的最短路径上的每一节点的同级节点;
根据目前用于验证该根节点的该数字签章、各该些抽样叶节点所对应的同级节点的数值,以及各该些抽样叶节点被指派的数值,产生一抽样查验结果;以及
以该抽样查验结果代表该特定数据的该查验结果。
9.一种远端数据的动态处理与验证系统,其特征在于,包括:
一数据储存伺服器,包括:
一数据库,提供用于数据储存的一基数树状结构,该基数树状结构包括一根节点、多个中间节点与多个叶节点,且该基数树状结构的级数为n,n为正整数;以及
一数据库管理单元,耦接该数据库,该数据库管理单元取得并记录n个初始数值以表示尚未储存数据的该基数树状结构,其中在尚未储存数据的该基数树状结构中,属于相同级的节点被指派相同的初始数值,且以下列算式(1)来取得该n个初始数值:
其中,C为一预设常数,H(x,y)为一杂凑函数,且x及y分别为该杂凑函数的一第一输入值及一第二输入值,εL表示在尚未储存数据的该基数树状结构中,属于第L级的节点被指派的初始数值,其中该些叶节点位于第n-1级,且该根节点位于第0级;以及
一客户端装置,通过一网络连接该数据储存伺服器,
其中,每当该客户端装置欲对该基数树状结构进行一数据处理操作时,该数据库管理单元在该些叶节点中判定出一第一叶节点,重新计算从该第一叶节点到该根节点的最短路径上每一节点的数值,并记录重新计算而得到的数值,以及通过该网络将目前用于验证该根节点的一数字签章传送至该客户端装置,
当该客户端装置欲对该基数树状结构进行一特定数据的查验时,该数据库管理单元在该些叶节点中找出与该特定数据相对应的至少一第二叶节点,取得从各该至少一第二叶节点到该根节点的最短路径上每一节点的同级节点,并通过该网络将所取得的各同级节点的数值以及该特定数据传送至该客户端装置,以由该客户端装置根据目前用于验证该根节点的该数字签章、所接收到的各同级节点的数值以及该特定数据,产生该特定数据的一查验结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210422636.6A CN103793391B (zh) | 2012-10-30 | 2012-10-30 | 远端动态数据的处理与验证方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210422636.6A CN103793391B (zh) | 2012-10-30 | 2012-10-30 | 远端动态数据的处理与验证方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793391A CN103793391A (zh) | 2014-05-14 |
CN103793391B true CN103793391B (zh) | 2017-03-01 |
Family
ID=50669074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210422636.6A Active CN103793391B (zh) | 2012-10-30 | 2012-10-30 | 远端动态数据的处理与验证方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103793391B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108848250B (zh) * | 2018-05-07 | 2020-12-15 | 北京奇点机智科技有限公司 | 路径更新方法、装置及设备 |
CN109491989B (zh) * | 2018-11-12 | 2021-08-31 | 北京懿医云科技有限公司 | 数据处理方法及装置、电子设备、存储介质 |
CN115174582B (zh) * | 2022-09-06 | 2022-11-18 | 中国中金财富证券有限公司 | 数据调度方法及相关装置 |
CN115842686B (zh) * | 2023-02-21 | 2023-05-12 | 深圳桥通物联科技有限公司 | 远端动态数据的处理与验证方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411957B1 (en) * | 1999-06-30 | 2002-06-25 | Arm Limited | System and method of organizing nodes within a tree structure |
CN1577298A (zh) * | 2003-07-10 | 2005-02-09 | 索尼株式会社 | 数据管理设备,数据管理方法以及计算机程序 |
TW201207645A (en) * | 2010-08-11 | 2012-02-16 | Hon Hai Prec Ind Co Ltd | Method for searching parameters in a data model |
-
2012
- 2012-10-30 CN CN201210422636.6A patent/CN103793391B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411957B1 (en) * | 1999-06-30 | 2002-06-25 | Arm Limited | System and method of organizing nodes within a tree structure |
CN1577298A (zh) * | 2003-07-10 | 2005-02-09 | 索尼株式会社 | 数据管理设备,数据管理方法以及计算机程序 |
TW201207645A (en) * | 2010-08-11 | 2012-02-16 | Hon Hai Prec Ind Co Ltd | Method for searching parameters in a data model |
Also Published As
Publication number | Publication date |
---|---|
CN103793391A (zh) | 2014-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106233259B (zh) | 在分散存储网络中检索多世代存储数据的方法和系统 | |
CN103874980B (zh) | 存储系统中的映射 | |
TWI483138B (zh) | 遠端動態資料的處理與驗證方法、系統,以及電腦可讀記錄媒體 | |
CN103902623B (zh) | 用于在存储系统上存取文件的方法和系统 | |
CN103827806B (zh) | 闪存阵列中的逻辑扇区映射 | |
US20100161565A1 (en) | Cluster data management system and method for data restoration using shared redo log in cluster data management system | |
US9514178B2 (en) | Table boundary detection in data blocks for compression | |
CN105630803B (zh) | 文档型数据库建立索引的方法和装置 | |
CN101452487B (zh) | 一种数据加载的方法、系统及数据加载装置 | |
CN111339078A (zh) | 数据实时存储方法、数据查询方法、装置、设备、介质 | |
CN104769586A (zh) | 采用位置信息剖析数据 | |
CN103793391B (zh) | 远端动态数据的处理与验证方法和系统 | |
CN109062936B (zh) | 一种数据查询方法、计算机可读存储介质及终端设备 | |
TWI709047B (zh) | 對其已使用主要資料篩而被無損減少的資料履行多維搜尋、內容相關擷取、及關鍵字為基的搜尋和擷取 | |
CN112912870B (zh) | 租户标识符的转换 | |
CN112997200A (zh) | 用于编码分类的混合机器学习模型 | |
CN111241108A (zh) | 基于键值对kv系统的索引方法、装置、电子设备和介质 | |
CN105009068A (zh) | 管理对存储数据单元的操作 | |
US9971793B2 (en) | Database management system and database management method | |
CN105159925B (zh) | 一种数据库集群数据分配方法及系统 | |
US11645279B2 (en) | Index selection for database query | |
CN100565495C (zh) | 文件索引处理 | |
US20090100000A1 (en) | Acquisition and expansion of storage area network interoperation relationships | |
CN107220342A (zh) | 一种分布式数据库的控制方法及系统 | |
US20220114155A1 (en) | Per-segment secondary indexing in database systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |