CN110419029B - 在分布式存储网络中部分更新数据内容的方法 - Google Patents
在分布式存储网络中部分更新数据内容的方法 Download PDFInfo
- Publication number
- CN110419029B CN110419029B CN201880017792.XA CN201880017792A CN110419029B CN 110419029 B CN110419029 B CN 110419029B CN 201880017792 A CN201880017792 A CN 201880017792A CN 110419029 B CN110419029 B CN 110419029B
- Authority
- CN
- China
- Prior art keywords
- partial
- edss
- eds
- partial update
- update process
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Abstract
提供了一种用于由分散存储网络(DSN)的一个或多个处理模块执行的方法。该方法开始于由DSN接收更新数据对象的一个或多个数据段的请求,并继续由DSN确定与数据对象的一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新。然后,由DSN对适合于的EDS执行部分更新过程,同时排除在部分更新过程中不受影响的任何适合于进行部分更新的EDS。
Description
技术领域
本发明一般涉及计算机网络,更具体地说,涉及分散错误编码数据。
背景技术
已知计算设备传送数据、处理数据和/或存储数据。这样的计算设备包括无线智能电话、笔记本电脑、平板电脑、个人计算机(PC)、工作站和视频游戏设备、以及每天支持数百万网络搜索,股票交易或在线购买的数据中心。通常,计算设备包括中央处理单元(CPU)、存储器系统、用户输入/输出接口、外围设备接口和互连总线结构。
如进一步已知的,计算机可以通过使用“云计算”来代表计算机执行一个或多个计算功能(例如,服务、应用、算法、算术逻辑功能等)来有效地扩展其CPU。此外,对于大型服务、应用和/或功能,云计算可以以分布式方式由多个云计算资源执行,以改善完成服务、应用和/或功能的响应时间。例如,Hadoop是一个开源软件框架,其支持分布式应用程序,使数千台计算机能够执行应用程序。
除了云计算之外,计算机可以使用“云存储”作为其存储系统的一部分。众所周知,云存储使用户能够通过其计算机在因特网存储系统上存储文件、应用程序等。因特网存储系统可以包括RAID(独立磁盘冗余阵列)系统和/或分散存储系统,其使用纠错方案来编码用于存储的数据。
发明内容
根据一个方面,提供了一种用于由分散存储网络(DSN)的一个或多个计算设备的一个或多个处理模块执行的方法,该方法包括:接收更新数据对象的一个或多个数据段的请求;确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新;当与要更新的该数据对象的该数据段相关联的多个EDS的一个或多个EDS适合于进行部分更新时,选择在应用到该一个或多个EDS的部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的至少一个EDS以及不受影响的适合于进行部分更新的该一个或多个EDS中的至少一个其他EDS;以及对在应用到该一个或多个EDS的该部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的该至少一个EDS执行该部分更新过程,同时对该部分更新过程期间不受影响的适合于进行部分更新的该一个或多个EDS中的该至少一个其他EDS进行排除。
根据另一方面,提供了一种计算设备,包括:用于与网络接口的接口;记忆存储器;以及第一处理模块,可操作地耦合到该接口和该存储器,其中该第一处理模块可操作于:接收更新数据对象的一个或多个数据段的请求;确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新;当与要更新的该数据对象的该数据段相关联的多个EDS的一个或多个EDS适合于进行部分更新时,选择在应用到该一个或多个EDS的部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的至少一个EDS以及不受影响的适合于进行部分更新的该一个或多个EDS中的至少一个其他EDS;以及对在应用到该一个或多个EDS的该部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的该至少一个EDS执行该部分更新过程,同时对在该部分更新过程期间不受影响的适合于进行部分更新的该一个或多个EDS中的该至少一个其他EDS进行排除。
根据另一方面,提供了一种计算机程序产品,包括计算机可读存储介质,所述计算机可读存储介质具有嵌入其中的程序指令,所述程序指令可由分散存储网络(DSN)的一个或多个计算设备执行以执行以下步骤:接收更新数据对象的一个或多个数据段的请求;确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新;当与要更新的该数据对象的该数据段相关联的多个EDS的一个或多个EDS适合于进行部分更新时,选择在应用到该一个或多个EDS的部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的至少一个EDS以及不受影响的适合于进行部分更新的该一个或多个EDS中的至少一个其他EDS;以及对在应用到该一个或多个EDS的该部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的该至少一个EDS执行该部分更新过程,同时对在该部分更新过程期间不受影响的适合于进行部分更新的该一个或多个EDS中该至少一个其他EDS进行排除。
附图说明
现在将仅通过示例的方式参考附图,描述本发明的实施例,附图中:
图1是根据本发明实施例的分散的或分布式存储网络(DSN)的示意性框图;
图2是根据本发明实施例的计算核的示意框图;
图3是根据本发明实施例的数据的分散存储错误编码的示例的示意框图;
图4是根据本发明实施例的错误编码功能的一般示例的示意框图;
图5是根据本发明实施例的错误编码功能的具体示例的示意框图;
图6是根据本发明的实施例的编码数据片(EDS)的片(slice)名称的示例的示意性框图;
图7是根据本发明实施例的数据的分散存储错误解码的示例的示意框图;
图8是根据本发明的实施例的错误解码功能的一般示例的示意框图;
图9是根据本发明实施例的部分更新过程产生的EDS的示意图;
图10是根据本发明实施例的基于使用偏移的部分更新过程产生的EDS的另一个例子的示意图;
图11是根据本发明实施例的基于使用偏移的部分更新过程产生的EDS的另一个例子的示意图;以及
图12是根据本发明的实施例的部分更新DSN内容的方法的示例的逻辑图。
具体实施方式
图1是分散的或分布式存储网络(DSN)10的实施例的示意性框图,该存储网络包括多个计算设备12-16、管理单元18、完整性处理单元20和DSN存储器22。DSN 10的组件耦合到网络24,网络24可以包括一个或多个无线和/或有线通信系统、一个或多个非公共内联网系统和/或公共互联网系统、和/或一个或多个局域网(LAN)和/或广域网(WAN)。
DSN存储器22包括多个存储单元36,其可以位于地理上不同的站点(例如,芝加哥的一个站点,密尔沃基的一个站点等)、公共站点或其组合。例如,如果DSN存储器22包括八个存储单元36,则每个存储单元位于不同的站点。作为另一示例,如果DSN存储器22包括八个存储单元36,则所有八个存储单元位于相同的站点。作为又一示例,如果DSN存储器22包括八个存储单元36,则第一对存储单元位于第一公共站点,第二对存储单元位于第二公共站点,第三对存储单元位于第三公共站点,第四对存储单元位于第四公共站点。注意,DSN存储器22可以包括多于或少于八个存储单元36。进一步注意,每个存储单元36包括计算核心(如图2所示,或其组件)和多个用于存储分散的错误编码数据的存储器设备。
计算设备12-16、管理单元18和完整性处理单元20中的每一个包括计算核心26,其包括网络接口30-33。计算设备12-16的每个可以是便携式计算设备和/或固定计算设备。便携式计算设备可以是社交网络设备、游戏设备、手机、智能电话、数字助理、数字音乐播放器、数字视频播放器、膝上型计算机、手持式计算机、平板电脑、视频游戏控制器和/或包括计算核心的任何其他便携式设备。固定计算设备可以是计算机(PC)、计算机服务器、有线机顶盒、卫星接收器、电视机、打印机、传真机、家庭娱乐设备、视频游戏机和/或任何类型的家庭或办公室计算设备。注意,管理单元18和完整性处理单元20中的每一个可以是单独的计算设备,可以是公共计算设备,和/或可以集成到一个或多个计算设备12-16中和/或集成到一个或多个存储单元36中。
每个接口30、32和33包括用于间接和/或直接经由网络24支持一个或多个通信链路的软件和硬件。例如,接口30支持计算设备14和16之间的通信链路(例如,有线、无线、直接、经由LAN、经由网络24等)。作为另一示例,接口32支持计算设备14和16与DSN存储器22之间通信链路(例如,有线连接、无线连接、LAN连接和/或到/从网络24的任何其他类型的连接)。作为又一示例,接口33支持用于管理单元18和完整性处理单元20中的每一个到网络24的通信链路。
计算设备12和16包括分散存储(DS)客户端模块34,其使得计算设备能够分散存储错误编码和解码数据(例如,数据40),如随后参考图3-8中的一个或多个所描述的。在该示例实施例中,计算设备16用作计算设备14的分散存储处理代理。在该角色中,计算设备16代表计算设备14分散存储错误编码和解码数据。在使用分散存储错误编码和解码时,DSN 10容忍大量存储单元故障(故障的数量基于分散的存储错误编码功能的参数)而不丢失数据并且不需要数据的冗余或备份副本。此外,DSN 10无限期地存储数据而没有数据丢失并且以安全的方式存储(例如,该系统非常抵抗未经授权的访问数据的尝试)。
在操作中,管理单元18执行DS管理服务。例如,管理单元18单独地或作为一组用户设备的一部分为计算设备12-14建立分布式数据存储参数(例如,库(vault)创建、分布式存储参数、安全参数、计费信息、用户简档信息等)。作为特定示例,管理单元18协调在DSN存储器22内为用户设备、一组设备或公共访问创建库(例如,与DSN的整个命名空间的一部分相关联的虚拟存储块),并为库建立每个库分散存储(DS)错误编码参数。管理单元18通过更新DSN 10的注册表信息来促进每个库的DS错误编码参数的存储,其中注册表信息可以存储在DSN存储器22、计算设备12-16、管理单元18和/或完整性处理单元20中。
管理单元18在本地存储器中和/或DSN存储器22的存储器内创建和存储用户简档信息(例如,访问控制列表(ACL))。用户简档信息包括认证信息、许可和/或或安全参数。安全参数可以包括加密/解密方案、一个或多个加密密钥、密钥生成方案和/或数据编码/解码方案。
管理单元18为特定用户、用户组、库访问、公共库访问等创建计费信息。例如,管理单元18跟踪用户访问非公共库和/或公共库的次数,该次数可用于生成按访问计费信息。在另一实例中,管理单元18跟踪由用户设备和/或用户组存储和/或检索的数据量,其可用于生成每数据量的计费信息。
作为另一示例,管理单元18执行网络操作、网络管理和/或网络维护。网络操作包括验证用户数据分配请求(例如,读取和/或写入请求)、管理库的创建、为用户设备建立认证凭证、到/从DSN 10添加/删除组件(例如,用户设备、存储单元和/或具有DS客户端模块34的计算设备)、和/或为存储单元36建立认证凭证。网络管理包括监视设备和/或单元的故障、维护库信息、确定设备和/或单元激活状态、确定设备和/或单元加载、和/或确定影响DSN 10的性能级别的任何其他系统级操作。网络维护包括促进替换、升级、修复和/或扩展DSN的设备和/或单元10。
完整性处理单元20执行“坏”或丢失编码数据片的重建。在高级别,完整性处理单元20通过周期性地尝试从DSN存储器22检索/列出编码数据片和/或编码数据片的片名称来执行重建。对于检索到的编码片,检查它们的由于数据损坏、过期版本等的错误。如果片包含错误,则将其标记为“坏”片。对于未接收和/或未列出的编码数据片,它们被标记为丢失片。随后使用被认为是良好片的其他检索到的编码数据片来重建坏的和/或丢失的片以产生重建的片。重建的片存储在DSN存储器22中。
图2是计算核心26的实施例的示意性框图,计算核心26包括处理模块50、存储器控制器52、主存储器54、视频图形处理单元55、输入/输出(IO)控制器56、外围组件互连(PCI)接口58、IO接口模块60、至少一个IO设备接口模块62、只读存储器(ROM)基本输入输出系统(BIOS)64、以及一个或多个存储器接口模块。一个或多个存储器接口模块包括通用串行总线(USB)接口模块66、主机总线适配器(HBA)接口模块68、网络接口模块70、闪存接口模块72、硬盘驱动器接口模块74、以及DSN接口模块76中的一个或多个。
DSN接口模块76用于模仿传统的操作系统(OS)文件系统接口(例如,网络文件系统(NFS)、闪存文件系统(FFS)、磁盘文件系统(DFS)、文件传输协议(FTP)、基于web的分布式创作和版本控制(WebDAV)等)和/或块存储器接口(例如,小型计算机系统接口(SCSI)、因特网小型计算机系统接口(iSCSI)等)。DSN接口模块76和/或网络接口模块70可以用作图1的接口30-33中的一个或多个。注意,IO设备接口模块62和/或存储器接口模块66-76可以是同一地或单独地称为IO端口。
图3是数据的分散存储错误编码的示例的示意性框图。当计算设备12或16具有要存储它的数据时,分散存储错误根据基于分散存储错误编码参数的分散存储错误编码过程对数据进行编码。分散的存储错误编码参数包括编码函数(例如,信息分散算法、Reed-Solomon、Cauchy Reed-Solomon、系统编码、非系统编码、在线编码等)、数据分段协议(例如,数据段大小、固定的、变量等)和每个数据段编码值。每个数据段编码值包括每个数据段编码(即,在一组编码数据片中)的编码数据片的总数或柱宽、每个数据段编码(即,在一组编码数据片中)的编码数据片数(T);恢复数据段所需的一组编码数据片的编码数据片的解码阈值数(D);编码数据片的读取阈值数(R)以指示要从存储器读取的用于解码数据段的每组编码数据片的数量;和/或写入阈值数(W)以指示在编码数据段被认为已被正确存储之前必须准确存储的每组编码数据片的数量。分散的存储错误编码参数还可以包括片信息(例如,将为每个数据段创建的编码数据片的数量)和/或片安全信息(例如,每编码数据片加密、压缩、完整性校验等)。
在本示例中,已选择Cauchy Reed-Solomon作为编码函数(图4中示出了一般示例,并且图5中示出了具体示例);数据分段协议是将数据对象划分为固定大小的数据段;每个数据段编码值包括:柱(pillar)宽度为5,解码阈值为3,读取阈值为4,写入阈值为4。根据数据分段协议,计算设备12或16将数据(例如,文件(例如,文本、视频、音频等)、数据对象或其他数据排列)划分成为多个固定大小的数据段(例如,在千字节到兆字节或更多的范围内的1到Y的固定大小)。创建的数据段的数量取决于数据的大小和数据分段协议。
然后,计算设备12或16使用所选择的编码函数(例如,Cauchy Reed-Solomon)分散存储错误对数据段进行编码,以产生一组编码数据片。图4示出了通用的Cauchy Reed-Solomon编码函数,其包括编码矩阵(EM)、数据矩阵(DM)和编码的矩阵(CM)。编码矩阵(EM)的大小取决于每个数据段编码值所选择的柱宽度数(T)和解码阈值数(D)。为了产生数据矩阵(DM),数据段被分成多个数据块,数据块被排列成D行,每行Z个数据块。注意,Z是从数据段创建的数据块的数量和解码阈值数(D)的函数。由数据矩阵与编码矩阵矩阵相乘来生成编码的矩阵。
图5示出了Cauchy Reed-Solomon编码的具体示例,其中柱编号(T)为5并且解码阈值数为3。在该示例中,第一数据段被分成12个数据块(D1-D12)。编码矩阵包括五行编码数据块,其中第一行X11-X14对应于第一编码数据片(EDS1_1),第二行X21-X24对应于第二编码数据片(EDS2_1),第三行X31-X34对应于第三编码数据片(EDS 3_1),第四行X41-X44对应于第四编码数据片(EDS 4_1),第五行X51-X54对应于第五编码数据片(EDS 5_1)。注意,EDS指定的第二个数字对应于数据段编号。
返回到图3的讨论,计算设备还为该组编码数据片中的每个编码数据片(EDS)创建片名称(SN)。片名称80的典型格式如图6所示。如图所示,片名称(SN)80包括编码数据片的柱编号(例如,1-T之一)、数据段编号(例如,1-Y之一)、库标识符(ID)、数据对象标识符(ID),还可以包括编码数据片的修订级别信息。片名称用作编码数据片的用于从DSN存储器22存储和检索的DSN地址的至少一部分。
作为编码的结果,计算设备12或16产生多组编码数据片,其被提供有它们各自的片名称到存储单元以便存储。如图所示,第一组编码数据片包括EDS 1_1至EDS 5_1,并且第一组片名称包括SN 1_1至SN 5_1,并且最后一组编码数据片包括EDS 1_Y至EDS 5_Y以及最后一组片名称包括SN 1_Y到SN 5_Y。
图7是编码和存储在图4的示例中的分散的存储错误的数据对象的分散存储错误解码的示例的示意性框图。在该示例中,计算设备12或16从存储单元检索至少每个数据段的编码数据片的解码阈值数。作为特定示例,计算设备检索编码数据片的读取阈值数。
为了从解码阈值数量的编码数据片恢复数据段,计算设备使用如图8所示的解码功能。如图所示,解码功能基本上是图4的编码功能的反转。编码的矩阵包括解码阈值的行数(例如,在该示例中为3个)和编码矩阵的反转中的解码矩阵,其包括编码矩阵的对应行。例如,如果编码的矩阵包括行1、2和4,则编码矩阵被缩减为行1、2和4,然后被反转以产生解码矩阵。
再次参考图3,数据分段协议用于利用每个数据段编码值将数据对象分段成更小的段。数据分段可以提供许多优点,包括但不限于提高的性能、改进的访问和提高的系统效率。一些数据类型(例如元数据、索引节点或其他结构化数据)以递增方式更新,因此适合于(eligible)部分更新过程。例如,DSN可以存储第一数据段以及数据对象的元数据。在该示例中,可以更快地访问对数据的第一个字节的访问,同时通过允许系统加载对象的元数据而允许系统提供剩余字节的有效流式传输。
当更新具有嵌入内容的对象的属性时,系统性能可能受到负面影响,因为DS单元可能需要重新组装和传输更大量的数据并进一步从数据对象中解析关联的元数据,即使在执行诸如简单的属性修改如此琐碎的操作时也是这样。这种类型的结构化数据可以是常见的,例如,当在对象存储上模拟POSIX工作流时,其中数据对象访问控制和/或时间戳可以像在每次访问期间那样频繁地操纵。图9-11是基于使用偏移的部分更新过程产生的部分更新的EDS的示意图。例如,可以将部分更新过程视为具有图9-11中详述的操作的dsnet协议的扩展。作为具体示例,在图9中,部分更新过程将在所提供的偏移位置处的偏移量和新内容94插入到在偏移处的EDS 1_1中,而不覆盖在部分更新过程之前存在的现有数据内容92(即,现有数据内容92被推送到新数据内容94之后)。
图10是基于使用偏移的部分更新过程产生的EDS的另一示例的示意图。在该示例中,部分更新过程将提供的偏移位置处的偏移和新数据内容94插入到现有数据内容92中,替换现有数据内容92直到新数据内容94的长度。
图11是基于使用偏移的部分更新过程产生的EDS的另一示例的示意图。作为具体示例,在部分更新过程中提供偏移以及数据范围或结束位置,其中部分更新过程从现有数据内容92中移除被移除的数据内容96。在该示例中,部分更新过程包括插入偏移位置的偏移量并删除数据,直到收到端点或删除指定的数据范围。
图12是根据本发明的实施例的部分更新DSN内容的方法的示例的逻辑图。作为特定示例,在步骤300,DSN接收部分更新数据对象的一个或多个数据段的请求。在步骤302DSN确定正在更新的数据段是否适合于部分更新,并且当正在更新的数据段适合于部分更新时,在步骤304DSN进一步确定与正在更新的数据段相关联的哪些EDS将受到部分更新的影响。参考图5,并使用Cauchy Reed-Solomon编码的具体示例,DSM可以基于矩阵运算的乘积确定哪些EDS将受到部分更新的影响。在图5的示例中,X11-X14的第一行对应于第一编码数据片(EDS 1_1),并且X11=aD1+bD5+D9。因此,如果仅部分更新D1,则需要部分更新第一编码数据片(EDS 1_1)以及包括D1的任何编码数据片。
一旦确定了受部分更新影响的EDS,DSN就在步骤306中发送包括EDS片名称、要修改的EDS(片)的修订#和到SU的新的(部分更新的)EDS的修订#的协议消息,其中可以在步骤308将偏移量插入到受影响的EDS中,并且新内容可以是预先准备的、附加的、插入的并且过时的数据可以被删除,正如由DSN在步骤310中确定的。步骤312中更新受影响的EDS的多个修订#。在替代示例中,即使当一个或多个EDS不受部分更新影响时,也可以为与部分更新的数据段相关联的所有EDS提供多个新版本#。使用此示例,执行修改所需的聚合数据与实际修改本身相关,而不是依赖于正在更新的数据源。
注意,这里可以使用的术语,诸如比特流、流、信号序列等(或它们的等同物)已经可互换地用于描述其内容对应于多种期望类型中的任何一种的数字信息(例如,数据、视频、语音、音频等,其中任何一个通常可以称为“数据”)。
如本文可使用的,术语“基本上”和“大致”为其对应的术语和/或项目之间的相对性提供了行业可接受的公差。这种工业上可接受的公差范围从小于百分之一到百分之五十,并且对应于但不限于元件值、集成电路工艺变化、温度变化、上升和下降时间和/或热噪声。项目之间的这种相关性的范围从几个百分点的差异到数量差异。如本文中还可以使用的,术语“被配置为”、“可操作地耦合到”、“耦合到”和/或“耦合”包括项目之间的直接耦合和/或通过中间项目的项目之间的间接耦合。(例如,项目包括但不限于组件、元件、电路和/或模块),其中,对于间接耦合的示例,中间项目不修改信号的信息但可以调整其当前电平、电压电平和/或功率电平。如本文中可进一步使用的,推断的耦合(即,其中一个元件通过推断耦合到另一个元件)包括以与“耦合到”相同的方式在两个项目之间的直接和间接耦合。如本文中甚至可以进一步使用的,术语“配置为”、“可操作地”、“耦合到”或“可操作地耦合到”指示项目包括电源连接、输入、输出中的一个或多个(s)等,当被激活时,执行其一个或多个其相应的功能,并且还可以包括推断的耦合到一个或多个其他项目。如本文中还可进一步使用的,术语“与...相关联”包括单独项目和/或嵌入在另一项目中的一个项目的直接和/或间接耦合。
如本文可能使用的,术语“有利地比较”表示两个或更多个项目、信号等之间的比较提供了期望的关系。例如,当期望的关系是信号1具有比信号2更大的幅度时,当信号1的幅度大于信号2的幅度或者当信号2的幅度小于信号2的幅度时,可以实现有利的比较。如本文中可能使用的,术语“不利地比较”表示两个或更多个项目、信号等之间的比较未能提供期望的关系。
如本文还可使用的,术语“处理模块”、“处理电路”、“处理器”和/或“处理单元”可以是单个处理设备或多个处理设备。这种处理设备可以是微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路和/或基于电路和/或操作指令的硬编码来操纵信号(模拟和/或数字)的任何设备。处理模块、模块组、处理电路和/或处理单元可以是或者进一步包括存储器和/或集成存储器元件,其可以是单个存储器设备、多个存储器设备和/或另一处理模块、模块组、处理电路和/或处理单元的嵌入式电路。这样的存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓冲存储器和/或存储数字信息的任何设备。注意,如果处理模块、模块组、处理电路和/或处理单元包括多于一个处理设备,则处理设备可以位于中央(例如,经由有线和/或无线总线结构直接耦合在一起)或者可以是分布式地定位(例如,经由局域网和/或广域网的间接耦合的云计算)。进一步注意,如果处理模块、模块组、处理电路和/或处理单元经由状态机、模拟电路、数字电路和/或逻辑电路实现其一个或多个功能,则存储器和/或存储器元件存储的相应的操作指令可以嵌入在包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或外部。还要注意,存储元件可以存储,并且处理模块、模块组、处理电路和/或处理单元执行与在一个或者多个图中示出的至少一些步骤和/或功能相对应的硬编码和/或操作指令。这种存储器件或存储元件可以包括在制品中。
上面已经借助于示出特定功能及其关系的执行的方法步骤描述了一个或多个实施例。为了便于描述,这里任意定义了这些功能构建块和方法步骤的边界和序列。只要适当地执行指定的功能和关系,就可以定义替代边界和序列。因此,任何这样的替代边界或序列都在权利要求的范围和精神内。此外,为了便于描述,这些功能构建块的边界已被任意定义。只要适当地执行某些重要功能,就可以定义替代边界。类似地,流程图块也可以在本文中任意定义以说明某些重要功能。
对于所使用的程度,流程图块边界和序列可以已经另外定义并且仍然执行某些重要功能。因此,功能构建块和流程图块和序列的这种替代定义在权利要求的范围和精神内。本领域普通技术人员还将认识到,本文中的功能构建块和其他说明性块、模块和组件可以如图所示实现,或者由分立组件、专用集成电路、执行适当软件的处理器等或其组合实现。
另外,流程图可以包括“开始”和/或“继续”指示。“开始”和“继续”指示反映了所呈现的步骤可以任选地并入或以其他方式结合其他例程使用。在此上下文中,“开始”表示所呈现的第一步骤的开始,并且可以在未明确示出的其他活动之前。此外,“继续”指示反映了所呈现的步骤可以多次执行和/或可以由未具体示出的其他活动继承。此外,尽管流程图指示步骤的特定顺序,但是其他顺序同样是可能的,只要保持因果关系原则即可。
本文使用一个或多个实施例来说明一个或多个方面、一个或多个特征、一个或多个概念、和/或一个或多个示例。装置、制品、机器和/或过程的物理实施例可包括参考本文所讨论的一个或多个实施例描述的一个或多个方面、特征、概念、示例等。此外,从图到图,实施例可以包含相同或类似命名的功能、步骤、模块等,其可以使用相同或不同的附图标记,并且因此,功能、步骤、模块等可以是相同或相似的功能、步骤、模块等或是不同的。
除非特别说明,否则本文呈现的任何附图的图中的元件的信号可以是模拟的或数字的、连续的时间或离散的时间、以及单端或差分。例如,如果信号路径显示为单端路径,则它还表示差分信号路径。类似地,如果信号路径显示为差分路径,则它还表示单端信号路径。虽然本文描述了一个或多个特定体系结构,但是同样可以实现其他体系结构,其使用未明确示出的一个或多个数据总线、元件之间的直接连接、和/或本领域普通技术人员认识到的其他元件之间的间接耦合。
术语“模块”用于一个或多个实施例的描述中。模块经由诸如处理器或其他处理设备之类的设备或其他硬件,其可以包括或与存储操作指令的存储器相关联地操作,来实现一个或多个功能。模块可以独立地操作和/或与软件和/或固件一起操作。还如本文中所使用的,模块可以包含一个或多个子模块,每个子模块可以是一个或多个模块。
如本文中可进一步使用的,计算机可读存储器包括一个或多个存储器元件。存储器元件可以是单独的存储器设备、多个存储器设备或存储器设备内的一组存储器位置。这样的存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓冲存储器和/或存储数字信息的任何设备。存储器设备可以是固态存储器、硬盘驱动器存储器、云存储器、拇指驱动器、服务器存储器、计算设备存储器和/或用于存储数字信息的其他物理介质的形式。
虽然本文已明确描述了一个或多个实施例的各种功能和特征的特定组合,但是这些特征和功能的其他组合同样是可能的。本公开不受本文公开的具体实施例的限制,并且明确地包含这些其他组合。
Claims (27)
1.一种用于由分散存储网络(DSN)的一个或多个计算设备的一个或多个处理模块执行的方法,该方法包括:
接收更新数据对象的一个或多个数据段的请求;
确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新;
当与要更新的该数据对象的该数据段相关联的多个EDS的一个或多个EDS适合于进行部分更新时,选择在应用到该一个或多个EDS的部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中至少一个EDS;以及
对在应用到该一个或多个EDS的该部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中该至少一个EDS执行该部分更新过程,
其中,所述方法还包括:
对执行部分更新过程的适合于进行部分更新的一个或多个EDS的至少一个EDS的修订号更新。
2.如权利要求1所述的方法,还包括:
当部分更新过程应用于适合于部分更新的该一个或多个EDS的至少一个EDS时,对与该数据对象的该一个或多个数据段相关联的该多个EDS中的每个EDS的修订号更新。
3.如权利要求1所述的方法,其中,确定与该数据对象的该数据段相关联的多个EDS中的一个或多个EDS是否适合于进行部分更新是基于包括嵌入内容的该数据对象。
4.如权利要求1所述的方法,其中,对适于部分更新的该一个或多个EDS的至少一个EDS执行部分更新过程包括在执行部分更新的每个EDS上包括至少一个偏移的操作。
5.如权利要求4所述的方法,其中,该执行部分更新过程包括将至少一个偏移位置处的偏移和更新的内容插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中,而不覆盖在执行部分更新过程之前适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的内容。
6.如权利要求4所述的方法,其中,该执行部分更新过程包括将至少一个偏移位置处的偏移和更新的内容插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中,并且其中插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中的更新的内容覆盖在执行部分更新过程之前适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的至少一些内容。
7.如权利要求4所述的方法,其中执行部分更新的至少一个EDS存在至少一个结束位置,并且其中该执行部分更新过程包括在执行该至少一个偏移和该结束位置之间的部分更新过程之前,移除适合于进行部分更新的该一个或多个EDS中的至少一个EDS中存在的内容。
8.如权利要求4所述的方法,其中执行部分更新的该至少一个EDS存在至少一个范围,其中该执行部分更新过程包括执行从该至少一个偏移开始的该范围的部分更新过程之前,移除适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的内容。
9.如权利要求1所述的方法,其中,该确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新是基于与要更新的该数据对象的特定数据段相关联的该一个或多个编码数据片(EDS),其是要更新的该数据对象的该特定数据段的分散存储错误编码功能的产物。
10.一种计算设备,包括:
用于与网络连接的接口;
存储器;以及
第一处理模块,可操作地耦合到该接口和该存储器,其中该第一处理模块可操作于:
接收更新数据对象的一个或多个数据段的请求;
确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新;
当与要更新的该数据对象的该数据段相关联的多个EDS的一个或多个EDS适合于进行部分更新时,选择在应用到该一个或多个EDS的部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中至少一个EDS;以及
对在应用到该一个或多个EDS的该部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的该至少一个EDS执行该部分更新过程,
其中,该第一处理模块还可操作用于:
对执行部分更新过程的适合于进行部分更新的一个或多个EDS的至少一个EDS的修订号更新。
11.如权利要求10所述的计算设备,其中,该第一处理模块还可操作用于:
当部分更新过程应用于适合于部分更新的该一个或多个EDS的至少一个EDS时,对与该数据对象的该一个或多个数据段相关联的该多个EDS中的每个EDS的修订号更新。
12.如权利要求10所述的计算设备,其中,所述第一处理模块还可操作用于:
基于包括嵌入内容的该数据对象确定与该数据对象的该数据段相关联的多个EDS中的一个或多个EDS是否适合于进行部分更新。
13.如权利要求10所述的计算设备,其中,所述第一处理模块还可操作用于:
在执行部分更新的每个EDS上包括至少一个偏移的操作。
14.如权利要求13所述的计算设备,其特征在于,该操作包括在其上执行部分更新的每个该EDS中的至少一个偏移包括将至少一个偏移位置处的偏移和更新的内容插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中,而不覆盖在执行部分更新过程之前适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的内容。
15.如权利要求13所述的计算设备,其中,该第一处理模块还可操作用于:
将至少一个偏移位置处的偏移和更新的内容插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中,并且其中插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中的更新的内容覆盖在执行部分更新过程之前适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的至少一些内容。
16.如权利要求13所述的计算设备,其中,该在执行部分更新的每个EDS上包括至少一个偏移的操作包括将该至少一个偏移插入到适合进行部分更新的该一个或多个EDS的该至少一个EDS中,并且还包括为执行部分更新的至少一个EDS插入结束位置,以及
其中,执行部分更新过程包括在执行该至少一个偏移和该结束位置之间的部分更新过程之前,移除适合于进行部分更新的该一个或多个EDS中的至少一个EDS中存在的内容。
17.如权利要求13所述的计算设备,其中该在执行部分更新的每个EDS上包括至少一个偏移的操作包括将该至少一个偏移插入到适合进行部分更新的该一个或多个EDS的该至少一个EDS中,并且还包括执行部分更新的该至少一个EDS的至少一个范围,其中该执行部分更新过程包括执行从该至少一个偏移开始的该范围的部分更新过程之前,移除适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的内容。
18.如权利要求10所述的计算设备,其中,该第一处理模块还可操作用于:
基于与要更新的该数据对象的特定数据段相关联的该一个或多个编码数据片(EDS),其是要更新的该数据对象的该特定数据段的分散存储错误编码功能的产物,确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新。
19.一种计算机程序产品,包括计算机可读存储介质,所述计算机可读存储介质具有嵌入其中的程序指令,所述程序指令可由分散存储网络(DSN)的一个或多个计算设备执行以执行以下步骤:
接收更新数据对象的一个或多个数据段的请求;
确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新;
当与要更新的该数据对象的该数据段相关联的多个EDS的一个或多个EDS适合于进行部分更新时,选择在应用到该一个或多个EDS的部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的至少一个EDS;以及
对在应用到该一个或多个EDS的该部分更新过程期间受到影响的适合于进行部分更新的该一个或多个EDS中的该至少一个EDS执行该部分更新过程,
其中,所述程序指令可由分散存储网络(DSN)的一个或多个计算设备执行,以进一步执行以下步骤:
对执行部分更新过程的适合于进行部分更新的一个或多个EDS的至少一个EDS的修订号更新。
20.如权利要求19所述的计算机程序产品,其中所述程序指令可由分散存储网络(DSN)的一个或多个计算设备执行,以进一步执行以下步骤:
当部分更新过程应用于适合于部分更新的该一个或多个EDS的至少一个EDS时,对与该数据对象的该一个或多个数据段相关联的该多个EDS中的每个EDS的修订号更新。
21.如权利要求19所述的计算机程序产品,其中,确定与该数据对象的该数据段相关联的多个EDS中的一个或多个EDS是否适合于进行部分更新是基于包括嵌入内容的该数据对象。
22.如权利要求19所述的计算机程序产品,其中,对适于部分更新的该一个或多个EDS的至少一个EDS执行部分更新过程包括在执行部分更新的每个EDS上包括至少一个偏移的操作。
23.如权利要求22所述的计算机程序产品,其中,该执行部分更新过程包括将至少一个偏移位置处的偏移和更新的内容插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中,而不覆盖在执行部分更新过程之前适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的内容。
24.如权利要求22所述的计算机程序产品,其中,该执行部分更新过程包括将至少一个偏移位置处的偏移和更新的内容插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中,并且其中插入到适合于进行部分更新的该一个或多个EDS的该至少一个EDS中的更新的内容覆盖在执行部分更新过程之前适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的至少一些内容。
25.如权利要求22所述的计算机程序产品,其中,其中执行部分更新的至少一个EDS存在至少一个结束位置,并且其中该执行部分更新过程包括在执行该至少一个偏移和该结束位置之间的部分更新过程之前,移除适合于进行部分更新的该一个或多个EDS中的至少一个EDS中存在的内容。
26.如权利要求22所述的计算机程序产品,其中执行部分更新的该至少一个EDS存在至少一个范围,其中该执行部分更新过程包括执行从该至少一个偏移开始的该范围的部分更新过程之前,移除适合于进行部分更新的该一个或多个EDS的该至少一个EDS中存在的内容。
27.如权利要求19所述的计算机程序产品,其中,该确定与该数据对象的该一个或多个数据段相关联的多个编码数据片(EDS)中的一个或多个EDS是否适合于进行部分更新是基于与要更新的该数据对象的特定数据段相关联的该一个或多个编码数据片(EDS),其是要更新的该数据对象的该特定数据段的分散存储错误编码功能的产物。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/459,259 US10235241B2 (en) | 2017-03-15 | 2017-03-15 | Method for partial updating data content in a distributed storage network |
US15/459,259 | 2017-03-15 | ||
PCT/IB2018/051222 WO2018167590A1 (en) | 2017-03-15 | 2018-02-27 | Method for partial updating data content in a distributed storage network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110419029A CN110419029A (zh) | 2019-11-05 |
CN110419029B true CN110419029B (zh) | 2023-01-17 |
Family
ID=63519349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880017792.XA Active CN110419029B (zh) | 2017-03-15 | 2018-02-27 | 在分布式存储网络中部分更新数据内容的方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10235241B2 (zh) |
JP (1) | JP7139347B2 (zh) |
CN (1) | CN110419029B (zh) |
DE (1) | DE112018000227B4 (zh) |
GB (1) | GB2574990B (zh) |
WO (1) | WO2018167590A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10235241B2 (en) | 2017-03-15 | 2019-03-19 | International Business Machines Corporation | Method for partial updating data content in a distributed storage network |
CN111444138B (zh) * | 2019-01-16 | 2024-03-15 | 深圳市茁壮网络股份有限公司 | 一种文件局部修改方法及系统 |
US10838660B2 (en) * | 2019-04-22 | 2020-11-17 | International Business Machines Corporation | Identifying and processing predefined dispersed storage network workflows |
JP7212800B2 (ja) | 2019-10-21 | 2023-01-25 | 本田技研工業株式会社 | 鞍乗型車両 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012089094A (ja) * | 2010-10-22 | 2012-05-10 | Intec Inc | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
US9053124B1 (en) * | 2014-09-30 | 2015-06-09 | Code 42 Software, Inc. | System for a distributed file system element collection |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4092732A (en) | 1977-05-31 | 1978-05-30 | International Business Machines Corporation | System for recovering data stored in failed memory unit |
US5485474A (en) | 1988-02-25 | 1996-01-16 | The President And Fellows Of Harvard College | Scheme for information dispersal and reconstruction |
US5454101A (en) | 1992-09-15 | 1995-09-26 | Universal Firmware Industries, Ltd. | Data storage system with set lists which contain elements associated with parents for defining a logical hierarchy and general record pointers identifying specific data sets |
US5987622A (en) | 1993-12-10 | 1999-11-16 | Tm Patents, Lp | Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem |
US6175571B1 (en) | 1994-07-22 | 2001-01-16 | Network Peripherals, Inc. | Distributed memory switching hub |
US5848230A (en) | 1995-05-25 | 1998-12-08 | Tandem Computers Incorporated | Continuously available computer memory systems |
US5774643A (en) | 1995-10-13 | 1998-06-30 | Digital Equipment Corporation | Enhanced raid write hole protection and recovery |
US5809285A (en) | 1995-12-21 | 1998-09-15 | Compaq Computer Corporation | Computer system having a virtual drive array controller |
US6012159A (en) | 1996-01-17 | 2000-01-04 | Kencast, Inc. | Method and system for error-free data transfer |
US5802364A (en) | 1996-04-15 | 1998-09-01 | Sun Microsystems, Inc. | Metadevice driver rename/exchange technique for a computer system incorporating a plurality of independent device drivers |
US5890156A (en) | 1996-05-02 | 1999-03-30 | Alcatel Usa, Inc. | Distributed redundant database |
US6058454A (en) | 1997-06-09 | 2000-05-02 | International Business Machines Corporation | Method and system for automatically configuring redundant arrays of disk memory devices |
US6088330A (en) | 1997-09-09 | 2000-07-11 | Bruck; Joshua | Reliable array of distributed computing nodes |
US5991414A (en) | 1997-09-12 | 1999-11-23 | International Business Machines Corporation | Method and apparatus for the secure distributed storage and retrieval of information |
US6272658B1 (en) | 1997-10-27 | 2001-08-07 | Kencast, Inc. | Method and system for reliable broadcasting of data files and streams |
JPH11161505A (ja) | 1997-12-01 | 1999-06-18 | Matsushita Electric Ind Co Ltd | メディア送出装置 |
JPH11167443A (ja) | 1997-12-02 | 1999-06-22 | Casio Comput Co Ltd | インターフェイス装置 |
US6415373B1 (en) | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6374336B1 (en) | 1997-12-24 | 2002-04-16 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
WO2000011554A1 (en) | 1998-08-19 | 2000-03-02 | Boris Nikolaevich Vilkov | A system and method for identification of transformation of memory device addresses |
US6356949B1 (en) | 1999-01-29 | 2002-03-12 | Intermec Ip Corp. | Automatic data collection device that receives data output instruction from data consumer |
US6609223B1 (en) | 1999-04-06 | 2003-08-19 | Kencast, Inc. | Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter |
US6571282B1 (en) | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
US6826711B2 (en) | 2000-02-18 | 2004-11-30 | Avamar Technologies, Inc. | System and method for data protection with multidimensional parity |
US6718361B1 (en) | 2000-04-07 | 2004-04-06 | Network Appliance Inc. | Method and apparatus for reliable and scalable distribution of data files in distributed networks |
DE60131900T2 (de) | 2000-10-26 | 2008-12-04 | Flood, James C. jun., Portland | Verfahren und system zur verwaltung von verteilten inhalten und verwandten metadaten |
US7140044B2 (en) | 2000-11-13 | 2006-11-21 | Digital Doors, Inc. | Data security system and method for separation of user communities |
US8176563B2 (en) | 2000-11-13 | 2012-05-08 | DigitalDoors, Inc. | Data security system and method with editor |
US7146644B2 (en) | 2000-11-13 | 2006-12-05 | Digital Doors, Inc. | Data security system and method responsive to electronic attacks |
US7103915B2 (en) | 2000-11-13 | 2006-09-05 | Digital Doors, Inc. | Data security system and method |
GB2369206B (en) | 2000-11-18 | 2004-11-03 | Ibm | Method for rebuilding meta-data in a data storage system and a data storage system |
US6785783B2 (en) | 2000-11-30 | 2004-08-31 | International Business Machines Corporation | NUMA system with redundant main memory architecture |
US7080101B1 (en) | 2000-12-01 | 2006-07-18 | Ncr Corp. | Method and apparatus for partitioning data for storage in a database |
US20030084020A1 (en) | 2000-12-22 | 2003-05-01 | Li Shu | Distributed fault tolerant and secure storage |
US6857059B2 (en) | 2001-01-11 | 2005-02-15 | Yottayotta, Inc. | Storage virtualization system and methods |
US20020161846A1 (en) | 2001-01-29 | 2002-10-31 | Ulrich Thomas R. | Data path controller architecture |
US20030037261A1 (en) | 2001-03-26 | 2003-02-20 | Ilumin Corporation | Secured content delivery system and method |
US6879596B1 (en) | 2001-04-11 | 2005-04-12 | Applied Micro Circuits Corporation | System and method for systolic array sorting of information segments |
US7024609B2 (en) | 2001-04-20 | 2006-04-04 | Kencast, Inc. | System for protecting the transmission of live data streams, and upon reception, for reconstructing the live data streams and recording them into files |
GB2377049A (en) | 2001-06-30 | 2002-12-31 | Hewlett Packard Co | Billing for utilisation of a data storage array |
US6944785B2 (en) | 2001-07-23 | 2005-09-13 | Network Appliance, Inc. | High-availability cluster virtual server system |
US7636724B2 (en) | 2001-08-31 | 2009-12-22 | Peerify Technologies LLC | Data storage system and method by shredding and deshredding |
US7024451B2 (en) | 2001-11-05 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | System and method for maintaining consistent independent server-side state among collaborating servers |
US7003688B1 (en) | 2001-11-15 | 2006-02-21 | Xiotech Corporation | System and method for a reserved memory area shared by all redundant storage controllers |
US7171493B2 (en) | 2001-12-19 | 2007-01-30 | The Charles Stark Draper Laboratory | Camouflage of network traffic to resist attack |
WO2004012337A2 (en) | 2002-07-29 | 2004-02-05 | Robert Halford | Multi-dimensional data protection and mirroring method for micro level data |
US7051155B2 (en) | 2002-08-05 | 2006-05-23 | Sun Microsystems, Inc. | Method and system for striping data to accommodate integrity metadata |
US20040122917A1 (en) | 2002-12-18 | 2004-06-24 | Menon Jaishankar Moothedath | Distributed storage system for data-sharing among client computers running defferent operating system types |
EP1618478A4 (en) | 2003-03-13 | 2007-10-03 | Drm Technologies L L C | CONTINUOUSLY CONTINUOUS CONTAINER |
US7185144B2 (en) | 2003-11-24 | 2007-02-27 | Network Appliance, Inc. | Semi-static distribution technique |
GB0308264D0 (en) | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
GB0308262D0 (en) | 2003-04-10 | 2003-05-14 | Ibm | Recovery from failures within data processing systems |
US7415115B2 (en) | 2003-05-14 | 2008-08-19 | Broadcom Corporation | Method and system for disaster recovery of data from a storage device |
US7613945B2 (en) | 2003-08-14 | 2009-11-03 | Compellent Technologies | Virtual disk drive system and method |
US7899059B2 (en) | 2003-11-12 | 2011-03-01 | Agere Systems Inc. | Media delivery using quality of service differentiation within a media stream |
US8332483B2 (en) | 2003-12-15 | 2012-12-11 | International Business Machines Corporation | Apparatus, system, and method for autonomic control of grid system resources |
US7206899B2 (en) | 2003-12-29 | 2007-04-17 | Intel Corporation | Method, system, and program for managing data transfer and construction |
US7222133B1 (en) | 2004-02-05 | 2007-05-22 | Unisys Corporation | Method for reducing database recovery time |
US7240236B2 (en) | 2004-03-23 | 2007-07-03 | Archivas, Inc. | Fixed content distributed data storage using permutation ring encoding |
US7231578B2 (en) | 2004-04-02 | 2007-06-12 | Hitachi Global Storage Technologies Netherlands B.V. | Techniques for detecting and correcting errors using multiple interleave erasure pointers |
JP4446839B2 (ja) | 2004-08-30 | 2010-04-07 | 株式会社日立製作所 | ストレージ装置及びストレージ管理装置 |
US7680771B2 (en) | 2004-12-20 | 2010-03-16 | International Business Machines Corporation | Apparatus, system, and method for database provisioning |
US7386758B2 (en) | 2005-01-13 | 2008-06-10 | Hitachi, Ltd. | Method and apparatus for reconstructing data in object-based storage arrays |
US7672930B2 (en) | 2005-04-05 | 2010-03-02 | Wal-Mart Stores, Inc. | System and methods for facilitating a linear grid database with data organization by dimension |
US7574579B2 (en) | 2005-09-30 | 2009-08-11 | Cleversafe, Inc. | Metadata management system for an information dispersed storage system |
US7904475B2 (en) | 2007-10-09 | 2011-03-08 | Cleversafe, Inc. | Virtualized data storage vaults on a dispersed data storage network |
US7953937B2 (en) | 2005-09-30 | 2011-05-31 | Cleversafe, Inc. | Systems, methods, and apparatus for subdividing data for storage in a dispersed data storage grid |
US8285878B2 (en) | 2007-10-09 | 2012-10-09 | Cleversafe, Inc. | Block based access to a dispersed data storage network |
US7546427B2 (en) | 2005-09-30 | 2009-06-09 | Cleversafe, Inc. | System for rebuilding dispersed data |
US8171101B2 (en) | 2005-09-30 | 2012-05-01 | Cleversafe, Inc. | Smart access to a dispersed data storage network |
US7574570B2 (en) | 2005-09-30 | 2009-08-11 | Cleversafe Inc | Billing system for information dispersal system |
US20070214285A1 (en) | 2006-03-08 | 2007-09-13 | Omneon Video Networks | Gateway server |
US8762343B2 (en) * | 2009-12-29 | 2014-06-24 | Cleversafe, Inc. | Dispersed storage of software |
US8909858B2 (en) | 2010-06-09 | 2014-12-09 | Cleversafe, Inc. | Storing encoded data slices in a dispersed storage network |
US9231768B2 (en) * | 2010-06-22 | 2016-01-05 | International Business Machines Corporation | Utilizing a deterministic all or nothing transformation in a dispersed storage network |
US9274864B2 (en) | 2011-10-04 | 2016-03-01 | International Business Machines Corporation | Accessing large amounts of data in a dispersed storage network |
US8555130B2 (en) * | 2011-10-04 | 2013-10-08 | Cleversafe, Inc. | Storing encoded data slices in a dispersed storage unit |
US20170017671A1 (en) | 2012-04-25 | 2017-01-19 | International Business Machines Corporation | Deleting data in a dispersed storage network |
US9875158B2 (en) * | 2012-08-31 | 2018-01-23 | International Business Machines Corporation | Slice storage in a dispersed storage network |
US9521197B2 (en) | 2012-12-05 | 2016-12-13 | International Business Machines Corporation | Utilizing data object storage tracking in a dispersed storage network |
US9591076B2 (en) | 2014-09-08 | 2017-03-07 | International Business Machines Corporation | Maintaining a desired number of storage units |
WO2016100767A2 (en) | 2014-12-19 | 2016-06-23 | Aalborg Universitet | Method for file updating and version control for linear erasure coded and network coded storage |
US10437671B2 (en) | 2015-06-30 | 2019-10-08 | Pure Storage, Inc. | Synchronizing replicated stored data |
CN105930103B (zh) | 2016-05-10 | 2019-04-16 | 南京大学 | 一种分布式存储ceph的纠删码覆盖写方法 |
US10177785B2 (en) * | 2016-08-23 | 2019-01-08 | Western Digital Technologies, Inc. | Error detecting code with partial update |
US10235241B2 (en) | 2017-03-15 | 2019-03-19 | International Business Machines Corporation | Method for partial updating data content in a distributed storage network |
-
2017
- 2017-03-15 US US15/459,259 patent/US10235241B2/en not_active Expired - Fee Related
-
2018
- 2018-02-27 CN CN201880017792.XA patent/CN110419029B/zh active Active
- 2018-02-27 GB GB1914709.9A patent/GB2574990B/en active Active
- 2018-02-27 JP JP2019547485A patent/JP7139347B2/ja active Active
- 2018-02-27 DE DE112018000227.6T patent/DE112018000227B4/de active Active
- 2018-02-27 WO PCT/IB2018/051222 patent/WO2018167590A1/en active Application Filing
-
2019
- 2019-02-08 US US16/270,853 patent/US10691541B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012089094A (ja) * | 2010-10-22 | 2012-05-10 | Intec Inc | ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム |
US9053124B1 (en) * | 2014-09-30 | 2015-06-09 | Code 42 Software, Inc. | System for a distributed file system element collection |
Non-Patent Citations (1)
Title |
---|
Two effcient partial-updating schemes for erasure-coded storage clusters;Zhang F,Huang J,Xie C;《2012 IEEE Seventh International Conference on Networking,Architecture,and Storage》;20120924;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US10691541B2 (en) | 2020-06-23 |
DE112018000227B4 (de) | 2023-12-07 |
GB201914709D0 (en) | 2019-11-27 |
WO2018167590A1 (en) | 2018-09-20 |
US20190171525A1 (en) | 2019-06-06 |
CN110419029A (zh) | 2019-11-05 |
JP7139347B2 (ja) | 2022-09-20 |
DE112018000227T5 (de) | 2019-09-05 |
JP2020510256A (ja) | 2020-04-02 |
GB2574990B (en) | 2020-05-20 |
US10235241B2 (en) | 2019-03-19 |
GB2574990A (en) | 2019-12-25 |
US20180267855A1 (en) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11327689B1 (en) | Storage unit including memories of different operational speeds for optimizing data storage functions | |
US10372506B2 (en) | Compute architecture in a memory device of distributed computing system | |
US10353774B2 (en) | Utilizing storage unit latency data in a dispersed storage network | |
US10229002B2 (en) | Process to migrate named objects to a dispersed or distributed storage network (DSN) | |
US10616330B2 (en) | Utilizing tree storage structures in a dispersed storage network | |
CN110419029B (zh) | 在分布式存储网络中部分更新数据内容的方法 | |
US20230108184A1 (en) | Storage Modification Process for a Set of Encoded Data Slices | |
CN109478125B (zh) | 操纵分布式一致性协议以识别期望的存储单元集 | |
US10613798B2 (en) | Slice fanout write request | |
US20180107553A1 (en) | Detecting storage errors in a dispersed storage network | |
US10120574B2 (en) | Reversible data modifications within DS units | |
US10540120B2 (en) | Contention avoidance on associative commutative updates | |
US10423490B2 (en) | Read-source requests to support bundled writes in a distributed storage system | |
US20190026147A1 (en) | Avoiding index contention with distributed task queues in a distributed storage system | |
US20170118288A1 (en) | Modifying information dispersal algorithm configurations in a dispersed storage network | |
US20160357646A1 (en) | Multiple memory format storage in a storage network | |
US10642687B2 (en) | Pessimistic reads and other smart-read enhancements with synchronized vaults | |
US10579309B2 (en) | Method for increasing throughput in a distributed storage network | |
US20180107421A1 (en) | Multi-site duplication via high-level storage unit processing modules | |
US10140182B2 (en) | Modifying allocation of storage resources in a dispersed storage network | |
US20190197032A1 (en) | Preventing unnecessary modifications, work, and conflicts within a dispersed storage network | |
US10409522B2 (en) | Reclaiming storage capacity in a dispersed storage network | |
US20180101306A1 (en) | Mirroring a storage vault in a dispersed storage network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |