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

减少用于大数据处理的存储容量的方法与流程

2021-10-22 23:58:00 来源:中国专利 TAG:专利申请 韩国 数据处理 例数 减少

减少用于大数据处理的存储容量的方法
1.相关申请的交叉引用
2.本技术要求于2020年4月20日提交的申请号为10

2020

0047433的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
3.各个实施例涉及一种数据存储系统,并且特别涉及一种减少用于大数据处理的存储容量的方法。


背景技术:

4.大数据是指非常大且复杂的数据集。在很短的时间内,会生成高达若干个tb或若干个pb的大量数据。随着待处理的数据量增加,已经出现对一种能够在分布式服务器中存储大量数据并且快速处理所存储数据的文件系统的需求。
5.hadoop是指能够对大量数据进行聚类、分发并处理的开源软件。由于hadoop具有分析、存储和处理大量数据的功能,因此hadoop在所有大数据系统中一直备受关注。
6.hadoop使用将数据存储在若干个服务器中并通过服务器同时处理数据的方法。因此,hadoop分布式文件系统(hdfs)将大数据划分成多个单元数据,每个单元数据具有预定大小。hdfs使用通过将所划分的单元数据自复制到多个存储装置来分发和存储所划分的单元数据的方法。例如,hdfs可以使用通过将数据冗余地复制三次来分发和存储单元数据的方法。


技术实现要素:

7.各种实施例涉及一种能够最小化数据存储系统中的保留数据所占用的空间的方法,其中保留数据被冗余地复制并用于大数据处理。
8.在实施例中,一种数据存储系统的操作方法,该数据存储系统包括处理器和多个存储装置,该操作方法可以包括:在多个存储装置之中选择第一存储装置、第二存储装置和第三存储装置并将处理器生成的数据传输和存储到第一存储装置和第二存储装置中的第一存储操作;将在第二存储装置中存储的该数据传输到第三存储装置,对该数据进行压缩并存储在第三存储装置中的第二存储操作;在第一存储操作完成后,处理器访问第一存储装置中的该数据的第一访问操作;以及在第一访问操作失败后,访问第二存储装置中的该数据的第二访问操作。
9.可以并行地执行第一访问操作和第二存储操作。
10.操作方法可以还包括:在第一访问操作失败后,对第三存储装置中的压缩的该数据进行解压缩,并继续将解压缩的该数据存储在第三存储装置中的第三存储操作。
11.可以并行地执行第二访问操作和第三存储操作。
12.操作方法可以还包括:在第三存储操作之后,将第二存储装置重新选择为新的第一存储装置,将第三存储装置重新选择为新的第二存储装置,然后在多个存储装置之中选
择新的第三存储装置的重新选择操作;以及在重新选择操作之后,通过对新的第三存储装置执行第二存储操作来将压缩的该数据存储在新的第三存储装置中的操作。
13.第一存储操作可以包括:将处理器生成的数据传输到第一存储装置,然后将该数据存储在第一存储装置中的第四存储操作;以及将该数据从第一存储装置传输到第二存储装置,然后将该数据存储在第二存储装置中的第五存储操作。
14.可以并行地执行第四存储操作和第五存储操作。
15.在实施例中,一种数据存储系统的操作方法,数据存储系统包括处理器和多个存储装置,操作方法包括:在多个存储装置之中选择第一存储装置、第二存储装置和第三存储装置并将处理器生成的数据传输和存储到第一存储装置和第二存储装置中的第一存储操作;将在第二存储装置中存储的该数据传输到第三存储装置,对该数据进行压缩并存储在第三存储装置中的第二存储操作;在第一存储信息和第二存储信息被传输到处理器后,处理器访问第一存储装置中的该数据的第一访问操作,第一存储信息和第二存储信息分别指示该数据在第一存储装置和第二存储装置中的存储完成;以及在第一访问操作失败后,访问第二存储装置中的该数据的第二访问操作。
16.可以并行地执行第一访问操作和第二存储操作。
17.该操作方法可以还包括:在第一访问操作失败后,对第三存储装置中的压缩的该数据进行解压缩,并继续将解压缩的该数据存储在第三存储装置中的第三存储操作。
18.可以并行地执行第二访问操作和第三存储操作。
19.该操作方法可以还包括:在第三存储操作之后,将第二存储装置重新选择为新的第一存储装置,将第三存储装置重新选择为新的第二存储装置,然后在多个存储装置之中选择新的第三存储装置的重新选择操作;以及在重新选择操作之后,通过对新的第三存储装置执行第二存储操作来将压缩的该数据存储在新的第三存储装置中的操作。
20.第一存储操作可以包括:将处理器生成的数据传输到第一存储装置,然后将该数据存储在第一存储装置中的第四存储操作;将该数据从第一存储装置传输到第二存储装置,然后将该数据存储在第二存储装置中的第五存储操作;响应于第五存储操作的完成,第二存储装置生成第二存储信息,并将第二存储信息传输到第一存储装置的第一传输操作;以及第一传输操作之后,响应于第四存储操作的完成,第一存储装置生成第一存储信息并且将第一存储信息传输到处理器的第二传输操作。
21.可以并行地执行第四存储操作和第五存储操作。
22.在实施例中,一种数据存储系统可以包括多个存储装置;以及处理器,适于将在处理器内生成的数据冗余地存储在多个存储装置中的第一存储装置、第二存储装置和第三存储装置中,其中数据以非压缩方式存储在第一存储装置和第二存储装置中,并且数据以压缩方式存储在第三存储装置中;以及访问第一存储装置中的该数据,然后在对第一存储装置中的该数据的访问失败时,在对第三存储装置中的压缩的该数据进行解压缩的同时访问第二存储装置中的该数据。
23.处理器可以进一步适于生成该数据并将该数据传输到第一存储装置,第一存储装置可以适于将从处理器接收的非压缩的该数据存储在第一存储装置中,同时将从处理器接收的非压缩的该数据传输到第二存储装置,第二存储装置可以适于将从第一存储装置接收的非压缩的该数据存储在第二存储装置中,同时将从第一存储装置接收的非压缩的该数据
传输到第三存储装置,以及第三存储装置可以适于对从第二存储装置接收的非压缩的该数据进行压缩,并将压缩的该数据存储在第三存储装置中。
24.第二存储装置可以进一步适于响应于从第一存储装置接收的非压缩的该数据在第二存储装置中的存储完成而生成第二存储信息,并将第二存储信息传输到第一存储装置,第一存储装置可以进一步适于响应于从处理器接收的非压缩的该数据在第一存储装置中的存储完成以及从第二存储装置接收到第二存储信息来生成第一存储信息,并且将第一存储信息传送到处理器,处理器可以进一步适于响应于从第一存储装置接收到第一存储信息而访问第一存储装置或第二存储装置中的该数据,以及第三存储装置可以进一步适于响应于压缩的该数据在第三存储装置中的存储完成而生成第三存储信息并且将第三存储信息传输到处理器。
25.可以并行地执行第三存储装置对非压缩的该数据进行压缩和存储的操作和处理器访问第一存储装置或第二存储装置中的该数据的操作。
26.在实施例中,第一存储装置至第五存储装置的操作方法,该操作方法可以包括:将数据的非压缩版本存储到第一存储装置和第二存储装置中的每一个中,并将数据的压缩版本存储到第三存储装置中;当对第一存储装中的非压缩版本的访问失败时,访问第二存储装置中的非压缩版本,同时对第三存储装置中的压缩版本进行解压缩;当对第二存储装置中的非压缩版本的访问成功时,使第一存储装置中的非压缩版本无效,同时将压缩版本存储到第四存储装置中;并且当对第二存储装置中的非压缩版本的访问失败时,使第一存储装置和第二存储装置中的非压缩版本无效,同时访问第三存储装置中的解压缩版本,并且将非压缩版本存储到第四存储装置中,以及将压缩版本存储到第五存储装置中。
附图说明
27.图1是示出根据本公开的实施例的数据存储系统的示图。
28.图2a和图2b是示出根据本公开的各个实施例的数据存储系统的数据写入操作的示例的示图。
29.图3a至图3d是示出根据本公开的各个实施例的数据存储系统的数据读取操作的示例的示图。
30.图4是示出根据本公开的实施例的应用于hdfs的数据存储系统的数据写入操作的示图。
31.图5是示出根据本公开的实施例的应用于hdfs的数据存储系统的数据读取操作的示图。
具体实施方式
32.下面参照附图更详细地描述本公开的各种示例。然而,本发明的方面和特征可以以不同的方式来实施以形成包括任何所公开的实施例的变型的其它实施例。因此,本发明不限于本文所阐述的实施例。相反,提供所描述的实施例使得本公开是彻底且完整的,并且向本发明所属领域的技术人员充分地传达本公开。在整个本公开中,相同附图标记在本公开的各种附图和示例中指代相同部件。注意的是,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何此类短语的不同参考不一定针对相同的实施例。
33.将理解的是,虽然本文可以使用术语“第一”、“第二”、“第三”等来识别各种元件,但这些元件不受这些术语的限制。这些术语用于将一个元件和另一个在其它情况下具有相同或相似名称的元件区分开。因此,一种情况中的第一元件可以被称为另一情况中的第二或第三元件,而不指示元件本身的任何变化。
34.附图不一定要按比例绘制,并且在某些情况中,为了清楚地示出实施例的特征,比例可能被夸大。当一个元件被称为连接或联接到另一元件时,应当理解的是,前者可以直接连接或联接到后者,或者经由其间的一个或更多个中间元件与后者电连接或联接。此外,还将理解,当一个元件被称为在两个元件“之间”时,它可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
35.本文使用的术语仅用于描述特定的实施例,并不旨在限制本发明。除非上下文另有明确指示,否则如本文所用,单数形式旨在包括复数形式,反之亦然。类似地,除非从语言或上下文中可以清楚地得出仅有一个,否则不定冠词“一(a)”和“一个(an)”是指一个或多个。
36.将进一步理解的是,在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,这些术语指明了所述元件的存在,并且不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何组合和所有组合。
37.除非另外定义,否则本文中所使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员根据本公开通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中定义的那些术语应被解释为具有与其在本发明和相关领域的语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文明确地定义如此。
38.在下面的描述中,阐述了许多具体细节以提供对本发明的透彻理解。可以在没有部分或全部这些具体细节的情况下实施本发明。在其它情况中,没有详细描述公知的进程结构和/或进程,以免不必要地使本发明模糊。
39.还注意的是,在一些情况下,如对于相关领域的技术人员所显而易见的,除非另有明确说明,否则结合一个实施例描述的特征或元件可以被单独使用或与另一实施例的其他特征或元件组合使用。
40.下面参照附图详细描述本发明的实施例,其中相同的附图标记表示相同的元件。
41.图1是示出根据本公开的实施例的数据存储系统的示图。
42.参照图1,根据实施例的数据存储系统可以包括数据处理器10和多个数据存储装置20、30、40、50、60、70、80和90。
43.数据处理器10可以包括电子装置,例如诸如移动电话、mp3播放器和笔记本电脑的便携式电子装置,或者诸如台式计算机、游戏机、电视和投影仪的非便携式电子装置。也就是说,数据处理器10可以包括计算装置或有线/无线电子装置。数据处理器可被称为处理器。
44.此外,数据处理器10包括至少一个操作系统(os)。os通常管理和控制数据处理器10的功能和操作,并且提供数据处理器10和使用多个数据存储装置20、30、40、50、60、70、80和90的用户之间的交互操作。在这种情况下,操作系统支持与用户的目的和用途相对应的功能和操作,并且可以例如根据数据处理器10的移动性划分为通用操作系统和移动操作系
统。此外,根据用户的使用环境,操作系统的通用操作系统可以分为个人操作系统和企业操作系统。例如,个人操作系统是一种以支持向一般用户提供服务的功能为特点的系统并且包括windows和chrome。企业操作系统是一个以确保和支持高性能为特点的系统,并且可包括windows服务器、linux和unix。此外,os的移动os是以支持向用户提供移动服务的功能和系统省电功能为特点的系统,并且可以包括android、ios和windows mobile。在这种情况下,数据处理器10可以包括多个os,并且执行os以与多个数据存储装置20、30、40、50、60、70、80和90一起执行与用户请求相对应的操作。在这种情况下,数据处理器10将与用户请求相对应的多个命令传输到多个数据存储装置20、30、40、50、60、70、80和90。因此,多个数据存储装置20、30、40、50、60、70、80和90可以执行与多个命令相对应的操作,也就是说与用户请求相对应的操作。
45.此外,多个数据存储装置20、30、40、50、60、70、80和90中的每一个响应于来自数据处理器10的请求而操作。特别地,每个数据存储装置可以存储由数据处理器10访问的数据。换言之,多个数据存储装置20、30、40、50、60、70、80和90中的每一个可以用作数据处理器10的主存储装置或辅助存储装置。此外,多个数据存储装置20、30、40、50、60、70、80和90中的每一个可以实施为各种类型的存储装置中的任意一种。例如,多个数据存储装置20、30、40、50、60、70、80和90中的每一个可以实现为诸如下列的各种类型的存储装置中的任意一种:固态驱动器(ssd)、、mmc、嵌入式mmc(emmc)、尺寸减小的mmc(rs

mmc)或微型mmc类型的多媒体卡(mmc)、sd,迷你sd或微型sd类型的安全数字(sd)卡、通用串行总线(usb)存储装置、通用闪存(ufs)装置、紧凑型闪存(cf)卡、智能媒体卡和记忆棒。
46.此外,多个数据存储装置20、30、40、50、60、70、80和90可以集成到单个半导体装置中以形成存储卡,并且可以配置诸如以下的存储卡:pc卡(例如,个人计算机存储卡国际协会(pcmcia))、紧凑型闪存(cf)、智能媒体卡(例如,sm或smc)、记忆棒、多媒体卡(如mmc、rs

mmc或微型mmc)、sd卡(例如sd、迷你

sd、微型

sd或sdhc)或通用闪存(ufs)装置。
47.此外,再例如,多个数据存储装置20、30、40、50、60、70、80和90可以配置计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书,便携式多媒体播放器(pmp)、便携式游戏机、导航装置、黑盒、数码相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图像记录器、数字图像播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境中传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程通信网络的各种电子装置之一、射频识别装置(rfid)或构成计算系统的各种元件之一。
48.此外,多个数据存储装置20、30、40、50、60、70、80和90中的每一个可以包括存储区域(未示出)。此外,多个数据存储装置20、30、40、50、60、70、80和90中的每一个所包括的存储区域(未示出)可以包括诸如动态随机存取存储器(dram)和静态ram(sram)的易失性存储器装置,以及诸如只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、铁磁ram(fram)、相变ram(pram)、磁ram(mram)、电阻式ram(rram)和闪速存储器的非易失性存储装置。
49.在实施例中,数据处理器10可以从多个数据存储装置20、30、40、50、60、70、80和90读取数据和/或将数据写入多个数据存储装置20、30、40、50、60、70、80和90中。特别地,数据
处理器10可以复制多条数据d1、d2、d3、d4和d5中的每一个,并且可以将所复制的数据冗余地(redundantly)存储(即多次存储)在多个数据存储装置20、30、40、50、60、70、80和90中的n个数据存储装置中,其中n可以被设置为等于或大于2的自然数。为了便于描述,以下示例描述了n被设置为3。
50.例如,数据处理器10可以将多条数据d1、d2、d3、d4和d5的第一数据d1冗余地存储在多个数据存储装置20、30、40、50、60、70、80和90中的三个,即第一存储装置20、第三存储装置40和第八存储装置90中。在这种情况下,可以在无需压缩的情况下存储在第一存储装置20和第三存储装置40中的每一个中存储的第一数据d1。相反,在第八存储装置90中存储的第一数据d1可以被压缩。如上所述,在第八存储装置90中存储的压缩的第一数据d1的大小可以小于在第一存储装置20和第三存储装置40中的每一个中存储的非压缩的第一数据d1的大小。
51.此外,当对第一数据d1执行访问操作时,数据处理器10可以优先对第一存储装置20或第三存储装置40中的非压缩第一数据d1执行访问操作。如果在第一存储装置20和第三存储装置40中的任意一个存储装置中对非压缩第一数据d1的访问操作失败,则数据处理器10可以与对在第八存储装置90中存储的压缩的第一数据d1进行解压缩的操作并行地执行对另外一个存储装置40或20中的第一数据d1的访问操作。因此,解压缩的第一数据d1可以存储在第八存储装置90中。也就是说,即使在另外一个存储装置40或20中对第一数据d1的访问操作失败,数据处理器10也可以访问第八存储装置90中的解压缩的第一数据d1。
52.在上述描述中,数据处理器10将第一数据d1冗余地存储在三个存储装置,即第一存储装置20、第三存储装置40和第八存储装置90中,并且压缩第一数据d1并将压缩的第一数据存储在三个存储装置中的一个中的操作可以在没有任何改变的情况下应用于第二至第五数据d2、d3、d4和d5。也就是说,第二数据d2可以被冗余地存储在第一存储装置20、第二存储装置30和第四存储装置50中,并且可以仅在第四存储装置50中被压缩。同样地,第三数据d3可以被冗余地存储在第五存储装置60、第六存储装置70和第七存储装置80中,并且可以仅在第六存储装置70中被压缩。此外,第四数据d4可以被冗余地存储在第三存储装置40、第六存储装置70和第八存储装置90中,并且可以仅在第三存储装置40中被压缩。此外,第五数据d5可以被冗余地存储在第四存储装置50、第五存储装置60和第七存储装置80中,并且可以仅在第五存储装置60中被压缩。
53.数据处理器10可以将多个数据存储装置20、30、40、50、60、70、80和90之中的、均冗余地存储多条数据d1、d2、d3、d4和d5中的每一个的三个存储装置分别分类为“第一存储装置”、“第二存储装置”和“第三存储装置”,并且可以将剩余存储装置分类为“一般存储装置”。在这种情况下,多条非压缩数据d1、d2、d3、d4和d5中的每一个可以存储在“第一存储装置”和“第二存储装置”中,并且多条压缩数据d1、d2、d3、d4和d5的每一个可以存储在“第三存储装置”。例如,基于是否已冗余地存储第一数据d1,数据处理器10可以将多个数据存储装置20、30、40、50、60、70、80和90中的第一存储装置20分类为“第一存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第三存储装置40分类为“第二存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第八存储装置90分类为“第三存储装置”,并且可以将剩余第二存储装置30和第四至第七存储装置50、60、70和80分类为“一般存储装置”。再例如,基于是否已冗余地存储第二数据d2,数据处理器10可以将多个数据存
储装置20、30、40、50、60、70、80和90中的第一存储装置20分类为“第一存储装置”,将多个数据存储装置20、30、40、50、60、70、80和90中的第二存储装置30分类为“第二存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第四存储装置50分类为“第三存储装置”,并且可以,将剩余第三和第五到第八存储装置40、60、70、80和90分类为“一般存储装置”。又例如,基于是否已冗余地存储第三数据d3,数据处理器10可以将多个数据存储装置20、30、40、50、60、70、80和90中的第五存储装置60分类为“第一存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第七存储装置80分类为“第二存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第六存储装置70分类为“第三存储装置”,并且可以将剩余第一至第四和第八存储装置20、30、40、50和90分类为“一般存储装置”。又例如,基于是否已冗余地存储第四数据d4,数据处理器10可以将多个数据存储装置20、30、40、50、60、70、80和90中的第六存储装置70分类为“第一存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第八存储装置90分类为“第二存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第三存储装置40分类为“第三存储装置”,并且可以将剩余第一、第二、第四、第五和第七存储装置20、30、50、60和80分类为“一般存储装置”。又例如,基于是否已冗余地存储第五数据d5,数据处理器10可以将多个数据存储装置20、30、40、50、60、70、80和90中的第四存储装置50分类为“第一存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第七存储装置80分类为“第二存储装置”,可以将多个数据存储装置20、30、40、50、60、70、80和90中的第五存储装置60分类为“第三存储装置”,并且可以将剩余第一至第三、第六和第八存储装置20、30、40、70和90分类为“一般存储装置”。
54.图2a和图2b是示出根据本公开的各个实施例的数据存储系统的数据写入操作的示例的示图。
55.首先,根据实施例的数据存储系统可以包括参照图1描述的数据处理器10和多个数据存储装置20、30、40、50、60、70、80和90。
56.图2a和图2b可以是将数据处理器10生成的数据存储在多个数据存储装置20、30、40、50、60、70、80和90中的三个存储装置20、30和40中的写入操作的示例。也就是说,在图2a和图2b中,数据处理器10已经选择参照图1描述的多个数据存储装置20、30、40、50、60、70、80和90中的第一存储装置20、第二存储装置30和第三存储装置40,并且分别将所选择的第一存储装置20、第二存储装置30和第三存储装置40设置为“第一存储装置”、“第二存储装置”和“第三存储装置”。因此,在下面的描述中,“第一存储装置”的附图标记将被定义为指示第一存储装置的“20”。“第二存储装置”的附图标记将被定义为指示第二存储装置的“30”。“第三存储装置”的附图标记将被定义为指示第三存储装置的“30”。
57.例如,在生成数据(11)之后,数据处理器10可以将该数据传输到第一存储装置20。
58.第一存储装置20可以将从数据处理器10接收的数据存储在其内部存储空间中(21)。
59.此外,第一存储装置20可以将数据传输到第二存储装置30。根据实施例,参照图2a,第一存储装置20可以在执行将数据存储在第一存储装置20的内部存储空间中的操作21的区间中将数据传输到第二存储装置30。因此,数据在第一存储装置20中的存储完成(22)的时间可以晚于将数据传输到第二存储装置30的时间。根据另一实施例,参照图2b,在将数
据存储在第一存储装置20的内部存储空间中的操作21完成(22)后,第一存储装置20可以将数据传输到第二存储装置30。因此,数据在第一存储装置20中的存储完成(22)的时间可以早于将数据传输到第二存储装置30的时间。
60.此外,在数据在第一存储装置20的内部存储空间中的存储完成(22)的时间,第一存储装置20可以不生成第一存储信息,该第一存储信息指示数据在第一存储装置20的内部存储空间中的存储已完成(22)。也就是说,即使数据在第一存储装置20的内部存储空间中的存储完成(22)之后,第一存储装置20也可以不生成第一存储信息,直到从第二存储装置30接收到第二存储信息,该第二存储信息指示传输到第二存储装置30的数据在第二存储装置30的内部存储空间中的存储完成。因此,当第一存储装置20生成第一存储信息时,这可以表示数据在第一存储装置20和第二存储装置30的内部存储空间中的冗余的存储已经完成的状态。此外,第一存储装置20可以生成第一存储信息并将生成的第一存储信息传输到数据处理器10。
61.如上所述,数据处理器10可以响应于从第一存储装置20接收到第一存储信息而知道数据已经冗余地存储在第一存储装置20和第二存储装置30中。因此,数据处理器10可以响应于从第一存储装置20接收到第一存储信息而允许对数据的访问操作(12)。
62.此外,第二存储装置30可以将从第一存储装置20接收的数据存储在其内部存储空间中(31)。
63.此外,第二存储装置30可以将数据传输到第三存储装置40。根据实施例,参照图2a,第二存储装置30可以在执行将数据存储在第二存储装置30的内部存储空间中的操作31的区间中将数据传输到第三存储装置40。因此,数据在第二存储装置30中的存储完成(32)的时间可以晚于将数据传输到第三存储装置40的时间。根据另一实施例,参照图2b,在将数据存储在第二存储装置30的内部存储空间中的操作31完成(32)后,第二存储装置30可以将数据传输到第三存储装置40。因此,数据在第二存储装置30中的存储完成(32)的时间可以早于将数据传输到第三存储装置40的时间。
64.此外,在数据在第二存储装置30的内部存储空间中的存储完成(32)时,第二存储装置30可以生成第二存储信息,该第二存储信息指示数据在第二存储装置30的内部存储空间中的存储完成(32)。也就是说,第二存储装置30可以响应于数据在第二存储装置30的内部存储空间中的存储完成(32)而生成第二存储信息并将所生成的第二存储信息传输到第一存储装置20,而不管传输到第三存储装置40的数据在第三存储装置40的内部存储空间中的存储是否已经完成。
65.此外,第三存储装置40可以对从第二存储装置30接收的数据进行压缩,并将压缩数据存储在其内部存储空间中(41)。也就是说,第三存储装置40可以对从第二存储装置30接收的数据进行压缩,使得数据的大小比在第一存储装置20和第二存储装置30中的每一个中存储的数据小,并且可以将压缩数据存储在第三存储装置40的内部存储空间中。
66.此外,在压缩数据在第三存储装置40的内部存储空间中的存储完成(42)时,第三存储装置40可以生成第三存储信息,该第三存储信息指示压缩数据在第三存储装置40的内部存储空间中的存储完成(42)。此时,因为第二存储装置30响应于数据在第二存储装置30的内部存储空间中的存储的完成(32)已经将第二存储信息传输到第一存储装置20,而不管数据是否已经存储在第三存储装置40的内部存储空间中,所以第三存储装置40不需要将所
生成的第三存储信息传输到第二存储装置30。也就是说,第三存储装置40可以响应于压缩数据在第三存储装置40的内部存储空间中的存储完成(42)而将所生成的第三存储信息直接地传输到数据处理器10。
67.由于被压缩,在第三存储装置40中存储的数据可能不被数据处理器10直接访问。此外,在数据在第一存储装置20和第二存储装置30的内部存储空间中的冗余存储完成时间,即在从第一存储装置20接收到第一存储信息的时间,数据处理器10可以允许对数据的访问操作(12)。因此,可以与数据处理器10允许访问来自第一存储装置20或第二存储装置30的数据的操作(12)并行地执行第三存储装置40对数据进行压缩并将压缩数据存储在第三存储装置40的内部存储空间中的操作。例如,在数据处理器10访问来自第一存储装置20的数据的时间,第三存储装置40可以正在执行对数据进行压缩并将压缩数据存储在第三存储装置40的内部存储空间中的操作。
68.图3a至图3d是示出根据本公开的各个实施例的数据存储系统的数据读取操作的示例的示图。
69.图3a至图3d示出参照图2a和图2b描述的写入操作已经完成的状态,即数据处理器10已经生成数据并且已经将生成的数据冗余地存储在第一存储装置20、第二存储装置30和第三存储装置40中的状态,而生成的数据已经被压缩并存储在第三存储装置40中。因此,数据可以已经存储在第一存储装置20中(23),数据可以已经存储在第二存储装置30中(33),并且数据可以已经被压缩并存储在第三存储装置40中(43)。
70.参照图3a的(a),数据处理器10可以将对数据的访问请求传输到第一存储装置20。
71.第一存储装置20可以响应于从数据处理器10接收到的访问请求而尝试访问在第一存储装置20的内部存储空间中存储的数据。当作为尝试的结果,对数据的访问成功(24)时,第一存储装置20可以将访问成功响应传输到数据处理器10。
72.在这种情况下,因为第一存储装置20已成功地访问了数据处理器10已请求访问的数据,所以可以不对第二存储装置30和第三存储装置40执行操作。
73.参照图3a的(b),数据处理器10可以将对数据的访问请求传输到第一存储装置20。
74.第一存储装置20可以响应于从数据处理器10接收到的访问请求而尝试访问在第一存储装置20的内部存储空间中存储的数据。当作为尝试的结果,对数据的访问失败(25)时,第一存储装置20可以将访问失败响应传输到数据处理器10。
75.数据处理器10可以响应于从第一存储装置20接收到的访问失败响应而将对数据的访问请求传输到第二存储装置30。此外,数据处理器10可以响应于从第一存储装置20接收到的访问失败响应而将对数据的解压缩请求传输到第三存储装置40。也就是说,当从第一存储装置20接收到访问失败响应时,数据处理器10可以将访问请求传输到已存储非压缩数据的第二存储装置30,并且可以将针对压缩数据的解压缩请求传输到已存储压缩数据的第三存储装置40。
76.第二存储装置30可以响应于从数据处理器10接收到的访问请求而尝试访问第二存储装置30的内部存储空间中存储的数据。当作为尝试的结果,对数据的访问成功(34)时,第二存储装置30可以将访问成功响应传输到数据处理器10。
77.第三存储装置40可以响应于从数据处理器10接收到的解压缩请求,对在第三存储装置40的内部存储空间中存储的压缩数据进行解压缩(44)。
78.在这种情况下,可以彼此并行地执行访问在第二存储装置30的内部存储空间中存储的数据的操作和第三存储装置40对被压缩并存储在第三存储装置40的内部存储空间中的数据进行解压缩的操作。
79.参照图3b,数据处理器10可以将对数据的访问请求传输到第一存储装置20。
80.第一存储装置20可以响应于从数据处理器10接收到的访问请求而尝试访问其内部存储空间中存储的数据。当作为尝试的结果,对数据的访问失败(25)时,第一存储装置20可以将访问失败响应传输到数据处理器10。
81.数据处理器10可以响应于从第一存储装置20接收到的访问失败响应而将对数据的访问请求传输到第二存储装置30。此外,数据处理器10可以响应于从第一存储装置20接收到的访问失败响应而将对数据的解压缩请求传输到第三存储装置40。也就是说,当从第一存储装置20接收到访问失败响应时,数据处理器10可以将访问请求传输到已经复制且未压缩数据的第二存储装置30;并且可以将对数据的解压缩请求传输到已经复制且已压缩数据的第三存储装置40。
82.第二存储装置30可以响应于从数据处理器10接收到的访问请求而尝试访问第二存储装置30的内部存储空间中存储的数据。当作为尝试的结果,对数据的访问失败(36)时,第二存储装置30可以将访问失败响应传输到数据处理器10。
83.数据处理器10可以响应于从第二存储装置30接收到的访问失败响应而将对数据的访问请求传输到第三存储装置40。此时,第三存储装置40可以响应于根据从第一存储装置20接收到的访问失败响应从数据处理器10接收到的解压缩请求对在第三存储装置40中存储的压缩数据正在执行解压缩操作。如果在从数据处理器10接收到访问请求的时间,对第三存储装置40的内部存储空间中存储的压缩数据的解压缩操作尚未完成,则在解压缩操作完成并且压缩数据变为解压缩之后,第三存储装置40可以响应于从数据处理器10接收到的访问请求而对数据执行访问操作。
84.第三存储装置40可以响应于从数据处理器10接收到的访问请求而尝试访问在第三存储装置40的内部存储空间中存储的数据。当作为尝试的结果,数据访问成功(47)时,第三存储装置40可以将访问成功响应传输到数据处理器10。当第三存储装置40对数据的访问失败时,虽然图3b中未示出,但是对数据的访问操作最终已经失败。因此,对数据的访问操作可能无法正常完成。
85.图3c示出参照图3a的(b)描述的读取操作已经完成的状态,即,由数据处理器10尝试关于第一存储装置20的对数据的访问操作已失败(25),尝试关于第二存储装置30的对数据的访问操作已成功(34),并且尝试关于第三存储装置40的解压缩请求已完成,以及因此解压缩数据存储在第三存储装置40的内部存储空间中的状态。因此,已经存储在第一存储装置20中但访问失败的数据可能已经无效(26),非压缩数据可以已存储在第二存储装置30中(33),并且解压缩数据可以已存储在第三存储装置40中(45)。
86.例如,可以使已存储在第一存储装置20中但访问失败的数据无效(26)。因此,可以将第一存储装置20重新设置为一般存储装置,即未冗余地存储该数据的第一存储装置20(27)。换言之,因为在图3c中使在第一存储装置20的内部存储空间中存储的数据无效(26),所以数据处理器10可以将在图2a和图2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中选择并设置为“第一存储装置”的第一存储装置20重新设置(27)为“一般存
储装置”,而不是“第一存储装置”。
87.此外,在被存储在第二存储装置30中之后,已经被成功访问的数据可以继续存储在第二存储装置30中(33)。在这种情况下,数据处理器10已经将先前选择并设置为“第一存储装置”的第一存储装置20重新设置为“一般存储装置”。因此,数据处理器10可以将先前选择并设置为“第二存储装置”的第二存储装置30重新设置为“第一存储装置”。也就是说,在图3c中,数据处理器10可以将在图2a和图2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中、选择并设置为“第二存储装置”的第二存储装置30重新设置为“第一存储装置”(35)。
88.此外,在被压缩并存储在第三存储装置40中之后,响应于解压缩请求而被执行解压缩操作的数据可以以解压缩状态存储在第三存储装置40中(45)。在这种情况下,数据处理器10已经将先前选择并设置为“第一存储装置”的第一存储装置20重新设置为“一般存储装置”,并将先前选择并设置为“第二存储装置”的第二存储装置30重新设置为“第一存储装置”。因此,数据处理器10可以将先前选择并设置为“第三存储装置”的第三存储装置40重新设置为“第二存储装置”。也就是说,在图3c中,数据处理器10可以将在图2a和图2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中选择并设置为“第三存储装置”的第三存储装置40重新设置为“第二存储装置”(46)。
89.此外,数据处理器10可以在多个存储装置20、30、40、50、60、70、80和90中选择并重新设置第四存储装置50为“第三存储装置”,在图2a和2b中,由于数据未存储在第四存储装置50中,第四存储装置50被数据处理器10分类为“一般存储装置”。也就是说,在图3c中,数据处理器10可以将在图2a和图2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中选择并设置为“一般存储装置”的第四存储装置50重新设置为“第三存储装置”(51)。
90.如上所述,可以由于对数据的访问已经失败而重新设置分别对应于“第一存储装置”、“第二存储装置”和“第三存储装置”的存储装置。总而言之,“第一存储装置”在图2a和图2b中已对应于第一存储装置20,而在图3c中可以对应于已被执行重新设置操作35的第二存储装置30。同样地,,“第二存储装置”在图2a和2b中已对应于第二存储装置30,而在图3c中可以对应于已被执行重新设置操作46的第三存储装置40。同样地,“第三存储装置”在图2a和2b中已对应于第三存储装置40,而在图3c中可以对应于已被执行重新设置操作51的第四存储装置50。因此,在图3c的以下描述中,“第一存储装置”的附图标记将被定义为指示第二存储装置的“30”。“第二存储装置”的附图标记将被定义为指示第三存储装置的“40”。“第三存储装置”的附图标记将被定义为指示第四存储装置的“50”。
91.在重新设置操作27、35、46和51之后,第一存储装置30和第二存储装置40可能已经存储非压缩数据。相反,第三存储装置50可能尚未存储数据。因此,数据处理器10可以将在第二存储装置40中存储的解压缩数据传输到第三存储装置50。
92.第三存储装置50可以压缩从第二存储装置40接收的解压缩数据,并将压缩数据存储在第三存储装置50的内部存储空间中(52)。也就是说,第三存储装置50可以压缩从第二存储装置40接收的解压缩数据,使得压缩数据的大小比存储在第一存储装置30和第二存储装置40中的每一个中的非压缩数据小,并且可以将压缩数据存储在第三存储装置50的内部存储空间中。
93.此外,在压缩数据在第三存储装置50的内部存储空间中的存储完成(53)的时间,第三存储装置50可以生成第三存储信息,该第三存储信息指示压缩数据在第三存储装置50的内部存储空间中的存储完成(53)。此时,因为第二存储装置40已经存储非压缩数据,所以第三存储装置50不需要将生成的第三存储信息传输到第二存储装置40。也就是说,第三存储装置50可以响应于压缩数据在第三存储装置50的内部存储空间中的存储完成(53)而将生成的第三存储信息直接地传输到数据处理器10。
94.由于数据被压缩,在第三存储装置50中存储的数据可能不被数据处理器10直接访问。此外,如参照图2b所述,由于在压缩数据存储在第三存储装置50中之前,数据在第一存储装置30和第二存储装置40的内部存储空间中的冗余存储已经完成,所以数据处理器10可以处于已经允许对数据的访问操作的状态(12)。因此,可以与数据处理器10允许访问来自第一存储装置30或第二存储装置40的数据的操作并行地执行第三存储装置50对数据进行压缩并将压缩数据存储在其内部存储空间的操作。例如,在数据处理器10访问来自第一存储装置30的数据的时间,第三存储装置50可以正在执行对数据进行压缩并将压缩数据存储在第三存储装置50的内部存储空间中的操作。
95.参照图3d,参照图3b描述的读取操作已经完成,也就是说,数据处理器10尝试关于第一存储装置20的对数据的访问操作失败(25),数据处理器10随后尝试关于第二存储装置30的对数据的访问操作也失败(36),并且对第三存储装置40的解压缩请求已完成,并且数据处理器10尝试关于第三存储装置40的对解压缩数据的访问操作已成功(47)。因此,可以使已经存储在第一存储装置20的内部存储空间中但访问已失败的数据已经无效(26),也可以使已经存储在第二存储装置30的内部存储空间中但访问已失败的数据已经无效(37),并且解压缩数据可以已经存储在第三存储装置40的内部存储空间中(45)。
96.例如,已经存储在第一存储装置20的内部存储空间中但访问已失败的数据可能已经无效(26)。此外,已经存储在第二存储装置30的内部存储空间中但访问已失败的数据可能已经无效(37)。然而,数据可以正常存储在第三存储装置40的内部存储空间中(45)。也就是说,数据仅仅存储在第三存储装置40的内部存储空间中,并且可能尚未复制和存储在任何其它存储装置中。因此,数据处理器10可以停止对数据的访问操作(13)。
97.在这种状态下,可以将第一存储装置20和第二存储装置30分别重新设置为一般存储装置,即没有冗余地存储该数据的第一存储装置20和第二存储装置30(27和38)。换言之,因为在第一存储装置20的内部存储空间中存储的数据无效(26),所以在图3d中,数据处理器10可以将在图2a和图2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中选择并设置为“第一存储装置”的第一存储装置20重新设置为“一般存储装置”,而不是“第一存储装置”。此外,因为在第二存储装置30的内部存储空间中存储的数据无效(37),所以在图3d中,数据处理器10可以将在图2a和图2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中选择并设置为“第二存储装置”的第二存储装置30重新设置为“一般存储装置”,而不是“第二存储装置”。
98.此外,在被压缩并存储在第三存储装置40的内部存储空间之后,解压缩操作和访问操作都成功的数据可以以解压缩状态继续存储在第三存储装置40的内部存储空间中(45)。在这种情况下,数据处理器10已将先前选择并分别设置为“第一存储装置”和“第二存储装置”的第一存储装置20和第二存储装置30重新设置为“一般存储装置”。因此,数据处理
器10可以将先前选择并设置为“第三存储装置”的第三存储装置40重新设置为“第一存储装置”。也就是说,在图3d中,数据处理器10可以将在图2a和2b中数据处理器10在多个存储装置20、30、40、50、60、70、80之中选择并设置为“第三存储装置”的第三存储装置40重新设置(48)为“第一存储装置”。
99.此外,因为在图2a和2b中数据未存储在第四存储装置50和第五存储装置60中,所以数据处理器10可以在多个存储装置20、30、40、50、60、70、80和90中选择被数据处理器10分类为“一般存储装置”的第四存储装置50和第五存储装置和60并分别将第四存储装置50和第五存储装置和60重新设置为“第二存储装置”和“第三存储装置”。也就是说,在图3c中,数据处理器10可以分别将在图2a和2b中数据处理器10在多个存储装置20、30、40、50、60、70、80和90之中选择并设置为“一般存储装置”的第四存储装置50和第五存储装置60重新设置为“第二存储装置”和“第三存储装置”(54和61)。
100.如上所述,可以由于对数据的访问已经失败而重新设置分别对应于“第一存储装置”、“第二存储装置”和“第三存储装置”的存储装置。总而言之,“第一存储装置”在图2a和图2b中已对应于第一存储装置20,而在图3d中可以对应于已被执行重新设置操作48的第三存储装置40。同样地,“第二存储装置”在图2a和图2b中已对应于第二存储装置30,而在图3d中可以对应于已被执行重新设置操作54的第四存储装置50。同样地,“第三存储装置”在图2a和图2b中已对应于第三存储装置40,而在图3d中可以对应于已被执行重新设置操作61的第五存储装置60。因此,在图3d的以下描述中,“第一存储装置”的附图标记将被定义为指示第三存储装置的“40”。“第二存储装置”的附图标记将被定义为指示第四存储装置的“50”。“第三存储装置”的附图标记将被定义为指示第五存储装置的“60”。
101.在重新设置操作27、38、48、54和61之后,非压缩数据可能已经存储在第一存储装置40中。相反,数据可能未存储在第二存储装置50和第三存储装置60中。因此,数据处理器10可以将在第一存储装置40中存储的非压缩数据传输到第二存储装置50。
102.第二存储装置50可以将从第一存储装置40接收的非压缩数据存储在其内部存储空间中(55)。
103.此外,第二存储装置50可以将非压缩数据传输到第三存储装置60。根据实施例,如图3d所示,第二存储装置50可以在执行将非压缩数据存储在第二存储装置50的内部存储空间中的操作55的区间中将非压缩数据传输到第三存储装置60。因此,非压缩数据在第二存储装置50中的存储完成(56)的时间可以晚于第二存储装置50将非压缩数据传输到第三存储装置60的时间。根据另一实施例,与图3d的情况不同,第二存储装置50可以在将非压缩数据存储在第二存储装置50的内部存储空间中的操作55完成(56)之后将非压缩数据传输到第三存储装置60。因此,非压缩数据在第二存储装置50中的存储完成(56)的时间可以早于第二存储装置50将非压缩数据传输到第三存储装置60的时间。
104.此外,在非压缩数据在第二存储装置50的内部存储空间中的存储完成(56)时,第二存储装置50可以生成第二存储信息,该第二存储信息指示非压缩数据在第二存储装置的内部存储空间中的存储完成。也就是说,第二存储装置50可以响应于非压缩数据在第二存储装置50的内部存储空间中的存储完成(56)而生成第二存储信息,并且可以将所生成的第二存储信息传输到第一存储装置40。
105.此时,因为解压缩数据已经存储在第一存储装置40中,所以第一存储装置40可以
响应于从第二存储装置50接收到第二存储信息而生成第一存储信息,并且可以将所生成的第一存储信息传输到数据处理器10。
106.数据处理器10可以响应于从第一存储装置40接收到的第一存储信息而知道非压缩数据已经冗余地存储在第一存储装置40和第二存储装置50中。因此,数据处理器10可以响应于从第一存储装置40接收到第一存储信息而再次允许对数据的访问操作(12)。
107.此外,第三存储装置60可以对从第二存储装置50接收的非压缩数据进行压缩,并将压缩数据存储在第三存储装置60的内部存储空间中(62)。也就是说,第三存储装置60可以对从第二存储装置50接收的非压缩数据进行压缩,使得压缩数据的大小比在第一存储装置40和第二存储装置50中的每一个中存储的非压缩数据小,并且可以将压缩数据存储在第三存储装置60的内部存储空间中。
108.此外,在压缩数据在第三存储装置60的内部存储空间中的存储完成(63)的时间,第三存储装置60可以生成第三存储信息。该第三存储信息指示压缩数据在第三存储装置60的内部存储空间中的存储完成(63)。此时,因为第二存储装置50响应于非压缩数据在第二存储装置50的内部存储空间中的存储完成(56)而已将第二存储信息传输到第一存储装置40,所以第三存储装置60不需要将所生成的第三存储信息传输到第二存储装置50。也就是说,第三存储装置60响应于压缩数据在第三存储装置60的内部存储空间中的存储完成(63)而将所生成的第三存储信息直接地传输到数据处理器10。
109.由于被压缩,在第三存储装置60中存储的数据可能不被数据处理器10直接访问。此外,在数据在第一存储装置40和第二存储装置50的内部存储空间中的冗余存储完成时间,即从第一存储装置40接收到第一存储信息的时间,数据处理器10可以再次允许对数据的访问操作(12)。因此,可以与由数据处理器10允许访问来自第一存储装置40或第二存储装置50的数据的操作12并行地执行第三存储装置60对数据进行压缩并将压缩数据存储在其内部存储空间的操作。例如,在数据处理器10访问来自第一存储装置40的数据的时间,第三存储装置60可以正在执行压缩数据并将压缩数据存储在第三存储装置60的内部存储空间中的操作。
110.图4是示出根据本公开的实施例的应用于hadoop分布式文件系统(hdfs)的数据存储系统的数据写入操作的示图。
111.参照图4,根据实施例,应用于hdfs的数据处理器10可以包括hdfs客户端101和名称节点102。
112.此外,连接到hdfs的三个数据节点20、30和40分别被设置为分别对应于从上述参照图1描述的在多个数据存储装置20、30、40、50、60、70、80和90中选择的第一存储装置20、第二存储装置30和第三存储装置40的“第一数据节点”、“第二数据节点”和“第三数据节点”。因此,在下面的描述中,用于“第一数据节点”的附图标记将被定义为指示第一存储装置的“20”。用于“第二数据节点”的附图标记将被定义为指示第二存储装置的“30”。用于“第三数据节点”的附图标记将被定义为指示第三存储装置的“40”。
113.在实施例中,hdfs客户端101可以是hadoop客户端,并且可以协同名称节点102执行从多个数据节点20、30和40请求数据写入、数据读取等的功能。
114.此外,当hdfs客户端101从多个数据节点20、30和40请求数据写入时,名称节点102可以通知数据节点20、30和40关于针对由hdfs客户端101发出的写入请求的数据将如何以
及在哪个数据节点中存储的信息,并且可以对这些信息进行管理。
115.在实施例中,hdfs客户端101可以在将数据写入请求传输到多个数据节点20、30和40之前首先访问名称节点102,并且可以检查是否可以执行写入请求。如果可以执行写入请求,hdfs客户端101可以检查可以对哪个数据节点执行写入操作(s1)。当从名称节点102接收指示可以执行写入请求的应答时(s2),hdfs客户端101可以将写入请求传输到多个数据节点20、30和40。
116.首先,hdfs客户端101可以将写入请求传输到第一数据节点20(s3)。
117.第一数据节点20可以响应于从hdfs客户端101接收到的写入请求而将非压缩写入数据存储在第一数据节点20的内部存储空间中。此时,第一数据节点20可以从名称节点102接收不压缩写入数据的指示(a)。也就是说,当从hdfs客户端101接收写入请求和写入数据时,第一数据节点20从名称节点102接收针对写入数据的非压缩的指示,并且可以将非压缩写入数据存储在第一数据节点20的内部存储空间中。此外,第一数据节点20可以与将非压缩写入数据存储在第一数据节点20的内部存储空间中的操作分开地将从hdfs客户端101接收到的写入请求传输到第二数据节点30(s4)。
118.第二数据节点30可以响应于从第一数据节点20接收到的写入请求而将非压缩写入数据存储在第二数据节点30的内部存储空间中。此时,第二数据节点30可从名称节点102接收不压缩写入数据的指示(b)。也就是说,当从第一数据节点20接收写入请求和写入数据时,第二数据节点30可以从名称节点102接收不压缩写入数据的指示,并且可以将非压缩写入数据存储在第二数据节点30的内部存储空间中。此外,第二数据节点30可以与将非压缩写入数据存储在第二数据节点30的内部存储空间中的操作分开地将从第一数据节点20接收到的写入请求传输到第三数据节点40(s6)。
119.第三数据节点40可以响应于从第二数据节点30接收到的写入请求而将压缩的写入数据存储在第三数据节点40的内部存储空间中。此时,第三数据节点40可从名称节点102接收压缩写入数据的指示(c)。也就是说,当从第二数据节点30接收写入请求和写入数据时,第三数据节点40可以从名称节点102接收压缩写入数据的指示,并且可以将压缩写入数据存储在第三数据节点40的内部存储空间中。
120.此外,第二数据节点30响应于非压缩写入数据在第二数据节点30的内部存储空间中的存储的操作完成而将存储完成确认ack2传输到第一数据节点20(s5)。此时,第二数据节点30可以与将存储完成确认ack2传输到第一数据节点20的操作分开地通知名称节点102将非压缩写入数据存储在第二数据节点30的内部存储空间中的操作已经完成(b)。
121.此外,第一数据节点20可以响应于非压缩写入数据在第一数据节点20的内部存储空间中的存储的操作完成以及从第二数据节点30接收到存储完成确认ack2而将存储完成确认ack1传输到hdfs客户端101(s7)。此时,第一数据节点20可以与将存储完成确认ack1传输到hdfs客户端101的操作分开地通知名称节点102将非压缩写入数据存储在第一数据节点20的内部存储空间中的操作已经完成(a)。
122.在从第一数据节点20接收到存储完成确认ack1之后,hdfs客户端101可以开始对写入数据的访问操作。
123.此外,第三数据节点40可以通知名称节点102将压缩写入数据存储在第三数据节点40的内部存储空间中的操作已经完成(c)。
124.通过上述操作,名称节点102可以确认非压缩写入数据已经存储在第一数据节点20和第二数据节点30中,并且压缩写入数据已存储在第三数据节点40中。
125.图5是示出根据本公开的实施例的应用于hdfs的数据存储系统的数据读取操作的示图。
126.参照图5,根据实施例,应用于hdfs的数据处理器10可以包括hdfs客户端101和名称节点102。
127.此外,连接到hdfs的三个数据节点20、30和40分别被设置为分别对应于从上述参照图1描述的多个数据存储装置20、30、40、50、60、70、80和90中选择的第一存储装置20、第二存储装置30和第三存储装置40的“第一数据节点”、“第二数据节点”和“第三数据节点”。因此,在下面的描述中,用于“第一数据节点”的附图标记将被定义为指示第一存储装置的“20”。用于“第二数据节点”的附图标记将被定义为指示第二存储装置的“30”。用于“第三数据节点”的附图标记将被定义为指示第三存储装置的“40”。
128.在实施例中,hdfs客户端101可以是hadoop客户端,并且可以协同名称节点102执行从多个数据节点20、30和40请求数据写入、数据读取等的功能。
129.此外,当hdfs客户端101从多个数据节点20、30和40请求数据读取时,名称节点102可以通知数据节点20、30和40关于针对由hdfs客户端101发出的读取请求的数据已如何以及在哪些数据节点中存储的信息,并且可以对这些信息进行管理。
130.在实施例中,hdfs客户端101可以在将数据读取请求传输到多个数据节点20、30和40之前首先访问名称节点102,并且可以检查是否可以执行读取请求。如果可以执行读取请求,hdfs客户端101可以检查读取数据已存储在哪个数据节点中(f1)。当从名称节点102接收到指示可以执行读取请求的应答时(f2),hdfs客户端101可以将读取请求传输到多个数据节点20、30和40。
131.此时,指示在hdfs客户端101执行读取请求之前数据如何存储在多个数据节点20、30和40中以及哪些数据已存储在多个数据节点20、30和40中的状态可以是上面参照图4描述的写入操作已经完成的状态。也就是说,特定数据已经被复制并冗余地存储在第一数据节点20、第二数据节点30和第三数据节点40中。在这种情况下,非压缩特定数据已存储在第一数据节点20和第二数据节点30中的每一个中,并且压缩特定数据已存储在第三数据节点40中。
132.在这种状态下,hdfs客户端101可以将读取请求传输到第一数据节点20(f3)。第一数据节点20可以响应于来自hdfs客户端101的读取请求而读取第一数据节点20中存储的特定数据,并且可以将所读取的特定数据传输到hdfs客户端101。然而,在图5中,将描述从第一数据节点20读取特定数据的操作失败的情况(f4)。
133.由于从第一数据节点20读取特定数据的操作已经失败(f4),hdfs客户端101可以另外将读取请求传输到第二数据节点30(f5)。第二数据节点30可以响应于来自hdfs客户端101的读取请求而读取第二数据节点30中存储的特定数据,并且可以将所读取的特定数据传输到hdfs客户端101(f6)。
134.在这种情况下,由于从第一数据节点20读取特定数据的操作失败(f4),因此hdfs客户端101可以通过名称节点102请求解压缩在第三数据节点40的内部存储空间中存储的压缩的特定数据(f7),而不管第二数据节点30的读取操作是成功还是失败。
135.第三数据节点40可响应于来自名称节点102的解压缩请求而对在第三数据节点40的内部存储空间中存储的压缩特定数据执行解压缩操作。
136.第三数据节点40可以通知名称节点102针对特定数据的解压缩操作的执行已经完成(f8)。
137.通过上述操作,名称节点102还可以确认解压缩特定数据已存储在除了第一数据节点20和第二数据节点30之外的第三数据节点40中。
138.作为参考,虽然没有具体说明,但是在第三数据节点40中对压缩特定数据进行解压缩的操作之后,hdfs客户端101和名称节点102将另外设置一个新的数据节点,并且将进行操作,使得压缩特定数据存储在另外设置的新数据节点的存储空间中。此外,在第三数据节点40中对压缩特定数据进行解压缩的操作之后,hdfs客户端101和名称节点102可以使在先前对其进行读取请求失败的数据节点中存储的特定数据即在第一数据节点20的存储空间中存储的特定数据无效。因此,hdfs客户端101和名称节点102可以操作,使得特定数据被冗余地存储在三个数据节点中,并且非压缩特定数据存储在三个数据节点中的两个中,并且压缩特定数据存储在剩余的一个节点中。
139.该技术通过压缩一些数据并将压缩数据存储在数据存储系统中,使数据占用的空间最小化,在所述数据存储系统中,数据被冗余地复制并用于大数据处理。
140.虽然为了说明的目的已经描述了各个实施例,但是对于本领域的技术人员显而易见的是,可以在不偏离如权利要求所定义的本发明的精神和范围的情况下进行各种改变和修改。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜