CN115237659A - 编码方法、电子设备和程序产品 - Google Patents
编码方法、电子设备和程序产品 Download PDFInfo
- Publication number
- CN115237659A CN115237659A CN202110443383.XA CN202110443383A CN115237659A CN 115237659 A CN115237659 A CN 115237659A CN 202110443383 A CN202110443383 A CN 202110443383A CN 115237659 A CN115237659 A CN 115237659A
- Authority
- CN
- China
- Prior art keywords
- data
- encoding
- entity
- encoded
- policy
- 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.)
- Pending
Links
Images
Classifications
-
- 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/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/373—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
-
- 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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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
-
- 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
-
- 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]
Abstract
本公开的实施例涉及编码方法、电子设备和计算机程序产品。该方法包括:接收与使用预定编码方式进行编码有关的配置数据;基于配置数据来确定编码策略,编码策略包括与在实体上对数据进行编码相关联的参数;以及使得在实体上、基于编码策略对数据进行编码。使用本公开的技术方案,可以在对数据编码时提供更高的灵活性和可靠性,因此尤其适用于数据保护领域,并且可以通过利用更低的开销来对用户的数据进行编码保护来提高具有数据编码和数据保护需求的用户的用户体验。
Description
技术领域
本公开的实施例总体上涉及计算机技术,具体地涉及编码方法、电子设备和计算机程序产品,可用于数据处理领域和数据保护领域等领域。
背景技术
现代分布式存储系统具有集成的纠删码技术,以实现数据保护目的。纠删码技术将数据分为多个片段,使用冗余数据片段对数据进行扩展和编码,并将它们存储在一组不同的位置或存储介质中。尽管分布式存储系统的实现方式各不相同,但通常而言,这些分布式存储系统会基于逻辑分区的单位来设置与使用纠删码保护数据相关联的规则。
在动态且资源有限的边缘网络环境中,纠删码技术由于能够实现存储系统中的存储与计算开销之间的平衡,在边缘存储系统中也起着重要作用。然而,传统技术的存储系统不能满足高效利用纠删码技术的各种要求,并且尤其不能满足在边缘网络方案中高效利用纠删码技术的要求。例如,由许多使用者生成的数据需要基于数据的特定属性,来进行纠删码配置,而不是像使用诸如目录的固定数据库。此外,边缘节点上的计算和存储资源的稀缺性也需要更为灵活的纠删码策略,同时又要保持数据的可靠性。
发明内容
本公开的实施例提供了编码方法、电子设备和计算机程序产品。
在本公开的第一方面中,提供了一种编码方法。该方法包括:接收与使用预定编码方式进行编码有关的配置数据;基于配置数据来确定编码策略,编码策略包括与在实体上对数据进行编码相关联的参数;以及使得在实体上、基于编码策略对数据进行编码。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,动作包括:接收与使用预定编码方式进行编码有关的配置数据;基于配置数据来确定编码策略,编码策略包括与在实体上对数据进行编码相关联的参数;以及使得在实体上、基于编码策略对数据进行编码。
在本公开的第三方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的实施例的关键特征或必要特征,也无意限制本公开的实施例的范围。
附图说明
通过结合附图对本公开的示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开的示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的编码环境100的示意图;
图2示出了根据本公开的实施例的编码方法200的流程图;
图3示出了根据本公开的实施例的编码方法300的流程图;以及
图4示出了可以用来实施本公开的实施例的示例设备400的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以按照各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,例如,“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
例如纠删码技术的编码技术是在存储系统中进行数据保护的一种有效方法。在纠删码技术的实现中,数据被分解成碎片,并且用冗余数据片段进行扩展和编码,进而存储在一组不同的位置或存储介质中。
尽管可以出于保护数据的目的而进行数据复制,但现代的分布式存储系统已经将纠删码技术的实现方式集成到各种系统中。例如,Hadoop分布式文件系统基于目录可以支持例如RS纠删码算法和XOR纠删码算法等纠删码技术,而Ceph分布式文件系统基于对象的逻辑分区可以静态地支持RS、Cauchy和其他纠删码技术。
纠删码技术在边缘网络架构中也很重要。在边缘网络架构中,具有存储和计算功能的边缘节点控制其范围内的最终用户,并且同时与云服务进行通信。实际上,由于边缘节点的部署规模、硬件功能以及有关系统间管理和通信的不同功能,边缘节点可以被分为多个层。最终用户生成的数据将被上传到边缘或云中以进行存储和查询,但是一些保存数据的边缘设备处于限制较少的环境中,这与传统的分布式存储系统相比带来了更高的数据不可用性。数据复制可能是这种情况的解决方案,但是边缘网络结构中节点的受限的存储容量限制了数据复制的利用率。因此,通常公认的纠删码,作为存储和存储系统中计算开销之间的平衡,对于边缘场景中的数据保护至关重要。
然而,当前的分布式存储系统主要依靠系统管理员来配置数据保护策略,因此从边缘基础架构和客户的角度来看,难以动态地满足各种要求。
例如,在当前的分布式存储系统中,纠删码算法是静态配置的,因此无法在运行时方便地进行更改。例如,在Hadoop分布式文件系统中,提供了管理命令,以首先基于xml文件添加纠删码策略,然后将所需的纠删码策略设置到某个目录中。如果纠删码策略由于某些业务逻辑而改变,则程序员必须在源代码中操纵这些管理命令,而该特权可能不会在每个应用的系统设计中授予。当开发分布式应用时,尤其是在超大规模环境中,这将成为一个障碍。
又例如,在当前的分布式存储系统中,纠删码策略是基于目录或池而被设置的。对于边缘方案中的用例而言,这不是很细致。在这种高度动态的环境中,存储在一个逻辑单元中的数据可能具有各种数据保护要求。可能存在从不同传感器生成的数据,或者来自各种第三方的数据,这些数据用于相同的大数据处理目的,并且具有多种纠删码策略。此外,有时需要将来自同一来源的某些数据分为热数据和冷数据目录,这些数据目录从数据获取效率的角度考虑制定了策略,但所有这些极端情况都增加了现有纠删码配置方法和用户需求之间的冲突。
又例如,在当前的分布式存储系统中,由于当前的分布式存储系统部署在相对同类且稳定的硬件中,因此它们没有考虑很多有关硬件资源限制的因素。但是在边缘体系结构中,构成集群的节点在计算和存储能力方面是高度异构的,并且由于低限制的环境,它们的健康状态不稳定。在这种情况下,针对自动调整纠删码策略以尽最大努力保护数据会出现新的挑战。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个问题,本公开的实施例提出了一种编码方法,该方法在边缘网络的基础上提出了面向用户的纠删编码解决方案,以解决上述突出的问题。需要指出的是,该方法并不限于边缘网络,而是也可以应用于数据中心或云环境。使用根据本公开的实施例的编码方法,可以在对数据编码时提供更高的灵活性和可靠性,因此尤其适用于数据保护领域,并且可以通过利用更低的开销来对用户的数据进行编码保护来提高具有数据编码和数据保护需求的用户的用户体验。
图1示出了可以在其中实现本公开的某些实施例中的编码方法的编码环境100的示意性框图。根据本公开的实施例,编码环境100可以是云环境。
如图1中所示,编码环境100包括用户130和输入数据120,其中从用户130指向输数据120的箭头指示输入数据120由用户130提供。根据本公开的实施例,输入数据120例如可以包括与使用诸如纠删码的预定编码方式对数据进行编码有关的配置数据。
编码环境100中还包括计算设备110、实体140和实体150,其中计算设备110也可以被认为是另一实体,并且计算设备110、实体140和实体150中分别包括编码执行器111、编码执行器141和编码执行器151。应当理解,编码环境100中包括两个实体140和150仅用于示例,本公开的实施例的保护范围并不限于此。实际上,在编码环境100中可以包括大量的实体。如图1中所示,从输入数据120分指向计算设备110和实体140的箭头指示输入数据120可以被提供给计算设备110和实体140,而在实体140与计算设备110中之间的双向箭头指示实体140可以将所获得的输入数据120提供给计算设备110,并且计算设备110可以向实体140发送例如编码策略的数据。同时,从计算设备110指向实体150的箭头指示计算设备110可以向实体150发送例如编码策略的数据。
根据本公开的实施例,输入数据120还可以包括待编码数据,此时实体140可以将获得的待编码数据提供给计算设备110,并且计算设备110可以将直接获得或者通过实体140获得的待编码数据提供给实体150。
根据本公开的实施例,由于计算设备110、实体140和实体150分别包括编码执行器111、编码执行器141和编码执行器151,因此对待编码数据执行编码可以在计算设备110、实体140和实体150中的至少一个上由编码执行器111、编码执行器141和编码执行器151中的至少一个执行。
根据本公开的实施例,待编码数据可以并非由用户130提供,而是可以已经被预先存储在编码环境100中的计算设备110、实体140、实体150或者其他存储位置中。此时,当需要在计算设备110、实体140和实体150中的至少一个上由编码执行器111、编码执行器141和编码执行器151中的至少一个对待编码数据进行编码时,可以由将进行编码的计算设备110、实体140和实体150中的至少一个直接对存储在自身上的待编码数据进行编码,或者从其他存储位置获得待编码数据以用于进行编码。
根据本公开的实施例,在计算设备110接收到与使用诸如纠删码的预定编码方式对数据进行编码有关的配置数据时,其可以通过其所包括的策略引擎(未示出)来基于配置数据确定编码策略。此外,计算设备110还可以包括健康状态信息监测器(未示出),以用于获取计算设备110、实体140和实体150的健康状态,从而可以进一步基于健康状态来确定编码策略。
根据本公开的实施例,计算设备110和实体140和实体150的区别可以在于仅有计算设备110具有确定编码策略和获取健康状态的能力。然而,基于不同的边缘存储系统的设计或该体系结构中的数据规模,可以使实体140和实体150同样具备上述能力,从而使得如果最终用户产生了大量数据,则最终用户可以连接到的例如试图140和实体150的实体中的每一个都可以实际上充当计算设备,从而减轻系统的数据存储和纠删码计算负担。
在图1所示的编码环境100中,用户130、计算设备110、实体140、实体150以及计算环境100中可能存在的其他组成部分之间的数据交互可以通过网络来进行。此外,在本公开的实施例中,以计算设备110为例进行说明,并且计算设备110可以包括任何实体或者虚拟的中央处理单元、专用处理单元以及专有加速器等。然而,本公开的保护范围并不限于此,而是可以适用于能够提供输入输出处理能力的各种计算元件、单元、模块或者系统等。
应当理解,编码环境100仅仅是示例性而不是限制性的,并且其是可扩展或者可限缩的。例如,编码环境100中可以包括更多的用户130,由更多的用户提供的更多的输入数据120,更多的计算设备110,以及更多的实体,从而使得可以满足更多用户同时利用更多的计算设备110和更多的实体来同时或者非同时地处理更多的输入数据120的需求。
以下以图1中所包括的计算设备110和输入数据120为例来说明图2至图4中所示出的编码方法200和编码方法300。
图2示出了根据本公开的实施例的编码方法200的流程图。方法200可以由图1中所示的计算设备110来实现,也可以由其他适当的设备来实现。应当理解,编码方法200还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
在框202,计算设备110接收输入数据120中所包括的、与使用预定编码方式进行编码有关的配置数据。根据本公开的实施例,预定编码方式指示采用纠删码进行编码。
根据本公开的实施例,配置数据可以是静态配置数据或动态配置数据。静态配置数据可以指示与待使用预定编码方式进行编码的数据块和校验块有关的信息,并且指示实体。具体而言,静态配置数据可以指示编码将在哪些实体上执行,例如,对数据的编码将在图1中所示的计算设备110、实体140和实体150中的那个或者哪些上进行。此外,静态数据还直接指示了例如针对待使用预定编码方式进行编码的数据块数目和校验块数目的、与待使用预定编码方式进行编码的数据块和校验块有关的信息。除此之外,静态配置数据还可以指示要使用的编码的种类以及要进行的编码的数据的类型等,从而使得可以根据静态编码数据直接得知在哪些实体上,以哪种编码方式对哪种类型的数据执行编码。因此,静态配置数据可以适用于对于具有严格纠删码要求的用户关键数据,从而使得编码系统始终可以确保其满足要求。
动态配置数据可以指示数据保护的优先级、与数据块数目和校验块数目相关联的比值以及对将在其上进行数据编码的实体的诸如运行温度等限制,从而使得可以基于这些指导性数据来动态地确定编码策略,例如针对待使用预定编码方式进行编码的数据块数目和校验块数目。因此,动态配置数据可以适用于例如人工智能训练的大型数据集时,并且可以支持基础架构提供商根据用户的配置向用户收取不同的费用,类似于云服务中的“按需付费”方法,从而使得用户可以根据业务需求决定自己的配置策略。
在框204,计算设备110基于在框402接收到的配置数据来确定编码策略。根据本公开的实施例,编码策略包括与在实体上对数据进行编码相关联的参数,并且这些参数可以指示以下至少一项:数据的来源,数据的类型,数据的保护优先级,针对待使用预定编码方式进行编码的数据块数目,针对待使用预定编码方式进行编码的校验块数目,与数据块数目和校验块数目相关联的比值,编码的种类,以及要在其上进行数据编码的实体。
根据本公开的实施例,如前所述,当配置数据为静态配置数据时,计算设备110可以例如采取直接读取的形式来从静态配置数据中读取与在实体上对数据进行编码相关联的参数,并且形成相应的编码策略。当配置数据为动态配置数据时,计算设备110可以基于动态配置数据的指导性来动态地确定编码策略。基于配置数据来确定编码策略具体地可以由计算设备110中所包括的策略引擎来实现。
根据本公开的实施例,计算设备110基于配置数据来确定编码策略可以进一步包括计算设备110例如通过其所包括的健康状态信息监测器来获取可用于在其上对数据编码的实体集合的健康状态信息,并且而后基于配置数据和健康状态信息来确定编码策略。可用于在其上对数据编码的实体集合可以包括计算设备110本身以及其他实体,例如图1中所示的实体140和实体150。
根据本公开的实施例,由计算设备110获取的、可用于在其上对数据编码的实体集合的健康状态信息可以指示以下至少一项:可用实体的环境信息,例如实体的周围温度、湿度,这可能会影响实体的使用寿命与故障率;与可用实体中的计算单元相关联的健康状态,例如剩余使用寿命,故障可能性等;与可用实体中的存储单元相关联的健康状态,例如剩余使用寿命,是否有坏道,故障可能性等;可用实体中的计算单元的利用率;以及可用实体中的存储单元的利用率。
根据本公开的实施例,在获得了实体集合的健康状态信息之后,计算设备110可以尽可能通过确定编码策略,来使用健康程度更高的实体执行编码操作。
根据本公开的实施例,为了避免状态数据的振荡使策略不断变化,在收集关于例如中央处理单元的计算单元、存储器、存储容量或其他硬件的健康状态信息之后,计算设备110可以使用过滤或平滑算法来处理健康状态信息,然后再基于配置数据和健康状态信息来确定编码策略。
根据本公开的实施例,在确定编码策略时,计算设备可以使用各种不同的算法,例如以下公式(1)中所示出的算法。
在公式(1)中,保护比率可以是指与数据块数目和校验块数目相关联的比值。公式(1)针对的是边缘网络结构的高度动态和异构属性,并且按照公式(1)最终确定的纠删码复杂度与可用存储空间和保护比率成正比,与实体集合的工作工作负载和用户设置的数据优先级成反比。在确定编码策略时,可以规定纠删码复杂度具有上限阈值,从而使得可以通过调整公式中的各个参数,来避免删码复杂度超过上限阈值,从而避免过度消耗系统资源。
根据本公开的实施例,当输入数据120首先被提供给实体140时,如果计算设备100的计算资源过于有限而无法满足进行编码的需求,或者如果从输入数据120被提供给实体140时就非常需要保证数据的可用性,则计算设备可以指示实体140中的编码执行器来对待编码数据进行编码,这可以被称为在线纠删码方案。否则,可以由计算设备100来对待编码数据进行编码,这可以被称为离线纠删码方案。此外,在确定编码策略时还可以考虑纠删码或策略算法中的其他因素,例如基于实体集合中的实体的状态的校验块的放置,以及是否可以容易地根据工业场景进行扩展等。
在框206,计算设备110使得在编码策略所指示的要在其上进行数据编码的实体上、基于编码策略对数据进行编码。根据本公开的实施例,当编码策略指示要在其上进行数据编码的实体是除了计算设备110之外的其他实体,例如实体140或者实体150时,计算设备110可以将编码策略发送给要在其上进行数据编码的实体,从而使得接收到编码策略的实体可以利用其所包括的编码执行器来对待编码数据进行编码。此外,当编码策略所指示的待编码数据未被存储在要在其上进行数据编码的实体上时,计算设备110可以通过发送指令来指示该实体从用户130接收待编码数据或者从其他数据存储位置读取待编码数据等方式,使得该实体获得待编码数据。
根据本公开的实施例,在计算设备110基于配置数据确定了编码策略或者使得要在其上进行数据编码的实体上基于编码策略对数据进行编码之后,计算设备110可以按照元数据的形式存储参数,从而使得后续可以针对进行了编码的数据进行例如查询等操作。例如,当后续用户需要查询某些数据时,计算设备110可以首先查找与该数据对应的元数据,并且然后从元数据的哈希值中查找每个数据块的位置。如果某些数据块的读取失败,则计算设备110可以使用对应的纠删码策略和校验块进行纠删码解码和校正方法,从而使得系统可以从动态边缘网络环境中恢复数据。
图3示出了根据本公开的实施例的编码方法300的流程图。方法300可以由图1中所示的计算设备110、特别是计算设备110中所包括的策略引擎来实现,也可以由其他适当的设备来实现。编码方法300可以是编码方法200的具体描述,并且其可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
在框302,计算设备110确定配置数据是否指示了要在其上进行数据编码的实体。如果配置数据指示了要在其上进行数据编码的实体,则方法300前进到框304,否则,方法300前进到框308。
在框304,计算设备110确定配置数据中所指示的、要在其上进行数据编码的实体是否为非计算设备110的实体,例如图1中所示的实体140或者实体150。如果要在其上进行数据编码的实体是非计算设备110的实体,则方法300前进到框306,否则,方法300前进到框314。
在框306,计算设备110将编码策略发送给要在其上进行数据编码的实体,以供在其上进行数据编码的实体基于编码策略来对待编码数据进行编码。
在框308,计算设备110例如通过其所包括的健康状态信息监测器来获取可用于在其上对数据编码的实体集合的健康状态信息。
在框310,计算设备110基于配置数据和健康状态信息来确定编码策略。
在框312,计算设备112确定配置数据是否指示需要在例如图1中所示的实体140或者实体150的、非计算设备110的实体上对待编码数据进行编码。如果需要在非计算设备110的实体上对待编码数据进行编码,则方法300前进到框306,否则,方法300前进到框314。
在框314,计算设备110在其上对待编码数据进行编码。应当理解,方法300针对编码将在计算设备110、实体140和实体150中的一个上进行的情况。因此,当配置数据指示需要在非计算设备110的实体上对待编码数据进行编码时,则可以直接在该实体上对待编码数据进行编码,否则需要在计算设备110上对待编码数据进行编码。
以上参考图1至图3描述了根据本公开的实施例的设备和/或方法可以在其中被实施的编码环境100、根据本公开的实施例的编码方法200以及根据本公开的实施例的编码方法300的相关内容。应当理解,上述描述是为了更好地展示本公开的实施例中所记载的内容,而不是以任何方式进行限制。
应当理解,本公开的实施例以及各个附图中所采用的各种元件的数目和物理量的大小仅为举例,而并不是对本公开的实施例的保护范围的限制。上述数目和大小可以根据需要而被任意设置,而不会对本公开的实施例的正常实施产生影响。
通过以上参考图1到图3的描述,根据本公开的实施例的技术方案,提出了一种编码方案,该编码方案是一种全面的、面向用户的和群集感知的纠删码解决方案,并且会基于例如由用户提供的的配置数据以及例如由多个实体组成的群集的健康状态信息,智能地确定编码策略并且执行纠删码编解码器以对数据进行编码。同时,该编码方案还可以通过提供相应的用户界面、策略的序列和元数据管理来有助于使编码方案能够实现更多的有益效果。此外,该编码方案还可以通过考虑边缘节点的诸如硬件资源的资源状态以及用户的偏好来确保数据可用性和更好的性能,从而可以极大地提高边缘网络基础架构中消费者的数据服务质量。具体而言,根据本公开的实施例的技术方案相对于传统方案具有诸多优点。
例如,使用本公开的技术方案,用户可以按照各种粒度通过提供配置数据来定义编码策略,从特定数据到存储桶或用户单位,从而可以满足超大规模边缘存储系统中用户的特殊要求。在这样的超大规模边缘存储系统中,来自不同第三方的大量数据要求采取不同的数据保护策略。因此,本公开的技术方案在边缘网络情况中的纠删码配置中提供了高度的灵活性。
又例如,使用本公开的技术方案,由于在编码设计中首先考虑了包括由多个实体组成的实体集合的健康状态和存储容量等,而后设置具体编码策略,因而可以在可用硬件资源之间进行平衡,从而可以确保严峻环境下的系统性能和用户对数据可用性的要求,即使边缘存储环境不可控,本公开的技术方案仍然可以确保数据的可用性。
又例如,使用本公开的技术方案,设计了与纠删码相关联的元数据,从而不仅可以有助于编码的正常进行,也可以出于用户的跟踪目的和系统的数据恢复目的而提供相关联的信息。
综合而言,使用本公开的技术方案,能够为边缘网络系统上的纠删码救赎的配置和执行提出全面的解决方案,从而可以通过设计用于配置的用户界面,作为实体的服务器和客户端之间用于纠删码编码执行的交互,用于智能决策的基本策略以及相应的元数据管理来提供统一的针对边缘网络纠删码技术解决方案的体系结构。
图4图示出了可以用来实施本公开的实施例的示例设备400的示意性框图。根据本公开的实施例,图1中的计算设备110可以由设备400来实施。如图所示,设备400包括中央处理单元(CPU)401,其可以根据存储在只读存储器(ROM)402中的计算机程序指令或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序指令,来执行各种适当的动作和处理。在RAM 403中,还可以存储设备400操作所需的各种程序和数据。CPU 401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。
设备400中的多个部件连接至I/O接口405,包括:输入单元406,例如键盘、鼠标等;输出单元407,例如各种类型的显示器、扬声器等;存储单元408,例如磁盘、光盘等;以及通信单元409,例如网卡、调制解调器、无线通信收发机等。通信单元409允许设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的例如方法200和方法300的各个过程和处理可由处理单元401执行。例如,在一些实施例中,方法200和方法300可以被实现为计算机软件程序,其被有形地包含于例如存储单元408的机器可读介质中。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到设备400上。当计算机程序被加载到RAM 403并由CPU 401执行时,可以执行上文描述的方法200和方法300的一个或多个动作。
本公开的实施例可以涉及方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的实施例的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是、但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的作为非穷举的列表的更具体的示例包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、例如通过光纤电缆的光脉冲的通过波导或其他传输媒介传播的电磁波、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开的实施例的操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以例如利用因特网服务提供方来通过因特网连接连接到外部计算机。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的实施例的各个方面。
这里参照根据本公开的实施例的方法、设备/系统和计算机程序产品的流程图和/或框图描述了本公开的实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (19)
1.一种编码方法,包括:
接收与使用预定编码方式进行编码有关的配置数据;
基于所述配置数据来确定编码策略,所述编码策略包括与在实体上对数据进行编码相关联的参数;以及
使得在所述实体上、基于所述编码策略对所述数据进行编码。
2.根据权利要求1所述的方法,其中所述配置数据指示与待使用所述预定编码方式进行编码的数据块和校验块有关的信息,并且所述配置数据指示所述实体。
3.根据权利要求1所述的方法,其中所述参数指示以下至少一项:
所述数据的来源,
所述数据的类型,
所述数据的保护优先级,
针对待使用所述预定编码方式进行编码的数据块数目,
针对待使用所述预定编码方式进行编码的校验块数目,
与所述数据块数目和所述校验块数目相关联的比值,
所述编码的种类,以及
所述实体。
4.根据权利要求1所述的方法,其中确定所述编码策略包括:
获取可用于在其上对所述数据编码的可用实体集合的健康状态信息,所述可用实体集合包括所述实体;以及
基于所述配置数据和所述健康状态信息来确定所述编码策略。
5.根据权利要求4所述的方法,其中所述健康状态信息指示以下至少一项:
所述可用实体集合中的可用实体的环境信息;
与所述可用实体中的计算单元相关联的健康状态;
与所述可用实体中的存储单元相关联的健康状态;
所述可用实体中的所述计算单元的利用率;以及
所述可用实体中的所述存储单元的利用率。
6.根据权利要求1所述的方法,其中使得在所述实体上、基于所述编码策略对所述数据进行编码包括:
将所述编码策略发送给所述实体。
7.根据权利要求1所述的方法,其中使得在所述实体上、基于所述编码策略对所述数据进行编码包括:
使得所述实体获得所述数据。
8.根据权利要求1所述的方法,还包括:
以元数据的形式存储所述参数。
9.根据权利要求1所述的方法,其中所述预定编码方式指示采用纠删码进行编码。
10.一种电子设备,包括:
至少一个处理单元;以及
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
接收与使用预定编码方式进行编码有关的配置数据;
基于所述配置数据来确定编码策略,所述编码策略包括与在实体上对数据进行编码相关联的参数;以及
使得在所述实体上、基于所述编码策略对所述数据进行编码。
11.根据权利要求10所述的电子设备,其中所述配置数据指示与待使用所述预定编码方式进行编码的数据块和校验块有关的信息,并且所述配置数据指示所述实体。
12.根据权利要求10所述的电子设备,其中所述参数指示以下至少一项:
所述数据的来源,
所述数据的类型,
所述数据的保护优先级,
针对待使用所述预定编码方式进行编码的数据块数目,
针对待使用所述预定编码方式进行编码的校验块数目,
与所述数据块数目和所述校验块数目相关联的比值,
所述编码的种类,以及
所述实体。
13.根据权利要求10所述的电子设备,其中确定所述编码策略包括:
获取可用于在其上对所述数据编码的可用实体集合的健康状态信息,所述可用实体集合包括所述实体;以及
基于所述配置数据和所述健康状态信息来确定所述编码策略。
14.根据权利要求13所述的电子设备,其中所述健康状态信息指示以下至少一项:
所述可用实体集合中的可用实体的环境信息;
与所述可用实体中的计算单元相关联的健康状态;
与所述可用实体中的存储单元相关联的健康状态;
所述可用实体中的所述计算单元的利用率;以及
所述可用实体中的所述存储单元的利用率。
15.根据权利要求10所述的电子设备,其中使得在所述实体上、基于所述编码策略对所述数据进行编码包括:
将所述编码策略发送给所述实体。
16.根据权利要求10所述的电子设备,其中使得在所述实体上、基于所述编码策略对所述数据进行编码包括:
使得所述实体获得所述数据。
17.根据权利要求10所述的电子设备,所述动作还包括:
以元数据的形式存储所述参数。
18.根据权利要求10所述的电子设备,其中所述预定编码方式指示采用纠删码进行编码。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行使得机器执行根据权利要求1至9中的任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110443383.XA CN115237659A (zh) | 2021-04-23 | 2021-04-23 | 编码方法、电子设备和程序产品 |
US17/322,303 US11431353B1 (en) | 2021-04-23 | 2021-05-17 | Encoding method, electronic device, and program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110443383.XA CN115237659A (zh) | 2021-04-23 | 2021-04-23 | 编码方法、电子设备和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115237659A true CN115237659A (zh) | 2022-10-25 |
Family
ID=83007582
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110443383.XA Pending CN115237659A (zh) | 2021-04-23 | 2021-04-23 | 编码方法、电子设备和程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11431353B1 (zh) |
CN (1) | CN115237659A (zh) |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7383180B2 (en) * | 2003-07-18 | 2008-06-03 | Microsoft Corporation | Constant bitrate media encoding techniques |
US7343291B2 (en) * | 2003-07-18 | 2008-03-11 | Microsoft Corporation | Multi-pass variable bitrate media encoding |
US8533597B2 (en) * | 2003-09-30 | 2013-09-10 | Microsoft Corporation | Strategies for configuring media processing functionality using a hierarchical ordering of control parameters |
US7689892B2 (en) * | 2004-09-08 | 2010-03-30 | Nokia Corporation | System and method for adaptive low-density parity-check (LDPC) coding |
GB0619570D0 (en) * | 2006-10-04 | 2006-11-15 | Univ Bristol | Complexity scalable video transcoder and encoder |
US8738855B2 (en) * | 2008-05-05 | 2014-05-27 | Amplidata Nv | Method of storing a data set in a distributed storage system, distributed storage system and computer program product for use with said method |
EP2638653B1 (en) * | 2010-11-08 | 2020-07-15 | Telefonaktiebolaget LM Ericsson (publ) | Method and arrangement for retransmission control |
US8819523B2 (en) * | 2011-05-19 | 2014-08-26 | Cambridge Silicon Radio Limited | Adaptive controller for a configurable audio coding system |
FR3035241B1 (fr) * | 2015-04-16 | 2017-12-22 | Inside Secure | Procede de partage d'une memoire entre au moins deux entites fonctionnelles |
US20160316220A1 (en) * | 2015-04-21 | 2016-10-27 | Microsoft Technology Licensing, Llc | Video encoder management strategies |
US20190075319A1 (en) * | 2016-03-08 | 2019-03-07 | Interdigital Vc Holdings, Inc. | Methods for performing an intra prediction encoding and decoding of at least one picture, and corresponding electronic devices |
CN109417435B (zh) * | 2016-07-29 | 2020-08-14 | 华为技术有限公司 | 编码设备和方法以及相应的解码设备和方法 |
US10419785B2 (en) * | 2017-07-21 | 2019-09-17 | Cisco Technology, Inc. | Distributed learning video encoder/decoder |
-
2021
- 2021-04-23 CN CN202110443383.XA patent/CN115237659A/zh active Pending
- 2021-05-17 US US17/322,303 patent/US11431353B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11431353B1 (en) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190068690A1 (en) | Automated management of resource attributes across network-based services | |
US10048996B1 (en) | Predicting infrastructure failures in a data center for hosted service mitigation actions | |
US9672110B1 (en) | Transmission time refinement in a storage system | |
CN111767143B (zh) | 交易数据处理方法、装置、设备及系统 | |
CN106170777B (zh) | 降低基于块的存储的数据卷耐久性状态的方法 | |
US10270668B1 (en) | Identifying correlated events in a distributed system according to operational metrics | |
US20190036778A1 (en) | Using blockchain smart contracts to manage dynamic data usage requirements | |
US11675774B2 (en) | Remote policy validation for managing distributed system resources | |
US10855759B2 (en) | Utilizing a hierarchical index in a dispersed storage network | |
US20160170796A1 (en) | System and method for assisting virtual machine instantiation and migration | |
KR101871383B1 (ko) | 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템 | |
JP2009199395A (ja) | 仮想サーバ管理装置および仮想サーバ管理方法 | |
US10397051B1 (en) | Configuration and testing of network-based service platform resources using a service platform specific language | |
US11709815B2 (en) | Retrieving index data from an object storage system | |
US9910881B1 (en) | Maintaining versions of control plane data for a network-based service control plane | |
US11347413B2 (en) | Opportunistic storage service | |
CN111767144A (zh) | 交易数据的交易路由确定方法、装置、设备及系统 | |
CN105302536A (zh) | MapReduce应用的相关参数的配置方法和装置 | |
CN115865950A (zh) | 信息中心网络中的存储节点募集 | |
US10594620B1 (en) | Bit vector analysis for resource placement in a distributed system | |
US10831378B2 (en) | Optimizing data access in a DSN memory for wear leveling | |
CN115237659A (zh) | 编码方法、电子设备和程序产品 | |
US11979375B2 (en) | Context-aware secure access service edge (SASE) engine | |
US10785295B2 (en) | Fabric encapsulated resilient storage | |
US10254980B1 (en) | Scheduling requests from data sources for efficient data decoding |
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 |