CN111788560A - 分布式存储网络中的动态授权批处理 - Google Patents
分布式存储网络中的动态授权批处理 Download PDFInfo
- Publication number
- CN111788560A CN111788560A CN201980015825.1A CN201980015825A CN111788560A CN 111788560 A CN111788560 A CN 111788560A CN 201980015825 A CN201980015825 A CN 201980015825A CN 111788560 A CN111788560 A CN 111788560A
- Authority
- CN
- China
- Prior art keywords
- queue
- request
- authorization
- utilization
- determining
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 156
- 238000003860 storage Methods 0.000 title claims abstract description 89
- 238000013475 authorization Methods 0.000 claims abstract description 223
- 230000004044 response Effects 0.000 claims abstract description 173
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000002349 favourable effect Effects 0.000 claims abstract description 31
- 230000005540 biological transmission Effects 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 70
- 238000011022 operating instruction Methods 0.000 claims description 6
- 210000000352 storage cell Anatomy 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 24
- 238000007726 management method Methods 0.000 description 22
- 239000011159 matrix material Substances 0.000 description 16
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 5
- 238000010923 batch production Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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]
-
- 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
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/106—Packet or message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一种用于由分散式存储和任务(DST)处理单元执行的方法,包括:响应于确定第一系统利用数据指示与正常利用阈值相比较不利的第一利用水平,对与接收到的操作请求相对应的授权请求进行排队。响应于确定第一请求队列与第一队列限制条件比较不利,生成包括排队的授权请求的第一批次授权请求用于传输至身份和访问管理(IAM)系统。基于第二系统利用数据来确定与第一队列限制条件不同的第二队列限制条件。响应于确定第二请求队列与第二队列限制条件比较不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求。
Description
技术领域
本发明总体涉及计算机网络,更具体来说,涉及分散误差编码数据。
背景技术
已知计算设备传递数据、处理数据和/或存储数据。这样的计算设备的范围从无线智能电话、膝上型计算机、平板计算机、个人计算机(PC)、工作站和视频游戏设备到支持每天数以百万计的web搜索、股票交易或在线购买的数据中心。通常,计算设备包括中央处理单元(CPU)、存储器系统、用户输入/输出接口、外围设备接口和互连总线结构。
如进一步已知的,计算机可以通过使用“云计算”来代表计算机执行一个或多个计算功能(例如,服务、应用、算法、算术逻辑功能等)来有效地扩展其CPU。进一步,对于大型服务、应用和/或功能,云计算可由多个云计算资源以分布式方式来执行,以改善完成服务、应用和/或功能的响应时间。例如,Hadoop是支持允许数千台计算机执行应用的分布式应用的开源软件框架。
除了云计算之外,计算机可使用“云存储”作为其存储器系统的一部分。如已知的,云存储使得用户能够通过其计算机在因特网存储系统上来存储文件、应用等。因特网存储系统可以包括RAID(独立磁盘冗余阵列)系统和/或使用纠错方案来编码数据以用于存储的分散式存储系统。
本申请人的申请US20170060459A1披露了一种由DST执行单元执行的方法,该方法包括:通过网络从计算设备接收包括授权令牌的访问请求;基于该访问请求生成授权数据;执行这些访问请求;并且当该授权数据包括验证指示符时,通过网络将该访问请求的结果传输至计算设备。当授权数据包括无效令牌指示符时,生成用于传输到计算设备的无效令牌通知。
申请人的申请US20170315735A1公开了处理系统对分散式存储网络(DSN)的分散式存储和任务(DST)执行单元的第一适当子集的选择。处理系统根据DSN的DST执行单元的第一适当子集来批处理一个时间段的访问请求,以在该时间段期间将访问请求限制到DSN的DST执行单元的第一适当子集。
本申请人的美国专利US 9798621B2披露了一种连接至网络的管理单元,该管理单元跨网络广播和更新安全接入控制列表信息。在目标设备接收到广播时,如果广播是更新接入控制列表信息的有效请求,则目标设备创建接入控制列表改变通知消息并且将其发送到应当已经接收到相同广播的所有其他系统设备。目标设备在采取行动以根据广播在操作上改变本地数据之前等待来自其他系统设备的响应以验证广播已经被正确地发送到阈值个数的其他系统设备。
通过将这样的系统与本公开进行比较,常规和传统方法的局限性和缺点对于本领域普通技术人员将变得显而易见。
发明内容
根据本发明的一个方面,提供了一种用于由包括处理器的分散式存储网络(DSN)的分散式存储和任务(DST)处理单元执行的方法,所述方法包括:确定第一系统利用数据;接收第一操作请求;响应于确定所述第一系统利用数据指示与正常利用阈值相比不利的第一利用水平,生成包括对应于所述第一操作请求的第一授权请求的第一请求队列;响应于生成所述第一请求队列,基于所述第一系统利用数据来确定第一队列限制条件;接收第一后续操作请求;将对应于所述第一后续操作请求的第一后续授权请求附加到所述第一请求队列;响应于确定所述第一请求队列与所述第一队列限制条件比较不利,生成包括所述第一请求队列的第一多个授权请求的第一批次授权请求;向身份和访问管理(IAM)系统发送所述第一批次授权请求;接收来自IAM系统的对应于所述第一请求队列的第一多个授权请求相对应的第一多个授权响应;标识所述第一多个授权响应的指示授权成功的第一子集;促进执行对应于所述第一多个授权响应的所述第一子集的多个操作请求的子集;确定第二系统利用数据;接收第二操作请求;响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值比较不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平;响应于生成所述第二请求队列,基于所述第二系统利用数据确定第二队列限制条件,其中所述第二队列限制条件不同于所述第一队列限制条件;接收第二后续操作请求;将对应于所述第二后续操作请求的第二后续授权请求附加至所述第二请求队列;响应于确定所述第二请求队列与所述第二队列限制条件比较不利,生成包括所述第二请求队列的第二多个授权请求的第二批次授权请求;向IAM系统发送第二批次授权请求。
附图说明
图1是根据本发明的分散或分布式存储网络(DSN)的实施例的示意性框图;
图2是根据本发明的计算核的实施例的示意框图;
图3是根据本发明的数据的分散式存储误差编码的示例的示意性框图;
图4是根据本发明的误差编码函数的一般性实例的示意框图;
图5是根据本发明的误差编码函数的一个具体实例的示意框图;
图6是根据本发明的编码数据分片(EDS)的分片名称的实例的示意性框图;
图7是根据本发明的数据的分散式存储误差解码的实例的示意性框图;
图8是根据本发明的误差解码函数的一般实例的示意框图;
图9A是根据本发明的分散或分布式存储网络(DSN)的实施例的示意性框图;
图9B是根据本发明的分散或分布式存储网络(DSN)的实施例的示意性框图;
图9C是根据本发明的网络交换机的实施例的示意框图;
图9D是根据本发明的分散或分布式存储网络(DSN)的实施例的示意性框图;
图10A是根据本发明的动态授权批处理的方法的示例的逻辑图;
图10B是根据本发明的动态授权批处理的方法的示例的逻辑图;和
图10C是根据本发明的动态授权批处理的方法的示例的逻辑图。
具体实施方式
图1是分散或分布式存储网络(DSN)10的实施例的示意框图,该DSN包括多个计算设备12-16、管理单元18、完整性处理单元20和DSN存储器22。DSN 10的组件耦合到网络24,网络24可包括一个或多个无线和/或有线通信系统;一个或多个非公共内联网系统和/或公共互联网系统;和/或一个或多个局域网(LAN)和/或广域网(WAN)。
DSN存储器22包括多个存储单元36,存储单元36可以位于地理上不同的地点(例如,一个位于Chicago中,一个位于Milwaukee中,等等)、位于公共地点或其组合。例如,如果DSN存储器22包括八个存储单元36,则每个存储单元位于不同的地点。作为另一实例,如果DSN存储器22包括八个存储单元36,那么所有八个存储单元位于同一地点。作为又一个实例,如果DSN存储器22包括八个存储单元36,则第一对存储单元在第一公共地点,第二对存储单元在第二公共地点,第三对存储单元在第三公共地点,第四对存储单元在第四公共地点。注意,DSN存储器22可包括多于或少于八个存储单元36。进一步注意,每个存储单元36包括计算核(如图2中所示,或其组件)和用于存储分散的误差编码数据的多个存储器设备。
在各种实施例中,每个存储单元操作为分布式存储和任务(DST)执行单元,并且可操作以存储分散误差编码数据和/或以分布式方式对数据执行一个或多个任务。任务可以是简单函数(function功能)(例如,数学函数、逻辑函数、标识函数、寻找函数、搜索引擎函数、替换函数等)、复杂函数(function功能)(例如,压缩、人工和/或计算机语言翻译、文本到语音转换、语音到文本转换等)、多个简单和/或复杂函数、一个或多个算法、一个或多个应用等。在下文中,存储单元可以被可互换地称为分散式(dispersed)存储和任务(DST)执行单元,并且存储单元的集合可以被可互换地称为DST执行单元的集合。
计算设备12-16、管理单元18和完整性处理单元20中的每一个包括计算核26,并包括网络接口30-33。计算设备12-16可各自是便携式计算设备和/或固定计算设备。便携式计算设备可以是社交联网设备、游戏设备、蜂窝电话、智能电话、数字助理、数字音乐播放器、数字视频播放器、膝上型计算机、手持式计算机、平板计算机、视频游戏控制器和/或包括计算核的任何其他便携式设备。固定计算设备可以是计算机(PC)、计算机服务器、有线机顶盒、卫星接收器、电视机、打印机、传真机、家庭娱乐设备、视频游戏控制台和/或任何类型的家庭或办公计算设备。注意,每个管理单元18和完整性处理单元20可以是分开的计算设备,可以是共用的计算设备,和/或可以集成到计算设备12-16中的一个或多个中和/或集成到存储单元36中的一个或多个中。在各种实施例中,计算设备12-16可以包括用户设备和/或可以由生成访问请求的请求实体利用,访问请求可以包括针对DSN中的存储单元读或写数据的请求。
每个接口30、32和33包括用以间接地和/或直接地支持通过网络24的一个或多个通信链路的软件和硬件。例如,接口30支持计算设备14和16之间的通信链路(例如,有线、无线、直接、通过LAN、通过网络24等)。作为另一示例,接口32支持计算设备12和16与DSN存储器22之间的通信链路(例如,有线连接、无线连接、LAN连接和/或去往/来自网络24的任何其他类型的连接)。作为又一示例,接口33支持管理单元18和完整性处理单元20中的每一个到网络24的通信链路。
计算设备12和16包括分散式存储(DS)客户端模块34,其使得计算设备能够对数据进行分散式存储误差编码和解码,如随后参见图3-8中的一个或多个所描述的那样。在该示例实施例中,计算设备16充当计算设备14的分散式存储处理代理。在这个角色中,计算设备16代表计算设备14对数据进行分散式存储误差编码和解码。通过使用分散式存储误差编码和解码,DSN 10能容忍大量的存储单元故障(故障的数量基于分散式存储误差编码函数的参数)而不丢失数据并且不需要数据的冗余或备份副本。进一步,DSN 10在没有数据丢失的情况下并且以安全方式(例如,系统对未授权的访问数据企图非常有抵抗力)在不确定的时间段内存储数据。
在操作中,管理单元18执行DS管理服务。例如,管理单元18为计算设备12-14单独地或作为一组用户设备的一部分建立分布式数据存储参数(例如,保险库创建、分布式存储参数、安全参数、计费信息、用户简档信息等)。作为具体实例,管理单元18为用户设备、一组设备或为公共访问协调在DSN存储器22内创建保险库(例如,与DSN的总体命名空间的一部分相关联的虚拟存储器块),并按保险库建立保险库的分散式存储(DS)误差编码参数。管理单元18通过更新DSN 10的注册表信息来促进每个保险库的DS误差编码参数的存储,其中注册表信息可被存储在DSN存储器22、计算设备12-16、管理单元18和/或完整性处理单元20中。
DSN管理单元18创建用户简档信息(例如,访问控制列表(ACL))并将其存储在本地存储器中和/或DSN存储器22的存储器中。用户简档信息包括认证信息、许可和/或安全参数。安全参数可包括加密/解密方案、一个或多个加密密钥、密钥生成方案和/或数据编码/解码方案。
DSN管理单元18创建针对特定用户、用户组、保险库访问、公共保险库访问等的计费信息。例如,DSN管理单元18跟踪用户访问非公共保险库和/或公共保险库的次数,其可用于生成按访问次数的计费信息。在另一实例中,DSN管理单元18跟踪由用户设备和/或用户组存储和/或检索的数据量,其可用于生成按数据量的计费信息。
作为另一实例,管理单元18执行网络操作、网络管理和/或网络维护。网络操作包括认证用户数据分配请求(例如,读取和/或写入请求)、管理保险库的创建、为用户设备建立认证凭证、向/从DSN 10添加/删除组件(例如,用户设备、存储单元、和/或具有DS客户端模块34的计算设备)、和/或为存储单元36建立认证凭证。网络管理包括监测设备和/或单元的故障、维护保险库信息、确定设备和/或单元激活状态、确定设备和/或单元加载、和/或确定影响DSN 10的性能水平的任何其他系统级操作。网络维护包括促进替换、升级、修复和/或扩展DSN 10的设备和/或单元。
完整性处理单元20执行对‘坏的’或丢失的编码数据分片(slices)的重建。在高级别,完整性处理单元20通过周期性地尝试从DSN存储器22检索/列出编码数据分片和/或编码数据分片的分片名称来执行重建。对于所检索的编码分片,检查由于数据损坏、过时版本等引起的错误。如果某个分片包括错误,那么将其标记为‘坏’分片。对于未接收和/或未列出的编码数据分片,将它们标记为缺失分片。随后使用被视为良好分片的其他检索的编码数据分片来重建不良和/或缺失分片以产生重建的分片。将重建的分片存储在DSN存储器22中。
图2是计算核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)、基于网络的分布式创作和版本管理(WebDAV)等)和/或块存储器接口(例如,小型计算机系统接口(SCSI)、互联网小型计算机系统接口(iSCSI)等)。DSN接口模块76和/或网络接口模块70可以用作图1的接口30-33中的一个或多个。注意,IO设备接口模块62和/或存储器接口模块66-76可以统称为或单独称为IO端口。
图3是数据的分散式存储误差编码的示例的示意性框图。当计算设备12或16具有要存储的数据时,它按照基于分散式存储误差编码参数的分散式存储误差编码过程来对数据进行分散式存储误差编码。此处,计算装置存储数据对象40,其可包含文件(例如,文本、视频、音频等)或其他数据安排。分散式存储误差编码参数包括编码函数(例如,信息散布算法(IDA)、里德-所罗门(Reed-Solomon)、柯西里德-所罗门(Cauchy Reed-Solomon)、系统编码、非系统编码、在线码等)、数据分段协议(例如,数据段大小、固定、可变等)和每数据段编码值。每数据段编码值包括每数据段编码(即,在一组编码数据分片中)的编码数据分片的总数目或柱宽数目(T);恢复所述数据段数据段所需的一组编码数据分片的编码数据分片的解码阈值个数(D);编码数据分片的读阈值数(R),用于指示要从存储装置读取以用于解码所述数据段的每组编码数据分片的数量;和/或写入阈值个数(W),用于指示在认为编码数据段已被正确存储之前必须准确地存储的每组编码数据分片的数量。分散式存储误差编码参数还可包括分片信息(例如,将为每个数据段创建的编码数据分片的数量)和/或分片安全信息(例如,按编码数据分片加密、压缩、完整性校验和等)。
在本实例中,已经选择了柯西里德-所罗门作为编码函数(在图4中示出了一般实例,在图5中示出了一个具体实例);数据分段协议是将数据对象分成固定大小的数据段;并且所述每数据段编码值包括:柱宽5、解码阈值3、读取阈值4和写入阈值4。根据数据分段协议,计算设备12或16将数据对象40划分成多个固定大小的数据段(例如,在千字节到兆字节或更大的范围内的固定大小1到Y)。所创建的数据段的数量取决于数据的大小和数据分段协议。
然后,计算装置12或16使用选择的编码函数(例如,柯西里德-所罗门)分散式存储误差编码一个数据段,以产生一组编码数据分片。图4示出了通用柯西里德-所罗门编码函数,其包括编码矩阵(EM)、数据矩阵(DM)和代码矩阵(CM)。编码矩阵(EM)的大小取决于每数据段编码值所选择的柱宽数(T)和解码阈值个数(D)。为了产生数据矩阵(DM),数据段被划分为多个数据块,并且数据块被布置为D个行,其中每行Z个数据块。注意,Z是从数据段创建的数据块的数量和解码阈值个数(D)的函数。通过将数据矩阵乘以代码矩阵来产生编码矩阵。
图5示出了柱数(T)为5并且解码阈值个数为3的柯西里德-所罗门编码的具体实例。在本示例中,第一数据段被划分成十二个数据块(D1至D12)。代码矩阵包括五行代码数据块,其中第一行X11-X14对应于第一编码数据分片(EDS 1_1),第二行X21-X24对应于第二编码数据分片(EDS2_1),第三行X31-X34对应于第三编码数据分片(EDS 3_1),第四行X41-X44对应于第四编码数据分片(EDS 4_1),第五行X51-X54的对应于第五编码数据分片(EDS5_1)。注意,EDS记号的第二个编号对应于数据段编号。
返回至图3的讨论,计算设备还为该组编码数据分片中的每个编码数据分片(EDS)创建分片名称(SN)。分片名称80的典型格式在图6中示出。如图所示,分片名称(SN)80包括编码数据分片的柱号(例如,1-T的其中之一)、数据段号(例如,1-Y其中之一)、保险库标识符(ID)、数据对象标识符(ID),并且可进一步包括编码数据分片的修订级别信息。分片名称用作编码数据分片的DSN地址的至少一部分,用于存储以及从DSN存储器22检索。
作为编码的结果,计算装置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的编码函数的逆函数。代码矩阵包括解码阈值个数的行(例如,在该示例中为三个)以及在包括代码矩阵的对应行的编码矩阵的反转中的解码矩阵。例如,如果代码矩阵包括行1、2和4,则编码矩阵被缩减到行1、2和4,然后被反转以产生解码矩阵。
图9A是分散式存储网络(DSN)的另一个实施例的示意框图,该DSN包括DST处理单元910、多个请求者920、多个存储单元1-n、身份和访问管理(IAM)系统930和图1的网络24。DST处理单元910、一些或所有请求者920、一些或所有存储单元1-n和IAM系统930可以包括图1的接口32、图1的计算核26和/或图1的DS客户端模块34。DSN的DST处理单元910的作用是通过批处理向IAM系统930发送的认证和/或认证请求来减轻网络拥塞和系统利用,和/或可以动态地调整该行为以优化利用与延迟之间的权衡。
可以利用图1的DSN存储器22的存储单元36来实现每个存储单元。DST处理单元910可以通过利用计算设备16(例如,如先前所描述的那样运行计算设备14的分散式存储处理代理)来实现,和/或可以通过利用一个或多个存储单元36(例如,用作分散式存储和任务单元)来实现。DST处理单元还可以通过利用包括处理器和存储器的任何系统来实现,可操作用于促进对DSN存储器22的一些或所有存储单元36的访问请求和其他操作请求的执行,可操作用于监视DSN存储器22的利用,和/或可操作用于监视网络24的拥塞和/或网络利用。请求者920中的一些或全部可以通过利用计算设备12、14或16来实现,可以对应于用户设备,和/或可以通过利用包括处理器和存储器的任何系统来实现,以负责通过网络24向DST处理单元发送操作请求。IAM系统930可以通过利用计算设备16、图1的管理单元18、完整性处理单元20、或与网络24通信的包括处理器和存储器的任何系统来实现,并且可操作用于认证和/或授权对DST处理单元910的操作请求。
当请求者920发起对DSN存储器的操作时,该请求者必须被授权以确保其被允许执行这样的操作。IAM系统930可操作以执行这种授权。在正常利用条件下,该授权可按每个操作执行。换言之,当执行某操作时,授权立即发生。
然而,可能出现减少至IAM系统的流量是有利的、或者是为避免影响可用性和/或可靠性而需要的的情况。一个示例是当IAM系统处于过载状况时,减少流量将有助于减少其利用。另一个实例是当网络经历异常拥塞时,减少总网络流量将有助于缓解这种拥塞。如这里所述,应用动态授权批处理可以自动调整其自身,以在这样的条件下减少到IAM系统的流量。
应用动态授权批处理可以包括以下主要方面中的至少一个:(1)DST处理单元910和/或DSN存储器22的另一元件通过其获得对系统的当前能力和利用的理解的过程;(2)将该理解应用于优化未来授权请求的流控制;以及(3)监视这样的优化以可量化地测量其益处。
作为理解当前系统能力和利用的一部分,DST处理单元910可首先变得知晓参与授权过程的不同系统组件及其潜在能力,诸如网络24的网络交换机或其他路由组件、IAM系统930、存储单元1-n和/或DSN的其他组件。这样的信息可以通过配置的和/或动态的组件和网络拓扑发现来获得。
接下来,DSN存储器可以动态地知道每个系统组件的当前利用以及它如何影响它们的总能力。例如,DST处理单元910可以通过周期性的能力通告动态地了解IAM系统930的能力和利用百分比。可替代地或此外,DST处理单元910可以周期性地查询在授权过程期间遍历的网络24的一些或所有网络交换机和/或其他不同网络元件的拥塞和利用。
例如,如图9B所示,可以通过网络24的多个网络交换机1-n路由从DST处理单元910到IAM系统930的授权请求。一些或所有网络交换机1-n可通过利用图9C的交换机960来实现,交换机960包括全部通过总线968连接的至少一个网络接口962、存储器964和处理系统966。交换机1-n可操作以将可执行指令存储在存储器964中,当由处理系统966执行时,所述可执行指令使交换机960通过该至少一个网络接口962的一个或多个端口,通过至网络24其他交换机和/或的其他部件的有线和/或无线连接,来发送和接收网络流量。网络交换机1-n中的一些或全部还可操作用于例如基于经历的网络流量和/或拥塞来监视利用数据并将其发送给DST处理单元。可替代地,对一些或所有网络交换机1-n的网络流量和/或拥塞可由DSN的其他实体监视以便传输至DST处理单元910。
在一些实施例中,DST处理单元基于从IAM系统和/或网络元件接收的多个利用水平生成当前利用数据,例如,其中基于所接收的利用水平的总和、平均值和/或聚合分析生成利用数据。可以响应于DST处理单元910生成的多个利用水平请求而接收该多个利用水平,并且将该多个利用水平发送到DSN存储器的多个组件。DST处理单元910可以按预定的时间间隔、响应于接收请求、响应于确定系统利用已经改变、响应于从IAM系统930接收的请求或其他信息和/或通过基于其他因素的确定,来确定请求所述多个利用水平。DST处理单元910可以在随后的时间在对利用数据的后续确定中,例如,响应于确定不同的组件正在参与授权过程,确定从其请求利用水平的不同的多个组件。在各种实施例中,DSN的一个或多个其他元件负责收集所报告的利用和/或确定利用数据,并且DST处理单元910可请求利用数据和/或以其他方式从一个或多个其他元件接收利用数据。
一旦学习到当前系统能力,DSN存储器就可以应用该理解来对授权请求执行动态批处理。批处理方法可有利于优化在系统拥塞时期期间的请求者感知的延迟(以请求者感知的延迟为代价)。可替代地或此外,取决于系统拥塞的严重性,就将多少请求一起批处理而言,批处理方法可以变得更积极。
在操作的示例中,请求者920可以向DST处理单元910发送要求授权的操作请求。例如,该操作请求可以包括读取请求、写入请求、访问请求或涉及被分散式存储误差编码并存储在多个存储单元1-n中的数据对象的另一种类型的请求。DST处理单元910可以响应于确定系统处于正常利用状况而在接收到操作请求时自动地向IAM系统930发送授权请求。例如,DST处理单元910可将当前利用数据的系统利用水平与设置的正常利用阈值进行比较,并可在系统利用水平与正常利用阈值相比较为有利时确定系统利用水平指示正常系统利用。IAM系统930可以基于接收到的授权请求而确定请求方的操作请求是否被授权,并且可以发送授权成功或授权失败的响应。如果从IAM系统930接收到授权成功,则DST处理单元910可以相应地执行操作请求。如果接收到授权失败,则DST处理单元可以放弃执行该请求和/或可以生成授权失败通知,用于传输至请求者和/或被视为对操作请求中指示的数据负责的实体。
随着时间推移,DST处理单元910可基于—例如基于多个DSN组件的多个后续利用水平而生成的—后续利用数据来确定系统被过度利用。例如,DST处理单元可以确定利用数据与正常利用阈值比较不利,以确定系统被过度利用。响应于确定系统被过度使用,当新的操作请求从一个或多个请求者920发送到DST处理单元时,相应的授权请求被排队而不是直接发送到IAM系统930。例如,可以将授权请求存储在高速缓存和/或本地存储器(诸如DST处理单元910的计算核的存储器54)的队列915中。
DST处理单元910可以稍后确定将队列中的授权请求中的一些或全部授权请求作为批处理请求发送。作为响应,DST处理单元可以生成单个批处理请求,以包括与队列中的请求相对应的授权请求信息,并且可以向IAM系统930发送所述单个批处理请求。DST处理单元910可以基于确定请求队列与队列限制条件比较不利来做出这个发送排队的请求的决定。例如,DST处理单元910可以响应于确定队列中的授权请求的数量达到或超过队列大小阈值而将排队的授权请求作为批处理请求发送。可替代地或此外,DST处理单元910可以响应于确定自从接收队列中第一个请求以来的时间达到或超过排队时限而确定将队列中的授权请求作为批处理请求发送。在各种实施例中,DST处理单元910响应于这些条件中的任一个的发生和/或响应于多个排队限制条件中首先被触发的一个排队限制条件,确定将队列中的授权请求作为批处理请求发送。如本文所讨论的,可以由DST处理单元910基于当前系统利用数据来确定这个自动触发对请求队列的批处理和传输的队列限制条件。
IAM系统930可以针对批量请求中对应的多个请求中的每一个提取授权请求信息,以针对批量请求的多个请求中的每一个确定授权成功或失败。IAM系统930可以生成批处理响应,其指示批处理请求的多个授权请求中的每一个的成功或失败。例如,当针对每个请求确定指示成功或失败的授权响应时,IAM系统930可以对授权响应进行排队。一旦针对批处理的请求中的每个请求的授权响应被生成,则IAM系统930可以将其队列中的授权响应作为单个批处理响应发送回DST处理单元910。可替代地,IAM系统930可以在授权响应被生成时一次一个地将授权响应发送回DST处理单元910。
在一些实施例中,IAM系统930可以基于其自身的队列限制条件(诸如其自身的大小阈值和/或排队时限)来生成批处理响应。例如,IAM系统930可以确定向DST处理单元910发送指示仅批处理请求中的一部分请求的响应的批处理响应。相反,IAM系统930可以确定在所有请求都已经被处理之后将响应保持在队列中,并等待将来自DST处理单元910的要被接收和处理的其它批处理请求包括在队列中,然后可以将与多个批处理请求相对应的响应队列作为单个批处理响应发送。
DST处理单元910可以例如通过将利用数据与正常利用阈值进行比较来确定系统已经返回到正常利用水平,并且可以确定在从请求者接收到相应的操作请求时再次向IAM系统发送授权请求,而无需批处理。
可以由DST处理单元或DSN中的一个或多个其他实体通过随时间观察系统能力和由DSN的组件报告的其他统计量来测量批处理的有效性。例如,DST处理单元910可以监测DST处理单元910与IAM系统930之间的授权请求率。可替代地或此外,DST处理单元910可以监测由于拥塞或与拥塞相关的比率限制而发生的失败的授权请求。可替代地或此外,DST处理单元910可监视一些或所有请求者的感知的延迟。在正常利用条件下,请求者所感知的延迟应当低,授权请求率应当高。当系统经历更高的利用水平时,请求者所感知的延迟应当增加,并且授权请求率应当降低。这种自调谐可以帮助将推动系统返回正常利用、正常的用户感知的延迟、和/或维持低的授权失败率。
为了执行这种自调谐,诸如DST处理单元910和/或IAM系统930的队列大小阈值和/或排队时限的队列限制条件可以基于变化的系统利用而被设置为不同的值,并且因此可以是当接收到更新的利用数据时的利用数据的函数。例如,响应于确定系统利用已从大的过度利用减少到仅变得稍微过度利用,DST处理单元910可开始发送较小的批处理请求和/或提高发送批处理请求的频率。相反,响应于确定系统利用已从轻微过度利用增加到变得大大地过度利用,DST处理单元910可以开始发送大的批处理请求和/或降低发送较批处理请求的频率。响应于确定系统处于正常利用水平,DST处理单元可以立即发送授权请求而无需批处理。以类似的方式,IAM系统930可以确定发送更大和更小的批处理响应,和/或基于变化的系统利用而提高或降低发送批处理响应的频率。当系统利用随时间改变时,例如,当收集到DSN组件的新的利用水平以生成更新的利用数据时,作为响应,可以由DST处理单元910和/或IAM系统930相应地更新队列大小阈值和/或排队时限。
在一些实施例中,队列限制条件(诸如队列大小阈值和/或排队时限)也可以是系统的所测量的有效性、一些或所有请求者的感知的延迟要求和/或例如由于拥塞或与拥塞相关的比率限制而发生的失败的授权请求的数量或比例的函数。例如,如果失败的授权请求的比例超过阈值,则DST处理单元910可以确定增加队列大小阈值和/或队列时限。作为另一示例,如果一些或所有请求者的请求者感知的延迟超过延迟时限,则DST处理单元可确定减小队列大小阈值和/或队列时限。队列限制条件可以是这些因素中的一些或全部的函数,并且这些因素可以被分配权重,这些权重可以随着时间作为这种自调谐的一部分而改变。在一些实施例中,确定队列限制条件可包括执行某种优化功能,以通过利用这些分配的权重而相应地优化请求者感知的延迟、网络利用、IAM拥塞和/或失败的授权请求的比例之间的权衡。
在一些实施例中,利用数据的系统利用水平,可以例如通过将所报告的利用的集合与多个系统利用水平阈值进行比较来确定。例如,通过将利用数据与N个系统利用水平进行比较,可以确定系统的利用落在N个提高利用的系统利用水平之一内。队列大小阈值和/或排队时限可以是N的递增函数和/或可以其他方式是系统利用水平的递增函数。最低水平可以对应于正常利用水平,其中队列大小阈值被设置为1和/或其中排队时限指示在接收到操作请求时发送授权请求。
可替代地或此外,利用水平可以指示系统的过度利用值,这可以通过计算利用数据与正常利用阈值的利用差来确定。例如,可从利用数据的总利用率值中减去正常利用阈值,以计算利用率差值,其中总利用率值是基于多个接收到的利用水平来计算的。当利用数据与正常利用阈值比较不利时,队列大小阈值和/或排队时限可以是利用差的递增函数。当利用数据与表示正常利用水平的正常利用阈值相比有利时,队列大小阈值可以被设置为1和/或排队时限可以指示在接收到操作请求时发送授权请求。DST处理单元910可将过度使用计算为多个利用水平的加权和、加权平均值和/或其他加权函数,其中每个接收的利用水平的对应权重基于对应DSN组件被确定为影响系统延迟的程度。
由IAM系统930确定的利用数据和/或相应的队列限制条件可以由于IAM系统的拥塞因素而不同于DST处理单元910,例如,这些拥塞因素对于DST处理单元是未知的或者与DST处理单元无关。例如,如图9D所示,一些实施例可以包括向IAM系统930发送授权请求的多个DST处理单元910。在这样的实施例中,IAM系统可以基于从系统中的多个DST处理单元910接收的业务来确定其利用数据,所有DST处理单元910都发送它们自己的批处理或非匹配授权请求。单个DST处理单元910在确定其队列限制条件时可以不考虑由其他DST处理单元910引起的这个业务,和/或可以考虑不同的因素,例如不同的拥塞和/或使用数据、请求者优先级和/或不同的感知的请求者延迟要求,或者对于IAM系统930未知的或者与IAM系统930无关的其他因素,从而导致不同的队列大小阈值和/或不同的排队时限。可替代地,IAM系统930可以基于来自多个DST处理单元910的业务向一些或所有DST处理单元910发送能力信息、网络业务数据和/或拥塞信息。DST处理单元910中的一些或全部可以确定在确定它们的利用数据时使用该信息。在这样的实施例中,例如,响应于系统范围的使用变化,该策略可以用于在IAM系统和一些或所有DST处理单元910之间同步队列大小阈值和/或排队时限。或者,IAM系统930可以默认生成其批处理响应,与对应的DST处理单元的批处理请求数量匹配,因此不会确定自身的队列限制条件。
在一些实施例中,DST处理单元910可以响应于确定队列中的一个或多个请求对应于紧急的或以其他方式高优先级的操作类型和/或对应于高优先级的请求者而确定将队列中的授权请求作为批处理请求发送。在一些实施例中,高优先级操作可取代队列限制条件,其中在达到队列限制条件之前批处理并传送请求队列中的一些或全部请求。例如,DST处理单元910可以在接收到请求时确定所接收的请求是否是高优先级。响应于确定该请求是高优先级,DST处理单元910可以确定将对应于高优先级操作的授权请求与已经在队列中用于传输至IAM系统的授权请求一起批量发送,或者可以确定在队列中不存在其他授权请求时发送对应于高优先级操作的单个授权请求。作为另一示例,队列中的一些或全部请求可具有对应的操作期限和/或授权期限,其由DST处理单元确定和/或被包括在请求中。DST处理单元响应于确定授权队列中的任何请求都接近其操作期限和/或授权期限,和/或否则确定当前时间与操作期限和/或授权期限的比较不利,可以继续与队列中的所有请求生成批处理授权请求,并将批处理授权请求发送给IAM系统。
请求者920的这种优先化可在其中请求者感知的延迟是用于确定队列限制条件的因素的实施例中使用。队列限制条件可以是请求者所感知的多个请求者920的延迟的函数,其可以由分配给请求者920的优先级和/或分配给由请求者920发送的操作请求的优先级来加权。例如,分配给较高优先级请求者920的较高权重导致队列大小阈值和/或队列时限的更大减小,并且因此导致高优先级请求者的感知的延迟的更大减小(可能以系统利用和/或对IAM系统930的拥塞为代价)。同时,较低优先级请求者可能不会以相同方式被青睐,在感知的延迟方面有小得多的改进或没有改进。
在各种实施例中,分散式存储和任务(DST)处理单元的处理系统包括至少一个处理器和存储操作指令的存储器,操作指令在由至少一个处理器执行时使处理系统确定第一系统利用数据。接收第一操作请求,并且响应于确定第一系统利用数据指示与正常利用阈值相比较不利的第一利用水平,生成包括对应于第一操作请求的第一授权请求的第一请求队列。响应于基于所述第一系统利用数据生成所述第一请求队列,确定第一队列限制条件。接收所述第一后续操作请求对应的第一后续操作请求,并将所述第一后续操作请求添加到所述第一请求队列中。响应于确定第一请求队列与第一队列限制条件比较不利,生成包括第一请求队列的第一多个授权请求的第一批次授权请求。向IAM系统的第一批次授权请求,以及从IAM系统接收第一请求队列的第一多个授权请求对应的第一多个授权响应。标识指示授权成功的第一多个授权响应的第一子集,并且促进与第一多个授权响应的第一子集相对应的多个操作请求的子集的执行。
确定第二系统利用数据,并接收第二操作请求。响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值比较不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平。响应于基于第二系统利用数据生成第二请求队列,确定第二队列限制条件,其中第二队列限制条件不同于第一队列限制条件。接收对应于第二后续操作请求的第二后续操作请求,并将其附加到第二请求队列中。
在各种实施方式中,响应于确定第二请求队列与第二队列限制条件比较不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,并且将第二批次授权请求发送至IAM系统。
在各种实施例中,确定第三系统利用数据。基于所述第三系统利用数据来确定第三队列限制条件,其中所述第三队列限制条件不同于所述第二队列限制条件。响应于确定第三队列限制条件,并且确定第二请求队列与第三队列限制条件比较不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,其中,第二请求队列与第二队列限制条件比较有利。将第二批次授权请求发送给IAM系统。
图10A-10C是示出了动态授权批处理的示例的流程图。具体而言,图10A呈现了用于与结合图1-9D描述的一个或多个功能和特征相关联地使用的方法,该方法用于由包括处理器的分散式存储和任务(DST)处理单元或通过包括至少一个处理器和存储指令的存储器的分散式存储网络的另一处理系统来执行,该指令配置该一个或多个处理器以执行以下描述的步骤。
步骤1002包括确定第一系统利用数据。步骤1004包括接收第一操作请求。步骤1006包括响应于确定第一系统利用数据指示与正常利用阈值相比较不利的第一利用水平,生成包括对应于第一操作请求的第一授权请求的第一请求队列。步骤1008包括基于第一系统利用数据响应于生成第一请求队列而确定第一队列限制条件。
步骤1010包括接收第一后续操作请求。步骤1012包括将与第一后续操作请求相对应的第一后续授权请求附加到第一请求队列。步骤1014包括:响应于确定第一请求队列与第一队列限制条件比较不利,生成包括第一请求队列的第一多个授权请求的第一批次授权请求。步骤1016包括向身份和访问管理(IAM)系统发送第一批处理授权请求。步骤1018包括接收来自第一请求队列的第一多个授权请求对应的IAM系统的第一多个授权响应。步骤1020包括标识指示授权成功的第一多个授权响应的第一子集。步骤1022包括促进执行对应于第一多个授权响应的第一子集的多个操作请求的子集。
步骤1024包括确定第二系统利用数据。步骤1026包括接收第二操作请求。步骤1028包括:响应于确定第二系统利用数据指示与正常利用阈值比较不利的第二利用水平,生成包括与第二操作请求相对应的第二授权请求的第二请求队列,其中第二利用水平不同于第一利用水平。步骤1030包括响应于基于第二系统利用数据生成第二请求队列而确定第二队列限制条件,其中第二队列限制条件不同于第一队列限制条件。步骤1032包括接收第二后续操作请求。
在图10A的步骤1032之后,该方法可以继续到如图10B所示的步骤1034。步骤1034包括将与第二后续操作请求相对应的第二后续授权请求附加到第二请求队列。步骤1036包括响应于确定第二请求队列与第二队列限制条件比较不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求。步骤1038包括向IAM系统发送第二批次授权请求。
如图10C所示,在各种实施例中,图10A的方法可以从图10A的步骤1032继续到步骤1034,步骤1034再次包括将对应于第二后续操作请求的第二后续授权请求附加到第二请求队列。从步骤1034,该方法可以在步骤1040继续,步骤1040包括确定第三系统利用数据。步骤1042包括基于第三系统利用数据确定第三队列限制条件,其中第三队列限制条件不同于第二队列限制条件。步骤1044包括:响应于确定第三队列限制条件,并且响应于确定第二请求队列与第三队列限制条件相比不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,其中第二请求队列与第二队列限制条件比较有利。步骤1046包括向IAM系统发送第二批次授权请求。
在各种实施例中,确定第三系统利用数据并且接收第三操作请求的接收。响应于确定第三系统利用数据指示与正常利用阈值相比有利的系统利用水平,确定将与第三操作请求相对应的第三授权请求作为单个授权请求发送至IAM系统。从第三授权请求对应的IAM系统接收到单个授权响应.当单个授权响应指示授权成功时,促进第三操作请求的执行。
在各种实施例中,标识指示授权失败的第一多个授权响应的第二子集,其中第一多个授权响应的第二子集和第一多个授权响应的第一子集的交集为空。标识发送对应于所述第一多个授权响应的所述第二子集的所述多个操作请求的第二子集的多个请求者的子集。生成用于传输到所述多个请求者的子集的授权失败通知。
在各种实施例中,在由IAM系统生成的第一批次授权响应中接收第一多个授权响应。在各种实施例中,在第一时间的第一传输中接收第一多个授权响应中的至少一个第一响应,在第二时间的第二传输中接收第一多个授权响应中的至少一个第二响应,并且第一时间不同于第二时间。
在各种实施例中,第一操作请求包括指示数据对象的读取请求,其中对数据对象的数据段执行分散式存储误差编码函数,以产生存储在DSN的一组存储单元中的一组编码数据分片。对应于所述第一操作请求的授权响应指示授权成功,并且执行所述第一操作请求包括:从所述存储单元集合中检索所述编码数据分片集合的读阈值数,以及对该组编码数据分片的读阈值数执行分散式存储误差解码函数,以再现所述数据段。
在各种实施例中,从DSN的一组网络组件接收第一多个网络利用水平,并且基于该第一多个网络利用水平生成第一系统利用数据。从所述DSN的该组网络组件接收第二多个网络利用水平,并基于所述第二多个网络利用水平生成所述第二系统利用数据。在各种实施例中,DSN的网络组件的集合是DSN的多个网络组件的子集。基于标识DSN的多个网络组件中的参与操作请求的授权的网络组件来确定该组网络组件。生成第一多个网络利用级别请求以传输到DSN的该组网络组件,并接收第一多个网络利用级别以响应第一多个网络利用级别请求。在各种实施例中,该网络组件包括被确定为将授权请求从DST处理单元路由到IAM系统的多个网络交换机。
在各个实施例中,从IAM系统接收第一IAM利用水平,并且基于第一IAM利用水平生成第一系统利用数据。从IAM系统接收第二IAM利用水平,并基于第二IAM利用水平生成第二系统使用数据。第一IAM利用水平和第二IAM利用水平由IAM基于到IAM系统的网络流量生成。
在各种实施例中,第一队列限制条件指示第一队列大小阈值,并且第二队列限制条件指示第二队列大小阈值。基于第一利用水平指示比第二利用水平更严重的过度使用,第一队列大小阈值大于第二队列大小阈值。作为响应,第一批处理授权请求的第一多个授权请求的第一数量大于第二批处理授权请求的第二多个授权请求的第二数量。在各种实施例中,确定第一队列限制条件包括通过对第一利用水平执行函数来计算第一队列大小阈值,并且确定第二队列限制条件包括通过对第二利用水平执行函数来计算第二队列大小阈值。该函数将队列大小阈值计算为利用水平的单调递增函数。
在各种实施例中,第一队列限制条件指示第一队列时限,并且第二队列限制条件指示第二队列时限。基于第二利用水平指示比第一利用水平更不严重的过度使用,第一队列时限比第二队列时限短。作为响应,从生成第一请求队列到生成第一批次授权请求所流逝的第一时间短于从生成第二请求队列到生成第二批次授权请求所流逝的第二时间。在各种实施例中,确定第一队列限制条件包括通过对第一利用水平执行函数来计算第一队列时限,并且确定第二队列限制条件包括通过对第二利用水平执行函数来计算第二队列时限。该函数计算队列时限作为利用水平的单调递增函数。在各种实施例中,第一队列限制条件包括第一队列时限,第二队列限制条件包括第二队列时限,并且响应于确定第一队列时限与请求者感知的延迟要求比较不利,第二队列时限被确定为短于第一队列时限。
在各种实施例中,确定第二队列限制条件还基于确定第一多个授权响应中的失败的授权响应的一部分与失败的响应阈值比较不利。
在各种实施例中,非瞬态计算机可读存储介质包括至少一个存储操作指令的存储器部分,当由包括处理器和存储器的分散式存储网络(DSN)的处理系统执行时,该操作指令使处理系统确定第一系统利用数据。接收第一操作请求,并且响应于确定第一系统利用数据指示与正常利用阈值相比较不利的第一利用水平,生成包括对应于第一操作请求的第一授权请求的第一请求队列。响应于基于所述第一系统利用数据生成所述第一请求队列,确定第一队列限制条件。接收所述第一后续操作请求对应的第一后续操作请求,并将所述第一后续操作请求添加到所述第一请求队列中。响应于确定第一请求队列与第一队列限制条件比较不利,生成包括第一请求队列的第一多个授权请求的第一批次授权请求。向IAM系统的第一批次授权请求,以及从IAM系统接收第一请求队列的第一多个授权请求对应的第一多个授权响应。标识指示授权成功的第一多个授权响应的第一子集,并且促进与第一多个授权响应的第一子集相对应的多个操作请求的子集的执行。
确定第二系统利用数据,并接收第二操作请求。响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值比较不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平。响应于基于第二系统利用数据生成第二请求队列,确定第二队列限制条件,其中第二队列限制条件不同于第一队列限制条件。接收对应于第二后续操作请求的第二后续操作请求,并将其附加到第二请求队列中。
在各种实施方式中,响应于确定第二请求队列与第二队列限制条件比较不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,并且将第二批次授权请求发送至IAM系统。
在各种实施例中,确定第三系统利用数据。基于所述第三系统利用数据来确定第三队列限制条件,其中所述第三队列限制条件不同于所述第二队列限制条件。响应于确定第三队列限制条件,并且确定第二请求队列与第三队列限制条件比较不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,其中,第二请求队列与第二队列限制条件比较有利。将第二批次授权请求发送给IAM系统。
要指出的是,本文中可以使用的术语,诸如比特流、流、信号序列等(或其等同物)已经可互换地用于描述其内容对应于多种期望类型(例如数据、视频、语音、音频等,其中的任何一个通常可被称为‘数据’)中的任何一种的数字信息。
如可以在本文中使用的,术语“基本上”和“大约”为其相应的术语和/或项目之间的相对性提供了工业上可接受的公差。这种工业可接受的公差范围从小于百分之一到百分之五十并且对应于但不限于组件值、集成电路工艺变化、温度变化、上升和下降时间和/或热噪声。项目之间的这种相对性的范围从百分之几的差异到量值的差异。如还可以在本文中使用的,术语“被配置成用于”、“可操作地耦合到”、“耦合到至”、和/或“耦合”包括项目之间的直接耦合和/或项目之间通过中间项目(例如,项目包括但不限于组件、元件、电路、和/或模块)的间接耦合,其中,对于间接耦合的示例,中间项目不修改信号的信息,但可以调整其电流电平、电压电平、和/或功率电平。如可以进一步在此使用的,推断耦合(即其中一个元件通过推断耦合到另一个元件上)包括两个项目之间以与“耦合到”相同的方式的直接和间接耦合。如可以在此更进一步使用的,术语“被配置成用于”、“可操作用于”、“耦合到”、或“可操作地耦合到”指示项目包括电源连接、输入、输出等中的一个或多个以在被启动时执行其对应功能中的一个或多个,并且可以进一步包括与一个或多个其他项目的推断耦合。如可以在此进一步使用的,术语“与……相关联”包括单独项目和/或一个项目嵌入在另一个项目内的直接和/或间接耦合。
如在此可以使用的,术语“相比有利”指示两个或更多个项目、信号等之间的比较提供了所希望的关系。例如,当期望的关系是信号1具有比信号2大的幅度时,当信号1的幅度大于信号2的幅度或当信号2的幅度小于信号1的幅度时,可以实现有利的比较。如在此可以使用的,术语“相比不利”指示两个或更多个项目、信号等之间的比较未能提供所希望的关系。
如还可以在本文中使用的,术语“处理系统”、“处理模块”、“处理电路”、“处理器”、和/或“处理单元”可以互换地使用,并且可以是单个处理设备或多个处理设备。这样的处理设备可以是微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路和/或基于电路和/或操作指令的硬编码来操作信号(模拟和/或数字)的任何设备。处理系统、处理模块、模块、处理电路和/或处理单元可以是或进一步包括存储器和/或集成存储器元件,其可以是单个存储器设备、多个存储器设备和/或另一处理系统、处理模块、模块、处理电路和/或处理单元的嵌入式电路。这样的存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓存存储器和/或存储数字信息的任何设备。注意,如果处理系统、处理模块、模块、处理电路和/或处理单元包括多于一个的处理设备,则处理设备的位置可以是集中的(例如,通过有线和/或无线总线结构直接耦合在一起)或者可以是分布式的(例如,通过局域网和/或广域网间接耦合的云计算)。还要注意,如果处理系统、处理模块、模块、处理电路和/或处理单元通过状态机、模拟电路、数字电路和/或逻辑电路实现其一个或多个功能,那么存储相应操作指令的存储器和/或存储元件可嵌入到包括状态机、模拟电路、数字电路和/或逻辑电路的电路内或电路外部。仍进一步注意,存储器元件可以存储—而处理系统、处理模块、模块、处理电路和/或处理单元则执行—对应于一个或多个附图中所示的步骤和/或功能中的至少一些的硬编码和/或操作指令。这样的存储器设备或存储器元件可被包括在制造物品中。
以上借助于示出指定功能及其关系的执行的方法步骤描述了一个或多个实施例。为了便于描述,在本文中任意地定义了这些功能构建块和方法步骤的边界和顺序。只要适当地执行指定的功能和关系,就可以定义替代的边界和顺序。因此,任何这样的替代边界或顺序都在权利要求的范围和精神之内。此外,为了便于描述,任意地定义这些功能构建块的边界。只要适当地执行某些重要功能,就可以定义替代的边界。类似地,流程图框也可在本文中任意地定义以说明某些重要功能。
在所使用的程度上,流程图框的边界和顺序本可以以其他方式进行定义且仍然执行某些重要的功能。因此,功能构建块和流程图框和顺序的这种替代性定义落在权利要求的范围和精神内。所属领域的一般技术人员还将认识到,功能性建构块以及本文中的其他例示性框、模块和组件可如所例示的那样或者通过离散组件、专用集成电路、执行适当软件的处理器等或其任何组合来实施。
此外,流程图可以包括“开始”和/或“继续”指示。“开始”和“继续”指示反映了所呈现的步骤可以可选地并入其他例程中或以其他方式与其他例程结合使用。在此语境中,“开始”指示所呈现的第一步骤的开始并且可以在未具体示出的其他活动之前。进一步地,“继续”指示反映所呈现的步骤可以被执行多次和/或可以由未具体示出的其他活动后继。进一步,虽然流程图指示步骤的特定排序,但是其他排序同样是可能的,只要维持因果关系原则。
本文中使用一个或多个实施例来说明一个或多个方面、一个或多个特征、一个或多个概念和/或一个或多个实例。装置、制品、机器和/或过程的物理实施例可以包括参考本文所讨论的一个或多个实施例来描述的方面、特征、概念、示例等中的一个或多个。进一步,从图到图,实施例可包含相同或类似命名的功能、步骤、模块等,其可使用相同或不同的附图标记,因此,这些功能、步骤、模块等,可以是相同或相似的功能、步骤、模块等,或者是不同的功能、步骤、模块等。
除非特别相反地陈述,否则,去往、来自本文呈现的任何附图的图中的元件的信号和/或所述元件之间的信号可以是模拟的或数字的、连续时间的或离散时间的以及单端的或差分的信号。例如,如果某信号路径被示为单端路径,则其还表示差分信号路径。类似地,如果信号路径被示为差分路径,则其还表示单端信号路径。尽管本文中描述了一个或多个特定架构,但如本领域一般技术人员所认识到的,同样可以实现使用未明确示出的一个或多个数据总线、元件之间的直接连接和/或其他元件之间的间接耦合的其他架构。
术语“模块”用于一个或多个实施例的描述中。模块通过诸如处理器或其他处理设备或其他硬件之类的设备来实现一个或多个功能,该设备可包括存储操作指令的存储器或与该存储器相关联地操作。模块可以独立地和/或结合软件和/或固件进行操作。同样如本文所使用的,模块可以包含一个或多个子模块,每个子模块可以是一个或多个模块。
如本文可进一步使用的,计算机可读存储器包括一个或多个存储器元件。存储器元件可以是单独的存储器设备、多个存储器设备或存储器设备内的一组存储器位置。这样的存储器设备可以是只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、闪存、高速缓存存储器和/或存储数字信息的任何设备。存储器设备的形式可以是固态存储器、硬盘驱动器存储器、云存储器、拇指驱动器、服务器存储器、计算设备存储器和/或用于存储数字信息的其他物理介质。
虽然本文已明确描述一个或多个实施例的不同功能和特征的特定组合,但这些特征和功能的其他组合同样是可能的。本公开不受在此披露的具体实例的限制并且明确地结合这些其他组合。
Claims (25)
1.一种用于由包括处理器的分散式存储网络(DSN)的分散式存储和任务(DST)处理单元执行的方法,所述方法包括:
确定第一系统利用数据;
接收第一操作请求;
响应于确定所述第一系统利用数据指示与正常利用阈值相比不利的第一利用水平,生成包括对应于所述第一操作请求的第一授权请求的第一请求队列;
响应于生成所述第一请求队列,基于所述第一系统利用数据来确定第一队列限制条件;
接收第一后续操作请求;
将对应于所述第一后续操作请求的第一后续授权请求附加到所述第一请求队列;
响应于确定所述第一请求队列与所述第一队列限制条件相比不利,生成包括所述第一请求队列的第一多个授权请求的第一批次授权请求;
向身份和访问管理(IAM)系统发送所述第一批次授权请求;
接收来自IAM系统的对应于所述第一请求队列的第一多个授权请求相对应的第一多个授权响应;
标识所述第一多个授权响应的指示授权成功的第一子集;
促进执行对应于所述第一多个授权响应的所述第一子集的多个操作请求的子集;
确定第二系统利用数据;
接收第二操作请求;
响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值相比不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平;
响应于生成所述第二请求队列,基于所述第二系统利用数据确定第二队列限制条件,其中,所述第二队列限制条件不同于所述第一队列限制条件;
接收第二后续操作请求;
将对应于所述第二后续操作请求的第二后续授权请求附加至所述第二请求队列;
响应于确定所述第二请求队列与所述第二队列限制条件相比不利,生成包括所述第二请求队列的第二多个授权请求的第二批次授权请求;和
向IAM系统发送第二批次授权请求。
2.根据权利要求1所述的方法,进一步包括:
确定第三系统利用数据;
接收第三操作请求;
响应于确定所述第三系统利用数据指示与正常利用阈值相比有利的系统利用水平,确定将对应于所述第三操作请求的第三授权请求作为单个授权请求发送至所述IAM系统;
接收来自IAM系统的对应于所述第三授权请求的单个授权响应;和
在所述单个授权响应指示授权成功时,促进执行所述第三操作请求。
3.根据权利要求1所述的方法,进一步包括:
标识所述第一多个授权响应的指示授权失败的第二子集,其中,所述第一多个授权响应的所述第二子集和所述第一多个授权响应的所述第一子集的交集为空;
标识发送对应于所述第一多个授权响应的所述第二子集的所述多个操作请求的第二子集的多个请求者的子集;和
生成用于传输到所述多个请求者的子集的授权失败通知。
4.根据权利要求1所述的方法,其中,在由IAM系统生成的第一批次授权响应中接收所述第一多个授权响应。
5.根据权利要求1所述的方法,其中,在第一时间在第一传输中接收所述第一多个授权响应中的至少一个第一响应,其中,在第二时间在第二传输中接收所述第一多个授权响应中的至少一个第二响应,并且其中,第一时间不同于第二时间。
6.根据权利要求1所述的方法,其中,所述第一操作请求包括指示一个数据对象的读取请求,其中,对所述数据对象的一个数据段执行分散式存储误差编码函数,以产生在DSN的一组存储单元中存储的一组编码数据分片,其中,对应于所述第一操作请求的授权响应指示授权成功,并且其中,执行所述第一操作请求包括:
从该组存储单元中检索该组编码数据分片集合的读阈值数;和
对该组编码数据分片的读阈值数执行分散式存储误差解码函数,以再现所述数据段。
7.根据权利要求1所述的方法,进一步包括:
从DSN的一组网络组件接收第一多个网络利用水平;
基于所述第一多个网络利用水平生成所述第一系统利用数据;
从DSN的该组网络组件接收第二多个网络利用水平;和
基于所述第二多个网络利用水平生成所述第二系统利用数据。
8.根据权利要求7所述的方法,其中,DSN的该组网络组件是DSN的多个网络组件的子集,该方法进一步包括:
基于标识DSN的多个网络组件中参与操作请求的授权的网络组件来确定该组网络组件;和
生成用于传输至DSN的该组网络组件的第一多个网络利用水平请求,其中,响应于所述第一多个网络利用水平请求而接收所述第一多个网络利用水平。
9.根据权利要求8所述的方法,其中,该组网络组件包括被确定为将授权请求从DST处理单元路由至IAM系统的多个网络交换机。
10.根据权利要求1所述的方法,进一步包括:
接收来自IAM系统的第一IAM利用水平;
基于第一IAM利用水平生成第一系统使用数据;
接收来自IAM系统的第二IAM利用水平;和
基于第二IAM利用水平生成第二系统使用数据;
其中,第一IAM利用水平和第二IAM利用水平由IAM基于到IAM系统的网络流量而生成。
11.根据权利要求1所述的方法,其中,所述第一队列限制条件指示第一队列大小阈值,其中,所述第二队列限制条件指示第二队列大小阈值,其中,基于所述第一利用水平指示比所述第二利用水平更严重的过度使用,第一队列大小阈值大于第二队列大小阈值,并且其中,作为响应,第一批次授权请求中的第一多个授权请求的第一数量大于第二批次授权请求中的第二多个授权请求的第二数量。
12.根据权利要求11所述的方法,其中,确定所述第一队列限制条件包括通过对所述第一利用水平执行一个函数来计算所述第一队列大小阈值,其中,确定所述第二队列限制条件包括通过对所述第二利用水平执行该函数来计算所述第二队列大小阈值,并且其中该函数计算作为利用水平的单调递增函数的队列大小阈值。
13.根据权利要求1所述的方法,其中,所述第一队列限制条件指示第一队列时限,其中,所述第二队列限制条件指示第二队列时限,其中,基于所述第二利用水平指示比所述第一利用水平较不严重的过度使用,所述第一队列时限小于所述第二队列时限,并且其中,作为响应,从生成所述第一请求队列到生成所述第一批次授权请求流逝的第一时间短于从生成所述第二请求队列到生成所述第二批次授权请求流逝的第二时间。
14.根据权利要求13所述的方法,其中,确定所述第一队列限制条件包括通过对所述第一利用水平执行一个函数来计算所述第一队列时限,其中,确定所述第二队列限制条件包括通过对所述第二利用水平执行该函数来计算所述第二队列时限,并且其中,该函数计算作为利用水平的单调递增函数的队列时限。
15.根据权利要求13所述的方法,其中,所述第一队列限制条件包括第一队列时限,其中,所述第二队列限制条件包括第二队列时限,并且其中,响应于确定所述第一队列时限与请求者感知的延迟要求相比不利,所述第二队列时限被确定为比所述第一队列时限短。
16.根据权利要求1所述的方法,其中,确定所述第二队列限制条件还基于确定所述第一多个授权响应中的失败授权响应的比例与失败响应阈值相比不利。
17.一种分散式存储和任务(DST)处理单元的处理系统,包括:
至少一个处理器;
存储器,其存储操作指令,所述操作指令在由所述至少一个处理器执行时致使所述处理系统:
确定第一系统利用数据;
接收第一操作请求;
响应于确定所述第一系统利用数据指示与正常利用阈值相比不利的第一利用水平,生成包括对应于所述第一操作请求的第一授权请求的第一请求队列;
响应于生成所述第一请求队列,基于所述第一系统利用数据来确定第一队列限制条件;
接收第一后续操作请求;
将对应于所述第一后续操作请求的第一后续授权请求附加到所述第一请求队列;
响应于确定所述第一请求队列与所述第一队列限制条件相比不利,生成包括所述第一请求队列的第一多个授权请求的第一批次授权请求;
向身份和访问管理(IAM)系统发送所述第一批次授权请求;
接收来自IAM系统的对应于所述第一请求队列的第一多个授权请求相对应的第一多个授权响应;
标识所述第一多个授权响应的指示授权成功的第一子集;
促进执行对应于所述第一多个授权响应的所述第一子集的多个操作请求的子集;
确定第二系统利用数据;
接收第二操作请求;
响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值相比不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平;
响应于生成所述第二请求队列,基于所述第二系统利用数据确定第二队列限制条件,其中,所述第二队列限制条件不同于所述第一队列限制条件;
接收第二后续操作请求;
将对应于所述第二后续操作请求的第二后续授权请求附加至所述第二请求队列;
响应于确定所述第二请求队列与所述第二队列限制条件相比不利,生成包括所述第二请求队列的第二多个授权请求的第二批次授权请求;和
向IAM系统发送第二批次授权请求。
18.根据权利要求17所述的处理系统,其中,所述操作指令在由所述至少一个处理器执行时致使所述处理系统:
确定第三系统利用数据;
接收第三操作请求;
响应于确定所述第三系统利用数据指示与正常利用阈值相比有利的系统利用水平,确定将对应于所述第三操作请求的第三授权请求作为单个授权请求发送至所述IAM系统;
接收来自IAM系统的对应于所述第三授权请求的单个授权响应;和
在所述单个授权响应指示授权成功时,促进执行所述第三操作请求。
19.根据权利要求17所述的处理系统,其中,所述操作指令在由所述至少一个处理器执行时致使所述处理系统:
从一组网络组件接收第一多个网络利用水平;
基于所述第一多个网络利用水平生成所述第一系统利用数据;
从所述一组网络组件接收第二多个网络利用水平;和
基于所述第二多个网络利用水平生成所述第二系统利用数据。
20.根据权利要求17所述的处理系统,其中,所述操作指令在由所述至少一个处理器执行时致使所述处理系统:
接收来自IAM系统的第一IAM利用水平;
基于所述第一IAM利用水平生成所述第一系统使用数据;
接收来自所述IAM系统的第二IAM利用水平;和
基于所述第二IAM利用水平生成所述第二系统使用数据;
其中,所述第一IAM利用水平和所述第二IAM利用水平由所述IAM基于到所述IAM系统的网络流量而生成。
21.根据权利要求17所述的处理系统,其中,所述第一队列限制条件指示第一队列大小阈值,其中,所述第二队列限制条件指示第二队列大小阈值,其中,基于所述第一利用水平指示比所述第二利用水平更严重的过度使用,第一队列大小阈值大于第二队列大小阈值,并且其中,作为响应,第一批次授权请求中的第一多个授权请求的第一数量大于第二批次授权请求中的第二多个授权请求的第二数量。
22.根据权利要求17所述的处理系统,其中,所述第一队列限制条件指示第一队列时限,其中,所述第二队列限制条件指示第二队列时限,其中,基于所述第二利用水平指示比所述第一利用水平较不严重的过度使用,第一队列时限小于第二队列时限,并且其中,作为响应,从生成所述第一请求队列到生成所述第一批次授权请求流逝的第一时间短于从生成所述第二请求队列到生成所述第二批次授权请求流逝的第二时间。
23.一种计算机可读存储介质,包括:
至少一个存储器部分,其存储操作指令,所述操作指令当由包括处理器和存储器的分散式存储网络(DSN)的处理系统执行所述操作指令时,使所述处理系统:
确定第一系统利用数据;
接收第一操作请求;
响应于确定所述第一系统利用数据指示与正常利用阈值相比不利的第一利用水平,生成包括对应于所述第一操作请求的第一授权请求的第一请求队列;
响应于生成所述第一请求队列,基于所述第一系统利用数据来确定第一队列限制条件;
接收第一后续操作请求;
将对应于所述第一后续操作请求的第一后续授权请求附加到所述第一请求队列;
响应于确定所述第一请求队列与所述第一队列限制条件比较不利,生成包括所述第一请求队列的第一多个授权请求的第一批次授权请求;
向身份和访问管理(IAM)系统发送所述第一批次授权请求;
接收来自IAM系统的对应于所述第一请求队列的第一多个授权请求的第一多个授权响应;
标识所述第一多个授权响应的指示授权成功的第一子集;
促进执行对应于所述第一多个授权响应的所述第一子集的多个操作请求的子集;
确定第二系统利用数据;
接收第二操作请求;
响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值相比不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平;
响应于生成所述第二请求队列,基于所述第二系统利用数据确定第二队列限制条件,其中,所述第二队列限制条件不同于所述第一队列限制条件;
接收第二后续操作请求;
将对应于所述第二后续操作请求的第二后续授权请求附加至所述第二请求队列;
响应于确定所述第二请求队列与所述第二队列限制条件相比不利,生成包括所述第二请求队列的第二多个授权请求的第二批次授权请求;和
向IAM系统发送所述第二批次授权请求。
24.一种由包括处理器的分散式存储网络(DSN)的分散式存储和任务(DST)处理单元执行的方法,所述方法包括:
确定第一系统利用数据;
接收第一操作请求;
响应于确定所述第一系统利用数据指示与正常利用阈值相比不利的第一利用水平,生成包括对应于所述第一操作请求的第一授权请求的第一请求队列;
响应于生成所述第一请求队列,基于所述第一系统利用数据来确定第一队列限制条件;
接收第一后续操作请求;
将对应于所述第一后续操作请求的第一后续授权请求附加到所述第一请求队列;
响应于确定所述第一请求队列与所述第一队列限制条件相比不利,生成包括所述第一请求队列的第一多个授权请求的第一批次授权请求;
向身份和访问管理(IAM)系统发送所述第一批次授权请求;
接收来自IAM系统的对应于所述第一请求队列的第一多个授权请求的第一多个授权响应;
标识所述第一多个授权响应的指示授权成功的第一子集;
促进执行对应于所述第一多个授权响应的所述第一子集的多个操作请求的子集;
确定第二系统利用数据;
接收第二操作请求;
响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值相比不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平;
响应于生成所述第二请求队列,基于所述第二系统利用数据确定第二队列限制条件,其中,所述第二队列限制条件不同于所述第一队列限制条件;
接收第二后续操作请求;
将对应于所述第二后续操作请求的第二后续授权请求附加至所述第二请求队列;
确定第三系统利用数据;
基于所述第三系统利用数据来确定第三队列限制条件,其中,所述第三队列限制条件不同于所述第二队列限制条件;
响应于确定第三队列限制条件,并且响应于确定第二请求队列与第三队列限制条件相比不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,其中,第二请求队列与第二队列限制条件相比有利;和
向所述IAM系统发送第二批次授权请求。
25.一种分散式存储和任务(DST)处理单元的处理系统,包括:
至少一个处理器;
存储器,其存储操作指令,所述操作指令在由所述至少一个处理器执行时致使所述处理系统:
确定第一系统利用数据;
接收第一操作请求;
响应于确定所述第一系统利用数据指示与正常利用阈值相比不利的第一利用水平,生成包括对应于所述第一操作请求的第一授权请求的第一请求队列;
响应于生成所述第一请求队列,基于所述第一系统利用数据来确定第一队列限制条件;
接收第一后续操作请求;
将对应于所述第一后续操作请求的第一后续授权请求附加到所述第一请求队列;
响应于确定所述第一请求队列与所述第一队列限制条件相比不利,生成包括所述第一请求队列的第一多个授权请求的第一批次授权请求;
向身份和访问管理(IAM)系统发送所述第一批次授权请求;
接收来自IAM系统的对应于所述第一请求队列的第一多个授权请求相对应的第一多个授权响应;
标识所述第一多个授权响应的指示授权成功的第一子集;
促进执行对应于所述第一多个授权响应的所述第一子集的多个操作请求的子集;
确定第二系统利用数据;
接收第二操作请求;
响应于确定所述第二系统利用数据指示第二利用水平与所述正常利用阈值相比不利,生成包括对应于所述第二操作请求的第二授权请求的第二请求队列,其中所述第二利用水平不同于所述第一利用水平;
响应于生成所述第二请求队列,基于所述第二系统利用数据确定第二队列限制条件,其中,所述第二队列限制条件不同于所述第一队列限制条件;
接收第二后续操作请求;
将对应于所述第二后续操作请求的第二后续授权请求附加至所述第二请求队列;
确定第三系统利用数据;
基于所述第三系统利用数据来确定第三队列限制条件,其中,所述第三队列限制条件不同于所述第二队列限制条件;
响应于确定第三队列限制条件,并且响应于确定第二请求队列与第三队列限制条件相比不利,生成包括第二请求队列的第二多个授权请求的第二批次授权请求,其中,第二请求队列与第二队列限制条件相比有利;和
向所述IAM系统发送第二批次授权请求。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/907,785 | 2018-02-28 | ||
US15/907,785 US10592340B2 (en) | 2018-02-28 | 2018-02-28 | Dynamic authorization batching in a dispersed storage network |
PCT/IB2019/050992 WO2019166895A1 (en) | 2018-02-28 | 2019-02-07 | Dynamic authorization batching in a dispersed storage network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111788560A true CN111788560A (zh) | 2020-10-16 |
CN111788560B CN111788560B (zh) | 2024-01-30 |
Family
ID=67685928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980015825.1A Active CN111788560B (zh) | 2018-02-28 | 2019-02-07 | 分布式存储网络中的动态授权批处理 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10592340B2 (zh) |
JP (1) | JP7167174B2 (zh) |
CN (1) | CN111788560B (zh) |
DE (1) | DE112019000309B4 (zh) |
GB (1) | GB2584065B (zh) |
WO (1) | WO2019166895A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592340B2 (en) | 2018-02-28 | 2020-03-17 | International Business Machines Corporation | Dynamic authorization batching in a dispersed storage network |
KR102654689B1 (ko) * | 2019-05-24 | 2024-04-03 | 삼성에스디에스 주식회사 | 트랜잭션 실패 확률을 고려한 트랜잭션 가속 처리 장치 및 그 방법 |
US11153315B2 (en) | 2019-05-30 | 2021-10-19 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11138328B2 (en) * | 2019-05-30 | 2021-10-05 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
US11165777B2 (en) | 2019-05-30 | 2021-11-02 | Bank Of America Corporation | Controlling access to secure information resources using rotational datasets and dynamically configurable data containers |
KR20200139033A (ko) * | 2019-06-03 | 2020-12-11 | 삼성에스디에스 주식회사 | 트랜잭션 가속 처리 장치 및 그 방법 |
CN113783786A (zh) * | 2020-06-10 | 2021-12-10 | 深圳市中兴微电子技术有限公司 | 一种交换网络流量控制方法、设备及储存介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103636166A (zh) * | 2011-07-06 | 2014-03-12 | 国际商业机器公司 | 与请求-答复消息排队环境关联的动态数据保护策略 |
CN104685852A (zh) * | 2012-09-19 | 2015-06-03 | 甲骨文国际公司 | 用于使用请求的小批处理的系统和方法 |
CN106664300A (zh) * | 2014-06-04 | 2017-05-10 | 搜诺思公司 | 云队列访问控制 |
US20170161147A1 (en) * | 2013-01-04 | 2017-06-08 | International Business Machines Corporation | Allocating rebuilding queue entries in a dispersed storage network |
US20180018226A1 (en) * | 2016-07-14 | 2018-01-18 | International Business Machines Corporation | Determining storage requirements based on licensing right in a dispersed storage network |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632722B2 (en) * | 2010-05-19 | 2017-04-25 | International Business Machines Corporation | Balancing storage unit utilization within a dispersed storage network |
JP5245934B2 (ja) * | 2009-03-11 | 2013-07-24 | 富士通株式会社 | 管理装置の管理プログラム、管理装置、管理装置の管理方法およびストレージシステム |
US8468609B2 (en) | 2009-08-27 | 2013-06-18 | Cleversafe, Inc. | Authenticating use of a dispersed storage network |
US8918534B2 (en) | 2009-09-29 | 2014-12-23 | Cleversafe, Inc. | Writing data slices to ready and non-ready distributed storage units in a distributed storage network |
US8689354B2 (en) | 2009-09-29 | 2014-04-01 | Cleversafe, Inc. | Method and apparatus for accessing secure data in a dispersed storage system |
US9369526B2 (en) | 2009-12-29 | 2016-06-14 | International Business Machines Corporation | Distributed storage time synchronization based on retrieval delay |
US8874868B2 (en) | 2010-05-19 | 2014-10-28 | Cleversafe, Inc. | Memory utilization balancing in a dispersed storage network |
US10353774B2 (en) | 2015-10-30 | 2019-07-16 | International Business Machines Corporation | Utilizing storage unit latency data in a dispersed storage network |
US9229823B2 (en) | 2011-08-17 | 2016-01-05 | International Business Machines Corporation | Storage and retrieval of dispersed storage network access information |
US9430286B2 (en) | 2011-12-12 | 2016-08-30 | International Business Machines Corporation | Authorizing distributed task processing in a distributed storage network |
US9515999B2 (en) * | 2011-12-21 | 2016-12-06 | Ssh Communications Security Oyj | Automated access, key, certificate, and credential management |
US9043499B2 (en) | 2013-02-05 | 2015-05-26 | Cleversafe, Inc. | Modifying a dispersed storage network memory data access response plan |
US9405609B2 (en) | 2013-05-22 | 2016-08-02 | International Business Machines Corporation | Storing data in accordance with a performance threshold |
CN103491075B (zh) | 2013-09-09 | 2016-07-06 | 中国科学院计算机网络信息中心 | 动态调整dns递归服务器缓存资源记录的方法和系统 |
US9495478B2 (en) * | 2014-03-31 | 2016-11-15 | Amazon Technologies, Inc. | Namespace management in distributed storage systems |
US9612882B2 (en) | 2014-04-30 | 2017-04-04 | International Business Machines Corporation | Retrieving multi-generational stored data in a dispersed storage network |
US10466914B2 (en) | 2015-08-31 | 2019-11-05 | Pure Storage, Inc. | Verifying authorized access in a dispersed storage network |
US10007444B2 (en) | 2016-04-29 | 2018-06-26 | International Business Machines Corporation | Batching access requests in a dispersed storage network |
US9838377B1 (en) * | 2016-05-11 | 2017-12-05 | Oracle International Corporation | Task segregation in a multi-tenant identity and data security management cloud service |
US10878079B2 (en) * | 2016-05-11 | 2020-12-29 | Oracle International Corporation | Identity cloud service authorization model with dynamic roles and scopes |
US10592340B2 (en) | 2018-02-28 | 2020-03-17 | International Business Machines Corporation | Dynamic authorization batching in a dispersed storage network |
-
2018
- 2018-02-28 US US15/907,785 patent/US10592340B2/en not_active Expired - Fee Related
-
2019
- 2019-02-07 GB GB2014955.5A patent/GB2584065B/en active Active
- 2019-02-07 CN CN201980015825.1A patent/CN111788560B/zh active Active
- 2019-02-07 DE DE112019000309.7T patent/DE112019000309B4/de active Active
- 2019-02-07 JP JP2020542135A patent/JP7167174B2/ja active Active
- 2019-02-07 WO PCT/IB2019/050992 patent/WO2019166895A1/en active Application Filing
- 2019-07-17 US US16/514,420 patent/US10901849B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103636166A (zh) * | 2011-07-06 | 2014-03-12 | 国际商业机器公司 | 与请求-答复消息排队环境关联的动态数据保护策略 |
CN104685852A (zh) * | 2012-09-19 | 2015-06-03 | 甲骨文国际公司 | 用于使用请求的小批处理的系统和方法 |
US20170161147A1 (en) * | 2013-01-04 | 2017-06-08 | International Business Machines Corporation | Allocating rebuilding queue entries in a dispersed storage network |
CN106664300A (zh) * | 2014-06-04 | 2017-05-10 | 搜诺思公司 | 云队列访问控制 |
US20180018226A1 (en) * | 2016-07-14 | 2018-01-18 | International Business Machines Corporation | Determining storage requirements based on licensing right in a dispersed storage network |
Also Published As
Publication number | Publication date |
---|---|
GB2584065B (en) | 2021-06-16 |
JP2021515295A (ja) | 2021-06-17 |
US10901849B2 (en) | 2021-01-26 |
DE112019000309T5 (de) | 2020-10-22 |
WO2019166895A1 (en) | 2019-09-06 |
DE112019000309B4 (de) | 2021-11-11 |
US20190340073A1 (en) | 2019-11-07 |
CN111788560B (zh) | 2024-01-30 |
US20190266052A1 (en) | 2019-08-29 |
GB2584065A (en) | 2020-11-18 |
GB202014955D0 (en) | 2020-11-04 |
JP7167174B2 (ja) | 2022-11-08 |
US10592340B2 (en) | 2020-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111788560B (zh) | 分布式存储网络中的动态授权批处理 | |
US10853174B2 (en) | Utilizing storage unit latency data in a dispersed storage network | |
US10735545B2 (en) | Routing vault access requests in a dispersed storage network | |
US11907824B2 (en) | Storage network with system registry file verification | |
US10691541B2 (en) | Method for partial updating data content in a distributed storage network | |
US10681138B2 (en) | Storing and retrieving multi-format content in a distributed storage network | |
US10498822B2 (en) | Adaptive scanning rates | |
JP2018524705A (ja) | データ転送中にデータアクセス要求を処理するための方法及びシステム | |
US10942684B2 (en) | Assigning prioritized rebuild resources optimally | |
US10579309B2 (en) | Method for increasing throughput in a distributed storage network | |
US11010093B2 (en) | Delegating an access request to address load imbalances in a dispersed storage network | |
US10956056B2 (en) | Applying dynamic routing protocols to route DSN access requests | |
US20240195436A1 (en) | Migrating Data Between Storage Tiers in a Dispersed Storage Network | |
US10585748B2 (en) | Scalable cloud—assigning scores to requesters and treating requests differently based on those scores | |
US10620878B2 (en) | Write threshold plus value in dispersed storage network write operations | |
US20180364933A1 (en) | Managing resource utilization in a dispersed storage network | |
US10277490B2 (en) | Monitoring inter-site bandwidth for rebuilding | |
US10416930B2 (en) | Global access permit listing | |
US20170131922A1 (en) | Memory device down-time |
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 |