一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于匿名感知重复数据删除的数据存储装置和方法与流程

2022-06-01 15:45:54 来源:中国专利 TAG:


1.本发明大体上涉及数据保护和备份领域,更具体地,涉及用于匿名感知重复数据删除的数据存储装置和方法。


背景技术:

2.通常,数据备份用于在主存储系统中发生数据丢失事件时保护和恢复数据。数据丢失事件的示例可以包括但不限于数据损坏、主存储设备中的硬件或软件故障、数据意外删除、黑客或恶意攻击。因此,出于安全原因,单独的备份系统或辅助存储器(例如,数据存储装置)广泛用于存储主存储系统中存在的数据备份。
3.目前,数据匿名化用于保护机密或私人信息的隐私,如信用卡号码、社会保障号码。在数据匿名化中,机密或个人数据,如个人身份信息,经常被混淆,以便与数据关联的人保持匿名。但是,可以观察到,数据匿名化对重复数据删除的有效性产生了不利影响,因为如果将原始数据用作参考,匿名化数据不会进行重复数据删除。术语“重复数据删除”通常指消除重复或冗余信息。随着数据匿名化更改数据,它与原始数据不再相同,因此增加了备份和重复数据删除工作。此外,当要备份的数据流中出现大型相同数据块(chunk)时,现有的重复数据删除方法(如可变长度重复数据删除)很有效。但是,如果数据频繁更改或更改非常小,这种现有的重复数据删除方法效果不好。例如,即使更改块中的字符也可能将数据块呈现为新块,传统的重复数据删除方法不会查找到任何相同的数据块,从而降低重复数据删除的有效性。因此,随着时间的推移,由于会存储更多的重复数据,这些重复数据在传统的辅助存储器中占用了大量存储空间,所以辅助存储器的存储空间随之被占用。由于这会降低辅助存储器的性能,所以不希望出现这种情况。而且,文件存储的成本以及包括存储硬件成本在内的所有关联成本仍然是一个难题。
4.因此,鉴于上述讨论,需要克服上述与传统数据存储系统和重复数据删除方法相关的缺点。


技术实现要素:

5.本发明旨在提供一种用于匿名感知重复数据删除的数据存储装置和方法。本发明旨在提供一种技术方案,以解决与数据匿名相关的低效重复数据删除的现有问题。本发明的目的是提供一种至少部分克服现有技术中遇到的问题的技术方案,并提供一种考虑重复数据删除期间数据匿名(即,匿名感知重复数据删除)的改进的数据存储装置和方法,这样即使在存在匿名数据的情况下,也能实现高效的重复数据删除。
6.本发明的目标是通过所附独立权利要求中提供的技术方案来实现的。本发明的有利实施方式在从属权利要求中进一步定义。
7.一方面,本发明提供了一种数据存储装置,包括存储器和控制器,其中,所述存储器用于存储一个或多个数据元素,所述控制器用于利用重复数据删除来存储所述一个或多个数据元素中的至少一个,所述数据存储装置的特征在于,所述控制器还用于:接收待匿名
数据的指示;接收待存储的数据元素;解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分;生成所述一个或多个待匿名的数据部分的副本;从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分,生成待存储的修改数据元素;生成待利用重复数据删除存储的修改数据元素的副本;存储所述待存储的修改数据元素的副本以及所述一个或多个待匿名的数据部分的副本。
8.本发明的数据存储装置考虑了重复数据删除期间的数据匿名(即,匿名感知重复数据删除),这样即使在存在匿名数据的情况下,也能实现高效的重复数据删除。在所述数据存储装置中,所述一个或多个待匿名的数据部分由所述控制器分开解析和存储,以实现接收用于存储的数据元素的有效重复数据删除。此外,本发明高效地利用了存储空间,如在匿名感知重复数据删除中那样,不存储重复数据,从而与传统存储相比,提高了系统性能,其中大量存储空间被重复数据占用,因为传统系统不考虑匿名数据的存在,进一步影响传统存储器的系统性能。
9.在一种实现方式中,所述控制器还用于将所述待存储的修改数据元素的副本存储在第一存储区域中;将所述一个或多个待匿名的数据部分存储在第二存储区域中。
10.通过分开存储所述修改数据元素的副本和所述一个或多个待匿名的数据部分,所述数据存储装置能够对所述修改数据元素执行重复数据删除。
11.在另一种实现方式中,所述控制器还用于存储所述一个或多个待匿名的数据部分,其中,所述一个或多个待匿名的数据部分附加到所述待存储的修改数据元素的副本上。
12.通过附加所述一个或多个待匿名的数据部分,所述数据存储装置能够在需要时高效地存储和检索所述数据元素。
13.在另一种实现方式中,所述控制器还用于生成所述一个或多个待匿名的数据部分中的每个待匿名的数据部分的对应指针,并存储所述一个或多个待匿名的数据部分的副本以及所述对应指针。
14.生成并存储所述一个或多个待匿名的数据部分中的每个待匿名的数据部分的指针,使得能够轻易地检索所述数据元素。此外,与传统系统相比,指针的使用还降低了存储空间要求。
15.在另一种实现方式中,所述对应指针表示所述对应的待匿名数据部分在所述数据元素中的位置。
16.所述指针对应于所述一个或多个待匿名的数据部分的来源(即,在数据元素中)的地址。因此,在需要时可以轻易地检索所述数据元素。
17.在另一种实现方式中,所述控制器还用于解析所述待存储的数据元素,以通过在指定为待匿名字段的数据字段中查找数据部分来查找一个或多个待匿名的数据部分。
18.根据待匿名的数据字段进行解析能够有效、快速地从所述接收到的数据元素中解析匿名数据或待匿名数据。因此,可以自发地对所述数据元素实现重复数据删除。
19.在另一种实现方式中,所述控制器还用于解析所述待存储的数据元素,以通过查找具有与匿名格式匹配的数据格式的数据部分来查找一个或多个待匿名的数据部分。
20.根据所述待匿名数据的格式进行解析能够准确标识并有效从所述接收到的数据元素解析匿名数据或待匿名数据。因此,可以有效地对所述数据元素实现重复数据删除。
21.在另一种实现方式中,所述控制器还用于通过以下方式恢复数据元素:接收待恢
复的修改数据元素的副本以及一个或多个匿名数据部分的副本;通过利用重复数据删除提取来提取所述修改数据元素,生成所述数据元素的恢复副本;将所述一个或多个匿名数据部分插入所述数据元素的恢复副本中。
22.所述控制器用于通过将所述修改数据元素与所述一个或多个匿名数据部分组合来生成数据元素的恢复副本。因此,在需要时可以高效、准确地检索(或恢复)所述数据元素。
23.另一方面,本发明提供了一种用于数据存储装置的方法,其中,所述数据存储装置包括存储器,所述存储器用于存储一个或多个数据元素,所述方法包括利用重复数据删除来存储所述一个或多个数据元素中的至少一个,所述方法的特征在于,所述方法还包括:接收待匿名数据的指示;接收待存储的数据元素;解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分;生成所述一个或多个待匿名的数据部分的副本;从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分,生成待存储的修改数据元素;生成待利用重复数据删除存储的修改数据元素的副本;存储所述待存储的修改数据元素的副本以及所述一个或多个待匿名的数据部分的副本。
24.本发明的方法考虑了重复数据删除期间的数据匿名(即,匿名感知重复数据删除),即使在存在匿名数据的情况下,也能实现高效的重复数据删除。在所述方法中,所述一个或多个待匿名的数据部分被分开解析和存储,以实现接收用于存储的数据元素的有效重复数据删除。此外,本发明的所述方法高效地利用了存储空间,如在匿名感知重复数据删除中那样,不存储重复数据,从而与传统方法相比,提高了性能,其中大量存储空间被重复数据占用,因为传统系统不考虑匿名数据的存在。
25.在一种实现方式中,所述方法还包括通过以下方式恢复数据元素:接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本;通过利用重复数据删除提取来提取所述修改数据元素,生成所述数据元素的恢复副本;将所述一个或多个匿名数据部分插入所述数据元素的恢复副本中。
26.所述方法能够通过将所述修改数据元素与所述一个或多个匿名数据部分组合来生成数据元素的恢复副本。因此,在需要时所述方法可以高效地检索所述数据元素。
27.在又一个方面中,本发明提供了一种携带计算机指令的计算机可读介质,当所述计算机指令加载到数据存储装置的控制器中并由其执行时,所述数据存储装置能够实现上述方面的方法。
28.本发明的计算机可读介质能够对具有匿名数据或待匿名数据的数据执行重复数据删除,与传统存储相比,重复数据删除不可能或对具有匿名数据的数据无效。
29.另一方面,本发明提供了一种数据存储装置,包括存储器,所述存储器用于存储一个或多个数据元素,所述数据存储装置还包括重复数据删除存储软件模块,用于利用重复数据删除来存储所述一个或多个数据元素中的至少一个,所述数据存储装置的特征在于,所述数据存储装置还包括:用于接收待匿名数据的指示的软件模块;用于接收待存储的数据元素的软件模块;用于解析所述待存储的数据元素的软件模块,以查找一个或多个待匿名的数据部分;用于生成所述一个或多个待匿名的数据部分的副本的软件模块;用于从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分的软件模块,生成待存储的修改数据元素;用于生成待利用重复数据删除存储的修改数据元素的副本的软件模块;用
于存储所述待存储的修改数据元素的副本以及所述一个或多个待匿名的数据部分的副本的软件模块。
30.通过使用本发明的所述软件模块,所述数据存储装置考虑了重复数据删除期间的数据匿名(即,匿名感知重复数据删除),即使在存在匿名数据的情况下,也能实现高效的重复数据删除。在所述数据存储装置中,所述一个或多个待匿名的数据部分由所述软件模块分开解析和存储,以实现接收用于存储的数据元素的有效重复数据删除。此外,本发明高效地利用了存储空间,就像在匿名感知重复数据删除中一样,不存储重复数据,从而与传统存储相比提高了系统性能。
31.在一种实现方式中,所述数据存储装置还包括用于恢复数据元素的数据元素恢复软件模块,所述数据元素恢复软件模块包括:数据元素接收软件模块,用于接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本;重复数据删除提取软件模块,用于通过利用重复数据删除提取来提取所述修改数据元素,生成所述数据元素的恢复副本;插入软件模块,用于将所述一个或多个匿名数据部分插入所述数据元素的恢复副本中。
32.所述恢复软件模块通过将所述修改数据元素与所述一个或多个匿名数据部分组合来生成数据元素的恢复副本。因此,在需要时可以高效地检索所述数据元素。
33.应当理解的是,所有上述实施方式可以组合在一起。
34.需要说明的是,本技术中描述的所有设备、元件、电路、单元和模块都可以在软件元件或硬件元件或其任何类型的组合中实现。本技术中描述的各种实体所执行的步骤以及所描述的各种实体要执行的功能均意在指各个实体用于执行各个步骤和功能。即使在以下具体实施例的描述中,外部实体要执行的特定功能或步骤未反映在执行该特定步骤或功能的实体的特定详细元件的描述中,技术人员应清楚,这些方法和功能可以在相应的软件或硬件元件中实现,或以此类元件的任何种组合实现。可以理解的是,本发明的特征易于以各种组合进行组合,而不脱离由所附权利要求书所定义的本发明的范围。
35.附图以及结合所附权利要求解释的说明性实施方式的详细描述将清楚地描述本发明的其它方面、优点、特征和目的。
附图说明
36.结合所附附图阅读时,可以更好地理解上述发明内容以及说明性实施例的下列详细描述。为了说明本发明,本发明的示例性结构在附图中示出。然而,本发明并不限于本文公开的特定方法和手段。此外,本领域的技术人员将理解,这些附图并非按比例绘制。在可能的情况下,相同的元件使用相同的数字表示。
37.下面仅通过举例,结合以下附图对本发明实施例进行描述。
38.图1a为本发明实施例提供的用于匿名感知重复数据删除的数据存储装置的框图。
39.图1b为本发明另一个实施例提供的用于匿名感知重复数据删除的数据存储装置的框图。
40.图2为本发明实施例提供的用于匿名感知重复数据删除的数据存储装置的方法的流程图。
41.在附图中,带下划线的数字用于表示带下划线的数字所在的项目或与带下划线的数字相邻的项目。不带下划线的数字与将该不带下划线的数字链接到项目的线条所标识的
项目相关。当数字不带下划线但带有关联箭头时,不带下划线的数字用于标识箭头所指的一般项目。
具体实施方式
42.以下详细描述说明了本发明的实施例及其实施方式。虽然已公开本发明的一些实施方式,但本领域的技术人员将认识到,也可以实现用于实施或实践本发明的其它实施例。
43.图1a为本发明实施例提供的数据存储装置的框图。参考图1a,示出了数据存储装置100a。数据存储装置100a包括存储器102和控制器104。在一种实现方式中,存储器102包括第一存储区域108和第二存储区域110,数据存储装置100a还包括网络接口112。
44.一方面,本发明提供了一种数据存储装置100a,包括存储器102和控制器104。所述存储器102用于存储一个或多个数据元素106,所述控制器104用于利用重复数据删除来存储所述一个或多个数据元素106中的至少一个,所述数据存储装置100a包括所述控制器104,所述控制器104还用于:接收待匿名数据的指示;接收待存储的数据元素;解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分;生成所述一个或多个待匿名的数据部分的副本;从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分,生成待存储的修改数据元素;生成待利用重复数据删除存储的修改数据元素的副本;存储所述待存储的修改数据元素的副本以及所述一个或多个待匿名的数据部分的副本。
45.存储器102是指数据存储装置100a的硬件存储器。存储器102包括合适的逻辑、电路或接口,这些逻辑、电路或接口用于根据从控制器104接收的指令存储一个或多个数据元素106、指针和其它数据。此外,存储器102可用于进一步存储控制器104可执行的指令。存储器102的实现示例可以包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘驱动器(hard disk drive,hdd)、闪存、固态硬盘(solid-state drive,ssd)和/或cpu缓存。存储器102可以存储操作系统或其它程序产品(包括一个或多个操作算法),以操作所述数据存储装置100a。第一存储区域108和第二存储区域110分别是指存储器102中的块或文件或其它相关存储区域。
46.一个或多个数据元素106是指到达数据存储装置100a的传入信息或数据流。例如,一个或多个数据元素106可以在重复数据删除过程中(即,当从主存储系统(例如主机服务器)执行备份到数据存储装置100a等辅助存储系统时),作为输入/输出(i/o)请求到达。在一个示例中,一个或多个数据元素106可能包括个人数据,例如个人可识别数据或根据各种法规或数据保护法(例如数据保护法案(data protection act,dpa))可能受数据隐私和安全约束的数据。一个或多个数据元素106可以是结构化数据,例如具有定义的字段,例如姓名、年龄、电话号码、信用卡号码、地址等。例如,一个或多个数据元素106可以包括字符串“dani,33,0541111111,4580800080001999,a street”,表示按顺序的字段姓名、年龄、电话号码、信用卡号码和地址字段。在另一个示例中,一个或多个数据元素106可以是非结构化数据,其中需要匿名的数据可以出现在数据集中的任何位置,而没有特定的字段或已知的位置。
47.网络接口112包括适当的逻辑、电路和/或接口,这些逻辑、电路和/或接口可以用于与用户设备或服务器等一个或多个外部设备通信。网络接口112的示例可以包括但不限
于网络接口卡(network interface card,nic)、天线、射频(radio frequency,rf)收发器或网络端口。
48.控制器104用于利用重复数据删除来存储一个或多个数据元素106中的至少一个。在一种实现方式中,控制器104用于执行存储在存储器102中的指令。在一个示例中,处理器104可以是通用处理器。控制器104的示例可以包括但不限于微处理器、微控制器、复杂指令集计算(complex instruction set computing,cisc)处理器、专用集成电路(application-specific integrated circuit,asic)处理器、精简指令集计算(reduced instruction set computing,risc)处理器、超长指令字(very long instruction word,vliw)处理器、中央处理器(central processing unit,cpu)、状态机、数据处理单元以及其它处理器或控制电路。此外,控制器104可以指一个或多个单独的处理器、处理设备、作为机器一部分的处理单元,例如数据存储装置100a。控制器104用于利用重复数据删除来存储一个或多个数据元素106中的至少一个。重复数据删除使数据存储装置100a能够防止将重复数据存储在存储器102等辅助存储器中。因此,节省了大量的存储空间,进一步提高了数据存储装置100a的系统性能。在一个示例中,数据存储装置100a是指辅助存储器。使用重复数据删除来存储的一个或多个数据元素106的至少一个数据元素可以是机密数据,例如信用卡号码、社会保障号码或任何其它个人信息。
49.在操作中,控制器104用于接收待匿名数据的指示。数据的匿名是指由控制器104执行的信息净化过程,以实现隐私保护。它是对个人身份信息进行加密、混淆或从一个或多个数据元素106中删除的过程,以便与数据相关联的人保持匿名。待匿名数据的指示可以由用户提供。在一个示例中,控制器104可以用于接收用户输入,该用户输入是要选择用于标识敏感数据的设置或配置的指示。例如,用户可以根据需要配置可能应用于数据的匿名,例如通用数据保护条例(general data protection regulation,gdpr)匿名、仅信用卡号码等部分的匿名,等等。选择或配置的这些设置和配置可以预先存储在存储器102中。
50.控制器104还用于接收待存储的数据元素。待存储的数据元素可以由控制器104从外部设备接收,该外部设备通过通信网络通信地耦合到数据存储装置100a。数据存储装置100a可以是用于存储用户设备或主存储系统的数据的备份的辅助存储器。在一个示例中,数据存储装置100a用于存储组织中的多个用户设备或主机服务器的数据。在一个示例中,可以在备份时接收数据元素以执行重复数据删除。数据元素对应于一个或多个数据元素106。
51.在一个示例中,由控制器104接收的待存储的数据元素在下面的表(1)中给出(在实践中,这样的表可以具有数百万行)。
52.表1
53.姓名年龄电话号码信用卡号码地址dani3305411111114580800080001999a街道josef5505412222224580123434001999b街道
54.其中,姓名为64个字符,年龄为3个字符,电话号码为10个字符,信用卡号码为16个字符,地址为64个字符。在另一个示例中,控制器104接收的待存储数据元素是字母数字字符串:dani,33,0541111111,4580800080001999,a街道;josef,55,0541222222,4580123434001999,b街道。
55.控制器104还用于解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分。控制器104用于根据接收到的用于数据匿名的指示(即用户配置)解析待存储的数据元素。在一个示例中,控制器104检测哪些数据是敏感(即机密)数据所使用的算法可能根据控制器104从用户接收的配置工作。例如,在数据元素是结构化数据的情况下,给定数据字段的位置是预定义的或已知的,它将被相应地解析。例如,在控制器104接收的数据元素中,信用卡号码数据字段在从字母数字字符串的开始的起始偏移

67’(16个字符)和起始偏移

224’(16个字符)处被标识。在另一个示例中,可以根据用户配置和规则使用模式来标识一个或多个待匿名的数据部分(例如,敏感数据)。有益的是,一个或多个待匿名的数据部分由控制器104解析,以实现控制器104接收到用于存储的数据元素能够高效地进行重复数据删除。在传统技术中,待匿名的数据部分不从数据元素中解析,因此重复数据删除的效率低下。
56.根据一个实施例,控制器104还用于解析所述待存储的数据元素,以通过在指定为待匿名字段的数据字段中查找数据部分来查找一个或多个待匿名的数据部分。这里的数据字段是指可以以结构化形式存储类似数据的大类数据。在一个示例中,数据字段可以是姓名、年龄、电话号码、信用卡号码、居住地址,其中,信用卡号码可以被标识为待匿名的字段。在这样的示例中,数据字段(信用卡号码)的数据元素被解析和存储以进行匿名。
57.根据一个实施例,控制器104还用于解析所述待存储的数据元素,以通过查找具有与匿名格式匹配的数据格式的数据部分来查找一个或多个待匿名的数据部分。这里的数据格式是指数据元素的定义格式,如使用的字符数或字母数或数值数,或某些模式。控制器104用于从用户接收匿名格式(即用户指定的格式)。在一个示例中,通过查找具有与用户指定格式匹配的数据格式的数据部分来解析数据元素,如果接收到的数据是结构化的、非结构化的或具有一些唯一模式,则通过理解数据元素的格式来执行。在一个示例中,信用卡号码等数据格式可以具有仅指定长度(例如16位)的数字的唯一格式,或年龄具有1或2位的格式。信用卡号码有非常特殊的格式和校验和内置,有助于查找信用卡号码的数据格式。与信用卡号码一样,可以为待匿名的数据标识唯一模式,以隔离此类数据部分。
58.控制器104还用于生成一个或多个待匿名的数据部分的副本。生成一个或多个待匿名的数据部分的副本,使得控制器104能够将待匿名的数据部分与控制器104接收的数据元素的其余部分分离。在一个示例中,一个或多个待匿名的数据部分的副本是根据数据部分的起始偏移和结束偏移生成的。在一个示例中,在控制器104接收的数据元素中,信用卡号码在起始偏移

67’和结束偏移

224’处被标识,因此生成偏移

67’和偏移

224’之间的数据部分(长度为16位/字符)的副本。
59.根据一个实施例,可以在解析一个或多个数据部分之前将其匿名。因此,生成一个或多个已经匿名的数据部分的副本。在一个示例中,控制器104可以包括执行数据部分匿名的算法。这些算法根据接收到的待匿名数据的指示来标识待匿名的数据部分。
60.在一个示例中,控制器104接收的数据元素(匿名之前)可以表示为:dani,33,0541111111,4580800080001999,a街道;josef,55,0541222222,4580123434001999,b街道。此外,在执行用于匿名的算法时,数据元素(匿名之后)可以表示为:dani,33,0541111111,1111222233334444,a街道;josef,55,0541222222,1111222233334444,b街道。在这样的示例中,16位数字的数据格式被标识为用于匿名的数据格式。
61.在另一个示例中,控制器104接收的数据元素(匿名之前)可以由下文给出的表2来表示。此外,在执行用于匿名的算法时,数据元素(匿名之后)可以由下文给出的表3表示(此处仅将信用卡号码匿名)。表的宽度只有157个字符(即姓名为64个字符,年龄为3个字符,电话号码为10个字符,信用卡号码为16个字符,地址为64个字符)。在传统技术中,可变大小的重复数据删除将无法标识相同的块,因此表1和表2之间的重复数据删除将为零,此外,由于表可能有数百万行,存储空间的利用率可能很低。然而,在数据存储装置100a中,从控制器104接收的数据元素来解析一个或多个待匿名的数据部分或一个或多个已经匿名的数据部分。结果,重复数据删除由数据存储装置100a高效地执行,从而高效地利用存储空间。
62.表2
63.姓名年龄电话号码信用卡号码地址dani3305411111114580800080001999a街道josef5505412222224580123434001999b街道
64.表3
65.姓名年龄电话号码信用卡号码地址dani3305411111111111222233334444a街道josef5505412222221111222233334444b街道
66.控制器104还用于从待存储的数据元素中删除一个或多个待匿名的数据部分,生成待存储的修改数据元素。标识为待匿名数据的数据部分与数据的其余部分分离,并保留指向数据最初所在位置的指针。与传统技术相比,现在可以对修改数据元素实施重复数据删除,以标识重复数据元素,其中由于传统技术中的数据元素中存在匿名数据,所以将重复数据元素标识为新的数据元素。
67.控制器104还用于生成待利用重复数据删除存储的修改数据元素的副本。将待存储的修改数据元素的副本与一个或多个待匿名的数据部分的副本分开存储,从而能够标识重复数据元素。
68.在示例性实现方式中,由控制器104接收的数据表示为:dani(64个字节)、33(3个字节)、0541111111(10个字节)、4580800080001999(16个字节)、a街道(64个字节)、josef(64个字节)、55(3个字节)、0541222222(10个字节)、4580123434001999(16个字节)、b街道(64个字节)。在此类示例中,16位信用卡号码在偏移

67’和偏移

224’处标识,解析并分离。因此,修改数据元素表示为:dani(64个字节)、33(3个字节)、0541111111(10个字节)、a街道(64字节)、josef(64个字节)、55(3个字节)、0541222222(10个字节)、b街道(64个字节),待匿名的数据部分表示为:4580800080001999(偏移

67’)、4580123434001999(偏移

224’)。
69.在另一个示例性实现方式中,由控制器104接收的数据具有匿名数据时表示为:dani(64个字节)、33(3个字节)、0541111111(10个字节)、1111222233334444(16个字节)、a街道(64个字节)、josef(64个字节)、55(3个字节)、0541222222(10个字节)、1111222233334444(16个字节)、b街道(64个字节)。在此类示例中,16位信用卡号码在偏移

67’和偏移

224’处标识,解析并分离。因此,修改数据元素表示为:dani(64个字节)、33(3个字节)、0541111111(10个字节)、a街道(64字节)、josef(64个字节)、55(3个字节)、0541222222(10个字节)、b街道(64个字节),已经匿名的数据部分表示为:1111222233334444(偏移

67’)、1111222233334444(偏移

224’)。
70.根据一个实施例,修改数据元素还经历可变长度重复数据删除。根据分块算法,修改数据元素被分块成不同的可变大小的块(即可变数据块)。此外,控制器104还用于使用哈希算法对每个块进行哈希运算。因此,每个块都有一个哈希签名,该签名是使用散列算法生成的。在一个示例中,基于内容的散列算法,例如拉宾哈希,可以用于根据数据元素的内容在位置上隔离数据元素。此外,如果块的哈希签名与之前存储在数据存储装置100a中的块的哈希签名相同,则修改数据元素被标识为重复数据元素,并且仅存储指向块的指针(不存储相同的块),与传统系统和方法相比,显著减少了存储空间。在给定块的哈希签名与之前存储在存储器102中的块的哈希签名不相同的情况下,则将块存储在存储器102中,并将新块的哈希添加到之前的哈希签名中。
71.控制器104还用于存储待存储的修改数据元素的副本以及一个或多个待匿名的数据部分的副本。分开存储怀疑待匿名的数据部分或被标识和匿名的数据部分。与传统存储器相比,在传统存储器中,不对匿名的数据部分或待匿名的数据部分做任何区分,而直接存储这些数据元素,因此,传统存储器存储重复的数据元素。然而,本发明的数据存储装置100a将匿名的数据部分或待匿名的数据部分与所接收的数据元素的其它数据部分分开存储,因此,数据存储装置100a防止存储重复的数据元素。
72.根据一个实施例,控制器104还用于将待存储的修改数据元素的副本存储在第一存储区域108中;将一个或多个待匿名的数据部分存储在第二存储区域110中。分开存储所述修改数据元素的副本和一个或多个待匿名的数据部分,使得能够对修改数据元素执行重复数据删除。与传统技术相比,接收到的数据元素直接存储而不解析和删除一个或多个数据部分,导致没有重复数据删除或无效重复数据删除。
73.根据一个实施例,控制器104还用于存储一个或多个待匿名的数据部分,其中,所述一个或多个待匿名的数据部分附加到所述待存储的修改数据元素的副本上。将一个或多个待匿名的数据部分附加到待存储的修改数据元素的副本上,以在需要时能够高效地存储和检索数据元素。例如,在一个或多个待匿名的数据部分与修改数据元素的副本之间定义了一些关联,以便在用户请求时准确恢复。
74.在一些实现方式中,控制器104还用于生成一个或多个待匿名的数据部分中的每个待匿名的数据部分的对应指针,并存储所述一个或多个待匿名的数据部分的副本以及所述对应指针。生成并存储所述一个或多个待匿名的数据部分中的每个待匿名的数据部分的指针,使得在检索所述数据元素期间能够取回原始数据(即,所接收的数据元素)。
75.根据一个实施例,所述对应指针表示对应的待匿名数据部分在所述数据元素中的位置。所述指针对应于所述一个或多个待匿名的数据部分的来源(即,在数据元素中)的地址。因此,这些匿名的数据部分可以插入回数据元素中的原始定位(或位置),因此在需要时可以很容易地检索(恢复)数据元素。
76.根据一个实施例,控制器104还用于通过以下方式恢复数据元素:接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本;通过利用重复数据删除提取来提取所述修改数据元素,生成所述数据元素的恢复副本;将所述一个或多个匿名数据部分插入所述数据元素的恢复副本中。在一个示例中,控制器104在接收到来自用户的恢复请求(例如通过用户设备或主机服务器)时恢复数据元素。根据恢复请求,控制器104从存储器102检索待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本。控制器104用
于通过将所述修改数据元素与所述一个或多个匿名数据部分组合来生成数据元素的恢复副本。在一个示例中,如果之前存储的修改数据元素是重复的,并且仅存储了原始数据元素的地址,则原始数据元素由控制器104接收,并且一个或多个匿名数据部分被插入到数据元素中的适当位置。
77.有益的是,本发明的数据存储装置100a考虑了重复数据删除期间的数据匿名,即使在存在匿名数据的情况下,也能实现高效的重复数据删除。在不存储重复数据的情况下,重复数据删除能够高效地利用数据存储装置100a的存储器102的存储空间,从而提高系统性能。
78.图1b为本发明另一个实施例提供的数据存储装置的框图。参考图1b,示出了数据存储装置100b。数据存储装置100b还包括安装在存储器102中的重复数据删除存储软件模块114和软件模块116a至116g。数据存储装置100b还包括数据元素恢复软件模块118,数据元素恢复软件模块118还包括数据元素接收软件模块120a、重复数据删除提取软件模块120b和插入软件模块120c。还示出了控制器104和网络接口112。
79.另一方面,本发明提供了一种数据存储装置100b,包括存储器102,所述存储器102用于存储一个或多个数据元素106,所述数据存储装置100b还包括重复数据删除存储软件模块114,用于利用重复数据删除来存储所述一个或多个数据元素106中的至少一个,其中,所述数据存储装置100b还包括:软件模块116a,用于接收待匿名数据的指示;软件模块116b,用于接收待存储的数据元素;软件模块116c,用于解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分;软件模块116d,用于生成所述一个或多个待匿名的数据部分的副本;软件模块116e,用于从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分,生成待存储的修改数据元素;软件模块116f,用于生成待利用重复数据删除存储的修改数据元素的副本;软件模块116g,用于存储所述待存储的修改数据元素的副本以及所述一个或多个待匿名的数据部分的副本。
80.当由控制器104执行重复数据删除存储软件模块114时,重复数据删除存储软件模块114用于利用重复数据删除来存储一个或多个数据元素106中的至少一个。对数据存储装置100b接收用于存储的一个或多个数据元素106执行重复数据删除。将在接收到的一个或多个数据元素中一个或多个待匿名的数据部分从一个或多个数据元素中解析,并且进一步由重复数据删除存储软件模块114对其余数据元素(即修改数据)执行重复数据删除。在一个示例中,可变大小的重复数据删除由重复数据删除存储模块114执行。在这样的示例中,修改数据元素被分块。此外,每个块都有一个哈希签名,该签名是使用哈希算法生成的。此外,如果块的哈希签名与之前存储的块的哈希签名相同,则修改数据元素被标识为重复数据元素,并且将存储指向块的指针。
81.在示例性实现方式中,重复数据删除存储软件模块114可以包括软件模块116a至116g。在一种实现方式中,重复数据删除存储软件模块114(包括软件模块116a至116g)可能作为数据存储装置100b中的单独电路来实现。可选地,在另一种实现方式中,重复数据删除存储软件模块114作为执行软件模块116a至116g的各种操作的电路来实现。在一种实现方式中,软件模块116a至116g可以在操作上相互通信地耦合,并由数据存储装置100b的控制器104执行以执行它们各自的操作。
82.数据存储装置100b包括软件模块116a,当执行时,软件模块116a接收待匿名数据
的指示。当软件模块116a由控制器104执行时,接收待匿名数据的指示。该指示是指由控制器104接收的用户输入。用户输入由用户通过软件模块116a提供作为指示。例如,软件模块116a可以是在与数据存储装置100b相关联的显示器上呈现的图形用户界面。用户可以提供用户输入,该用户输入表示选择特定用户配置或设置,该配置或设置表示如何标识待匿名数据或哪种配置适合于待匿名数据。
83.数据存储装置100b包括软件模块116b,当执行所述软件模块116b时,接收待存储的数据元素。当软件模块116b由控制器104执行时,网络接口112可以接收待存储的数据元素。
84.数据存储装置100b包括软件模块116c,当执行所述软件模块116c时,解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分。当软件模块116c由控制器104执行时,解析待存储的数据元素。软件模块116c可以包括解析器,以解析待存储的数据元素。解析器可以查找到所有待匿名的数据部分或块。软件模块116c用于根据接收到的软件模块116a对数据进行匿名的指示,解析待存储的数据元素。在一个示例中,当由控制器104执行软件模块116c时,所述软件模块116c根据待匿名的数据字段解析数据元素。在另一个示例中,软件模块116c根据与匿名格式相匹配的数据格式解析数据元素。
85.数据存储装置100b包括软件模块116d,当控制器104执行软件模块116d时,所述软件模块116d生成一个或多个待匿名的数据部分的副本。当控制器104执行软件模块116d时,软件模块116d生成一个或多个待匿名的数据部分的副本,以将待匿名的数据部分与软件模块116b接收的其余数据元素分离。
86.数据存储装置100b包括软件模块116e,当控制器104执行软件模块116e时,所述软件模块116e从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分,生成待存储的修改数据元素。当控制器104执行软件模块116e时,所述软件模块116e将标识为待匿名的数据部分与数据的其余部分分离,并且保留指向数据最初所在位置的指针。现在可以对修改数据元素实现重复数据删除,以标识重复的数据元素。
87.数据存储装置100b包括软件模块116f,当控制器104执行软件模块116f时,所述软件模块116f生成待利用重复数据删除存储的修改数据元素的副本。当控制器104执行软件模块116f时,所述软件模块116f将修改数据元素的副本与一个或多个待匿名的数据部分的副本分开存储,从而能够标识重复数据元素。
88.数据存储装置100b包括软件模块116g,当控制器104执行软件模块116g时,所述软件模块116g存储待存储的修改数据元素的副本以及一个或多个待匿名的数据部分的副本。软件模块116g分开存储怀疑待匿名的数据部分或被标识和匿名的数据部分。
89.根据一个实施例,数据存储装置100b还包括用于恢复数据元素的数据元素恢复软件模块118,所述数据元素恢复软件模块118包括:数据元素接收软件模块120a,用于接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本;重复数据删除提取软件模块120b,用于通过利用重复数据删除提取来提取所述修改数据元素,生成所述数据元素的恢复副本;插入软件模块120c,用于将所述一个或多个匿名数据部分插入所述数据元素的恢复副本中。在一个示例中,当控制器104执行数据元素恢复软件模块118时,数据元素恢复软件模块118在通过用户设备接收来自用户的恢复请求时恢复数据元素。根据恢复请求,当控制器104执行数据元素接收软件模块120a时,所述数据元素接收软件模块120a从存储
器102接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本。如果之前存储的修改数据元素是重复的,并且仅存储了原始数据元素的地址,则当由控制器104执行重复数据删除提取软件模块120b时,重复数据删除提取软件模块120b通过网络接口112接收原始数据元素。当控制器104执行插入软件模块120c时,插入软件模块120c通过将修改数据元素与一个或多个匿名数据部分组合来生成数据元素的恢复副本。
90.有利地,本发明的软件模块118a至118g能够高效和有效地对具有一个或多个待匿名的数据部分的数据元素进行重复数据删除。因此,数据存储装置100b利用的存储器102(例如,辅助存储器)的存储空间减小。
91.图2为本发明实施例提供的用于数据存储装置的方法的流程图。方法200在例如图1中描述的数据存储装置(例如,数据存储装置100a或100b)处执行。方法200包括步骤202至步骤214。
92.一方面,本发明提供了一种用于数据存储装置(例如,数据存储装置100a或100b)的方法200,所述数据存储装置包括用于存储一个或多个数据元素106的存储器102,所述方法200包括利用重复数据删除来存储一个或多个数据元素106中的至少一个,其中,所述方法200还包括:接收待匿名数据的指示;接收待存储的数据元素;解析所述待存储的数据元素,以查找一个或多个待匿名的数据部分;生成所述一个或多个待匿名的数据部分的副本;从所述待存储的数据元素中删除所述一个或多个待匿名的数据部分,生成待存储的修改数据元素;生成待利用重复数据删除存储的修改数据元素的副本;存储所述待存储的修改数据元素的副本以及所述一个或多个待匿名的数据部分的副本。
93.在步骤202中,方法200包括接收待匿名数据的指示。待匿名数据的指示由数据存储装置(例如,数据存储装置100a或100b)接收。待匿名数据的指示可以由用户提供。在一个示例中,可以接收用户输入,该用户输入是要选择用于识别敏感数据的设置或配置的指示。选择或配置的这些设置和配置可以预先存储在存储器中。
94.在步骤204中,方法200还包括接收待存储的数据元素。控制器104用于通过数据存储装置(例如,数据存储装置100a或100b)的网络接口112接收待存储的数据元素。待存储的数据元素可以由控制器104从外部设备(例如,主存储器)接收,该外部设备通过通信网络通信地耦合到数据存储装置(例如,数据存储装置100a或100b)。
95.在步骤206中,方法200还包括解析待存储的数据元素,以查找一个或多个待匿名的数据部分。可以由数据存储装置(例如数据存储装置100a或100b)的控制器104通过解析器对数据元素进行解析。根据接收到的用于数据匿名的指示(即用户配置)对待存储的数据元素进行解析。在一个示例中,控制器104检测哪些数据是敏感(即机密)数据所使用的算法可能根据控制器104从用户(即,用户输入)接收的配置工作。
96.根据一个实施例,对数据元素进行解析,以通过在指定为待匿名字段的数据字段中查找数据部分来查找一个或多个待匿名的数据部分。在一个示例中,数据字段可以是姓名、年龄、电话号码、信用卡号码、居住地址,其中,信用卡号码可以被标识为待匿名的字段。
97.根据一个实施例,对数据元素进行解析,以通过查找具有与匿名格式匹配的数据格式的数据部分来查找一个或多个待匿名的数据部分。在一个示例中,通过查找具有与匿名格式匹配的数据格式的数据部分来解析数据元素,如果接收到的数据是结构化的、非结构化的或具有一些唯一模式,则通过理解数据元素的格式来执行。
98.在步骤208中,方法200还包括生成一个或多个待匿名的数据部分的副本。控制器104生成一个或多个待匿名的数据部分的福分,使得能够将待匿名的数据部分与接收到的其余数据元素分离。在一个示例中,根据数据部分的起始偏移和结束偏移生成一个或多个待匿名的数据部分的副本,所述起始偏移和结束偏移定义所述一个或多个待匿名的数据部分的开始和结束(请注意,在信用卡示例中,信用卡数据中有两个开始点,每个开始点后面有16个字符)。
99.在步骤210中,方法200还包括从待存储的数据元素中删除一个或多个待匿名的数据部分,生成待存储的修改数据元素。控制器104将标识为待匿名数据的数据部分与数据的其余部分分离,并保留指向数据最初所在位置的指针。现在可以对修改数据元素实现重复数据删除,以标识重复的数据元素。
100.在步骤212中,方法200还包括生成待利用重复数据删除存储的修改数据元素的副本。将待存储的修改数据元素的副本与一个或多个待匿名的数据部分的副本分开存储,从而能够标识重复数据元素。
101.在步骤214中,方法200还包括存储修改数据元素的副本以及一个或多个待匿名的数据部分的副本。控制器104分开存储怀疑待匿名的数据部分或被标识和匿名的数据部分。
102.根据一个实施例,方法200还包括将待存储的修改数据元素的副本存储在第一存储区域108中;将一个或多个待匿名的数据部分存储在第二存储区域110中。分开存储所述修改数据元素的副本和一个或多个待匿名的数据部分,使得能够对修改数据元素执行重复数据删除。在传统技术中,接收到的数据元素直接存储而不解析和删除一个或多个数据部分,导致没有重复数据删除。
103.根据一个实施例,方法200还包括存储一个或多个待匿名的数据部分,其中,所述一个或多个待匿名的数据部分附加到所述待存储的修改数据元素的副本上。将一个或多个待匿名的数据部分附加到待存储的修改数据元素的副本上,以在需要时能够高效地存储和检索数据元素。
104.根据一个实施例,控制器200还包括生成一个或多个待匿名的数据部分中的每个待匿名的数据部分的对应指针,并存储所述一个或多个待匿名的数据部分的副本以及所述对应指针。生成并存储所述一个或多个待匿名的数据部分中的每个待匿名的数据部分的指针,使得在检索所述数据元素期间能够取回原始数据(即,所接收的数据元素)。
105.根据一个实施例,方法200包括:所述对应指针表示对应的待匿名数据部分在所述数据元素中的位置。所述指针对应于所述一个或多个待匿名的数据部分的来源(即,在数据元素中)的地址。
106.根据一个实施例,方法200还包括通过以下方式恢复数据元素:接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本;通过利用重复数据删除提取来提取所述修改数据元素,生成所述数据元素的恢复副本;将所述一个或多个匿名数据部分插入所述数据元素的恢复副本中。在一个示例中,控制器104能够在接收到来自用户的恢复请求(通过用户设备)时恢复数据元素。根据恢复请求,控制器104从存储器接收待恢复的修改数据元素的副本以及一个或多个匿名数据部分的副本。控制器104还能够通过将修改数据元素与一个或多个匿名数据部分组合来生成数据元素的恢复副本。在一个示例中,如果之前存储的修改数据元素是重复的,并且仅存储了原始数据元素的地址,则原始数据元素由控
制器104接收。
107.步骤202至214只是说明性的,并且还可以提供其它替代方案,其中添加一个或多个步骤,删除一个或多个步骤,或按照不同的顺序提供一个或多个步骤,而不脱离本文权利要求书的范围。
108.在一个方面中,提供了一种携带计算机指令的计算机可读介质,当将所述计算机指令加载到数据存储装置(例如数据存储装置100a或100b)的控制器104中并由控制器104执行时,使数据存储装置能够实现方法200。所述计算机可读介质的实现示例包括但不限于电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、硬盘驱动器(hard disk drive,hdd)、闪存、安全数字(secure digital,sd)卡、固态硬盘(solid-state drive,ssd)、计算机可读存储介质和/或cpu缓存。另一方面,提供了一种计算机程序产品,包括非瞬时性计算机可读存储介质。所述非瞬时性计算机可读存储介质上存储有计算机程序代码,所述计算机程序代码可由处理器执行,以执行方法200。一种用于提供非瞬时性存储器的计算机可读存储介质可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述任何合适的组合。
109.在不脱离所附权利要求书界定的本发明的范围的情况下,可以对上述本发明的实施例进行修改。用于描述和主张本发明的“包括”、“包含”、“结合”、“具有”、“是”等表达应视为以非唯一的方式解释,即允许没有明确描述的项目、部分或要素也可出现。对单数的引用也应解释为与复数有关。本文使用的词语“示例性”表示“作为一个示例、实例或说明”。任何“示例性的”实施例并不一定理解为优先于或优越于其它实施例,和/或并不排除其它实施例特点的结合。本文使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。应当理解,为了清楚起见而在单独实施例的上下文中描述的本发明的某些特征还可以通过组合提供在单个实施例中。相反地,为了清楚起见而在单个实施例的上下文中描述的本发明的各种特征也可以单独地或通过任何合适的组合或作为本发明的任何其它描述的实施例提供。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献