事务型系统处理方法转让专利

申请号 : CN201110157697.X

文献号 : CN102810075B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱明胜陈志丰

申请人 : 英业达股份有限公司

摘要 :

一种事务型系统处理方法,用于重复性数据删除系统。在此系统中,因相同数据的指针会指向同一位置,故当一方要更动时,往往所有有关联的指标都需要一起更动。本方法为服务端先设置一旗标为假值,当服务端接收客户端的备份数据元请求后,服务端读取数据元的指纹值并判断指纹值是否与客户端的一高速缓存的一暂存指纹值一致,当指纹值与暂存指纹值不一致时,写入数据元及指纹值于对应的暂存数据块中,当该旗标为一真值时,把该数据元及该指纹值写入一主高速缓存中并重置该旗标。

权利要求 :

1.一种事务型系统处理方法,其特征在于,包括:

设置一旗标;

接收多个客户端的至少一备份一数据元请求后执行下列步骤:

读取该数据元的一指纹值;

判断该指纹值是否与对应该数据元的一暂存指纹值一致;以及

当该指纹值与该暂存指纹值不一致时,写入该数据元及该指纹值于对应的一暂存数据块中;

判断该旗标是否为一真值;以及

当该旗标为该真值时,把该数据元及该指纹值写入一主高速缓存中并重置该旗标,其中,所述把该数据元及该指纹值写入一主高速缓存中并重置该旗标的步骤包含:判断已写入该暂存数据块中的该指纹值是否与该主高速缓存中对应的该暂存数据块的一储存数据块的一储存指纹值一致;以及当所述已写入该暂存数据块中的指纹值与对应的该储存指纹值不一致时,写入该暂存数据块中的该数据元与该指纹值至该储存数据块中,其中,所述写入该暂存数据块中的该数据元与该暂存数据块中的该指纹值至该储存数据块中的步骤包含下列步骤:判断该储存数据块的一引用计数器是否大于1;

当该储存数据块的一引用计数器大于1时,复制移动该储存数据块的该数据元及该指纹值至另一空白储存数据块;

当该储存数据块的该引用计数器大于1时,移动非属该暂存数据块的一指针至该空白储存数据块;以及覆盖写入该数据元及该指纹值至该储存数据块中并重置该旗标。

2.根据权利要求1所述的事务型系统处理方法,其特征在于,所述判断该指纹值是否与对应该数据元的一暂存指纹值一致的步骤包含下列步骤:计算该数据元的一哈希值;

读取该哈希值对应的该暂存数据块中的该暂存指纹值;以及

判断该指纹值与该暂存指纹值是否相等。

3.根据权利要求2所述的事务型系统处理方法,其特征在于,当该哈希值对应的该暂存数据块中不具该暂存指纹值时,写入对应该哈希值的该数据元及该指纹值于该暂存数据块中。

4.根据权利要求2所述的事务型系统处理方法,其特征在于,判断该些指纹值与该些暂存指纹值是否一致时,是使用一布隆过滤器判断该些指纹值是否已存在于该些暂存指纹值的集合中。

5.根据权利要求1所述的事务型系统处理方法,其特征在于,在所述接收多个客户端的至少一备份一数据元请求后执行下列步骤的步骤之前包含设置一计数器,在所述当该指纹值与该暂存指纹值不一致时,写入该数据元及该指纹值于对应的一暂存数据块中的步骤之后包含累加该计数器的值,在所述判断该旗标是否为一真值的步骤之前包含判断该计数器的值是否大于或等于一默认值,当该计数器的值是大于或等于该默认值时,设定该旗标为该真值,并在所述当该旗标为该真值时,把该数据元及该指纹值写入一主高速缓存中并重置该旗标的步骤之后重置该计数器。

6.根据权利要求1所述的事务型系统处理方法,其特征在于,在所述接收多个客户端的至少一备份一数据元请求后执行下列步骤的步骤之前包含设置一定时器,在该判断该旗标是否为一真值的步骤之前包含判断该定时器的值是否大于或等于一默认值以及当该定时器的值是大于或等于该默认值时,设定该旗标为该真值,并在所述当该旗标为该真值时,把该数据元及该指纹值写入一主高速缓存中并重置该旗标的步骤之后重置该定时器。

7.根据权利要求1所述的事务型系统处理方法,其特征在于,在所述当该指纹值与该暂存指纹值不一致时,写入该数据元及该指纹值于对应的一暂存数据块中的步骤之后,设该旗标为该真值。

说明书 :

事务型系统处理方法

技术领域

[0001] 本发明涉及一种数据传输处理方法,特别涉及一种关于事务型系统的处理方法。

背景技术

[0002] 随着科技的发展,越来越多公司依赖架设多个数据库执行公司的业务或管理,而这些数据库之间彼此互相关联并互相传送数据,以维持数据库的一致性。然数据库一旦发生电力中断、病毒入侵等足以使数据遭受不可回复的损害的情况,往往造成公司内部数据混乱或遗失,对整个公司的运作造成严重的影响,故数据库的备份对于企业来说是相当重要的。
[0003] 维持营运的数据库相当庞大,故数据库的备份往往必须在一固定时间进行备份,且企业的多个数据库常因业务重叠等原因造成数据大量重复,所以备份时,庞大的数据量会占用大量的硬件空间,提高备份的成本。
[0004] 为了节省数据备份时所占用的大量硬盘空间,业界随后发展出一种数据重复删除系统(Deduplication System),此种方法可把文件分割成多个数据块,经过一对比的程序后,若是数据块与目前已备份的数据块有重复的情况,系统就只储存一指针指向该备份过的文件。通过这样的方式,备份时可以节省数据重叠所造成的资源浪费,舒缓数据备份时对硬盘的大量需求。
[0005] 然而,这种数据重复删除系统的处理过程中,若是有其中一数据块的数据需要变动,其它指向此数据块的指针和内容也跟着需要变动,故此种方法会增加中央处理器和记忆体的处理量,也造成数据备份的时间相对增长。所以,本领域亟需一种当数据重复删除系统执行时,可以降低中央处理器和记忆体的处理量并加快备份速度的方法。

发明内容

[0006] 基于以上,本发明的目的在于提供一种方法,此方法可以在数据重复删除 系统中降低中央处理器和记忆体的处理量,进而降低数据备份所需花费的时间。
[0007] 本发明内容的一实施例先由服务端设置一旗标(Flag)为一假值(False Value),当服务端接收到多个客户端备份一数据元请求后,服务端会先读取数据元的一指纹值(Fingerprinting)。服务端会判断这个指纹值是否与对应客户端的一高速缓存(Meta Cache)中的暂存指纹值一致,如果两者不一致,服务端会把数据元和指纹值写入对应于这个数据元的暂存数据块中。而后,服务端会判断旗标的值是否为真值(True Value),如果旗标为真值,服务端会整合上述已变动的高速缓存内的数据元和指纹值并把数据元和指纹值写入一主高速缓存中(Main Meta Cache)。
[0008] 上述方式,不仅可以保留数据重复删除系统的优点,更可以减少中央处理器和记忆体的处理量,进而达到节省备份时间的目的。
[0009] 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

附图说明

[0010] 图1为依据本发明内容第一实施例的硬件结构示意图;
[0011] 图2为图1的数据流向图;
[0012] 图3为图1的流程图;
[0013] 图4为图1的细部流程图;
[0014] 图5为图4步骤S620的流程图;
[0015] 图6为依据本发明内容第二实施例的流程图;
[0016] 图7为依据本发明内容第三实施例的流程图;
[0017] 图8为依据本发明内容第四实施例的流程图。
[0018] 其中,附图标记
[0019] 10、10a、10b、10c 客户端
[0020] 12 中央处理器
[0021] 14 记忆体
[0022] 15 硬盘
[0023] 16 硬盘高速缓存
[0024] 18、18a 数据块
[0025] 20 服务端
[0026] 22 中央处理器
[0027] 24 记忆体
[0028] 25、25a、25b、25c 高速缓存
[0029] 26 硬盘
[0030] 27、27a 暂存数据块
[0031] 28 主高速缓存
[0032] 29 储存数据块
[0033] 30 空白储存数据块
[0034] S100 设置旗标
[0035] S150 接收客户端的备份数据元请求
[0036] S200 读取数据元的指纹值
[0037] S300 判断指纹值是否与对应数据元的暂存指纹值一致
[0038] S310 计算数据元的哈希值
[0039] S320 读取哈希值对应的暂存数据块中的暂存指纹值
[0040] S330 判断指纹值与暂存指纹值是否相等
[0041] S400 写入数据元及指纹值于对应的暂存数据块中
[0042] S500 判断旗标是否为真值
[0043] S600 把数据元及指纹值写入主高速缓存中并重置旗标
[0044] S610 判断已写入暂存数据块中的指纹值是否与主高速缓存中对应暂存数据块的储存指纹值一致
[0045] S620 写入暂存数据块中的数据元与指纹值至储存数据块中并重置旗标[0046] S622 判断储存数据块的引用计数器是否大于1
[0047] S624 复制移动储存数据块的数据元及指纹值至空白储存数据块[0048] S626 移动非属暂存数据块的指针至空白储存数据块
[0049] S628 覆盖写入数据元及指纹值至储存数据块中并重置旗标
[0050] S700 设置计数器
[0051] S710 累加计数器的值
[0052] S720 判断计数器的值是否大于或等于预设值
[0053] S730 设定旗标为真值
[0054] S740 重置计数器
[0055] S800 设置定时器
[0056] S820 判断定时器的值是否大于或等于预设值
[0057] S830 设定旗标为真值
[0058] S840 重置定时器
[0059] S930 设定旗标为真值

具体实施方式

[0060] 以下在实施方式中明确且充分叙述本发明内容的详细特征以及优点,其内容足以使任何本发明内容所属技术领域中具有通常知识者了解本发明内容的技术内容并据以实施,且根据本说明书所揭示的内容、权利要求范围及附图,本发明内容所属技术领域中具有通常知识者可轻易地理解本发明内容相关的目的及优点。
[0061] 本发明内容为一种事务型系统的处理方法,请参阅图1,图1为依据本发明内容一实施例的硬件结构示意图。本实施例的一客户端10与一服务端20相连,数据是由客户端10传送至服务端20。客户端10内部具有一中央处理器12、一记忆体14、一硬盘15以及一硬盘高速缓存16。数据在做备份时,是读取硬盘15内的数据再通过中央处理器12以及记忆体14把数据分成多块数据,并放置于数据块18。而数据块18则是放置在硬盘高速缓存
16中。
[0062] 如图1所示,服务端20是由一中央处理器22、一记忆体24、一硬盘26、一高速缓存25以及一主高速缓存28所组成。在服务端20中,是由中央处理器22以及记忆体24去控制数据的接收以及分配。接收到的数据会先被写在对应于客户端10的高速缓存25的暂存数据块27里,经过整合后,一起写入主高速缓存28中,待整份数据接收完成后,再把数据写入硬盘26里。
[0063] 详细数据写入的方法可参照图2,图2为图1的数据流向图。从图2中可得知本发明内容可用来处理多个客户端10a、10b、10c并接收至少一个数据块18,且每一个客户端10a、10b、10c均分别有可与客户端10a、10b、10c对应的高速缓存25a、25b、25c。当欲接收第一客户端10a的数据块18a时,服务端20会先找到对应于第一客户端10a的第一高速缓存25a,再把数据块18a 写入对应于数据块18a的暂存数据块27a中。如图所示,高速缓存25a、25b、25c在接收了客户端10a、10b、10c的数据块18后,经过整合后,会把高速缓存
25a、25b、25c一起写入主高速缓存28中。
[0064] 再如图3所示,图3为图1的实施细部流程图。首先,服务端20会设置旗标S100,此旗标是服务端20用来判断是否须把高速缓存25的内容写入主高速缓存28中。当服务端20接收到客户端10发出的备份数据元请求S150后,服务端20会先读取数据元的指纹值(Fingerprinting)S200,服务端20并判断指纹值是否与对应数据元的暂存指纹值一致S300。此暂存指纹值位于高速缓存25的一暂存数据块27里,也就是原本就存在于高速缓存25中并经备份过的指纹值。由于数据元的指纹值与人类的指纹特性相似,不同数据元均有不一样的指纹值,故我们可以由指纹值判断两者数据元是否一致,若两者数据元为一致,服务端20即不需再重复写入此数据元。若服务端20判断指纹值与暂存指纹值不一致,服务端20会写入数据元及指纹值于对应的暂存数据块27中S400。在本发明内容中,判断指纹值是否与对应数据元的暂存指纹值一致S300是使用布隆过滤器判断这些指纹值是否已存在于暂存指纹值的集合中。
[0065] 本方法是可用于接收多个客户端10a、10b、10c至少一个数据元,也可以接收多个数据元,上述服务端20接收由客户端10备份数据元的请求的步骤S100到S400可依据接收的数据元的数量而重复执行。
[0066] 执行上述步骤S100到S400后,服务端20会先判断旗标是否为真值S500。因旗标是服务端20用来判断是否须把高速缓存25的内容写入主高速缓存28中,故当旗标为真值时,服务端20会把数据元及指纹值写入主高速缓存28中并重置旗标S600。重置旗标是为了使服务端20可以重新判断下一次把高速缓存25写入主高速缓存28的时点。
[0067] 为了让阅读者更清楚了解本发明内容,我们可以把判断指纹值是否与对应数据元的暂存指纹值一致S300的步骤用更细部的说明。请参考图4,图4为图1的方法细部流程图。为了要判断指纹值是否与对应数据元的暂存指纹值一致S300,达到可删除重复数据的目的,故服务端20须先计算数据元的哈希值(Hash,赫序值)S310。哈希值是用来表示数据元所存放的位置,故得知数据元的哈希值后,可以得到此数据元存放于高速缓存25中的位置,而数据元的哈希值可以由指纹值计算得知。
[0068] 服务端20得知了数据元的哈希值后,接着便可读取哈希值对应的暂存数据块27中的暂存指纹值S320。若哈希值对应的暂存数据块27中不具暂存指纹值时,服务端20可以直接写入对应该哈希值的数据元及指纹值于该暂存数据块27中。有了数据元的指纹值以及对应的暂存指纹值后,服务端20即可判断指纹值与暂存指纹值是否相等S330。
[0069] 再如图4所示,把数据元及指纹值写入主高速缓存28中并重置旗标S600的步骤可再细分为判断已写入暂存数据块27中的指纹值是否与主高速缓存28中对应的暂存数据块27的储存指纹值一致S610以及写入暂存数据块27中的数据元与指纹值至储存数据块29中S620。每一个存入暂存数据块27的指纹值会分别对应到主高速缓存28中的储存指纹值,与上述指纹值与暂存指纹值的对比一样,若存入暂存数据块27的指纹值与主高速缓存28中的储存指纹值相同,服务端20即不需重新存入对应的暂存数据元。但若存入暂存数据块27的指纹值与主高速缓存28中的储存指纹值不相同,即代表暂存数据块27的数据元与主高速缓存28中储存的数据元不同,此时,服务端20就必须写入暂存数据块27中的数据元与指纹值至储存数据块29中S620。
[0070] 如图5所示,图5为图4步骤S620的流程图。步骤服务端20写入暂存数据块27中的数据元与指纹值至储存数据块29中S620时,服务端20会先判断储存数据块29的引用计数器是否大于1S622。此引用计数器是用来计算目前有几个暂存数据块27的指针指向此储存数据块29。当客户端10数据元变更时,因其它客户端10的数据元未必会变更,故当服务端20欲把修正后的数据元及指纹值写入储存数据块29中时,必须要考虑到是否有其它的暂存数据块27也同时指向此储存数据块29。若是有其它的暂存数据块27也指向储存数据块29,此时,服务端20需先复制移动储存数据块29的数据元及指纹值至另一空白储存数据块30S624,以保有其它暂存数据块27原有的数据。此空白储存数据块30即为空白的储存数据块29。复制移动储存数据块29的数据元及指纹值后,还须先移动非属暂存数据块27的指针至空白储存数据块30S626,此空白储存数据块30与复制移动储存数据块29的数据元及指纹值至空白储存数据块30S624中的空白储存数据块30相同,在经由上述步骤复制移动储存数据块29的数据元及指纹值至空白储存数据块30S624后,此空白储存数据块30的内容即成为储存数据块29的数据。而步骤移动其它非属暂存数据块 27的一指针至空白储存数据块30S626即为把其它未修正的暂存数据块27以及指向原本储存数据块29的指针都移至一个新的储存数据块29。这样一来,主高速缓存28于其它暂存数据块
27保有原本的数据后,服务端20便可覆盖写入数据元及指纹值至储存数据块29中并重置旗标S628。
[0071] 参照图6,图6为依据本发明内容第二实施例的流程图。在本发明内容的第二实施例中,服务端20会先重设一计数器S700,此计数器是用来计算服务端20把接收的数据元写入高速缓存25的次数。每当服务端20写入数据元及指纹值于对应的暂存数据块27中S400后,服务端20会自动累加计数器的值S710。接着服务端20会判断计数器的值是否大于或等于一默认值S720,当计数器的值大于或等于一默认值时,服务端20会把旗标设定为真值S730。此默认值为服务端20设定的数目,可以为5次、10次等实体数字,此设定值的数字可为任何数字,不被本实施方式所发明的内容限制。
[0072] 再参照图7,图7为依据本发明内容第三实施例的流程图。在本发明内容的第三实施例中,服务端20会先重设一定时器S800,此定时器会计算经过了多久时间。在写入数据元及指纹值于对应的暂存数据块27中S400的步骤后,服务端20会判断定时器的值是否大于或等于一默认值S820,当定时器的值大于或等于一默认值时,服务端20会把旗标设定为真值S830。此默认值为服务端20设定的时间长度,可以为5秒、10秒等时间长度,此设定值的时间长度可为任何数字,不被本实施方式所发明的内容限制。
[0073] 再参照图8,图8为依据本发明内容第四实施例的流程图。在写入数据元及指纹值于对应的暂存数据块27中S400的步骤后,服务端20会直接设定旗标为真值S930,也就是只要有一个暂存数据元被更改旗标就会设为真值。所以即使仅有一个暂存数据元被更改,服务端20于判断旗标是否为真值S500后即会执行把数据元及指纹值写入一主高速缓存28中并重置旗标S600。而上述的第二实施例、第三实施例及第四实施例也可以同时使用,也就是同时使用计数器、定时器及旗标判断暂存数据元是否被更改。
[0074] 综上所述,本发明内容提供了一种事务型系统处理的方法,此方法可以在数据重复删除系统中提供一种降低中央处理器以及记忆体处理量的方法,不仅可舒缓备份时所需的大量空间需求,并大幅降低备份的速度及成本。
[0075] 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。