Data storage resource management

文档序号:367152 发布日期:2021-12-07 浏览:33次 中文

阅读说明:本技术 数据存储资源管理 (Data storage resource management ) 是由 亚伦·克林 于 2020-03-13 设计创作,主要内容包括:一种数据中心中的资源管理系统包括一或多个数据存储资源提供者和交易服务器。所述交易服务器经配置以:从客户端接收对数据存储资源的读取和/或写入存取的请求,所述请求包括一或多个规范,以将所述请求的至少一部分提供给所述一或多个数据存储资源提供者,以及接收来自所述一或多个数据存储资源提供者的对所述请求的相应响应,所述响应分别包括一或多个分配选项。所述交易服务器进一步经配置以选择所述一或多个分配选项中的一者用于注册,并向数据管理器注册所述选择的分配选项。所述一或多个数据存储提供者中的至少一者经配置以根据所述所注册的分配选项提供所述数据存储资源。(A resource management system in a data center includes one or more data storage resource providers and a transaction server. The transaction server is configured to: receiving a request for read and/or write access to a data storage resource from a client, the request comprising one or more specifications to provide at least a portion of the request to the one or more data storage resource providers, and receiving respective responses to the request from the one or more data storage resource providers, the responses respectively comprising one or more allocation options. The transaction server is further configured to select one of the one or more allocation options for registration and register the selected allocation option with a data manager. At least one of the one or more data storage providers is configured to provide the data storage resources according to the registered allocation options.)

1. A resource management system in a data center, comprising:

one or more data storage resource providers; and

a transaction server configured to:

receiving a request from a client for read and/or write access to a data storage resource, the request comprising one or more specifications, the one or more specifications including a space specification;

providing at least a portion of the request to the one or more data storage resource providers;

receiving respective responses to the request from the one or more data storage resource providers, the responses respectively comprising one or more allocation options, the one or more allocation options comprising one or more specifications, the one or more specifications including a quota specification;

selecting one of the one or more allocation options to register; and

registering the selected allocation option with a data manager,

wherein at least one of the one or more data storage providers is configured to provide the data storage resources according to the registered allocation options.

2. The resource management system of claim 1, wherein the specification included in the request comprises an initial quota offer specifying a quota amount, and the quota specification included in the one or more allocation options specifies a quota amount that matches the quota amount of the initial quota offer.

3. The resource management system of claim 2, further comprising the data manager, wherein:

registering the selected allocation option with the data manager includes transmitting a registration request indicating the specification of the selected allocation option; and

the data manager is configured to:

receiving the registration request from the transaction server; and

updating the client's quota based on the quota amount specified by the selected allocation option.

4. The resource management system of claim 1 wherein the specification included in the request comprises a quality specification including at least one of a service level agreement or a quality of service specification.

5. The resource management system of claim 4 wherein the specification included in the one or more allocation options for each of the responses includes a quality specification based on the quality specification included in the request.

6. The resource management system of claim 4, wherein at least one of the responses includes a first allocation option and a second allocation option, the first allocation option including a first proposed quota and a first proposed quality, the second allocation option including a second proposed quota different from the first proposed quota and a second proposed quality different from the first proposed quality.

7. The resource management system of claim 4 wherein at least one of the responses includes a first allocation option and a second allocation option, and the response further includes a failure policy specifying that the second allocation option is to be implemented when the first allocation option fails.

8. The resource management system of claim 7 wherein the first allocation option comprises a first quota specification and a first quality specification, the second allocation option comprises a second quota specification that is lower than the first quota specification, and the failure policy specifies that the first allocation option fails at least when the first quality specification is not met.

9. The resource management system of claim 8, wherein the specification included in the request comprises an initial quota offer, and the first quota specification matches the initial quota offer.

10. The resource management system of claim 1 wherein the transaction server is further configured to transmit an indication of the selected response to the client.

11. The resource management system of claim 1 wherein the transaction server is further configured to transmit an indication of two or more of the responses to the client, to receive a selection response from the client, and to select the response for registration based on the selection response from the client.

12. A data storage resource management system, comprising:

a data manager configured to register an allocation specification; and

one or more data storage resource providers, wherein each of the one or more data storage resource providers is configured to:

receiving a request from a client for read and/or write access to a data storage resource managed by the data storage resource provider, the request comprising one or more specifications, the one or more specifications including a space specification;

providing a response to the request to the client, the response comprising one or more allocation options comprising one or more specifications, the one or more specifications including a quota specification;

receiving an indication from the data manager that at least one of the one or more allocation options has been registered; and

providing the data storage resource according to the registered allocation option.

13. The resource management system of claim 12, wherein the specification included in the request comprises an initial quota offer specifying a quota amount, and the quota specification included in the one or more allocation options specifies a quota amount that matches the quota amount of the initial quota offer.

14. The data storage resource management system of claim 12, wherein the one or more specifications of the request comprise a timing specification specifying an expiration time or validity time frame.

15. The data storage resource management system of claim 12, wherein the data manager is configured to receive a selected allocation option from the client, register the selected allocation option, and update an account associated with the client based on the selected allocation option.

16. A method of managing data storage resources, comprising:

transmitting, by a client device, a request for read and/or write access to a data storage resource to one or more data storage resource providers, the request comprising one or more specifications, the one or more specifications including a space specification;

receiving, by the client device, a plurality of responses to the request from the one or more data storage resource providers, the responses respectively comprising one or more allocation options, the one or more allocation options comprising one or more specifications, the one or more specifications including a space specification and a quota specification including a quota amount;

selecting, by the client device, one of the one or more allocation options;

registering, by the client device, the selected allocation option with a data manager; and

performing a read or write operation to a data store managed by at least one of the data storage resource providers according to the registered allocation options.

17. The method of claim 16, wherein selecting the one of the one or more allocation options comprises selecting an allocation option from the plurality of responses having a lowest quota amount.

18. The method of claim 16, wherein selecting the one of the one or more allocation options comprises:

determining a space quota ratio for each of the allocation options contained in at least some of the plurality of responses based on the quota specification and the space specification;

selecting a plurality of allocation options to satisfy the spatial specification of the request based on the determined space quota ratio.

19. The method of claim 16, further comprising logging in to a client account via the data manager, the account associated with a quota.

20. The method of claim 19, further comprising receiving, by the client device, an indication from the data manager that the quota has changed based on the selected allocation option.

Technical Field

The present disclosure relates generally to systems and methods for managing data resources, such as data storage resources located in or accessible by a Data Center (DC).

Background

Some comparative DC management systems implement a central management point that can access DC information and monitor DC components and be responsible for DC decisions. Each client request is matched to one or more storage nodes by a central manager. The central manager receives monitoring information and telemetry from components in the system.

Such systems may have certain disadvantages. For example, a central management point may become a bottleneck when scaling to a large DC. Implementation of complex requirements such as provisioning of multiple media types can be challenging. New media type application specifications may be implemented or requested and may desirably be addressed by new matching algorithms, the configuration of which may be challenging. Thus, the overall mapping between the client and the storage node may not be optimal.

Disclosure of Invention

In such a comparison system, when a client requests a data storage resource (e.g., a volume or space for storing data), the client may request the manager to provide one data storage resource. This provisioning request may include capacity or space specifications, and may include other specifications related to, for example, Service Level Agreements (SLAs) or quality of service (QoS). The central manager may allocate volumes or space in one of the storage nodes based on the specification, the state of the storage nodes (e.g., available and/or predicted capacity), and the client information. After allocation, clients may read and write from the allocated volume.

Certain complexities can make this provision challenging. For example, in DC, multiple clients may run various applications. A data center may host multiple applications, virtual machines, containers, or microservices having different specifications and resources. In some cases, each such application uses a persistent volume to store and process its data. Each application may use different capacities and different storage categories to translate to different storage standards.

In addition, data centers are dynamic environments in which application load may fluctuate. For example, during a seasonal event such as "black friday", a business application may use more storage than usual and then release the event after it has passed.

DC management may involve matching storage volumes to applications so that application specifications are met and resources are utilized in an optimal or improved manner to address peak conditions and steady states. Moreover, DC can address scalability when clients and data nodes are added to the data center.

For data centers implementing Hard Disk Drive (HDD) storage, provisioning can be implemented based on capacity and the manager can locate the next available free space. Advances in other media types, such as Solid State Drives (SSDs) and non-volatile memory express (NVMe), as well as Supply Chain Management (SCM), may involve more complex provisioning. In addition, applications may require high-level or complex specifications to address the service level specification. For example, real-time bidding applications may involve very strict tail delay requirements, while standby applications may reduce performance and may utilize low-cost storage. In view of such complexity, optimizing data storage resource allocation can be challenging.

One or more embodiments described herein address at least these issues. In some embodiments, the DC implements a decentralized approach to data management. In some embodiments, a data storage resource provider (e.g., a data node that manages data nodes, including, for example, a data server that manages flash memory) may communicate with clients requesting data storage resources to determine data storage resource allocations. For example, the client may communicate with one or more data storage resource providers and may select one or more allocation options proposed by or otherwise corresponding to one or more of the data storage resource providers to meet at least some of the client's data storage resource requirements. The communication may be directly between the client and the data storage resource provider, or may be indirect (e.g., via a transaction server). The DC manager need not be used in such communications (although it may be involved in some embodiments). For example, a client may submit a data storage resource request and may implement a protocol exchange in which one or more data storage resource providers may respond to the request (e.g., using a proposed or candidate allocation option) and the client (or transaction server) may select the candidate allocation option. The DC manager need not participate in the process. For at least some of the processes, the DC manager may be out-of-band. The DC manager may register selected allocation options (which may be referred to herein as "committed selections"), and may monitor data nodes or data storage resource providers, e.g., for alerts or warnings, and may notify appropriate parties. The DC manager may provide a data storage resource quota (allowance) for the client and may reduce at least a portion of the quota to register the selection of commitments for the client.

In one or more embodiments, according to a first aspect, an asset management system in a data center includes one or more data storage asset providers and a transaction server. The transaction server is configured to: receiving a request from a client for read and/or write access to a data storage resource, the request including one or more specifications, the one or more specifications including a space specification; providing at least a portion of the request to the one or more data storage resource providers; and receiving respective responses to the request from the one or more data storage resource providers, the responses respectively including one or more allocation options, the one or more allocation options including one or more specifications, the one or more specifications including a quota specification. The transaction server is further configured to select one of the one or more allocation options for registration and register the selected allocation option with a data manager. At least one of the one or more data storage providers is configured to provide the data storage resources according to the registered allocation options.

In one or more embodiments, according to a second aspect, a data storage resource management system includes a data manager configured to register allocation specifications, and one or more data storage resource providers. Each of the one or more data storage resource providers is configured to: receiving a request from a client for read and/or write access to a data storage resource managed by the data storage resource provider, the request including one or more specifications, the one or more specifications including a space specification; providing a response to the request to the client, the response comprising one or more allocation options, the one or more allocation options including one or more specifications, the one or more specifications including a quota specification; receiving an indication from the data manager that at least one of the one or more allocation options has been registered, and providing the data storage resources according to the registered allocation option.

In one or more embodiments, according to a third aspect, a method of managing data storage resources includes: transmitting, by a client device, a request for read and/or write access to a data storage resource to one or more data storage resource providers, the request including one or more specifications, the one or more specifications including a space specification; receiving, by the client device, a plurality of responses to the request from the one or more data storage resource providers, the responses respectively including one or more allocation options, the one or more allocation options including one or more specifications, the one or more specifications including a quota specification including a space specification and a quota specification including a quota amount; selecting, by the client device, one of the one or more allocation options; registering, by the client device, the selected allocation option with a data manager, and performing a read or write operation to a data store managed by at least one of the data storage resource providers in accordance with the registered allocation option.

Drawings

FIG. 1A shows an overview of a comparative data management system.

FIG. 1B shows an overview of a data management system according to an embodiment of the present disclosure.

FIG. 1C shows an overview of a data management system including a transaction server, according to an embodiment of the present disclosure.

Fig. 2 is a block diagram of a data management system according to an embodiment of the present disclosure.

FIG. 3 is a flow diagram showing an example method for managing data storage resources, in accordance with an embodiment of the present disclosure.

FIG. 4 is a flow diagram showing an example method for managing data storage resources, in accordance with an embodiment of the present disclosure.

Fig. 5 is a graph illustrating an example method of determining a proposed quota according to an embodiment of the present disclosure.

Detailed Description

Embodiments described herein provide improved data management (e.g., for DC) using decentralized approaches. In some embodiments, a client may submit a data storage resource request and a protocol exchange may occur in which multiple data storage resource providers may respond to the request with respective candidate allocation options, and one or more of the candidate allocation options may be selected as a commitment's choice. The DC manager may manage the quota of the client. The committed selection may specify a quota amount, and the DC manager may transfer or remove the quota amount from the client's quota. Thus, instead of a system in which a central DC manager manages all or most aspects of data storage resource provisioning, which may cause bottlenecks due to limitations of the DC manager, the embodiments described herein provide a particular dynamic between a data storage resource provider and one or more clients that avoids such bottlenecks, and can easily provision a large number of different applications, virtual machines, containers, or microservices having different specifications (e.g., quality specifications involving different capacities, storage classes, including SLA or QoS specifications, and other complexities). Some of the particular dynamics include a particular request for provisioning from a client to a data storage resource provider, a response from the data storage resource provider (including an allocation option specifying a quota amount), selection of the option, registration of the option and consideration of the registration via transfer or reduction of client quota, and provisioning according to the option.

FIG. 1A shows an overview of a comparative data management system. In fig. 1A, a plurality of clients are configured to request provisioning from a central DC manager. The data node may register itself with the DC manager at the time of its installation, commissioning or upgrade, providing the DC manager with information about its storage attributes and capabilities. The DC manager may receive the request and may responsively select a registered data node to satisfy the request. The DC manager may also monitor the data nodes for possible alarms or problems. The DC manager may respond to the client to notify it that it has read/write rights to the selected node after selecting the data node to satisfy the request. After this, the client may submit a read/write request to the provisioned data node. As discussed above, certain challenges may arise in such a system. For example, bottlenecks may occur due to limitations of the DC manager, and it may be difficult to optimally supply a large number of different client requirements for different capacity, storage classes, and quality specifications.

FIG. 1B shows an overview of the data management system 100, according to an embodiment of the present disclosure. The data management system 100 includes clients 102, data storage resource providers 106, and a data manager 108, discussed in detail below. The data management system 100 can provide a decentralized approach to data management, where a client 102 can perform an initial registration with the data manager 108, and the data manager 108 can provide or assign quotas to the client 102. The client 102 may submit a request to the data storage resource provider 106 for allocation options, after which an exchange of protocols may occur, wherein the data storage resource provider 106 may provide a respective response to the request containing one or more candidate allocation options, and one or more of the candidate allocation options may be selected by the client 102 as a choice of commitments. The data storage resource provider 106 may respond by committing to the selection, and a copy or indication of the commitment may be sent to the data manager 108 (e.g., by the data storage resource provider 108). The data manager 108 may manage the quota of the client 102, may register the committed selections, and may transfer or remove the quota amount from the client's quota and update the client 102 with the remaining quota.

FIG. 1C shows an overview of the data management system 100 including the transaction server 104 (described in detail below) according to an embodiment of the present disclosure. The transaction server 104 may provide communication between the client 102 and the data storage resource provider 106. The transaction server 104 may receive a provisioning request from the client 102 and may transmit the provisioning request to the data storage resource provider 106. In some embodiments, the data storage resource provider 106 may poll or query the transaction server for the provisioning request, and the transaction server 104 may provide information regarding the provisioning request received from the client 102 accordingly. The data storage resource provider 106 may provide a response to the provisioning request (which includes the allocation option) to the transaction server 104. In some embodiments, the transaction server 104 selects the distribution option and registers the selection of the commitment with the data manager 108. In some embodiments, the transaction server 104 selects the allocation option and notifies the data storage resource provider 106, and the data storage resource provider 106 notifies the data manager 108 of the selection of the commitment. In some embodiments, the transaction server 104 transmits a response to the client 102, and the client 102 selects the allocation option and notifies the transaction server 104 or the data manager 108 of the selection of the commitment.

Fig. 2 is a block diagram of a data management system 100 according to an embodiment of the present disclosure. The data management system 100 may include one or more clients 102, a transactional server 104, one or more data storage resource providers 106, and a data manager 108. One or more clients 102, a transaction server 104, one or more data storage resource providers 106, and a data manager 108 are communicatively connected (e.g., via a DC private network). The data management system 100 may correspond to one or more DCs and may provide a decentralized data management approach as described herein.

The one or more clients 102 may include one or more client devices, or may represent one or more client devices seeking data storage resources. For convenience, one or more clients 102 may be referred to herein in the singular. The client 102 may include a host, server, or other device configured to transmit data for storage or processing. Client 102 may include a processor 202, an account manager 204, and an allocation manager 206. The processor 202 may include one or more microprocessors, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), and the like, or a combination thereof. The processor 202 may be configured to execute firmware, software, and instructions stored in memory (on a machine-readable medium), such as instructions included in or accessible to the components of the client 102 described herein.

The account manager 204 may include logic, hardware, or firmware for communicating with the data manager 108 regarding client accounts managed by the data manager 108. The client account may contain data storage resources of the data management system 100 or a quota of data storage resources managed by the data management system 100. The account manager 204 may request that the data manager 108 generate or register a client account, may request an initial quota for the client account, and may request an increase or other adjustment to the quota for the client account. For example, the account manager 204 may execute or participate in the purchase of the quota, or the increase of the quota. The purchase may be performed according to an agreement with the data manager 108.

The account manager 204 may provide a user interface (e.g., a Graphical User Interface (GUI)) for managing client accounts. For example, a user of the account manager 204 may use the GUI to log in or access a client account, which may include submitting login credentials. The GUI may be used to submit a request for adjustment of the quota to the data manager 108. The GUI may be used to manage the assignment specification 216. The GUI may be used to review and/or select the assignment option 226.

Allocation manager 206 may include logic, hardware, or firmware for managing provisioning requests and for managing selection of allocation options 226 and/or for implementing protocol exchanges. The allocation manager 206 may access, set up, or otherwise manage allocation specifications 216 for the client 102 or for client accounts accessed by the client 102. For example, the assignment specification 216 may be set using a GUI. Allocation specifications 216 may include various specifications. For example, allocation specification 216 may include a space specification that specifies a desired, preferred, or required data storage space (e.g., an amount of memory, such as flash memory). The spatial specifications may include storage specifications including, for example, capacity, input/output operations per second (IOps), bandwidth, latency, tail latency, endurance (hold guarantees, Drive Writes Per Day (DWPD)), and reliability redundancy (e.g., RAID, data mirroring and replication, and erasure coding).

The above-described space specification may be for a first data storage space, and the space specification may also specify a second (e.g., spare) desired, preferred, or required data storage space that may be used as a secondary option when the first data storage space is unavailable. The space specification may specify additional desired, preferred, or required data storage space. The data storage spaces may be ranked or ordered or otherwise prioritized (e.g., the highest ranked data storage space is sought first, and the next ranked data storage space is sought thereafter, etc.). In general, the specifications described herein, including allocation specification 216 and specification 222 (described below), may include such alternate options (e.g., the options may be implemented when the first option cannot be implemented or will not be implemented or is difficult to implement).

The allocation specification 216 may contain a quota specification that contains an initial quota offer 218. The initial quota offer 218 may specify an amount of quota that the client 102 is willing to transfer from a client account, have deducted, or otherwise relinquish in exchange for the provision of a data storage resource (e.g., a data storage resource that meets other specifications of the allocation specification). The initial quota offer 218 may be a required quota amount, and only allocation options 226 that match the required quota amount (e.g., supplying data storage resources for the required quota amount or for a quota amount greater than the required quota amount) may be acceptable matches for this quota specification. The initial quota offer 218 may be a starting point or input to a matching process that matches the allocation specification 216 and the allocation option 226, and the quota specification 216 may indicate that the initial quota offer 218 is not a hard requirement. For example, the quota specification 216 may indicate that the initial quota offer 218 is to be used in an initial request for provisioning. The quota specification 216 can indicate a range of acceptable quota amounts for matching the allocation options 226 (e.g., a minimum acceptable quota amount can be specified).

Allocation manager 206 may determine an initial quota offer 218 based on the available quota (e.g., the quota contained in the client account). For example, allocation manager 206 may determine the initial quota offer as an increasing function (e.g., a monotonically increasing function) of the available quota. Thus, the higher the available quota, the higher the initial quota offer 218 may be.

The quota specification 216 may include one or more quality specifications. For example, the quality specification may comprise an SLA or QoS specification. The quality specification may comprise a first preferred quality specification and may comprise a second (e.g., alternate) quality specification. In some embodiments, the first quality specification may be associated with a first quota amount and the second quality specification may be associated with a second quota amount. The second quality specification may be lower than the first quality specification and the second quota amount may be lower than the first quota amount. The associated first quality specification and first quota amount may be included in a preferred supply and the associated second quality specification and second quota amount may be included in a backup supply, both supplies being included in the supply request. The data system 100 may determine whether the preferred provisioning can be satisfied and, if not, whether the alternate provisioning can be satisfied.

The allocation specification 216 may include a timing specification. For example, a timing specification may be associated with other specifications and may include a validity timeframe that specifies one or more time periods during which the other specifications are valid, in effect, or needed. Timing specifications may include expiration times that specify one or more time periods during which other specifications are no longer valid, in effect, or needed. Thus, the timing specification may set time limits on other specifications (e.g., an expiration date may be specified), or may provide for implementing a particular specification at a particular timing (e.g., seasonally coinciding with a holiday or seasonal event, such as black friday, online shopping week, etc., which may involve greater data storage requirements)).

Distribution manager 206 may use distribution specification 216 to generate provisioning request 212 and may transmit request 212 to transaction server 104. In some embodiments where the transaction server 104 is omitted, the allocation manager 206 may transmit the request 212 to one or more data storage resource providers 106. Request 212 may include any specification included in allocation specification 216. The request 212 may be generated and transmitted in response to a request received via a GUI provided to a user of the client 102 by the account manager 204.

The allocation manager 206 may select an allocation option 226 provided by the data storage provider 106 (e.g., via the transaction server 104) based on the allocation specification 216. In other embodiments, the transaction server 104 may select the allocation option 226 and may notify the client 102 of the selection and/or registration of the selected allocation option 226.

For example, allocation manager 206 may receive response 214 to provisioning request 212 from data storage resource provider 106 containing allocation option 226, and allocation manager 206 may select allocation option 226 according to allocation specification 216. In some embodiments, allocation manager 206 selects an allocation option 226 (e.g., that satisfies the minimum space specification) that has the lowest quota amount of allocation options 226 (e.g., that satisfies the minimum space specification). In some embodiments, distribution manager 206 may select multiple distribution options 226 to satisfy provisioning request 212 (e.g., a single provisioning request). Distribution manager 206 may select multiple distribution options 226 to minimize the total quota amount, maximize quality, or balance between the two.

For example, the allocation manager 206 may optionally perform an initial filtering operation on the allocation options 226 included in the received response 214 to the provisioning request 212 to filter out allocation options 226 that do not meet the minimum quality specification (in some embodiments, the data storage resource provider 106 may be configured to send only allocation options 226 that meet the minimum quality specified in the provisioning request 212, and may omit such filtering by the client 102). Allocation manager 206 may determine a space quota ratio for each of the (remaining) allocation options 226 being considered. Allocation manager 206 may populate the space specification with allocation options 226 having the highest space quota ratio (e.g., may select a first allocation option 226 having the highest space quota ratio, may determine whether more space needs remain to be satisfied, may select a second allocation option 226 having the next highest space quota ratio, and so on until the space specification is satisfied).

In some embodiments, the response 214 to the provisioning request received from the data storage resource storage provider 106 may include a failure policy 226, the failure policy 226 specifying a backup allocation option 226 to be used under certain conditions. For example, the response 214 may include a first set of specifications 222 (e.g., including a first higher quality specification and a first higher quota amount) and a second set of specifications 222 (e.g., including a second lower quality specification and a second lower quota amount), and a fault policy 227 that specifies that if provisioning matching the first set of specifications 216 cannot or will not be provided, provisioning matching the second set of specifications 216 may instead be provided. The fault policy 227 may also specify the manner in which the two sets of specifications 222 are implemented. For example, if failure to meet the first set of specifications 222 occurs partway through a provisioning period specified by the timing specification, the total quota amount for the provisioning may be determined as the sum of (i) a first quota amount apportioned for periods during which provisioning matching the first set of specifications is provided and (ii) a second quota amount apportioned for periods during which provisioning matching the second set of specifications is provided. The fault policy 227 may also specify a reduction (e.g., a fixed reduction or a reduction proportional to a period in which the first set of specifications 222 are not met, relative to the total period of allocation options) that applies if the first set of specifications 222 are not met within the total period of allocation options 226.

Distribution manager 206 may also determine option selection preferences 220 for selecting distribution options 226 and may transmit option selection preferences 220 to transaction server 104. The option selection preferences 220 may include, for example, reliability preferences regarding the reliability of the allocation options 226. The reliability of the assignment option 226 may be reflected in a reliability score 224 (e.g., a score determined by the assignment manager 206, by the transaction server 104, or by the data manager 108), and the reliability preference may include a preference for a high reliability score 224 (e.g., above a threshold). Reliability may be based on, for example, historical reliability of the particular data storage resource provider 106 proposing the allocation option 226 or reliability of one or more data nodes to be used to satisfy the provision of the allocation option 226, or based on a self-assessment of the data storage resource provider 106 regarding reliability (e.g., the particular proposed allocation option 226). The option selection preference 220 may also indicate a weighting of the quota amount of the allocation option 226 based on the reliability score 224 (e.g., determining a weight based on a function of the reliability score 224, where a lower reliability score 224 results in a higher weight being applied to the quota amount). The option selection preferences 220 may also include relative preferences for quality and low quota amounts, thus allowing the client 102 to specify preferences regarding potential tradeoffs between quality and low quota amounts.

Thus, in some embodiments, the allocation manager 206 of the client 102 selects the allocation option 226 from a plurality of allocation options offered by the data storage resource provider 106. In such embodiments, the transaction server 104 may act as an intermediary between the data storage resource provider 106 and the client 102, and the client 102 may transmit an indication of the selected allocation option 226 to the transaction server for registration with the data manager 108, or the allocation manager 206 may register the selected allocation option 226 directly with the data manager 108, or the data storage resource provider 106 may register the selected allocation option 226 with the data manager 108. In other embodiments, the distribution manager 206 may determine and transmit parameters, specifications, or preferences (e.g., including any of the algorithms, processes, or specifications discussed above) for selecting the distribution options 226 to the transaction server 104, and the Request and Response Manager (RRM)210 of the transaction server 105 may select the distribution options 226 based on the parameters, specifications, or preferences for selecting the distribution options.

The transaction server 104 includes a processor 208 and an RRM 210. The transaction server may also store one or more requests 212 (e.g., requests 212A-212N) and one or more responses 214 (e.g., responses 214A-214N) in memory accessible by the RRM 210. The transaction server may be configured to act as an intermediary between the data storage resource provider 106 and the client 102, select an allocation option for the client 102, and register the selected allocation option 226 with the data manager 108. In some embodiments, the transaction server 104 may be omitted, the client may communicate directly with the data storage resource provider 106, and the client 102 may perform the processes described herein as being performed by the transaction server 104.

The processor 208 may include one or more microprocessors, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), etc., or a combination thereof. The processor 208 may be configured to execute firmware, software, and instructions stored in memory (on a machine-readable medium), such as instructions included in or accessible to the components of the transaction server 104 described herein.

The RRM 210 may comprise logic, hardware or firmware for managing provisioning requests, for implementing protocol exchanges, and for managing the selection of provisioning requests and/or assignment options. The RRM 210 may manage provisioning requests, such as request 212A, received from the client 102. The request 212A may include a specification 216, an initial quota offer 218, and an option selection preference 220.

An example of at least a portion of request 212 is shown below:

table 1:

the RRM 210 may receive the request 212 from the client 102. The request may include, for example, a specification 216, an initial quota offer 218, and an option selection preference 220. The specification 216 may include a capacity or space specification, a quality specification, a timing specification, a quota specification, or other specifications (e.g., any of the specifications described herein). The request may include an identification of the client 102, or an identification of a client account associated with the client 102.

The initial quota offer 218 may specify an amount of quota that the client 102 is willing to transfer from a client account, have deducted, or otherwise relinquish in exchange for the provision of a data storage resource (e.g., a data storage resource that meets other specifications of the allocation specification). The initial quota offer 216 may be a required quota amount, and only allocation options that match the required quota amount (e.g., supplying data storage resources for the required quota amount or for a quota amount greater than the required quota amount) may be an acceptable match for this quota specification. The initial quota offer 216 may be a starting point or input to a matching process that matches the allocation specification and the allocation option, and the quota specification may indicate that the initial quota offer 216 is not a hard requirement. For example, the specification 216 or the option selection preference 220 may indicate that the initial quota offer 218 is to be used in an initial request for provisioning.

The option selection preferences 220 may include, for example, reliability preferences regarding the reliability of the assignment options. The option selection preference 220 may indicate a weighting of the quota amount of the allocation option based on the reliability score. The option selection preferences 220 may also include relative preferences for quality and low quota amounts, thus allowing the client 102 to specify preferences regarding potential tradeoffs between quality and low quota amounts.

The RRM 210 may receive the request 212A from the client 102 and may transmit at least a portion of the request 212A (e.g., an indication of any of the transmittable specification 216, the initial quota offer 218, or the option selection preference 220) to the one or more data storage resource providers 106. In some embodiments, the transaction server 104 stores the request 212 in memory and the data storage resource provider "listens" for pending requests 212 (e.g., periodically or otherwise polls the transaction server for pending requests 212). The RRM 210 may direct the data storage resource provider 106 to an address where one or more pending requests may be accessed, or may otherwise respond to such polling, including transmitting at least a portion of the one or more storage requests 212 to the data storage resource provider 106.

The RRM 210 may receive and store one or more responses 214 from the data storage resource provider 106 in memory (e.g., including responses 214A-214N). The response 214A may indicate the provisioning request to which it responds (e.g., may indicate the identity of the request 212A), and may include one or more allocation options 226. The allocation options 226 may include specifications 222, reliability scores 224, and fault policies 227. In some embodiments, the reliability score 224 and the fault policy 227 may be omitted.

The specification 222 may include a specification similar or identical to the specification 216 (e.g., may include a space specification, a quota specification, a quality specification, and/or a timing specification, or other specifications). The specification 222 may satisfy at least some of the specifications included in the request 212A (e.g., may match at least one of a space specification, a quota specification, and a quality specification). The specification 222 may satisfy a portion of the specification included in the request 212A (e.g., may satisfy a portion of a spatial specification or a timing specification). The specification 222 may specify a quota amount that matches the initial quota offer 218 indicated in the request 212A. The specification 222 may contain a quota specification that specifies a minimum allowed quota amount. For example, the minimum allowed quota amount may indicate that the data storage resource provider is willing to accept the minimum amount for a specified offering. The RRM 210 may use the lowest allowed quota amount in the allocation selection process described below.

The reliability score 224 may indicate the reliability of the data storage resource provider 106 providing the response 214A, the reliability of one or more data nodes to be used in provisioning, and/or the reliability specific to the proposed provisioning. The reliability may be based on a historical reliability or a predicted reliability determined, for example, by the transaction server 104, the data manager 108, or the data storage resource provider 108 providing the response 214A.

The fault policy 227 may specify that if provisioning matching the first set of specifications 222 included in the response 214A cannot or will not be provided, provisioning matching the second set of specifications 222 included in the response 214A may be provided instead. The fault policy 227 may also specify the manner in which the two sets of specifications 222 are implemented. For example, if failure to meet the first set of specifications 222 occurs partway through a provisioning period specified by the timing specification of the specifications 222, the total quota amount may be determined as the sum of (i) a first quota amount apportioned for periods during which provisioning matching the first set of specifications 222 is provided and (ii) a second quota amount apportioned for periods during which provisioning matching the second set of specifications 222 is provided. The fault policy 227 may also specify a reduction (e.g., a fixed reduction or a reduction proportional to a period in which the first set of specifications is not met, relative to the total period of the allocation options 226) that applies if the first set of specifications 222 is not met within the total period of the allocation options 226.

The RRM 210 may perform the allocation option selection procedure. The RRM 210 may provide, transmit, or propagate at least a portion of the request 212A to the data storage resource provider 106. The RRM 210 may wait for a predetermined timeout period for responses from the data storage resource providers 106 or may wait until a percentage of all or a predetermined number of the data storage resource providers 106 that have been provided with at least a portion or request 212A transmit responses to the transaction server 104.

The RRM 210 may select the allocation option contained in the response 214 received from the data storage resource provider 106. The RRM 210 may select an allocation option (e.g., allocation option 226) according to the specification 216. The RRM 210 may select the allocation option based on any of the specifications 222, the reliability score 224, and the failure policy 227. In some embodiments, the RRM 210 selects the allocation option (e.g., which satisfies the minimum spatial specification) that has the lowest quota amount of the allocation option (e.g., which satisfies the minimum spatial specification). In some embodiments, the RRM 210 may select multiple allocation options to satisfy the provisioning request (e.g., a single provisioning request). The RRM 210 may select multiple allocation options to minimize the total quota amount, maximize quality, or balance between the two (e.g., based on the option selection preference 220). For example, the RRM 210 may optionally perform an initial filtering operation on the allocation options included in the received response to the provisioning request to filter out allocation options that do not meet the minimum quality specification (in some embodiments, the data storage resource provider 106 may be configured to send only allocation options that meet the minimum quality specified in the provisioning request, and this filtering by the client 102 may be omitted). The RRM 210 may determine the space quota ratio for each of the (remaining) allocation options being considered. The RRM 210 may populate the space specification with the allocation option having the highest space quota ratio (e.g., a first allocation option having the highest space quota ratio may be selected, it may be determined whether more space requirements remain to be met, a second allocation option having the next highest space quota ratio may be selected, and so on until the space specification is met).

In some embodiments, the RRM 210 may determine the initial quota offer 218 of the request 212A. For example, the RRM 210 may determine the initial quota proposal 218 based on the reference spatial quota ratio. The RRM 210 may determine the reference spatial quota ratio based on one or more historical offerings (e.g., based on a predetermined number of recent offerings). The RRM 210 may determine the reference spatial quota ratio based on an average of historical offerings (e.g., a weighted average based on similarity of the provisioning specifications). In some embodiments, the RRM 210 may determine the reference spatial quota ratio based on open proposals made by the data storage resource provider 106 (e.g., which may be generally used to satisfy provisioning requests). In some embodiments, the RRM 210 may determine the reference space quota ratio based on the storage specification (e.g., may determine a first reference space quota ratio for a first type of storage (e.g., HDD storage), may determine a second reference space quota ratio for a second type of storage (e.g., SSD storage), and/or may determine a third reference space quota ratio for a third type of storage (e.g., RAID-6SSD storage).

The RRM 210 may select an allocation option of the plurality of allocation options based on the lowest minimum acceptable quota. For example, if the first response 214A has a first minimum acceptable quota and the second response 214B has a second minimum acceptable quota that is lower than the first minimum acceptable quota, the RRM 210 may select the second response 214B. Thus, the client 102 can ensure provisioning with a lower quota.

In some embodiments, the RRM 210 may receive the response 214 from the data storage resource provider 106 and may transmit at least a portion of the response to the client 102 to select the allocation option. The RRM 210 may perform a filtering process (e.g., a filtering process similar to the filtering process described above) before or while transmitting at least a portion of the response to the client 102. The RRM 210 may receive a selection of the allocation option 226 from the client 102 and may register the selected allocation option 226 with the data manager 108.

The RRM 210 may register the selected allocation option 226 with the data manager 108. The RRM 210 may transmit a registration request to the data manager 108 that contains an identification of the client 102 or an identification of a client account associated with the client 102. For example, the registration request may include at least some of the specifications 222 (and, if applicable, the failure policy 227) selecting the allocation option 226. The RRM 210 may receive an indication from the data storage resource provider 106 that the selected allocation option 226 has been registered, and the RRM may transmit the indication of registration to either of the client 102 and the data storage resource provider 106.

In some embodiments, the transaction server 104 may be omitted. In some embodiments, the transaction server 104 may perform certain functions described herein as being performed by the client 102. In various embodiments, any of the functions described herein as being performed by the client 102 may be performed by the transaction server 104. In various embodiments, any of the functions described herein as being performed by the transaction server 104 may be performed by the client 102.

The data storage resource provider 106 may include a processor 228, a data storage resource 230, a data storage resource profile 232, and an allocation option generator 234. The data storage resource provider 106 may be configured to respond to provisioning requests, generate allocation options, and provide read/write access to data storage resources. The data storage resource providers 106 may include one or more data storage resource providers.

The processor 228 may include one or more microprocessors, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), and the like, or a combination thereof. The processor 228 may be configured to execute firmware, software, and instructions stored in memory (on a machine-readable medium), such as instructions included in or accessible to the components of the data storage resource provider 106 described herein. The data storage resources 230 may include SSDs, HDDs, and/or other storage media. The data storage resources 230 may include or may provide access to data nodes (e.g., volumes, data servers, data blocks, or portions of data blocks) that may be read or written.

The data storage resource profile 232 may include resources (e.g., maps, tables, libraries, or other reference materials) that list at least some of the data storage resources 230 managed by the data storage resource provider 106, and may include information associated with the data storage resources 230. For example, the data storage resource profile 232 may specify a current or predicted state of the data storage resource 230, a current capacity or predicted future capacity, a reliability (e.g., expressed in a reliability score or other manner), a data storage category or type (e.g., specifying that the data storage resource 230 or a portion of the data storage resource 230 is HDD memory or SSD memory), or other information related to the data storage resource 230.

The allocation option generator 234 may comprise logic, hardware, or firmware for generating the allocation options, as well as for generating and transmitting responses to the provisioning requests to the transaction server 104 or client 102. The allocation option generator 234 may receive the request 212A from the transaction server 104 and/or may query or poll the transaction server 104 for pending requests and may generate the allocation options 226 in response. In some embodiments, the allocation option generator 234 may generate generic allocation options that are not necessarily responsive to the particular request for provisioning, and may publish the allocation options as commonly available (e.g., to the transaction server 104 and/or the client 102).

The allocation option generator 234 may generate the allocation option 226 based on the specification 216 and the initial quota offer 218 as part of the response 214A to the request 212A. The generated assignment options 226 may include the specification 222, the reliability score 224 (in some embodiments, the reliability score is omitted from the assignment options 226 generated by the assignment option generator 234 and may be omitted entirely, or may be determined, for example, by the transaction server 104), and, if applicable, the failure policy 227. Assignment option generator 234 may generate any assignment option or group of assignment options described herein.

The allocation options generator 234 may generate the allocation options 226 to contain the proposed quota amount based on the reference quota. For example, the proposed quota amount may be equal to the reference quota, or may be calculated based on a function of the reference quota. For example, the allocation option generator 234 may determine the reference quota based on one or more historical offerings (e.g., based on a predetermined number of recent offerings). The allocation option generator 234 may determine the reference quota based on an average of historical offerings (e.g., a weighted average based on similarity of the provisioning specifications). In some embodiments, the allocation option generator 234 may determine the reference quota based on published or issued proposals made by other data storage resource providers 106 (e.g., which may be generally used to satisfy provisioning requests). In some embodiments, the allocation option generator 234 may determine the reference quota based on the storage specification (e.g., may determine a first reference space quota for a first type of storage (e.g., HDD storage), may determine a second reference quota for a second type of storage (e.g., SSD storage), and/or may determine a third reference quota for a third type of storage (e.g., RAID-6SSD storage)).

The allocation options generator 234 may determine a proposed quota based on the amount of available space managed by the data storage resource provider 106. For example, the allocation option generator 234 may propose a quota that is a monotonically decreasing function of the amount of available space.

In some embodiments, the allocation option generator 234 may determine the proposed quota based on an amount of available space (e.g., occupied or otherwise committed) managed by the data storage resource provider 106 and based on a reference quota. For example, as illustrated in fig. 5, the allocation option generator 234 may propose a quota above the reference quota when the unavailable space is high (e.g., above a predetermined threshold (e.g., 50%) or the total space managed by the data storage resource provider 106), and the allocation option generator 234 may propose a quota below the reference quota when the unavailable space is low (e.g., below a predetermined threshold (e.g., 50%) or the total space managed by the data storage resource provider 106). The proposed quota need not be linearly related to the amount of unavailable space, e.g., as shown in fig. 5, when the unavailable space is very low (e.g., below 20%), the allocation option generator 234 may determine a disproportionately low proposed quota. This may help to fill the available space.

In some embodiments, allocation option generator 234 may be configured to implement a protocol exchange. For example, distribution options generator 234 may be configured to implement any of the protocol exchange processes or functions that distribution options manager 106 is configured to implement, including the processes and functions described herein.

The data manager 108 may include a processor 236, an account manager 238, and a notification manager 240. The data manager 108 may be configured to register allocation options to record provisioning arrangements between the client 102 and the one or more data storage resource providers 106. The data manager 108 may manage the quota for the client 102, may register the selected allocation option, and may transfer or remove the quota amount from the quota for the client.

The processor 236 may include one or more microprocessors, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), and the like, or a combination thereof. The processor 236 may be configured to execute firmware, software, and instructions stored in memory (on a machine-readable medium), such as instructions included in or accessible to the components of the data manager 108 described herein.

Account manager 238 may include logic, hardware, or firmware for managing client accounts. The client account may contain data storage resources of the data management system 100 or a quota of data storage resources managed by the data management system 100. The account manager 238 may generate or register a client account in response to a request from the client 102, which may be provided with an initial quota. For example, the account manager 238 may execute or participate in the purchase of the quota, or the increase of the quota. The purchase may be performed according to an agreement with the client 102.

The account manager 238 may register the selected allocation option for the client account. The account manager 238 may adjust the quota of the client account based on the registered allocation options (e.g., based on the quota amount included in the registered allocation options). In some embodiments, the client 102 may request a quota transfer from another client 102 (e.g., on a limited time basis, the client 102 returns the added quota at the end of the limited time), and the account manager 238 may provide this transfer.

The account manager 238 may provide a GUI for managing client accounts. For example, the client 102 may use the GUI to log in or access the client account, which may involve submitting login credentials. The account manager 238 may verify login credentials and provide access to the client account. The GUI may be used to submit a request for adjustment of the quota to the data manager 108. The GUI may be used to manage the allocation specification (e.g., for use by allocation manager 206 of client 102).

Notification manager 240 may include logic, hardware, or firmware for managing notifications. For example, the notification manager 240 may monitor the data node or data storage resource provider 106, e.g., for alerts or alarms, and may notify the appropriate parties (e.g., may notify the client 102 about the data storage resource provider 106 that is provisioning the client 102). The notification manager 240 may notify the appropriate parties (e.g., any of the client 102, the transaction server 104, and the data storage resource provider 106) of the registration of the allocation option.

Thus, the data management system 100 can provide a particular dynamic between the data storage resource provider and one or more clients that avoids bottlenecks experienced in certain comparison systems, and the data management system 100 can easily provision a large number of different applications, virtual machines, containers, or microservices with different specifications (e.g., involving different capacities, storage classes, quality specifications, and other complexities). Some of the particular dynamics include a particular request for provisioning from the client 102 to the data storage resource provider 106, a response from the data storage resource provider 106 (including an allocation option 226 specifying a quota amount), selection of the option, and registration of the option, as well as accounting for registration via transferring or reducing the client quota of the client quota.

FIG. 3 is a flow diagram showing an example method for managing data storage resources, in accordance with an embodiment of the present disclosure. The method includes blocks 310 through 360 and may be implemented using the data management system 100 as described above. Briefly, at block 310, the transaction server 104 may receive a request for read and/or write access to a data storage resource, the request including one or more specifications, the one or more specifications including a space specification. At block 320, the transaction server 104 may provide at least a portion of the request to one or more data storage resource providers. At block 330, a protocol exchange may be implemented in which the transaction server 104 may receive respective responses to the request from the one or more data storage resource providers, the responses respectively including one or more allocation options including one or more specifications, the one or more specifications including a quota specification. At block 340, as part of the protocol exchange, the transaction server 104 may select one of the one or more allocation options for registration. At block 350, the transaction server 104 may register the selected assignment option with the data manager. At block 360, the transaction server 104 may provide data storage resources according to the registered allocation options.

In more detail, at block 310, the transaction server 104 may receive a request 212A, for read and/or write access to a data storage resource from a client 102. The request 212A may include an identification of the client 102, or an identification of a client account associated with the client 102. The request 212A may include a specification 216, an initial quota offer 218, and an option selection preference 220. The specification 216 may include a capacity or space specification, a quality specification, a timing specification, a quota specification, or other specifications (e.g., any of the specifications described herein).

The initial quota offer 218 may specify an amount of quota that the client 102 is willing to transfer from a client account, have deducted, or otherwise relinquish in exchange for the provision of a data storage resource (e.g., a data storage resource that meets other specifications of the allocation specification). The initial quota offer 216 may be a required quota amount, and only allocation options that match the required quota amount (e.g., supplying data storage resources for the required quota amount or for a quota amount greater than the required quota amount) may be an acceptable match for this quota specification. The initial quota offer 216 may be a starting point or input to a matching process that matches the allocation specification and the allocation option, and the quota specification may indicate that the initial quota offer 216 is not a hard requirement. For example, the specification 216 or the option selection preference 220 may indicate that the initial quota offer 218 is to be used in an initial request for provisioning.

At block 320, the transaction server 104 may provide at least a portion of the request 212A to one or more data storage resource providers 106. In some embodiments, the transaction server 104 stores the request 212A in memory, and the data storage resource provider 106 may "listen" for pending requests (e.g., periodically or otherwise poll the transaction server for pending requests). The RRM 210 of the transaction server 104 may direct the data storage resource provider 106 to an address where one or more pending requests may be accessed, or may otherwise respond to such polling, including providing at least a portion of one or more storage requests 212. In some embodiments, the RRM 210 transmits at least a portion of the request to the data storage resource provider 106.

At block 330, the transaction server 104 may receive respective responses 214 to the request 212A from the one or more data storage resource providers 106. One of the responses may be response 214A including allocation option 226. The allocation options 226 may include specifications 222, reliability scores 224, and fault policies 227. In some embodiments, the reliability score 224 and the fault policy 227 may be omitted.

The specification 222 may include a specification similar or identical to the specification 216 (e.g., may include a space specification, a quota specification, a quality specification, and/or a timing specification, or other specifications). The specification 222 may satisfy at least some of the specifications included in the request 212A (e.g., may match at least one of a space specification, a quota specification, and a quality specification). The specification 222 may satisfy a portion of the specification included in the request 212A (e.g., may satisfy a portion of a spatial specification or a timing specification). The specification 222 may specify a quota amount that matches the initial quota offer 218 indicated in the request 212A.

The reliability score 224 may indicate the reliability of the data storage resource provider 106 providing the response 214A, the reliability of one or more data nodes to be used in provisioning, and/or the reliability specific to the proposed provisioning. The reliability may be based on a historical reliability or a predicted reliability determined, for example, by the transaction server 104, the data manager 108, or the data storage resource provider 108 providing the response 214A. The fault policy 227 may specify that if provisioning matching the first set of specifications 222 included in the response 214A cannot or will not be provided, provisioning matching the second set of specifications 222 included in the response 214A may be provided instead. The fault policy 227 may also specify the manner in which the two sets of specifications 222 are implemented.

At block 340, the RRM 210 may select one of the one or more received allocation options included in the response 214 for registration with the data manager 108. The RRM 210 may select an allocation option (e.g., allocation option 226) according to the specification 216. The RRM 210 may select the allocation option based on any of the specifications 222, the reliability score 224, and the failure policy 227. In some embodiments, the RRM 210 selects the allocation option (e.g., which satisfies the minimum spatial specification) that has the lowest quota amount of the allocation option (e.g., which satisfies the minimum spatial specification). In some embodiments, the RRM 210 may select multiple allocation options to satisfy the provisioning request (e.g., a single provisioning request). The RRM 210 may select multiple allocation options to minimize the total quota amount, maximize quality, or balance between the two (e.g., based on the option selection preference 220).

At block 350, the RRM 210 may register the selected allocation option 226 with the data manager 108. The RRM 210 may transmit a registration request to the data manager 108 that contains an identification of the client 102 or an identification of a client account associated with the client 102. For example, the registration request may include at least some of the specifications 222 (and, if applicable, the failure policy 227) selecting the allocation option 226. The RRM 210 may receive an indication from the data storage resource provider 106 that the selected allocation option 226 has been registered, and the RRM may transmit the indication of registration to either of the client 102 and the data storage resource provider 106. In other embodiments, the client 102 or data storage resource provider 106 may register the selected allocation option 226 with the data manager 108.

At block 360, the data storage resource provider 106 may provide the data storage resource according to the registered allocation options 226. For example, the data storage resource provider 106 may provide read/write access to the client 102 for storage nodes managed by the data storage resource provider 106. Access may be according to the specification of the allocation option 226 (e.g., a quality specification or a timing specification).

Thus, the data management system 100 can provide data management in a manner that avoids bottlenecks experienced in certain comparison systems, and can easily handle a large number of different applications, virtual machines, containers, or microservices having different specifications.

FIG. 4 is a flow diagram showing an example method for managing data storage resources, in accordance with an embodiment of the present disclosure. The method includes blocks 410 through 450 and may be implemented using the data management system 100 as described above. Briefly, at block 410, the client 102 may transmit a request for read and/or write access to a data storage resource to one or more data storage resource providers, the request including one or more specifications, the one or more specifications including a space specification. At block 420, as part of the protocol exchange, the client 102 may receive a plurality of responses to the request from the one or more data storage resource providers, the responses respectively including one or more allocation options including one or more specifications including a space specification and a quota specification including a quota amount. At block 430, the client 102 may select one of the one or more allocation options. At block 440, the client 102 may register the selected allocation option with the data manager 108. At block 450, the client 102 may perform a read or write operation to a data store managed by at least one of the data storage resource providers according to the registered allocation options.

In more detail, at block 410, the client 102 may transmit the request 212A to one or more data storage resource providers 106. The request 212A may include a specification 216, an initial quota offer 218, and an option selection preference 220. The specification 216 may include a capacity or space specification, a quality specification, a timing specification, a quota specification, or other specifications (e.g., any of the specifications described herein).

At block 420, the client 102 may receive a plurality of responses 214A to the request from the one or more data storage resource providers 106, the responses 214A including one or more allocation options 226, respectively, the one or more allocation options 226 including one or more specifications 222, the one or more specifications 222 including a space specification and a quota specification including a quota amount. For example, the client 102 may receive the response 214A directly from the data storage resource provider 106, or may receive the response 214A via the transaction server 104.

At block 430, the allocation option manager 206 may select one of the one or more allocation options 226. Allocation manager 206 may select allocation option 226 based on allocation specification 222. In some embodiments, allocation manager 206 selects allocation option 226 (e.g., which meets the minimum space specification), which allocation option 226 has the lowest quota amount of allocation option 226 (e.g., which meets the minimum space specification). In some embodiments, distribution manager 206 may select multiple distribution options to satisfy a provisioning request (e.g., a single provisioning request). Distribution manager 206 may select multiple distribution options 226 to minimize the total quota amount, maximize quality, or balance between the two.

At block 440, the account manager 204 of the client 102 may register the selected allocation option 226 with the data manager 108. The account manager 204 may register the selected allocation option 226 with the data manager 108 either directly or indirectly (e.g., via the transaction server 104). The account manager 204 may register the selected assignment option 226 with the data manager 108 using the GUI. In other embodiments, the data storage resource provider 106 may register the selected allocation option 226 with the data manager 108.

At block 450, the data management system 100 may perform a read or write operation to a data store managed by at least one of the data storage resource providers according to the registered allocation options. For example, the client 102 may transmit read/write requests to storage nodes managed by the data storage resource provider 106. Such access to the storage node may be according to a specification (e.g., a quality specification or a timing specification) of the selected allocation option 226.

Thus, the data management system 100 may provide decentralized data management in an efficient manner that may take into account some of the complexities discussed herein.

While the present disclosure has been described and illustrated with reference to particular embodiments thereof, such description and illustration are not to be construed in a limiting sense. It will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the true spirit and scope of the disclosure as defined by the appended claims. The description may not necessarily be to scale. Due to manufacturing processes and tolerances, there may be a distinction between artistic reproduction in this disclosure and actual equipment. There may be other embodiments of the disclosure that are not specifically illustrated. The specification and drawings are to be regarded in an illustrative rather than a restrictive sense. Modifications may be made to adapt a particular situation, material, composition of matter, method, or process to the objective, spirit and scope of the present disclosure. All such modifications are intended to fall within the scope of the appended claims. Although the methods disclosed herein have been described with reference to particular operations performed in a particular order, it will be understood that these operations may be combined, sub-divided, or reordered to form an equivalent method without departing from the teachings of the present disclosure. Accordingly, unless specifically indicated herein, the order and grouping of the operations is not a limitation.

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:通信设备和系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!