Energy management at datacenter level with reactive energy limitation
Patent Information
- Application Number
- BR122026014315
- Authority / Receiving Office
- BR · BR
- Patent Type
- Applications
- Publication Date
- 2026-09-15
Smart Images

Figure 00000106_0000 
Figure 00000107_0000 
Figure 00000108_0000
Description
1 / 96 “ENERGY MANAGEMENT AT THE DATACENTER LEVEL WITH REACTIVE POWER LIMITATION SPLIT PATENT APPLICATION BR112025000169-8, of 06 / 13 / 2023 DESCRIPTIVE REPORT REFERENCE TO RELATED REQUESTS
[001] This Application claims priority over the Provisional Application US Patent Application No. 63 / 409,469, filed September 23, 2022, entitled “DATACENTER LEVEL POWER MANAGEMENT WITH REACTIVE POWER CAPPING”, and US Patent Application No. 18 / 202,712, filed May 26, 2023, entitled “DATACENTER LEVEL POWER MANAGEMENT WITH REACTIVE POWER CAPPING”, the disclosures of which are fully incorporated into this Report by reference for all purposes. FIELD OF THE INVENTION
[002] This disclosure generally relates to techniques for managing energy consumption in data centers. Energy limits can be applied at any appropriate level of a power distribution hierarchy. Energy limit values can be identified and distributed. A timer can be set based on a number of factors. While the timer is running, the identification of more advantageous energy limiting solutions can be attempted. If found, the most advantageous energy limiting solution can be implemented. However, if the timer expires and / or a more advantageous energy limiting solution is not found, the previously distributed energy limit values can be... Petition 870260056421, dated 10 / 06 / 2026, page 168 / 320 2 / 96 implemented on the datacenter servers. FUNDAMENTALS
[003] Data centers are configured with a power infrastructure that offers numerous safety features, according to a hierarchical power distribution. Power is supplied from a local power utility and allocated to various data center components, including power distribution units (PDUs) (e.g., transformers, switchboards, busbars, rack PDUs, etc.) and power-consuming devices (e.g., servers, network devices, etc.), according to this power distribution hierarchy. This ensures that the power consumed by all downstream devices adheres to the power limits of each upstream device.When peak demand and power consumption from downstream devices exceed the power limit of an upstream device, a circuit breaker associated with the higher-level device may trip, causing significant disruption at least to downstream devices, resulting in reduced processing capabilities within the data center and a poor user experience. In the worst-case scenario, a tripped circuit breaker can trigger a cascading power failure of other devices within the same or additional data centers as workloads are redistributed in an attempt to recover from the initial power outage.
[004] Due to the disruptive and costly nature and potentially far-reaching effects of exceeding these power limits, previous systems over-provisioned datacenter components, such that each power distribution device received power exceeding the maximum expected power consumption of all downstream devices. Downstream devices were given power limits to restrict and limit operations on each device to ensure that downstream devices adhered to this maximum consumption. Petition 870260056421, dated 10 / 06 / 2026, p. 169 / 320 3 / 96 of expected energy. These energy limits were applied to prevent or correct even momentary excursions above the assigned energy limits. This ensured that, even in the worst-case scenarios where the energy consumption of all downstream devices peaked simultaneously, the maximum expected energy consumption on the upstream device was not exceeded. These techniques aimed to reduce the risk of circuit breaker trips and loss of computing resources. However, these approaches led to unnecessary energy use, allowing the energy allocated to upstream devices to remain underutilized. Furthermore, energy limiting restricts the operations performed on the downstream device and can be visible to customers, which, in turn, can lead to a frustrating user experience.As a result, it is desirable to use power management techniques that minimize the frequency with which operations on downstream devices are restricted, while maintaining a high degree of safety with respect to avoiding power outages. BRIEF SUMMARY
[005] In the following description, for explanatory purposes, several specific details are established in order to provide a complete understanding of the modalities disclosed. It will be evident, however, that modalities can be practiced without these specific details. The figures and description are not intended to be restrictive.
[006] Some embodiments may include a method. The method may comprise identifying, by a power management service, a plurality of components of a power system that are arranged according to a power distribution hierarchy comprising a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the power distribution hierarchy represents a corresponding component of the plurality of Petition 870260056421, dated 10 / 06 / 2026, page 170 / 320 4 / 96 components. A subset of nodes from a first level of the plurality of levels may descend from a particular node of a second level of the plurality of levels that is higher than the first level. A set of lower-level components from the plurality of components that are represented by the subset of nodes from the first level may receive distributed energy through a higher-level component from the plurality of components that is represented by the particular node from the second level. The method may comprise monitoring, by the energy management service, the energy consumption of the set of lower-level components represented by the subset of nodes from the first level. The method may comprise determining, by the energy management service based at least in part on the monitoring, that the energy consumption of the set of lower-level components has violated a budget limit associated with the higher-level component.The method may comprise, in response to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component, transmitting a power limit value to a lower-level component. In some embodiments, the transmission of the power limit value causes the lower-level component to store the power limit value in memory while allowing a corresponding power consumption of the lower-level component to exceed the power limit value, until a time period corresponding to a timeout value expires.
[007] Some embodiments may include a second method. The second method may comprise identifying, by a power management service, a plurality of components of a power system that are arranged according to a power distribution hierarchy comprising a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the power distribution hierarchy represents a component. Petition 870260056421, dated 10 / 06 / 2026, page 171 / 320 5 / 96 corresponding to the plurality of components. A subset of nodes from a first level of the plurality of levels can descend from a particular node of a second level of the plurality of levels that is higher than the first level. A set of lower-level components of the plurality of components that are represented by the subset of nodes of the first level can receive distributed energy through a higher-level component of the plurality of components that is represented by the particular node of the second level. The second method may comprise monitoring, by the energy management service, the energy consumption of the set of lower-level components represented by the subset of nodes of the first level.The second method may involve determining, through the power management service based at least in part on monitoring, that the power consumption of the lower-level component set has exceeded a budget limit associated with the higher-level component. The second method may involve, in response to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component, initiating a timer corresponding to a timing value. In some embodiments, the timer's expiration indicates the expiration of a time period corresponding to the timing value. In some embodiments, a lower-level component of the lower-level component set stores a power limit value in memory during the time period.In some modes, the application of the energy limit value to the lower-level component is delayed until the timer expires.
[008] Computer systems, devices, and media are disclosed, each of which may comprise one or more memories in which instructions corresponding to the methods disclosed in this Report may be stored. The instructions may be executed by one or more processors of the disclosed systems and devices to execute the methods disclosed in this Report. For Petition 870260056421, dated 10 / 06 / 2026, page 172 / 320 6 / 96 that one or more computer programs are configured to perform particular operations or actions means that one or more programs include instructions that, when executed by the data processing apparatus, cause the apparatus to perform the operations or actions. BRIEF DESCRIPTION OF THE DRAWINGS
[009] FIG. 1 represents an exemplary environment that houses a variety of components, according to at least one modality.
[010] FIG. 2 shows a simplified diagram of an exemplary power distribution infrastructure including a variety of datacenter components, according to at least one embodiment.
[011] FIG. 3 illustrates an example of an energy distribution hierarchy corresponding to the arrangement of the components in FIG. 2, according to at least one modality.
[012] FIG. 4 illustrates an example of a power management system for managing the allocation and consumption of energy across data center components, according to at least one modality.
[013] FIG. 5 is a flow diagram that illustrates an exemplary method for managing excessive energy consumption, according to at least one modality.
[014] FIG. 6 illustrates a flow representing an exemplary method for training a machine learning model to determine the probability that the aggregate energy consumption of downstream devices exceeds a corresponding budget limit for an upstream device, according to at least one embodiment;
[015] FIG. 7 is a block diagram illustrating an exemplary method for managing energy, according to at least one Petition 870260056421, dated 10 / 06 / 2026, page 173 / 320 7 / 96 modality;
[016] FIG. 8 is a block diagram that illustrates another exemplary method for managing energy, according to at least one modality;
[017] FIG. 9 is a block diagram that illustrates a pattern for implementing a cloud infrastructure as a system of service, according to at least one embodiment.
[018] FIG. 10 is a block diagram that illustrates another pattern for implementing a cloud infrastructure as a system of service, according to at least one modality.
[019] FIG. 11 is a block diagram that illustrates another pattern for implementing a cloud infrastructure as a system of service, according to at least one modality.
[020] FIG. 12 is a block diagram that illustrates another pattern for implementing a cloud infrastructure as a system of service, according to at least one modality.
[021] FIG. 13 is a block diagram that illustrates an exemplary computer system, according to at least one embodiment. DETAILED DESCRIPTION
[022] In the following description, several modalities will be described. In the following description, for explanatory purposes, several specific details are established in order to provide a complete understanding of the modalities disclosed. However, it will be evident to a technician in the field that modalities can be practiced without these specific details. Furthermore, well-known characteristics may be omitted or simplified in order not to obscure the modality being described.
[023] This disclosure relates to the management of a power distribution system, such as an infrastructure of Petition 870260056421, dated 10 / 06 / 2026, page 174 / 320 8 / 96 Power distribution within a data center. More specifically, techniques are described to allow components within the data center to safely consume power at a rate that is closer to the maximum capacity / supply of the data center. Conventionally, at least some of a data center's power capacity is left unused due to over-provisioning / over-allocation of power to various power distribution units (e.g., transformers, switchboards, busbars, rack PDUs, etc.) within the power distribution infrastructure. A "power distribution unit" (also referred to as a "power distribution component") refers to any suitable device, component, or structure that is configured to distribute power to other devices or areas."Power overprovisioning," also referred to as "overallocation," refers to a power distribution approach in which power is provisioned / allocated to power distribution units according to a worst-case scenario of power consumption where each power-consuming device in the data center is expected to operate at peak capacity. In this approach, each power distribution unit is allocated enough power to handle the peak consumption of each downstream device, plus some buffer. The power allocated to a power distribution unit may be referred to as its "budgeted power" or "allocated power."
[024] It is desirable to balance power supply and consumption within a data center. When power consumption exceeds the available power supply, balance can be restored by increasing the power supply or reducing the consumption rate. If this balance is not maintained and components attempt to consume more power than is available, circuit breakers may trip, disconnecting the components from the power supply. Disconnected components can cause interruptions in the operations performed by the data center components. For example, a website Petition 870260056421, dated 10 / 06 / 2026, page 175 / 320 9 / 96 hosted on datacenter servers will fail if a tripped circuit breaker disconnects the servers from the datacenter power supply. As a result, various techniques have been employed to prevent circuit breaker tripping.
[025] The balance between a data center's power supply and energy consumption can be managed by maintaining a balance between available supply and demand and / or consumption. Power supply sizing in a data center may not always be feasible because power is often statically allocated in long-term contracts with an electric utility. Although supply may be statically allocated, energy consumption in a data center can vary, sometimes drastically. As a simplistic example, the energy consumption of a server may increase when the number of threads executed by the server's processor increases. The ambient temperature within the data center can affect the energy consumed by the data center's cooling systems. When the cooling system works harder, it consumes more energy as it works to reduce the ambient temperature experienced in the data center.The demand caused by some components in the data center, such as uninterruptible power supplies, power distribution units, cooling systems, or busbars, can be difficult to adjust. However, some components, such as servers or network components, can be more easily restricted.
[026] Many conventional power management approaches utilize power throttling to restrict operations on power-consuming devices (e.g., servers, network devices, etc.) within a data center. When power throttling is used, a power throttling limit can be used to restrict the power consumed by a device. The power throttling limit is used to restrict (e.g., limit) operations on the server to ensure that the server's power consumption does not exceed the power throttling limit. The use of power throttling ensures that the limits of Petition 870260056421, dated 10 / 06 / 2026, page 176 / 320 The 10 / 96 allocated energy of upstream devices is not violated, causing excess provisioned energy in each upstream device to remain unused. These approaches waste valuable energy and limit the density of energy-consuming devices that can be used within the data center. Technical Effect
[027] An efficient energy infrastructure within a data center is necessary to increase provider profit margins, manage scarce energy resources, and make the services provided by the data center more environmentally friendly. A data center that includes components hosting a multi-tenant environment (e.g., a public cloud) may experience higher than average consumption because not all cloud tenants are used simultaneously. To bring energy consumption closer to statically allocated capacity to improve data center efficiency and resource utilization, data center providers may increase servers and / or tenancies so that energy consumption across all power-consuming devices is closer to the data center's allocated energy capacity.However, in some cases, closing the gap between allocated power capacity and power consumption increases the risk of tripping circuit breakers and losing the ability to utilize computing resources. The techniques described in this report minimize the frequency with which operations on downstream devices are restricted, allow these devices to utilize previously unused power, while maintaining a high degree of safety in terms of preventing power outages.
[028] FIG. 1 represents an exemplary environment (e.g., environment 100) including a variety of components, according to at least one embodiment. Environment 100 may include a datacenter 102 which may include a dedicated space that hosts Petition 870260056421, dated 10 / 06 / 2026, p. 177 / 320 11 / 96 any suitable number of servers, such as 104A to P servers (collectively referred to as “104 servers”), and the infrastructure to host these servers, such as network hardware, cooling systems, and storage devices. The network hardware (not represented in this Report) of the 100 data center may allow remote users to interact with the servers over a network (e.g., the Internet). Any suitable number of 104 servers (e.g., 10, 14, 21, 42, etc.) may be housed in various racks, such as 106A to H racks (collectively referred to as “106 racks”). The 106 racks may include a frame or compartment to which corresponding sets of servers are placed and / or mounted.
[029] Various subsets of 106 racks can be organized into groups called “rows” (e.g., rows 108A to D, collectively referred to as “108 rows”). In some implementations, 108 rows may include any suitable number of racks (e.g., 5, 8, 10, up to 10, etc.) that are placed (e.g., within a limiting distance from each other). In other implementations, rows may be an organizational unit, and racks within a given row may be placed in different locations (not necessarily within a limiting distance from each other). As an example, 108 rows may be located in a room (e.g., room 110A, room 110N, etc.). A room (e.g., room 110A) may be a subdivision of a building or a physical enclosure in which any suitable number of 106 racks are placed.In other configurations, a room can be an organizational unit, and rooms can be located in different physical locations, or several rooms can be located in a single subdivision of a building.
[030] FIG. 2 shows a simplified diagram of an exemplary power distribution infrastructure 200 including a variety of components (e.g., datacenter components 102 of FIG. 1), according to at least one embodiment. The power distribution infrastructure 200 can be connected to a Petition 870260056421, dated 10 / 06 / 2026, page 178 / 320 12 / 96 utility power source (not shown) and power may initially be received from one or more uninterruptible power supplies (UPS(s)) 202. In some embodiments, power may be received from the utility, at the UPS(s) via an on-site power substation (not shown) that is configured to establish voltage levels suitable for distributing electricity throughout the data center. The UPS(s) 202 may individually include a specialized battery or generator that provides emergency power if the incoming power source fails. The UPS(s) 202 may monitor the incoming power and provide backup power if an incoming power failure is detected.
[031] The power distribution infrastructure 200 may include any suitable number of intermediate power distribution units (PDU(s)) (e.g., intermediate PDU(s) 204) that connect to and receive power / electricity from the UPS(s) 202. Any suitable number of intermediate PDU(s) 204 may be arranged between a UPS (of UPS(s) 202) and any suitable number of line PDUs (e.g., line PDU 206). A power distribution unit (e.g., intermediate PDU(s) 204, line PDU 206, rack PDU(s) 208, etc.) may be any suitable device that is configured to control and distribute power / electricity. Examples of power distribution units may include, but are not limited to, main switchboards, switchboards, remote power panels, busbars, power strips, transformers, and the like. Power can be supplied to the intermediate PDU(s) 204 of the UPS(s) 202.The intermediate PDU(s) 204 can distribute power to downstream components (e.g., line PDU 206) of the power distribution infrastructure 200.
[032] The power distribution infrastructure 200 may include any suitable number of inline power distribution units (including inline PDUs 206). An inline PDU may include Petition 870260056421, dated 10 / 06 / 2026, page 179 / 320 13 / 96 any suitable PDU (e.g., a remote power panel, a bus / path, etc.) that is disposed between an intermediate PDU (e.g., an intermediate PDU(s) 204) and one or more rack PDUs (e.g., rack PDU 208A, rack PDU 208N, collectively referred to as “rack PDU(s) 208”). A “line PDU” refers to a PDU that is configured to distribute power to one or more lines of devices (e.g., line 210, including servers 212A to D, collectively referred to as “servers 212”). As described above, a line (e.g., line 210) may include any suitable number of racks (e.g., racks 214A to N, collectively referred to as “racks 214”) within which the servers 212 are located.
[033] The power distribution infrastructure 200 may include any suitable number of rack power distribution units (including rack PDU(s) 208). A rack PDU may include any suitable PDU that is disposed between a line PDU (e.g., line PDU 206) and one or more servers (e.g., server 212A, server 212B, etc.) corresponding to a rack (e.g., rack 214A, an example of racks 106 in FIG. 1). A “rack PDU” refers to any suitable PDU that is configured to distribute power to one or more servers within a rack. The rack (e.g., rack 214A) can include any suitable number of 212 servers. In some embodiments, the 208 rack PDU(s) may include intelligent PDUs that are additionally configured to monitor, manage, and control consumption across multiple devices (e.g., rack PDU 208A, server 212A, server 212B, etc.).
[034] Servers 212 (each an example of servers 104 in FIG. 1) may individually include a power controller (power controller(s) 216A to D, collectively referred to as “power controllers 216”)). A power controller refers to any suitable hardware or software component operating in a device (e.g., a server) that is configured to Petition 870260056421, dated 10 / 06 / 2026, pages 180 / 320 14 / 96 monitor and / or manage power consumption on the device. 216 power controllers can individually monitor the power consumption of a respective server on which they operate. Each 216 power controller can be configured to enforce power limit caps to restrict power consumption on a respective server. The application of power limit caps can include any suitable combination of: monitoring power consumption on the server, determining whether to restrict (e.g., limit, restrict, etc.) power consumption on the server (e.g., based at least in part on a comparison between the server's current consumption and a stored power limit cap), and limiting / restricting power consumption on the server (e.g., using processor and memory dynamic voltage and frequency scaling to suppress server power consumption).Imposing energy limit restrictions can be referred to as "energy limitation".
[035] Datacenter 102 of FIG. 1 may include several components represented in the power distribution infrastructure 200. For example, room 110A may include one or more bus lanes (each an example of PDU line 206). A bus lane (also referred to as a “busway”) refers to a duct of conductive material that can distribute power (e.g., within room 110A). A bus lane may receive power from a power distribution unit of the intermediate PDU(s) 204 and supply power to one or more racks (e.g., rack 106A of FIG. 1, rack 106B of FIG. 1, etc.) associated with a line (e.g., line 108A of FIG. 1). Each power infrastructure component that distributes / supplies power to other components also consumes a portion of the power passing through it.This loss can be caused by heat loss from the energy flowing through the component or by energy directly consumed by the component (for example, energy consumed by a processor in a rack PDU). Petition 870260056421, dated 10 / 06 / 2026, pp. 181 / 320 15 / 96
[036]
[0001] FIG. 3 illustrates an example of a 300 power distribution hierarchy corresponding to an arrangement of the components of FIG. 2, according to at least one embodiment. The 300 power distribution hierarchy may represent an arrangement of any suitable number of components of a power system, such as the power distribution infrastructure components discussed in connection with the 200 power distribution infrastructure of FIG. 2. The 300 power distribution hierarchy may include any suitable number of nodes arranged according to any suitable number of levels. Each level may include one or more nodes. A root level (e.g., level 5) may include a single root node of the 300 power distribution hierarchy. Each node of the 300 power distribution hierarchy may represent a corresponding component of the 200 power distribution infrastructure.A set of one or more nodes at a given level can descend from a particular node corresponding to a higher level in the 300 energy distribution hierarchy. A set of lower-level components that are represented by lower-level nodes (e.g., level 1) can receive distributed energy through a higher-level component represented by a level 2 node (e.g., a component that is upstream of the lower-level components), which in turn receives energy from a higher-level component represented by a level 3 node, which receives energy from a higher-level component represented by a level 4 node. In some embodiments, each component of the energy system receives energy that is initially distributed through a component corresponding to a level 5 node (e.g., node 302, a root node) (e.g., the highest level in the 300 energy distribution hierarchy).Node 302 can receive power from a public utility power source (e.g., a local electric utility system).
[037] As represented, the energy distribution hierarchy 300 includes node 302 of level 5. In some modes, node 302 may Petition 870260056421, dated 10 / 06 / 2026, p. 182 / 320 Figure 2, number 16 / 96, represents an uninterruptible power supply (UPS) 202. The component corresponding to node 302 can distribute / supply power to a component corresponding to node 304 at level 4. A component (e.g., a lower-level component) that receives power from a higher-level component (a component represented by a node at a higher level in the power distribution hierarchy 300 than the level of the node representing the lower-level component) can be considered subordinate to the higher-level component. In some embodiments, node 304 can represent a component, such as one of the intermediate PDUs 204 in Figure 2 (e.g., a distribution board), that is subordinate to the UPS represented by node 302. The component represented by node 304 can be configured to distribute / supply power to the components respectively represented by nodes 306 and 308.
[038] Level 3 nodes 306 and 308 can each represent a respective component (e.g., respective PDU line(s)) of FIG. 2. The component corresponding to node 306 (e.g., PDU line 206, a busbar) can distribute / supply power to a component corresponding to node 310 (e.g., rack PDU 208A of FIG. 2) and a component corresponding to node 312 (e.g., rack PDU 208N of FIG. 2). A component corresponding to node 310 (e.g., rack PDU 208A) can distribute / supply power to the components corresponding to nodes 314 and 316 of level 1 (respectively representing servers 212A and 212B in FIG. 2), which can be monitored / managed by a component of servers 212A and 212B, such as power controllers 216A and 216B. The components corresponding to nodes 314 and 316 can be located in the same rack.
[039] A component corresponding to node 312 (e.g., rack PDU 208A) can distribute / provide power to a component corresponding to node 318 of level 1 (e.g., server 214C of FIG. 2 including power controller 216C). Nodes 314, 316, and 318 of Petition 870260056421, dated 10 / 06 / 2026, pp. 183 / 320 17 / 96 level 1 can be arranged and / or associated on the same line (for example, line 210 of FIG. 2).
[040] Returning to node 308 of level 3, node 308 (for example, a A different line PDU (a remote power panel, for example) can distribute / supply power to a component corresponding to node 310 (e.g., rack PDU 208A in FIG. 2) and a component corresponding to node 312 (e.g., rack PDU 208N in FIG. 2). A component corresponding to node 320 (e.g., a rack PDU) can distribute / supply power to the components corresponding to nodes 322 and 326 of level 1 (e.g., corresponding to the respective servers including their respective power controllers). The components corresponding to nodes 324 and 326 can be arranged in the same rack. A component corresponding to node 322 (e.g., another rack PDU) can distribute / supply power to the components corresponding to nodes 328 and 330 of level 1 (e.g., corresponding to the respective servers including their respective power controllers). The components corresponding to nodes 328 and 330 can be arranged in the same rack.
[041] The particular number of components (e.g., corresponding to level 1 nodes) receiving distributed power from a higher-level component (e.g., corresponding to a level 2 node) may vary from the number shown in FIG. 3. The particular number of levels within a power distribution hierarchy may vary depending on the particular arrangement of components used in a given data center. It is contemplated that each non-root level (e.g., in the example of FIG. 3, levels 1 to 4) may include a different number of nodes representing a different number of components than the number of nodes represented in each non-root level of FIG. 3. The nodes may be arranged in a different, but similar, configuration to that represented in FIG. 3.
[042] FIG. 4 illustrates an example of a 400 energy management system (“system 400”, for brevity) for managing the allocation and Petition 870260056421, dated 10 / 06 / 2026, page 184 / 320 18 / 96 energy consumption through datacenter components, according to at least one modality. Energy allocation may refer to a process of assigning a budgeted amount of energy (e.g., an expected amount of load / energy consumption) to any suitable component. System 400 may include PDU(s) 402, device(s) 404, and service provider computer(s) 406. PDU(s) 402 may be examples of any suitable power distribution unit discussed above in connection with FIG. 2 (e.g., UPS(s) 202, intermediate PDU(s) 204, line PDU 206, rack PDU(s) 208, etc.). By way of example, PDU(s) 402 may be examples of rack PDU(s) 208 from FIG. 2. Device(s) 404 may be examples of servers and / or network devices to which PDU(s) 402 distribute(s) power.
[043] The PDU(s) 402, the device(s) 404 and the service provider computer(s) 406 may communicate through one or more wired or wireless networks (e.g., network(s) 808). In some embodiments, the network(s) 408 may include any one or a combination of many different types of networks, such as cable networks, the Internet, wireless networks, cellular networks and other private and / or public networks.
[044] The 404 device(s) may be any suitable type of computing device, such as, but not limited to, a server device, a network device, or any suitable device within a data center. In some embodiments, the 402 PDU(s) and the 404 device(s) are arranged in a power distribution hierarchy, such as the 300 power distribution hierarchy discussed in connection with FIG. 3. In some embodiments, the 404 device(s) may correspond to and be represented by the level 1 nodes of the 300 power distribution hierarchy. The 402 PDU(s) may correspond to and be represented by higher-level nodes of the power distribution hierarchy (e.g., level 2 nodes). Petition 870260056421, dated 10 / 06 / 2026, pp. 185 / 320 19 / 96
[045] Each of the PDUs 402, device(s) 404 and service provider computer(s) 406 may include at least one memory (for example, memory 410, memory 412 and memory 414, respectively) and one or more processing units (for example, processor(s) 416, processor(s) 418 and processor(s) 420, respectively). Processor(s) 416 to 420 may be implemented as appropriate in hardware, computer executable instructions, firmware or combinations thereof. Computer executable instructions or firmware implementations of processor(s) 416 to 420 may include computer executable or machine executable instructions written in any programming language suitable for performing the various functions described.
[046] Memories 410 to 414 may store program instructions that are loadable and executable in the respective processor(s) of the given device, as well as data generated during the execution of these programs. Depending on the exact configuration and type of computing device, memory 704 may be volatile (such as random access memory (RAM)), non-volatile (such as read-only memory (ROM), flash memory, etc.) or some combination of the two. PDU(s) 402, device(s) 404 and service provider(s) 406 may also include additional removable storage and / or non-removable storage including, but not limited to, magnetic storage, optical disks and / or tape storage. Computer-readable storage units and associated storage devices provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for the computing device 1000.In some implementations, the 410 to 414 memories may individually include several different types of memory, such as static random access memory (SRAM), dynamic random access memory (DRAM), or ROM.
[047] Returning to the contents of memories 410 to 414 in more detail, memories 410 to 414 may include an operating system. Petition 870260056421, dated 10 / 06 / 2026, page 186 / 320 20 / 96 (for example, operating system 422, operating system 424, and operating system 426, respectively), one or more data stores (for example, data store(s) 428, data store(s) 430, and data store(s) 432, respectively), and one or more application programs, modules, or services.
[048] PDU(s) 402, device(s) 404, and service provider computer(s) 406 may include communication connection(s) (for example, communication connection(s) 434, communication connection(s) 436, and communication connection(s) 438, respectively) that allow PDU(s) 402, device(s) 404, and service provider computer(s) 406 to communicate with each other through network(s) 408. PDU(s) 402, device(s) 404, and service provider computer(s) 406 may also include I / O device(s) (for example, I / O service device(s) 440, device(s) of I / O 442 and I / O device(s) 444, respectively), such as a keyboard, a mouse, a pen, a voice input device, a touch input device, a display, speakers, a printer, etc. In some embodiments, the service provider computer(s) 406 may be one of the device(s) 404.
[049] Any suitable combination of 404 device(s) (e.g., 104 servers of FIG. 1, 214 servers of FIG. 2, etc.) may include a corresponding power controller (e.g., 446 power controller). The 446 power controller may be an example of the 216 power controllers of FIG. 2. The 446 power controller may be any suitable hardware or software component operating in a device (e.g., a server) that is configured to monitor and / or manage the power consumption in the device. The 446 power controller may individually monitor the power consumption of the respective device in which it operates. The 446 power controllers may each be configured to enforce power limit caps to restrict power consumption. Petition 870260056421, dated 10 / 06 / 2026, page 187 / 320 21 / 96 in the respective device. The application of power limit limits may include monitoring the power consumption in the device, determining whether to restrict (e.g., limit, restrict, etc.) the power consumption in the device (e.g., based at least in part on a comparison between the device's current consumption and a stored power limit limit), and limiting / restricting the power consumption in the device (e.g., using dynamic voltage and / or frequency scaling with processor(s) 418 and / or memory 412 to suppress power consumption in the device). Any appropriate operation associated with the power limit may be implemented by the power controller 446.
[050] In some embodiments, the 446 power controller can communicate via direct connection (e.g., via cable) and / or via network(s) 408 with the 448 power controller. The 446 power controller can provide power consumption data indicating the current power consumption of the device (e.g., a cumulative power consumption over a period of time, a current rate of power consumption, etc.). The power consumption data can be provided to the 448 power controller at any frequency, periodicity, or according to a predefined schedule or event (e.g., upon violating a predefined consumption limit, after a limit amount of change in a consumption rate, upon determining that one or more predefined conditions are met, upon determining a thermal attribute of the device, or similar).
[051] In some embodiments, the 446 power controller may receive a power limit value (also referred to as a “power limit”) from the 448 power controller. In some embodiments, additional data may be provided with the power limit value. For example, an indicator may be included with the power limit value that indicates whether the power limit value should be applied immediately. In some embodiments, a received power limit may be applied / enforced immediately by default. In Petition 870260056421, dated 10 / 06 / 2026, pp. 188 / 320 In 22 / 96 other modes, a received energy limit may not be applied / enforced immediately by default.
[052] When applying / imposing a power limit, the 446 power controller can monitor the power consumption on the device. This may include using measuring devices (e.g., 442 I / O device examples) or software to identify / calculate power consumption data for the device (e.g., cumulative power consumption over a period of time, a current rate of power consumption, a current change in the rate of power consumption over a time window, etc.). As part of applying / imposing a power limit (also referred to as a “power limit”), the 446 power controller can determine whether to restrict (e.g., limit, restrict, etc.) the power consumption on the device (e.g., based at least in part on comparing the device's current consumption rate and a stored power limit value).By restricting power consumption on the device, the 446 power controller can limit / restrict power consumption on the device (for example, by using dynamic voltage and frequency scaling with processor(s) 418 and / or memory 412 to suppress power consumption on the device). In some embodiments, the 446 power controller can execute instructions to limit / restrict the device's power consumption when the device's current consumption data (for example, a cumulative consumption amount, a consumption rate over a time window, etc.) approaches the power limit value being applied (for example, violates a limit that is less than the power limit value).By restricting / limiting the device's power consumption (also referred to as "throttling"), the 446 power controller ensures that the device's power consumption remains below the power consumption indicated by the power limit value.
[053] In some embodiments, the power controllers of the 404 device(s) can be configured to allow the Petition 870260056421, dated 10 / 06 / 2026, pp. 189 / 320 23 / 96 device(s) 404 operate without restrictions (e.g., without restriction based on power consumption and a power limit) until instructed to apply / enforce a power limit by the power controller 448. In some embodiments, the power controller 446 may receive a power limit value that may or may not be subsequently instructed to apply, but, when received, the power limit value may be stored in memory 412 without being used for power management in the device. Therefore, in some embodiments, the power controller 446 may refrain from initiating power limiting operations (e.g., the comparisons and determinations described above) until instructed to do so (e.g., via an indicator provided by the power controller 448).The indication to initiate the application of a power limit may be received with the power limit value or may be received as a separate communication from the 448 power controller.
[054] According to the power distribution hierarchy 300, each power controller of the PDU(s) 402 (e.g., power controller 448) can be configured to distribute, manage, and monitor power in relation to any suitable number of device(s) 404 (e.g., a server rack including servers 212A and 212B as shown in FIG. 2). In some embodiments, the power controller 448 can be an agent or computer program installed on a given PDU (e.g., rack PDU 208A of FIG. 2). The power controller 448 can be configured to obtain power consumption data from the device(s) 404 corresponding to the related devices (e.g., the devices for which the given remote PDU 448 operation controller is configured to distribute, manage, or monitor power).The 448 energy controller can receive consumption data according to a predefined frequency, periodicity, or schedule implemented by the 446 energy controller, and / or the 448 energy controller can receive consumption data in... Petition 870260056421, dated 10 / 06 / 2026, pages 190 / 320 24 / 96 response to the request for consumption data from the 446 energy controller. The 448 energy controller can be configured to request consumption data from the 446 energy controller according to a predefined frequency, periodicity, or schedule implemented by the 448 energy controller.
[055] The energy controller 448 can transmit received consumption data to the energy management service 450 implemented by the service provider computer(s) 406 at any suitable time, according to any suitable frequency, periodicity or schedule, or as a result of one or more predefined conditions being met (for example, a change in an individual / cumulative / collective consumption rate of the device(s) 404 violates a limit). In some embodiments, the energy controller 448 can aggregate the consumption data received from the device(s) 404 (for example, through the energy controller 446 of each device) before transmitting the aggregated consumption data to the energy management service 450. In some embodiments, consumption data can be aggregated by device or across all devices 404.
[056] The 448 power controller can receive at any suitable time one or more power limit values corresponding to the 404 device(s). These power limit values can be calculated by the 450 power management service. These calculations will be discussed in more detail in relation to FIG. 5. In some embodiments, the 448 power controller can receive a timing value with the power limit value indicating a duration to be used for a timer. The 448 power controller can be configured to generate and start a timer with an associated duration / time period corresponding to the timing value. After the timer expires indicating the time period corresponding to the elapsed time, the 448 power controller can transmit data to one or more devices. Petition 870260056421, dated 10 / 06 / 2026, pp. 191 / 320 25 / 96 including an indicator or other suitable data that instructs one or more devices to proceed with power limiting using the power limit value previously stored in each device. In some embodiments, the power limit value may be provided with the indicator. In other embodiments, the power limit value may be provided by power controller 448 to the power controllers of the devices (e.g., power controller 446) immediately after receiving the power limit value(s) from the power management service 450. Thus, in some embodiments, the power limit values may be transmitted by power controller 448 to power controller 446, stored in memory 412, but not enforced by power controller 446 until power controller 446 receives subsequent data from power controller 448 instructing power controller 446 to initiate power limiting.
[057]
[0002] The service provider computer(s) 406, possibly arranged in a server cluster or as a server farm, may implement the power management service 450. In some embodiments, the functionality described in connection with the service provider computer(s) 406, including the functionality described in connection with the power management service 450, is performed by one or more virtual machines that are deployed in a hosted computing environment (for example, on device(s) 404, corresponding to any suitable number of servers 104 in FIG. 1). The hosted computing environment may include one or more rapidly provisioned and released computing resources, which computing resources may include computing, networking, and / or storage devices. A hosted computing environment may also be referred to as a cloud computing environment.Several illustrative cloud computing environments are provided and discussed below in more detail in relation to FIGS. 10 to 14. Petition 870260056421, dated 10 / 06 / 2026, pp. 192 / 320 26 / 96
[058] The 450 power management service can be configured to receive consumption data from the 402 PDU(s) (e.g., from the 448 power controller). As described above, consumption data can be aggregated or cumulative for one or more devices. As a non-limiting example, a consumption data instance received by the 450 power management service might include cumulative / aggregated consumption data for each device related to (e.g., managed by) a given PDU. For example, the PDU providing the consumption data might be a rack PDU, and the consumption data provided by this PDU might include cumulative / aggregated and / or individual consumption data values for each device in the rack. In some embodiments, the cumulative / aggregated consumption data values might additionally include PDU power consumption.The 450 energy management service, based on this consumption data, can access individual and / or aggregated or cumulative energy consumption data relating to individual devices or to all devices to which this instance of consumption data refers. The 450 energy management service can be configured to perform any appropriate operation (e.g., aggregating consumption data, calculating energy limit values, calculating time values, determining budgeted energy, identifying whether the energy limit is necessary (e.g., when aggregate consumption violates / is likely to violate budgeted energy, etc.)) based, at least in part, on data representing the 300 energy distribution hierarchy and / or any appropriate configuration data identifying the arrangement of components within the datacenter (e.g., indicating which devices distribute power to which devices).For example, the configuration data may include data representing the 300 power distribution hierarchy.
[059] The 450 energy management service can calculate Petition 870260056421, dated 10 / 06 / 2026, pp. 193 / 320 27 / 96 Aggregate / Cumulative Consumption Data to identify aggregate / cumulative consumption data relating to one or more devices at a higher level of the power distribution hierarchy 300. For example, the power management service 450 can use consumption data provided by one or more rack PDUs and calculate aggregate / cumulative consumption data for a line device. For example, consumption data corresponding to devices represented by level 1 nodes in FIG. 3 that share a common set of nodes up to level 3 of the hierarchy. In this case, the common level 3 nodes represent a line PDU, such as a busbar.In some embodiments, consumption data indicating the power consumption of one or more rack PDUs (e.g., component examples corresponding to level 2 of the 300 power distribution hierarchy) may be included in the consumption data provided to the 450 power management service. The consumption data provided by the rack PDUs may be provided according to any suitable frequency, periodicity, or schedule, or in response to a request transmitted by the 450 power management service. The 450 power management service may obtain consumption data relating to any suitable number of 404 device(s) and / or rack of 404 device(s) and may aggregate or calculate any suitable consumption data corresponding to any suitable number of components represented by any suitable node and / or level of the 300 power distribution hierarchy.
[060] The 450 power management service can be configured to calculate one or more power limits (e.g., power limit values for one or more servers for which power is distributed by a higher-level device (e.g., in this example, a line-level device) based at least in part on allocated power values (e.g., a budgeted amount of power) for this higher-level component. The higher-level component can correspond to any suitable level (e.g., Petition 870260056421, dated 10 / 06 / 2026, pp. 194 / 320 28 / 96 example, levels 2 to 5) of the 300 power distribution hierarchy different from the lowest level (e.g., level 1). By way of example, the 450 power management service can calculate power limit values for servers for which power is distributed by a given line device (e.g., a bus). These calculations can be based on consumption data provided by the rack PDUs for which power is distributed by the line device. In some embodiments, the 450 power management service can store consumption data for later use. The 450 power management service can use historical consumption data when calculating these power limit values.In some embodiments, the 450 energy management service can obtain, utilize, and / or train one or more machine learning models to identify, from historical consumption data, specific energy threshold values for one or more 404 devices (e.g., components corresponding to level 1 of the energy distribution hierarchy). These techniques are discussed in more detail in relation to FIG. 7.
[061] The 450 power management service can calculate a timing value for a timer (for example, a timer that can be started and managed by the 402 PDU(s)). The timing value can be calculated based, at least in part, on any suitable combination of: a rate of change in the power consumption of a higher-level component, a direction of change (increasing / decreasing) of the power consumption of the higher-level component, a peak power tolerance of the higher-level component and / or the 400 system as a whole, or a runtime associated with lower-level devices (for example, a presumed / known delay between when each of the 404 devices is instructed to apply power limit values and when each of the 404 devices will be actively applying the limit (for example, a first time the power consumption on this device is Petition 870260056421, dated 10 / 06 / 2026, pp. 195 / 320 29 / 96 restricted / limited, or at least a determination is made as to whether it should be restricted / limited).
[062] The 450 power management service can communicate calculated timing values for the 402 PDU(s) at any appropriate time. In some embodiments, the 450 power management service can initially determine power limits for a given higher-level component (e.g., a line component) without taking into account the consumption that occurs relative to other components of the same level (e.g., other line components). In some embodiments, while the timer is being initialized or running, or at any appropriate time, the 450 power management service can process consumption data corresponding to other components of the same level to determine whether limiting the power downstream of one or more of these components of the same level is more desirable.In some modes, the 450 power management service may use a priority associated with the 404 device(s) and / or the workloads running on those devices to determine power limit values. The 450 power management service can be configured to favor device(s) / workload(s) with lower power limit priority while leaving device(s) / workload(s) with higher priority values unrestricted. In some modes, the 450 power management service can be configured to favor power limiting of a set of higher-consumption devices (e.g., through a line, through lines, etc.), while allowing lower-consumption devices to operate unrestricted.In some modes, the particular power consumption of a device, even if the device is included in the set of devices with the highest power consumption, can be left unrestricted if the priority associated with this device and / or workload is high (or higher than the priorities associated with other devices and / or workloads). Then the management service... Petition 870260056421, dated 10 / 06 / 2026, pp. 196 / 320 30 / 96 of energy 450 can be configured to prioritize the device / workload priority over the power consumption of that specific device.
[063] In some embodiments, the energy limit values may be initially determined by the energy management service for a given line. These energy limit values may be provided to the energy controller 448 which, in turn, may distribute the energy limit values to the energy controller 446 for storage in the device(s) 404. The energy management service 450 may process consumption data in relation to other line devices on the same line to determine energy limit values for devices corresponding to different lines. This may be advantageous, since devices managed by another line may not be consuming their budgeted energy, leaving some amount of unused energy in this line-level device.In some embodiments, the 450 power management service can be configured to determine whether limiting the power of devices on one line, while allowing at least some devices on another line to operate without restrictions, might be more advantageous. Determining a benefit for a set of power limit values can be based, at least in part, on minimizing the number of devices to be power-limited, minimizing the priority values associated with devices to be power-limited, maximizing the number of devices associated with specific high-priority values that will not be power-limited, and the like.The 450 energy management service can use a predefined protocol (e.g., a set of rules) to determine whether applying the energy limit values you have already submitted to a PDU is more or less advantageous / beneficial than different energy limit values you have identified based on processing consumption data from multiple PDUs associated with one or more other lines. Petition 870260056421, dated 10 / 06 / 2026, pp. 197 / 320 31 / 96
[064] The 450 power management service can be configured to enact the application of the set of power limit values that are determined to be most advantageous to ensure that one or more circuit breakers within the data center do not trip. In some embodiments, a set of power limit values that are determined to be most advantageous can be selected. If the set of power limits previously provided to the 448 power controller is not determined to be most advantageous, the 450 power management service can transmit data to the 448 power controller to cause the 448 power controller to transmit the indicator to the 404 device(s) (e.g., 446 power controller) to initiate power limiting based on the previously distributed power limits.Alternatively, if the 450 power management service determines that the new set of power limits is more (or more) advantageous from a power management perspective, it may transmit data to the 448 power controller to cancel the timer. In some embodiments, canceling the timer may cause previously distributed power limits to be deleted by instruction from the 448 power controller (e.g., transmitted in response to the timer cancellation), or these power limits may expire by default (e.g., according to a predefined time period). The 450 power management service may transmit the new power limits to the appropriate PDUs (which may include or exclude the same PDU to which the previous set of power limits was transmitted) with an indication that the power limits should be immediately applied by the corresponding devices.These PDUs can transmit these power limits with an instruction to the receiving device to immediately initiate power limiting operations (e.g., including monitoring consumption relative to the power limit value, determining whether to limit based on the power limit value and the device's current consumption, and limiting or allowing). Petition 870260056421, dated 10 / 06 / 2026, pp. 198 / 320 32 / 96 unrestricted device operations based on the determination).
[065] In some embodiments, if the timer expires on the original PDU (for example, a time period corresponding to the timing value elapses) and a cancellation from the power management system 450 has not been received, the power controller 448 may automatically instruct the device(s) 404 to initiate power limiting operations with the stored power limit values. This technique provides fail-safe protection in case, for any reason, the power management service 450 fails to instruct the PDU or cancel the timer.
[066] The techniques described above allow more lower-level devices to operate without restrictions, minimizing the number and / or frequency at which the energy consumption of these devices is limited. Furthermore, downstream devices in the hierarchy for a given device can be allowed to peak after the device's budgeted energy, while still ensuring that the device's maximum energy capacity (a value higher than the budgeted value) is not exceeded. This allows the consumption of lower-level devices to keep the consumption levels in the higher-level device operating within the energy buffer that conventional systems leave unused. The system and techniques described allow for more efficient use of the 400 system's power distribution components and reduce waste, ensuring that power outages are avoided.
[067] FIG. 5 is a flow diagram illustrating an exemplary 500 method for managing excessive energy consumption, according to at least one embodiment. The 500 method may include more or fewer operations than those represented or described in relation to FIG. 5. The operations may be performed in any appropriate order.
[068] Method 500 can start at 510, where consumption data can be received and / or obtained (e.g., on request) by PDU 504 from device(s) 502. Device(s) 502 can be Petition 870260056421, dated 10 / 06 / 2026, pp. 199 / 320 33 / 96 examples of device(s) 404 in FIG. 4 (e.g., a number of servers) can be arranged within a standard server rack (or at least configured to receive power from PDU 504). PDU 504 is an example of PDU(s) 402 in FIG. 4 (e.g., rack PDU 208A in FIG. 2). Each of the devices 502 can be a device to which PDU 504 distributes power. PDU(s) 508 may be examples of other rack PDUs associated with the same line as PDU 504 and thus receive power from the same line PDU (e.g., line PDU 206 in FIG. 2, corresponding to node 306 in FIG. 3) as PDU 504. The power consumption received from PDU(s) 508 may correspond to the power consumption of device(s) 512. In some embodiments, at least some parts of PDU(s) 508 and device(s) 512 correspond to a line that is different from the line corresponding to device(s) 502.In some embodiments, any suitable number of consumption data instances (referred to as “device consumption data”) received by PDU 504 may refer to a single device(s) of device(s) 502. The same may be true for device consumption data received by PDU(s) 508. In some embodiments, PDU 504 and PDU(s) 508 may aggregate and / or perform calculations from the received device consumption data instances to generate rack consumption data corresponding to each respective PDU. For example, PDU 505 can generate rack consumption data from device consumption data provided by device(s) 502. The rack consumption data may include instances of device consumption data received by PDU 504 in 510. Similarly, the rack consumption data provided by PDU(s) 508 may include instances of device consumption received from device(s) 512.The rack power consumption data generated by PDU 504 and / or PDU(s) 508 may be generated based, at least in part, on the power consumption of PDU 504 and / or PDU(s) 508, respectively.
[069] In 514, the energy management service 506 (a Petition 870260056421, dated 10 / 06 / 2026, pages 200 / 320 Example 450 of power management service 34 / 96 of FIG. 4) can receive and / or obtain (e.g., via request) rack consumption data from any suitable combination of PDU 504 and PDU(s) 508 (also examples of PDU(s) 402 of FIG. 4), not necessarily at the same time. In some embodiments, power management service 506 can receive / obtain rack consumption data from PDUs 504 and PDU(s) 508 on a continuous basis. PDU 504 and PDU(s) 508 can also receive and / or obtain (e.g., via request) device consumption data from device(s) 502 and 512, respectively (e.g., from the corresponding power controllers of those devices, each power controller being an example of power controller 446 of FIG. 4). PDU(s) 508 may correspond to PDUs associated with the same row as PDU 504.
[070] In 516, the 506 power management service can determine whether to calculate power limit values for the 502 device(s) based, at least in part, on maximum and / or budgeted power amounts associated with another PDU (e.g., a line-level device not shown in FIG. 5, such as a busbar) and consumption data received from PDU 504 and / or PDU(s) 508. In some embodiments, the 506 power management service can access these maximum and / or budgeted power amounts associated with, for example, a line-level PDU (e.g., line PDU 206 of FIG. 2, not shown in this Report), from stored data, or the maximum and / or budgeted amounts can be received by the 506 power management service at any appropriate time from the PDU (the line-level PDU) to which the maximum and / or budgeted power amounts apply. They are referring to.The 506 power management service can aggregate rack consumption data from PDU 504 and / or PDU(s) 508 to determine a cumulative power consumption value relative to the line-level device (e.g., total power consumption of devices downstream of the line-level device within a last time window, e.g. Petition 870260056421, dated 10 / 06 / 2026, pages 201 / 320 35 / 96 change in consumption rate from the perspective of the line-level device, a direction of change in consumption rate from the perspective of the line-level device, a period of time required to initiate the power limit on one or more of the 502 and / or 512 devices, or similar). In some embodiments, the 506 power management service may generate additional cumulative power consumption data from at least some portion of the cumulative power consumption data values and / or using historical device consumption data (e.g., cumulative or individual consumption data).For example, the 506 energy management service can calculate any suitable combination of: a change in the consumption rate from the line-level device perspective, a direction of change in the consumption rate from the line-level device perspective, or similar, based at least in part on historical consumption data (e.g., historical device consumption data and / or historical rack consumption data corresponding to the 502 and / or 512 device(s)).
[071] The 506 power management service may determine that power limit values should be calculated if the cumulative power consumption (e.g., power consumption corresponding to devices 502 and 512) exceeds a budgeted amount of power associated with the line-level PDU. If the cumulative power consumption does not exceed the budget value associated with the line-level PDU, the 506 power management service may determine that power limits should not be calculated and method 500 may be completed. Alternatively, the power management service may determine that power limits should be calculated due to the cumulative power consumption of downstream devices (e.g., device(s) 502 and 512) exceeding the budget value associated with the line-level PDU and may proceed to 518.
[072] In some embodiments, the 506 energy management service may additionally or alternatively determine that the Petition 870260056421, dated 10 / 06 / 2026, pp. 202 / 320 36 / 96 energy limit values should be calculated in 516 based, at least in part, on the provision of historical consumption data (e.g., device consumption data and / or rack consumption data corresponding to device(s) 502 and / or 512) as input data for one or more machine learning models. The machine learning model(s) may be trained using any suitable supervised or unsupervised machine learning algorithms to identify, from historical consumption data provided as input, a probability that the consumption corresponding to the devices associated with the historical consumption data will exceed a budgeted amount (e.g., a budgeted amount of energy allocated to a line-level device).The machine learning model(s) can be trained using matching training datasets, including instances of consumption data. The training of these machine learning models is discussed in more detail in relation to FIG. 6. Using the techniques described above, the 506 energy management service can identify that energy limit values should be calculated based on cumulative device / rack consumption levels that exceed the budgeted energy associated with the line-level device and / or based on the determination, from the output of the machine learning model(s), that cumulative device / rack consumption levels are likely to exceed the budgeted energy associated with the line-level device.The determination of whether device / rack power consumption levels are likely to exceed the device's budgeted line-level power can be made based on receiving an output from the machine learning model(s) indicating a probability (e.g., likely / unlikely) or by comparing the output value (e.g., a percentage, a confidence value, etc.) indicating the probability of exceeding the device's budgeted line-level power to a predefined limit. An output value indicating a probability that exceeds the predefined limit may... Petition 870260056421, dated 10 / 06 / 2026, pp. 203 / 320 37 / 96 results in the 506 energy management service determining that energy limitation is guaranteed and that energy limit values must be calculated.
[073] In 518, the 506 power management service can calculate power limit values for any suitable number of 502 and / or 512 devices. By way of example, the 506 power management service can use the device consumption data and / or rack consumption data corresponding to each of the 502 and 512 devices. In some embodiments, the 506 power management service can determine a difference between the cumulative power consumption (calculated from the aggregation of device and / or rack consumption data corresponding to the 502 and 512 devices) of a line of devices (e.g., 502 device(s) and any of the 512 devices on the same line) and the budgeted power associated with the device at the line level. The difference can be used to identify an amount by which power consumption should be restricted on the devices associated with this line.The 506 energy management service can determine energy limit values for any suitable combination of 502 and / or 512 devices for same-line devices based on the identification of these energy limit values which, if applied by the devices, will result in a reduction of energy consumption to a value that is less than the budgeted energy associated with the line-level device.
[074] In some embodiments, the 506 power management service may determine specific power limit values for any suitable combination of the corresponding 502 and 512 device(s) on the same line based, at least in part, on the consumption data and / or priority values associated with these devices and / or the workloads associated with the power consumption of these devices. In some embodiments, these priority values may be provided as part of the consumption data of Petition 870260056421, dated 10 / 06 / 2026, pp. 204 / 320 38 / 96 device provided by the device to which this consumption data refers, or priority values may be determined based, at least in part, on a device type, workload type, or similar, obtained from the consumption data or any other suitable source (e.g., from separate data accessible to the 506 power management service). Using the priority respectively associated with the device or workload, the 506 power management service may calculate power limit values in a manner that favors power limit devices associated with lower priority workloads over power limit devices with higher priority workloads.In some embodiments, the 506 power management service may calculate power limit values based, at least in part, on favoring power limit devices that are consuming at higher rates (e.g., a set of higher-consumption devices) over other power limit devices that are consuming at lower rates. In some embodiments, the 506 power management service may calculate power limit values based, at least in part, on a combination of factors, including the consumption values for each device and the priority associated with the device or the workload being performed by the device.The 506 power management service can identify power threshold values for devices that avoid completely blocking a high-power and / or high-priority device, or that block these devices to a lesser degree than devices that consume less power and / or are associated with a lower priority.
[075] In 520, the 520 power management service can calculate a timing value corresponding to a duration for a timer to be initialized and managed by a PDU (e.g., PDU 504). The timing value can be calculated based, at least in part, on any suitable combination of a Petition 870260056421, dated 10 / 06 / 2026, pages 205 / 320 39 / 96 rate of change of energy consumption from the perspective of the line-level device, a direction of change of energy consumption from the perspective of the line-level device, or a time to realize the energy limit on each of the devices to which the energy limits calculated in 518 refer. By way of example, the energy management service 520 may determine a timing value based on the determination of a relatively large increase in energy consumption from the perspective of the line-level device that is greater than a timing value for a smaller increase in energy consumption from the perspective of the line-level device.Therefore, the greater the increase in the rate of energy consumption, the smaller the timing value (corresponding to a shorter timer), while a smaller increase in the rate of energy consumption may result in a larger timing value (corresponding to a longer timer). Similarly, a first calculated time value may be smaller than a second calculated time value when the time to enforce the power limit on each of the devices to which the power limits relate is shorter compared to the calculation of the first time value. Therefore, the faster the devices to which the power limit is applied can enforce the limits, the smaller the timing value can be.
[076] In 522, the power limit value calculated in 518 and / or the timing value calculated in 520 can be transmitted to PDU 504. Although not represented, the corresponding power limit values and / or timing values for any of the devices 512 on the same line can be transmitted in 520.
[077] In 524, when a timing value is provided in 522, PDU 504 can use the timing value to initialize a timer with a duration corresponding to the timing value.
[078] In 526, PDU 504 can transmit the limit values of Petition 870260056421, dated 10 / 06 / 2026, pp. 206 / 320 40 / 96 energy (if received on 522) for device(s) 502. Device(s) 502 may store the energy limit values received on 528. In some embodiments, the energy limit values provided on 526 may include a flag indicating that the application should not start, or no flag may be provided and device(s) 502 may refrain from initiating the energy limit by default.
[079] In 530, the 506 power management service can perform a higher-level analysis of device / rack consumption data received from any of the 512 devices that correspond to a line different from the line to which the 502 devices correspond. As part of this processing, the 506 power management service can identify unused energy associated with other line-level devices. If unused energy exists, the 506 power management service can calculate a new set of energy limit values based, at least in part, on the consumption data corresponding to at least one other line of devices. As described above, this can be advantageous since devices managed by another line-level device may not be consuming their budgeted energy, leaving unused energy in that line-level device.In some embodiments, the 450 power management service can be configured to determine whether to cap devices on another line, although allowing at least some devices from the 502 device(s) (and potentially some from the 512 device(s) corresponding to the same line as the 502 device(s)) to operate without restrictions may be more advantageous. The benefit of each power limiting approach can be calculated based, at least in part, on minimizing the number of devices to be power limited, minimizing the priority values associated with the devices to be power limited, maximizing the number of devices associated with specific high-priority values that will not be power limited, and... Petition 870260056421, dated 10 / 06 / 2026, pp. 207 / 320 41 / 96 similar. The 506 energy management service can use a predefined scheme or set of rules to determine whether applying already determined energy limit values for a line (e.g., corresponding to energy limit values transmitted in 522) is more or less advantageous than different energy limit values that were identified based on processing consumption data from multiple lines.
[080] The 506 power management service can be configured to enact the application of the set of power limit values that are determined to be most (or most) advantageous to ensure that one or more circuit breakers within the data center do not trip. If the set of power limits previously provided to PDU 504 is determined to be less advantageous than the set of power limit values calculated in 530, the 450 power management service can transmit data to PDU 504 immediately to cause PDU 504 to transmit an indicator to device(s) 502 to immediately initiate power limiting based on the previously distributed power limits. Alternatively, the 506 power management service may take no further action, which may allow the timer on PDU 504 to run.
[081] Alternatively, if the energy management service If the 450 determines that the new set of power limits is more (or more) advantageous from a power management perspective, it can transmit data to the 448 power controller to cancel the timer. Previously distributed power limits can be deleted by instruction from the 448 power controller (e.g., transmitted in response to timer cancellation), or these power limits can expire by default according to a predefined time period. The 450 power management service can transmit the new power limits to the appropriate PDUs (which may include or exclude the same PDU for which the previous set was applied). Petition 870260056421, dated 10 / 06 / 2026, pages 208 / 320 42 / 96 of power limits was transmitted) with an indication that the power limits should be immediately applied by the corresponding devices. These PDUs can transmit these power limits with an instruction to the receiving device to immediately initiate power limiting operations (e.g., including monitoring consumption relative to the power limit value, determining whether to limit based on the power limit value and the device's current consumption, and limiting or leaving unrestricted device operations based on the determination).
[082] If the power limit values calculated in 530 are determined to be more advantageous from a power management perspective than the power limit values calculated in 518 and ultimately stored in device(s) 502 in 528, method 500 may proceed to 532, where the power limit values calculated in 530 may be transmitted to PDU(s) 508 (e.g., any of the PDU(s) 508 that manage devices to which the power limit values refer). In some embodiments, the power management service 506 may provide an indication that the power limit values transmitted in 532 should be applied immediately.
[083] In response to receiving the power limit values and indication in 532, the PDU(s) 508 that distribute power to the devices to which these power limit values relate may transmit the power limit values and indication to the devices to which these power limit values relate. In 536, the receiving devices of device(s) 512 may, based on receiving the indication, perform power limiting operations without delay. This includes 1) determining whether to limit / restrict operations based on the current consumption of a given device when compared to the power limit value supplied to that device and 2) limiting / restricting or refraining from limiting / restricting the power consumption of that device. Petition 870260056421, dated 10 / 06 / 2026, pp. 209 / 320 43 / 96
[084] In some embodiments, the power management service 506, based at least in part on the identification that the power limit values calculated in 530 are more (or more) advantageous than those calculated in 518, may transmit data canceling the timer and / or power limit values that were transmitted in 522. In some embodiments, the PDU 504 may be configured to cancel the timer in 540. In some embodiments, the PDU 504 may transmit data in 542 that causes the device(s) 502 to delete the power limit values from memory in 544.
[085] In 546, in situations where a more advantageous set of energy limit values is not found, as described above, or the energy management service 506 has not transmitted a cancellation as described above in connection with 538, PDU 504 may identify that the timer that was started in 524 has expired (for example, a duration corresponding to the timing value provided in 522 has elapsed). As a result, PDU 504 can transmit an indication to device(s) 502 at 548, instructing device(s) 502 to initiate power throttling based on the power throttling values stored in device(s) 502 at 528. Receiving this indication at 548 can cause device(s) 502 to initiate power throttling at 550, according to the power throttling values stored in 528.
[086] In some embodiments, PDU 504 can be configured to cancel the timer at any appropriate time after the timer is started on 524, if PDU 504 detects that the power consumption of device(s) 502 has decreased. In some embodiments, this may cause PDU 504 to transmit data to device(s) 502 to cause device(s) 502 to discard previously stored power limit values from local memory.
[087]
[0003] In some modalities, the limit values of Petition 870260056421, dated 10 / 06 / 2026, pp. 210 / 320 44 / 96 energy limits being applied to any suitable device may be timed or may be overridden by energy limit values calculated by the 506 energy management service at any suitable time. In some embodiments, the 506 energy management service may transmit a cancellation or override of an energy limit value to any suitable device via its corresponding rack PDU. If a cancellation of the energy limit value is received, the device may delete the previously stored energy limit value, allowing the device to resume unrestricted operations. If an override energy limit value is received, the device may store the new energy limit value and enforce the new energy limit value immediately or when instructed by its rack PDU.In some embodiments, being instructed to enforce the new power limit value by your PDU may cause the device (e.g., the 446 power controller) to replace the power limit value that was previously being used for power limiting with the new power limit value that the device is being instructed to enforce.
[088] Any appropriate operations of method 500 may be performed at any appropriate time on an ongoing basis to manage excessive consumption (e.g., situations where the consumption of servers corresponding to a line-level device exceeds the budgeted energy of the line-level device) to allow for more efficient use of previously unused energy, avoiding power outages due to tripped circuit breakers. It should be noted that similar operations may be performed by the energy management service 506 in relation to any appropriate level of the energy distribution hierarchy 300. Although examples have been provided regarding the monitoring of energy consumption corresponding to a line-level device (e.g., a device represented by a level 3 node of the hierarchy of Petition 870260056421, dated 10 / 06 / 2026, pages 211 / 320 45 / 96 power distribution 300), similar operations can be performed in relation to higher-level devices of any suitable level (e.g., components corresponding to any of levels 2 to 5 of the power distribution hierarchy 300).
[089] FIG. 6 illustrates a flow representing an exemplary method 600 for training a machine learning model to determine the probability that the aggregate energy consumption of downstream devices (e.g., device(s) 502 of FIG. 2) will exceed a corresponding budget limit for an upstream device (e.g., a line-level device through which energy is distributed to device(s) 502), according to at least one embodiment.
[090] In some embodiments, the model(s) 602 may be trained (e.g., by the energy management service 506 of FIG. 5 or a different device) using any suitable machine learning algorithms (e.g., supervised, unsupervised, etc.) and any suitable number of training datasets (e.g., training data 608). A supervised machine learning algorithm refers to a machine learning task that involves learning an inferred function that maps an input to an output based on a labeled training dataset for which exemplary input / output pairs are known. Unsupervised machine learning algorithms refer to a set of algorithms that are used to analyze and group unlabeled datasets (e.g., unlabeled data 610).These algorithms are configured to identify patterns or groupings of data without the need for human intervention. In some modalities, any suitable number of model(s) 602 can be trained during the training phase 604.
[091] The 602 model(s) may include any suitable number of models. The 602 model(s) may be trained for Petition 870260056421, dated 10 / 06 / 2026, pages 212 / 320 46 / 96 identify, from the training data 608 discussed below, a probability that the consumption data associated with downstream devices (e.g., devices for which power is distributed via a line-level device) will violate a budget limit (e.g., a budgeted amount of power) associated with an upstream device (e.g., a higher-level device, such as the line-level device). In some embodiments, the model(s) 602 may be configured to determine and output one or more predicted consumption amounts that are likely to occur in the future, and a determination of whether the predicted amount(s) violate(s) a budget limit (e.g., a budgeted amount of power associated with an upstream device) may be made by the energy management service 450 of FIG. 4.
[092] As a non-limiting example, at least one of the models 602 can be trained during the training phase 604 using a supervised learning algorithm and labeled data 606 to identify a probability value and / or one or more predicted consumption values (e.g., a predicted aggregate / cumulative consumption amount for one or more devices). A probability value can be a binary indicator, a percentage, a confidence value, or similar that indicates a degree of probability. The likelihood value can be a binary indicator that indicates whether a given budget value is likely or unlikely to be violated, or the likelihood value can indicate a probability that a given predicted consumption value will be experienced in the future.Data labeled 606 can be any suitable portion of potential training data (e.g., training data 608) that can be used to train various models for probability values. Data labeled 606 can include any suitable number of exemplary historical consumption data corresponding to a device and / or rack to which the power passing through the line-level device is distributed. Petition 870260056421, dated 10 / 06 / 2026, pp. 213 / 320 47 / 96 In some embodiments, the data marked 606 may include labels that identify known likelihood values. Using the data marked 606, a model (e.g., an inferred function) can be learned that maps an input (e.g., one or more instances of historical consumption data corresponding to one or more devices) to an output (e.g., a probability that the consumption of one or more devices will exceed a quantity). In some embodiments, the quantity to be used may be included in the training data 608 and included as input. In some embodiments, the model(s) 602 may provide as output a quantity by which the cumulative consumption from the perspective of a given component (e.g., a line-level device) is expected to change and a probability or confidence value indicating a probability / confidence corresponding to the quantity. In some embodiments, the energy management service 506 of FIG.5 can determine that output(s) 612, including the quantity and / or probability value, indicates that the consumption of downstream devices associated with line-level devices is likely (e.g., above a threshold degree) to violate the budgeted energy of the line-level device.
[093] The 602 model(s) and the various types of these models discussed above may include any suitable number of models that are trained using unsupervised learning techniques to identify the probability / confidence that downstream devices associated with a line-level device will violate the budgeted energy associated with a line-level device. Alternatively, unsupervised learning techniques may be used to identify an amount (and potentially a corresponding probability / confidence) that downstream device consumption is predicted to increase. Unsupervised machine learning algorithms are configured to learn patterns from unlabeled data. In some embodiments, the 604 training phase may utilize non-supervised machine learning algorithms. Petition 870260056421, dated 10 / 06 / 2026, pages 214 / 320 48 / 96 supervised to generate one or more models. For example, the training data 608 may include untagged data 610 (e.g., instances of historical consumption data corresponding to devices and / or racks of devices that receive power through a given line-level device). The untagged data 610 can be used, along with an unsupervised learning algorithm, to segment the untagged data inputs 610 into groups. The unsupervised learning algorithm can be configured to cause similar inputs to be grouped into a common group. An example of an unsupervised learning algorithm might include clustering methods such as k-means clustering, DBScan, and the like.In some embodiments, untagged data 610 can be grouped with tagged data 606 in such a way that untagged instances of a given group can be assigned to the same tagged instances as other tagged instances within the group.
[094] In some embodiments, any suitable portion of the training data 608 can be used during the training phase 604 to train the model(s) 602. For example, 70% of the tagged data 606 and / or untagged data 610 can be used to train the model(s) 602. Once trained or at any appropriate time, the model(s) 602 can be evaluated to assess their quality (e.g., the accuracy of the output(s) 612 with respect to the labels corresponding to the tagged data 606). For example, a portion of the sample data marked 606 and / or unmarked data 610 can be used as input for model(s) 602 in order to generate output(s) 612.For example, an example of the data labeled 606 can be provided as input, and the corresponding output (e.g., output(s) 612) can be compared to the label already known to be associated with the example. If any part of the output (e.g., a label) matches the example label, this part of the output can be considered accurate. Any number. Petition 870260056421, dated 10 / 06 / 2026, pages 215 / 320 49 / 96 suitable exemplary labels can be used, and a number of accurate labels can be compared to the total number of exemplary labels provided (and / or the total number of previously identified labels) to determine an accuracy value for a given model that quantifies a degree of precision for the model. For example, if 90 out of 100 of the input examples generate output labels that match the previously known exemplary labels, the model being evaluated can be determined to be 90% accurate.
[095] In some embodiments, as the 602 model(s) are used for subsequent inputs, the subsequent output generated by the 602 model(s) can be added to the corresponding input and used to retrain and / or update the 602 model(s) in 616. In some embodiments, the example cannot be used to retrain or update the model until the 614 feedback procedure is executed. In the 614 feedback procedure, the example (e.g., an example including one or more instances of historical consumption data corresponding to one or more devices and / or racks) and the corresponding output generated for the example by one of the 602 models is presented to a user, and the user identifies whether the generated output (e.g., quantity and / or probability confidence value) is correct for the given example.
[096] The training process represented in FIG. 6 (e.g., method 600) can be performed any suitable number of times at any suitable interval and / or according to any suitable schedule, so that the accuracy of the model(s) 602 is improved over time.
[097] In some embodiments, any suitable number and / or combination of the 602 model(s) may be used to determine the output. In some embodiments, the 450 energy management service may use any suitable combination of output provided by the 602 model(s) to determine whether a budget limit of a Petition 870260056421, dated 10 / 06 / 2026, pages 216 / 320 50 / 96 a given component (e.g., a line-level PDU) will likely be violated (and / or will likely be violated by some value). Thus, in some embodiments, models that have been trained with any suitable combination of supervised and unsupervised learning algorithms can be used by the 450 power management service.
[098] FIG. 7 is a block diagram illustrating an exemplary method for managing energy, according to at least one embodiment. Method 700 can be performed by one or more components of system 400 of FIG. 4. By way of example: Method 700 can be performed, at least in part, by the energy management service 406 of FIG. 4. The operations of method 700 can be performed in any suitable order. More or fewer operations than those represented in FIG. 7 can be included in method 700.
[099] In 702, a plurality of components of an energy system (e.g., system 400) can be identified. In some embodiments, the plurality of components is arranged according to an energy distribution hierarchy (e.g., energy distribution hierarchy 300 of FIG. 3) comprising a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the energy distribution hierarchy represents a corresponding component of the plurality of components. In some embodiments, a subset of nodes (e.g., nodes 314 and 316 of FIG. 3) of a first level of the plurality of levels (e.g., level 1) can descend from a particular node (e.g., node 306 of FIG. 3 corresponding to an energy distribution unit) of a second level (e.g., a line level) of the plurality of levels that is higher than the first level.In some modalities, a set of lower-level components from the plurality of components that are represented by the subset of nodes at the first level receives energy. Petition 870260056421, dated 10 / 06 / 2026, pp. 217 / 320 51 / 96 distributed through a higher-level component of the plurality of components that is represented by the particular node of the second level.
[0100] In 704, the energy consumption of the lower-level component set represented by the subset of nodes of the first level can be monitored. In some embodiments, monitoring energy consumption may include receiving device and / or rack consumption data as described above in connection with method 500 of FIG. 5.
[0101] In 706, it can be determined, based at least in part on monitoring, that the energy consumption of the lower-level component set has violated a budget limit associated with the higher-level component. In some embodiments, the budget limit may be considered violated when the energy consumption of the lower-level component set exceeds a budgeted amount of energy allocated to the higher-level component. In some embodiments, the budget limit may be considered violated when the energy consumption of the lower-level component set approaches (e.g., within a limit) a budgeted amount of energy allocated to the higher-level component. In some embodiments, the determination that the budget limit has been violated may utilize historical consumption data in the manner described above in connection with 516 of FIG. 5.
[0102] In 708, in response to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component, a power limit value for a lower-level component may be transmitted. The transmission of the power limit value may cause the lower-level component to store the power limit value in memory while allowing a corresponding power consumption of the lower-level component to exceed the power limit value, until a time period corresponding to a timing value expires.
[0103] FIG. 8 is a block diagram illustrating another method. Petition 870260056421, dated 10 / 06 / 2026, pp. 218 / 320 52 / 96 exemplary 800 for managing energy, according to at least one embodiment. Method 800 can be performed by one or more components of system 400 of FIG. 4. By way of example: Method 800 can be performed, at least in part, by the energy management service 406 of FIG. 4. The operations of method 800 can be performed in any suitable order. More or fewer operations than those represented in FIG. 8 can be included in method 800.
[0104] In 802, a plurality of components of an energy system (e.g., system 400) can be identified. In some embodiments, the plurality of components is arranged according to an energy distribution hierarchy (e.g., energy distribution hierarchy 300 of FIG. 3) comprising a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the energy distribution hierarchy represents a corresponding component of the plurality of components. In some embodiments, a subset of nodes (e.g., nodes 314 and 316 of FIG. 3) of a first level of the plurality of levels (e.g., level 1) can descend from a particular node (e.g., node 306 of FIG. 3 corresponding to an energy distribution unit) of a second level (e.g., a line level) of the plurality of levels that is higher than the first level.In some embodiments, a set of lower-level components from the plurality of components that are represented by the first-level node subset receives distributed power through a higher-level component from the plurality of components that is represented by the particular second-level node.
[0105] In 804, the power consumption of the set of lower-level components represented by the first-level node subset can be monitored. In some embodiments, monitoring power consumption may include receiving device and / or rack consumption data as described above in connection with method 500. Petition 870260056421, dated 10 / 06 / 2026, pp. 219 / 320 53 / 96 of FIG. 5.
[0106] In 806, it can be determined, based at least in part on monitoring, that the energy consumption of the lower-level component set has violated a budget limit associated with the higher-level component. In some embodiments, the budget limit may be considered violated when the energy consumption of the lower-level component set exceeds a budgeted amount of energy allocated to the higher-level component. In some embodiments, the budget limit may be considered violated when the energy consumption of the lower-level component set approaches (e.g., within a limit) a budgeted amount of energy allocated to the higher-level component. In some embodiments, the determination that the budget limit has been violated may utilize historical consumption data in the manner described above in connection with 516 of FIG. 5.
[0107] In 808, in response to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component, a timer corresponding to a timing value may be initiated. In some embodiments, the expiration of the timer indicates the expiration of a time period corresponding to the timing value. A lower-level component of the lower-level components (e.g., servers corresponding to device(s) 404 of FIG. 4) may store a power limit value in memory during the time period. In some embodiments, the application of the power limit value to the lower-level component is delayed until the timer expires.
[0108] FIGS. 9 to 13 represent a series of exemplary environments that can be hosted by components of a data center (e.g., 404 device(s)). The environments represented in FIGS. 9 to 13 depict cloud computing and multi-tenant environments. As described above, cloud computing environments Petition 870260056421, dated 10 / 06 / 2026, pages 220 / 320 54 / 96 cloud and / or multi-tenant and other environments can benefit from using the energy management techniques disclosed in this Report. These techniques allow a data center, including components, to implement the environments described in connection with FIGS. 9 to 13, among others, to use data center energy resources more efficiently compared to conventional techniques that leave large amounts of energy unused.
[0109] Infrastructure as a Service (IaaS) is a specific type of cloud computing. IaaS can be configured to provide virtualized computing resources over a public network (e.g., the Internet). In an IaaS model, a cloud computing provider may host the infrastructure components (e.g., servers, storage devices, network nodes (e.g., hardware), deployment software, platform virtualization (e.g., a hypervisor layer), or similar). In some cases, an IaaS provider may also provide a variety of services to accompany these infrastructure components (example services include billing software, monitoring software, logging software, load balancing software, clustering software, etc.).Thus, since these services can be policy-driven, IaaS users can implement policies to drive load balancing to maintain application availability and performance.
[0110] In some cases, IaaS customers can access resources and services via media from a wide area network (WAN), such as the Internet, and can use the cloud provider's services to install the remaining elements of an application stack. For example, a user can log in to the IaaS platform to create virtual machines (VMs), install operating systems (OSs) on each VM, deploy middleware such as databases, create storage buckets for workloads and backups, and even install enterprise software on that VM. Customers can then use the provider's services to Petition 870260056421, dated 10 / 06 / 2026, pages 221 / 320 55 / 96 performs various functions, including balancing network traffic, troubleshooting applications, monitoring performance, managing disaster recovery, etc.
[0111] In most cases, a cloud computing model will require the participation of a cloud provider. The cloud provider may, but does not have to be, a third-party service specializing in the provision (e.g., offering, renting, selling) of IaaS. An entity may also choose to deploy a private cloud, becoming its own infrastructure service provider.
[0112] In some examples, IaaS deployment is the process of placing a new application, or a new version of an application, on a prepared application server or similar. It may also include the server preparation process (e.g., installing libraries, daemons, etc.). This is usually managed by the cloud provider, below the hypervisor layer (e.g., the servers, storage, network hardware, and virtualization). Thus, the client may be responsible for handling (OS), middleware, and / or application deployment (e.g., on self-service virtual machines (e.g., which can be activated on demand) or similar).
[0113] In some examples, IaaS provisioning may refer to acquiring computers or virtual hosts for use and even installing necessary libraries or services on them. In most cases, deployment does not include provisioning, and provisioning may need to be performed first.
[0114] In some cases, there are two different challenges to provisioning IaaS. First, there is the initial challenge of provisioning the initial set of infrastructure before anything is running. Second, there is the challenge of evolving the existing infrastructure (e.g., adding new services, changing services, removing services, etc.) once everything has been provisioned. In some cases, these two challenges can be addressed by allowing the infrastructure configuration to be defined declaratively. In Petition 870260056421, dated 10 / 06 / 2026, pages 222 / 320 56 / 96 In other words, the infrastructure (e.g., which components are needed and how they interact) can be defined by one or more configuration files. Thus, the overall topology of the infrastructure (e.g., which resources depend on which and how each of them works together) can be described declaratively. In some cases, once the topology is defined, a workflow can be generated that creates and / or manages the different components described in the configuration files.
[0115] In some examples, an infrastructure may have many interconnected elements. For example, there may be one or more virtual private clouds (VPCs) (e.g., a potentially on-demand pool of configurable and / or shared computing resources), also known as a core network. In some examples, there may also be one or more provisioned inbound / outbound traffic group rules to define how inbound and / or outbound network traffic will be configured, and one or more virtual machines (VMs). Other infrastructure elements may also be provisioned, such as a load balancer, a database, or similar. As more and more infrastructure elements are desired and / or added, the infrastructure may evolve incrementally.
[0116] In some cases, continuous deployment techniques can be employed to enable the deployment of infrastructure code across multiple virtual computing environments. Furthermore, the techniques described can enable infrastructure management within these environments. In some examples, service teams may write code that they wish to deploy to one or more, but often many different production environments (e.g., in several different geographical locations, sometimes spanning the globe). However, in some examples, the infrastructure on which the code will be deployed must first be configured. In some cases, provisioning can be done manually, using a tool. Petition 870260056421, dated 10 / 06 / 2026, pages 223 / 320 57 / 96 provisioning can be used to provision resources and / or deployment tools can be used to deploy code once the infrastructure is provisioned.
[0117] FIG. 9 is a block diagram 900 that illustrates an exemplary pattern of an IaaS architecture, according to at least one embodiment. Service operators 902 may be communicatively coupled to a secure host location 904 which may include a virtual cloud network (VCN) 906 and a secure host subnet 908. In some examples, service operators 902 may be using one or more client computing devices, which may be handheld devices (e.g., an iPhone®, mobile phone, an iPad®, computing tablet, a personal digital assistant (PDA)) or portable devices (e.g., a Google Glass® head-mounted display), running software such as Microsoft Windows Mobile® and / or a variety of mobile operating systems such as iOS, Windows Phone, Android, BlackBerry 8, Palm OS and the like, and being Internet, email, short message service (SMS), Blackberry® or other communication protocol enabled.Alternatively, client computing devices may be general-purpose personal computers, including, by way of example, personal computers and / or laptops running various versions of Microsoft Windows®, Apple Macintosh®, and / or Linux operating systems. Client computing devices may be workstation computers running any of a variety of commercially available UNIX® or UNIX-like operating systems, including, without limitation, the variety of GNU / Linux operating systems, such as Google Chrome OS. Alternatively, or additionally, client computing devices may be any other electronic device, such as a thin client computer, an Internet-enabled gaming system (e.g., a Microsoft Xbox game console with or without a Kinect® gesture input device), and / or a personal messaging device capable of self-addressing. Petition 870260056421, dated 10 / 06 / 2026, pp. 224 / 320 58 / 96 communicate through a network that can access VCN 906 and / or the Internet.
[0118] VCN 906 may include a local peering gateway (LPG) 910 which can be communicatively coupled to a secure (SSH) VCN 912 via an LPG 910 contained within the SSH VCN 912. The SSH VCN 912 can include an SSH subnet 914, and the SSH VCN 912 can be communicatively coupled to a control plane VCN 916 via the LPG 910 contained within the control plane VCN 916. Additionally, the SSH VCN 912 can be communicatively coupled to a data plane VCN 918 via an LPG 910. The control plane VCN 916 and the data plane VCN 918 can be contained within a service tenancy 919 which may be owned and / or operated by the IaaS provider.
[0119] The VCN 916 control plane may include a control plane demilitarized zone (DMZ) layer 920 that acts as a perimeter network (e.g., parts of a corporate network between the corporate intranet and external networks). DMZ-based servers may have restricted responsibilities and help contain violations. In addition, the DMZ layer 920 may include one or more load balancer (LB) subnet(s) 922, a control plane application layer 924 that may include application subnet(s) 926, a control plane data layer 928 that may include database (DB) subnet(s) 930 (e.g., front-end database subnet(s) and / or back-end database subnet(s).The LB 922 subnet(s) contained in the DMZ layer of control plane 920 may be communicatively coupled to the application subnet(s) 926 contained in the application layer of control plane 924 and an Internet gateway 934 that may be contained in control plane VCN 916, and the application subnet(s) 926 may be communicatively coupled to the DB 930 subnet(s) contained in the data layer of control plane 928 and a service gateway 936 and a Network Address Translation (NAT) gateway 938. Control plane VCN 916 may include service gateway 936 and NAT gateway 938. Petition 870260056421, dated 10 / 06 / 2026, pages 225 / 320 59 / 96
[0120] The VCN 916 control plane may include a data plane mirror application layer 940 which may include application subnet(s) 926. The application subnet(s) 926 contained in the data plane mirror application layer 940 may include a virtual network interface controller (VNIC) 942 which may run a compute instance 944. The compute instance 944 may communicatively couple the application subnet(s) 926 of the data plane mirror application layer 940 to the application subnet(s) 926 which may be contained in a data plane application layer 946.
[0121] The VCN 918 data plane may include the 946 data plane application layer, a 948 data plane DMZ layer, and a 950 data plane data layer. The 948 data plane DMZ layer may include LB subnet(s) 922 that may be communicatively coupled to the 926 application subnet(s) of the 946 data plane application layer and to the 934 internet gateway of the VCN 918 data plane. The 926 application subnet(s) may be communicatively coupled to the 936 service gateway of the VCN 918 data plane and to the 938 NAT gateway of the VCN 918 data plane. The 950 data plane data layer may also include DB subnet(s). 930 that can be communicatively coupled to the application subnet(s) 926 of the data plane application layer 946.
[0122] The Internet gateway 934 of the VCN 916 control plane and the VCN 918 data plane can be communicatively coupled to a metadata management service 952 which can be communicatively coupled to the public Internet 954. The public Internet 954 can be communicatively coupled to the NAT gateway 938 of the VCN 916 control plane and the VCN 918 data plane. The service gateway 936 of the VCN 916 control plane and the VCN 918 data plane can be communicatively coupled to cloud services 956.
[0123] In some examples, the service gateway 936 of the plan of Petition 870260056421, dated 10 / 06 / 2026, pages 226 / 320 60 / 96 control VCN 916 or data plane VCN 918 can make application programming interface (API) calls to cloud services 956 without going through the public internet 954. API calls to cloud services 956 from service gateway 936 can be unidirectional: service gateway 936 can make API calls to cloud services 956, and cloud services 956 can send requested data to service gateway 936. However, cloud services 956 may not initiate API calls to service gateway 936.
[0124] In some examples, secure host subnet 904 can be directly connected to service subnet 919, which might otherwise be isolated. Secure host subnet 908 can communicate with SSH subnet 914 via an LPG 910 which can allow bidirectional communication across an otherwise isolated system. Connecting secure host subnet 908 to SSH subnet 914 can give secure host subnet 908 access to other entities within service subnet 919.
[0125] Control plane VCN 916 may allow users of service tenancy 919 to configure or otherwise provision desired resources. The desired resources provisioned in control plane VCN 916 may be deployed or otherwise used in data plane VCN 918. In some examples, control plane VCN 916 may be isolated from data plane VCN 918, and the data plane mirror application level 940 of control plane VCN 916 may communicate with the data plane application level 946 of data plane VCN 918 via VNICs 942 that may be contained in the data plane mirror application level 940 and the data plane application level 946.
[0126] In some examples, system users, or clients, can make requests, for example, create, read, update, or delete operations (CRUD), via the public Internet 954 which can communicate the requests to the metadata management service 952. The service Petition 870260056421, dated 10 / 06 / 2026, pages 227 / 320 Metadata management layer 952 (61 / 96) can communicate the request to control plane VCN 916 via internet gateway 934. The request can be received by subnet LB 922 contained in the DMZ layer of control plane 920. Subnet LB 922 can determine that the request is valid and, in response to this determination, subnet LB 922 can transmit the request to application subnet(s) 926 contained in the application layer of control plane 924. If the request is validated and requires a call to public internet 954, the call to public internet 954 can be transmitted to NAT gateway 938 which can then make the call to public internet 954. Metadata that may be desired to be stored by the request can be stored in the... database subnet(s) 930.
[0127] In some instances, the 940 data plane mirror application layer can facilitate direct communication between the VCN 916 control plane and the VCN 918 data plane. For example, changes, updates, or other configuration-appropriate modifications may be desired to be applied to resources contained in the VCN 918 data plane. Through a VNIC 942, the VCN 916 control plane can communicate directly with, and thus execute, the changes, updates, or other configuration-appropriate modifications to resources contained in the VCN 918 data plane.
[0128] In some embodiments, the VCN 916 control plane and the VCN 918 data plane may be contained within service tenancy 919. In this case, the system user, or client, cannot own or operate the VCN 916 control plane or the VCN 918 data plane. Instead, the IaaS provider may own or operate the VCN 916 control plane and the VCN 918 data plane, both of which may be contained within service tenancy 919. This embodiment may allow for network isolation that could prevent users or clients from interacting with resources of other users or other clients. Additionally, this embodiment may allow system users or clients to... Petition 870260056421, dated 10 / 06 / 2026, pages 228 / 320 62 / 96 store databases privately without needing to rely on the public Internet 954, which may not have a desired level of threat prevention, for storage.
[0129] In other embodiments, the LB 922 subnet(s) contained in the VCN 916 control plane may be configured to receive a signal from the service gateway 936. In this embodiment, the VCN 916 control plane and the VCN 918 data plane may be configured to be called by an IaaS provider client without calling the public Internet 954. IaaS provider clients may desire this embodiment, since the database(s) that clients use may be controlled by the IaaS provider and may be stored in the service tenancy 919, which may be isolated from the public Internet 954.
[0130] FIG. 10 is a block diagram 1000 illustrating another exemplary pattern of an IaaS architecture, according to at least one embodiment. Service operators 1002 (e.g., service operators 902 of FIG. 9) can be communicatively coupled to a secure host location 1004 (e.g., secure host location 904 of FIG. 9).9) which may include a virtual cloud network (VCN) 1006 (for example, VCN 906 in FIG. 9) and a secure host subnet 1008 (for example, secure host subnet 908 in FIG. 9). VCN 1006 may include a local peering gateway (LPG) 1010 (e.g., LPG 910 in FIG. 9) that may be communicatively coupled to a secure (SSH) enclosure VCN 1012 (e.g., SSH VCN 912 in FIG. 9) via an LPG 910 contained within SSH VCN 1012. SSH VCN 1012 may include an SSH subnet 1014 (e.g., SSH subnet 914 in FIG. 9), and SSH VCN 1012 may be communicatively coupled to a control plane VCN 1016 (e.g., control plane VCN 916 in FIG. 9) via an LPG 1010 contained within control plane VCN 1016. Control plane VCN 1016 may be contained within a service tenancy. 1019 (for example, service location 919 of FIG. 9) and data plane VCN 1018 (for example, data plane VCN 918 of FIG. 9) may be contained within. Petition 870260056421, dated 10 / 06 / 2026, pages 229 / 320 63 / 96 a customer location 1021 that may be owned or operated by users, or customers, of the system.
[0131] The VCN 1016 control plane may include a layer of Control plane DMZ 1020 (e.g., control plane DMZ layer 920 of FIG. 9) which may include LB subnet(s) 1022 (e.g., LB subnet(s) 922 of FIG. 9), a control plane application layer 1024 (e.g., control plane application layer 924 of FIG. 9) which may include application subnet(s) 1026 (e.g., application subnet(s) 926 of FIG. 9), a control plane data layer 1028 (e.g., control plane data layer 928 of FIG. 9) which may include database (DB) subnet(s) 1030 (e.g., similar to DB subnet(s) 930 of FIG. 9). The LB 1022 subnet(s) contained in the DMZ layer of control plane 1020 can be communicatively coupled to the application subnet(s) 1026 contained in the application layer of control plane 1024 and an Internet gateway 1034 (for example, Internet gateway 934 of FIG.9) that may be contained in the VCN 1016 control plane and the application subnet(s) 1026 may be communicatively coupled to the DB 1030 subnet(s) contained in the data layer of the control plane 1028 and a service gateway 1036 (for example, service gateway 936 of FIG. 9) and a network address translation (NAT) gateway 1038 (for example, NAT gateway 938 of FIG. 9). The VCN 1016 control plane may include service gateway 1036 and NAT gateway 1038.
[0132] The VCN 1016 control plane may include a data plane mirror application layer 1040 (for example, the data plane mirror application layer 940 of FIG. 9) which may include application subnet(s) 1026. The application subnet(s) 1026 contained within the data plane mirror application layer 1040 may include a virtual network interface controller (VNIC) 1042 (for example, the VNIC of 942) which may run a compute instance 1044 (for example, similar to compute instance 944 of FIG. 9). Petition 870260056421, dated 10 / 06 / 2026, pages 230 / 320 64 / 96 9) Compute instance 1044 can facilitate communication between application subnet(s) 1026 of data plane mirror application layer 1040 and application subnet(s) 1026 that may be contained in a data plane application layer 1046 (for example, data plane application layer 946 of FIG. 9) via VNIC 1042 contained in data plane mirror application layer 1040 and VNIC 1042 contained in data plane application layer 1046.
[0133] The Internet gateway 1034 contained in the control plane VCN 1016 can be communicatively coupled to a metadata management service 1052 (for example, metadata management service 952 of FIG. 9) which can be communicatively coupled to the public Internet 1054 (for example, public Internet 954 of FIG. 9). The public Internet 1054 can be communicatively coupled to the NAT gateway 1038 contained in the VCN 1016 control plane. The service gateway 1036 contained in the VCN 1016 control plane can be communicatively coupled to cloud services 1056 (for example, cloud services 956 of FIG. 9).
[0134] In some examples, the VCN 1018 data plane may be contained within the customer tenancy 1021. In this case, the IaaS provider may provide the VCN 1016 control plane for each customer, and the IaaS provider may, for each customer, configure a unique compute instance 1044 that is contained within the service tenancy 1019. Each compute instance 1044 may allow communication between the VCN 1016 control plane, contained within the service tenancy 1019, and the VCN 1018 data plane that is contained within the customer tenancy 1021. The compute instance 1044 may allow resources, which are provisioned in the VCN 1016 control plane that is contained within the service tenancy 1019, to be deployed or otherwise used in the VCN 1018 data plane that is contained within the customer tenancy 1021.
[0135] In other examples, the IaaS provider's customer may have databases that reside in customer tenancy 1021. In this example, Petition 870260056421, dated 10 / 06 / 2026, pp. 231 / 320 65 / 96 the VCN 1016 control plane may include the 1040 data plane mirror application layer which may include 1026 application subnet(s). The 1040 data plane mirror application layer may reside in the VCN 1018 data plane, but the 1040 data plane mirror application layer may not reside in the VCN 1018 data plane. That is, the 1040 data plane mirror application layer may have access to the 1021 customer tenancy, but the 1040 data plane mirror application layer may not exist in the VCN 1018 data plane or may be owned or operated by the IaaS provider's customer. The 1040 data plane mirror application layer can be configured to make calls to the VCN 1018 data plane, but it cannot be configured to make calls to any entity contained in the VCN 1016 control plane.The customer may wish to deploy or otherwise use resources in the VCN 1018 data plane that are provisioned in the VCN 1016 control plane, and the 1040 data plane mirror application level can facilitate the desired deployment or other use of customer resources.
[0136] In some modes, the IaaS provider's customer can apply filters to the VCN 1018 data plane. In this mode, the customer can determine what the VCN 1018 data plane can access and the customer can restrict access to the public Internet 1054 from the VCN 1018 data plane. The IaaS provider may not be able to apply filters or control access from the VCN 1018 data plane to any external networks or databases. The application of filters and controls by the customer to the VCN 1018 data plane, as contained in the customer's lease agreement 1021, can help isolate the VCN 1018 data plane from other customers and the public Internet 1054.
[0137] In some embodiments, cloud services 1056 may be called by service gateway 1036 to access services that may not exist on the public Internet 1054, control plane VCN 1016, or data plane VCN 1018. The connection between cloud services 1056 and control plane VCN 1016 or data plane VCN Petition 870260056421, dated 10 / 06 / 2026, pages 232 / 320 66 / 96 1018 may not be live or continuous. Cloud services 1056 may exist on a different network owned or operated by the IaaS provider. Cloud services 1056 may be configured to receive calls from the service gateway 1036 and may be configured not to receive calls from the public internet 1054. Some cloud services 1056 may be isolated from other cloud services 1056, and the VCN control plane 1016 may be isolated from cloud services 1056 that may not be in the same region as the VCN control plane 1016. For example, the VCN control plane 1016 may be located in “Region 1,” and the cloud service “Deployment 9” may be located in both Region 1 and “Region 2.” If a call to Deployment 9 is made through service gateway 1036 contained in control plane VCN 1016 located in Region 1, the call can be forwarded to Deployment 9 in Region 1.In this example, control plane VCN 1016, or Deployment 9 in Region 1, may not be communicatively coupled to, or otherwise communicating with, Deployment 9 in Region 2.
[0138] FIG. 11 is a block diagram 1100 illustrating another exemplary pattern of an IaaS architecture, according to at least one embodiment. Service operators 1102 (e.g., service operators 902 of FIG. 9) can be communicatively coupled to a secure host tenancy 1104 (e.g., secure host tenancy 904 of FIG. 9) which can include a virtual cloud network (VCN) 1106 (e.g., VCN 906 of FIG. 9) and a secure host subnet 1108 (e.g., secure host subnet 908 of FIG. 9). VCN 1106 can include an LPG 1110 (e.g., LPG 910 of FIG. 9) which can be communicatively coupled to an SSH VCN 1112 (for example, SSH VCN 912 in FIG. 9) via an LPG 1110 contained within SSH VCN 1112. SSH VCN 1112 may include a subnet. SSH 1114 (for example, the SSH 914 subnet in FIG. 9) and the SSH VCN 1112 can be communicatively coupled to a VCN 1116 control plane (for example, the VCN 916 control plane of FIG. 9) through Petition 870260056421, dated 10 / 06 / 2026, pages 233 / 320 67 / 96 an LPG 1110 contained in the control plane VCN 1116 and a data plane VCN 1118 (for example, data plane 918 of FIG. 9) through an LPG 1110 contained in the data plane VCN 1118. The control plane VCN 1116 and the data plane VCN 1118 may be contained in a service location 1119 (for example, service location 919 of FIG. 9).
[0139] The VCN 1116 control plane may include a layer of Control plane DMZ 1120 (e.g., control plane DMZ layer 920 of FIG. 9) which may include load balancer (LB) subnet(s) 1122 (e.g., LB subnet(s) 922 of FIG. 9), a control plane application layer 1124 (e.g., control plane application layer 924 of FIG. 9) which may include application subnet(s) 1126 (e.g., similar to application subnet(s) 926 of FIG. 9), a control plane data layer 1128 (e.g., control plane data layer 928 of FIG. 9) which may include DB subnet(s) 1130. The LB subnet(s) 1122 contained in the DMZ layer of the plane control layer 1120 can be communicatively coupled to application subnetwork(s) 1126 contained in the application layer of control plane 1124 and to an Internet gateway 1134 (for example, Internet gateway 934 of FIG.9) that may be contained in the VCN 1116 control plane and the application subnet(s) 1126 may be communicatively coupled to the DB 1130 subnet(s) contained in the data layer of the control plane 1128 and to a service gateway 1136 (for example, the service gateway of FIG. 9) and a network address translation (NAT) gateway 1138 (for example, the NAT gateway 938 of FIG. 9). The VCN 1116 control plane may include the service gateway 1136 and the NAT gateway 1138.
[0140] The VCN 1118 data plane may include a 1146 data plane application layer (for example, the 946 data plane application layer of FIG. 9), a 1148 data plane DMZ layer (for example, the 948 data plane DMZ layer of FIG. 9) Petition 870260056421, dated 10 / 06 / 2026, pp. 234 / 320 68 / 96 and a data layer of data plane 1150 (for example, the data layer of data plane 950 of FIG. 9). The DMZ layer of data plane 1148 may include LB subnet(s) 1122 which may be communicatively coupled to trusted application subnet(s) 1160 and untrusted application subnet(s) 1162 of the application layer of data plane 1146 and the Internet gateway 1134 contained in the data plane VCN 1118. The trusted application subnet(s) 1160 may be communicatively coupled to the service gateway 1136 contained in the data plane VCN 1118, to the NAT gateway 1138 contained in the data plane VCN 1118, and to the DB subnet(s) 1130 contained in the data layer of data plane 1150. The untrusted application subnet(s) 1162 can be communicatively coupled to service gateway 1136 contained in data plane VCN 1118 and DB subnet(s) 1130 contained in data plane layer 1150.The data plane layer 1150 may include DB 1130 subnet(s) that may be communicatively coupled to the service gateway 1136 contained in the VCN 1118 data plane.
[0141] The untrusted application subnet(s) 1162 may include one or more primary VNICs 1164 (1) to (N) that may be communicatively coupled to leased virtual machines (VMS) 1166(1) to (N). Each VM lease 1166(1) to (N) may be communicatively coupled to a respective application subnet 1167(1) to (N) that may be contained in the respective container egress VCNs 1168(1) to (N) that may be contained in the respective client tenants 1170(1) to (N). The respective secondary VNICs 1172(1) to (N) can facilitate communication between the untrusted application subnet(s) 1162 contained in the data plane VCN 1118 and the application subnet(s) contained in the container egress VCNs 1168(1) to (N). Each container egress VCN 1168(1) to (N) can include a NAT gateway 1138 that can be communicatively coupled to the public Internet 1154 (e.g., public Internet 954 of FIG. 9).
[0142] The 1134 Internet gateway contained in the control plane Petition 870260056421, dated 10 / 06 / 2026, pages 235 / 320 69 / 96 VCN 1116 and contained within the VCN 1118 data plane can be communicatively coupled to a metadata management service 1152 (for example, the metadata management system 952 of FIG. 9) which can be communicatively coupled to the public Internet 1154. The public Internet 1154 can be communicatively coupled to the NAT gateway 1138 contained within the VCN 1116 control plane and contained within the VCN 1118 data plane. The service gateway 1136 contained within the VCN 1116 control plane and contained within the VCN 1118 data plane can be communicatively coupled to cloud services 1156.
[0143] In some modes, the VCN 1118 data plan can be integrated with 1170 client tenancies. This integration may be useful or desirable for IaaS provider clients in some cases, such as a case where they may want support when executing code. The client may provide code for execution that could be destructive, could communicate with other client resources, or could cause undesirable effects. In response to this, the IaaS provider may determine whether to execute the code provided to the IaaS provider by the client.
[0144] In some examples, the IaaS provider client may grant temporary network access to the IaaS provider and request a function to be attached to the application layer of data plane 1146. The code to execute the function may run on VMS 1166(1) to (N), and the code may not be configured to run anywhere else in data plane VCN 1118. Each VM 1166(1) to (N) may be connected to a client tenancy 1170. The respective containers 1171(1) to (N) contained within VMS 1166(1) to (N) may be configured to run the code. In this case, there may be double isolation (for example, containers 1171 (1) to (N) running code, where containers 1171 (1) to (N) may be contained at least in VM 1166 (1) to (N) which are contained in untrusted application subnet(s) 1162), which may help prevent incorrect or undesirable code from damaging the IaaS provider's network or damaging a different customer's network.Containers 1171(1) to (N) can be attached. Petition 870260056421, dated 10 / 06 / 2026, pp. 236 / 320 70 / 96 communicate with customer location 1170 and can be configured to transmit or receive data from customer location 1170. Containers 1171(1) through (N) cannot be configured to transmit or receive data from any other entity in the VCN 1118 data plane. After code execution is complete, the IaaS provider can kill or otherwise dispose of containers 1171(1) through (N).
[0145] In some embodiments, the trusted application subnet(s) 1160 may execute code that may be owned or operated by the IaaS provider. In this embodiment, the trusted application subnet(s) 1160 may be communicatively coupled to the DB subnet(s) 1130 and configured to perform CRUD operations on the DB subnet(s) 1130. The untrusted application subnet(s) 1162 may be communicatively coupled to the DB subnet(s) 1130, but in this embodiment, the untrusted application subnet(s) may be configured to perform read operations on the DB 1130 subnet(s). Containers 1171(1) to (N) that may be contained in VM 1166(1) to (N) of each client and that may execute client code may not be communicatively coupled to the DB 1130 subnet(s).
[0146] In other embodiments, the VCN 1116 control plane and the VCN 1118 data plane may not be directly coupled communicatively. In this embodiment, there may be no direct communication between the VCN 1116 control plane and the VCN 1118 data plane. However, communication may occur indirectly through at least one method. An LPG 1110 may be established by the IaaS provider that can facilitate communication between the VCN 1116 control plane and the VCN 1118 data plane. In another example, the VCN 1116 control plane or the VCN 1118 data plane may make a call to cloud services 1156 through service gateway 1136. For example, a call to cloud services 1156 from the VCN 1116 control plane may include a request for a service that can communicate with the VCN 1118 data plane. Petition 870260056421, dated 10 / 06 / 2026, pp. 237 / 320 71 / 96
[0147] FIG. 12 is a 1200 block diagram illustrating another exemplary pattern of an IaaS architecture, according to at least one embodiment. Service operators 1202 (e.g., service operators 902 of FIG. 9) can be communicatively coupled to a secure host tenancy 1204 (e.g., secure host tenancy 904 of FIG. 9) which can include a virtual cloud network (VCN) 1206 (e.g., VCN 906 of FIG. 9) and a secure host subnet 1208 (e.g., secure host subnet 908 of FIG. 9). VCN 1206 can include an LPG 1210 (e.g., LPG 910 of FIG. 9) which can be communicatively coupled to an SSH VCN 1212 (for example, SSH VCN 912 in FIG. 9) via an LPG 1210 contained within SSH VCN 1212. SSH VCN 1212 may include a subnet. SSH 1214 (for example, the SSH 914 subnet in FIG. 9) and the SSH VCN 1212 can be communicatively coupled to a control plane VCN 1216 (for example, control plane VCN 916 of FIG. 9) through an LPG 1210 contained in control plane VCN 1216 and to a data plane VCN 1218 (for example, data plane 918 of FIG. 9) through an LPG 1210 contained in data plane VCN 1218. Control plane VCN 1216 and data plane VCN 1218 can be contained in a service location 1219 (for example, service location 919 of FIG. 9).
[0148] Control plane VCN 1216 may include a control plane DMZ level 1220 (e.g., control plane DMZ level 920 of FIG. 9) which may include LB subnet(s) 1222 (e.g., LB subnet(s) 922 of FIG. 9), a control plane application level 1224 (e.g., control plane application level 924 of FIG. 9) which may include application subnet(s) 1226 (e.g., application subnet(s) 926 of FIG. 9), a control plane data level 1228 (e.g., control plane data level 928 of FIG. 9) which may include DB subnet(s) 1230 (e.g., DB subnet(s) 1130 of FIG. 11). The LB 1222 subnetwork(s) contained in the DMZ level of control plane 1220 may be Petition 870260056421, dated 10 / 06 / 2026, pages 238 / 320 72 / 96 communicatively coupled to application subnet(s) 1226 contained in the application layer of control plane 1224 and to an Internet gateway 1234 (for example, Internet gateway 934 of FIG. 9) which may be contained in control plane VCN 1216 and application subnet(s) 1226 may be communicatively coupled to DB subnet(s) 1230 contained in the data layer of control plane 1228 and to a service gateway 1236 (for example, the service gateway of FIG. 9) and a network address translation (NAT) gateway 1238 (for example, NAT gateway 938 of FIG. 9). The VCN 1216 control plane may include service gateway 1236 and NAT gateway 1238.
[0149] The VCN 1218 data plane may include a 1246 data plane application layer (for example, the 946 data plane application layer of FIG. 9), a 1248 data plane DMZ layer (for example, the 948 data plane DMZ layer of FIG. 9), and a 1250 data plane layer (for example, the 950 data plane layer of FIG. 9). The DMZ layer of data plane 1248 may include LB subnet(s) 1222 that may be communicatively coupled to trusted application subnet(s) 1260 (e.g., trusted application subnet(s) 1160 of FIG. 11) and untrusted application subnet(s) 1262 (e.g., untrusted application subnet(s) 1162 of FIG. 11) of the application layer of data plane 1246 and the Internet gateway 1234 contained in the VCN data plane 1218.Trusted application subnet(s) 1260 can be communicatively coupled to service gateway 1236 contained in data plane VCN 1218, to NAT gateway 1238 contained in data plane VCN 1218, and to DB subnet(s) 1230 contained in the data layer of data plane 1250. Untrusted application subnet(s) 1262 can be communicatively coupled to service gateway 1236 contained in data plane VCN 1218 and DB subnet(s) 1230 contained in the data layer of data plane 1250. The data layer of data plane 1250 can include subnets. Petition 870260056421, dated 10 / 06 / 2026, pp. 239 / 320 73 / 96 DB 1230 network(s) that can be communicatively coupled to service gateway 1236 contained in data plane VCN 1218.
[0150] The untrusted application subnet(s) 1262 may include primary VNICs 1264 (1) to (N) that may be communicatively coupled to leased virtual machines (VMS) 1266(1) to (N) residing in the untrusted application subnet(s) 1262. Each VM lease 1266(1) to (N) may execute code in a respective container 1267(1) to (N) and be communicatively coupled to an application subnet 1226 that may be contained in a data plane application layer 1246 that may be contained in an egress VCN container 1268. The respective secondary VNICs 1272(1) to (N) may facilitate communication between the untrusted application subnet(s) 1262 contained in the The VCN 1218 data plane and the application subnet(s) contained in the container's egress VCN 1268. The container's egress VCN may include a NAT gateway 1238 that may be communicatively coupled to the public Internet 1254 (e.g., public Internet 954 of FIG. 9).
[0151] The 1234 Internet gateway contained in the control plane VCN 1216 and contained within the VCN 1218 data plane can be communicatively coupled to a metadata management service 1252 (for example, the metadata management system 952 of FIG. 9) which can be communicatively coupled to the public Internet 1254. The public Internet 1254 can be communicatively coupled to the NAT gateway 1238 contained within the VCN 1216 control plane and contained within the VCN 1218 data plane. The service gateway 1236 contained within the VCN 1216 control plane and contained within the VCN 1218 data plane can be communicatively coupled to cloud services 1256.
[0152] In some examples, the pattern illustrated by the 1200 block diagram architecture in FIG. 12 may be considered an exception to the pattern illustrated by the 1100 block diagram architecture in FIG. 11 and may be desirable for an IaaS provider customer if the IaaS provider cannot communicate directly with the customer (for example, Petition 870260056421, dated 10 / 06 / 2026, pp. 240 / 320 74 / 96 a disconnected region). The respective containers 1267(1) to (N) that are contained in the VMS 1266(1) to (N) for each client can be accessed in real time by the client. Containers 1267(1) to (N) can be configured to make calls to their respective secondary VNICs 1272(1) to (N) contained in application subnet(s) 1226 of data plane application layer 1246 which may be contained in the container egress VCN 1268. Secondary VNICs 1272(1) to (N) can forward calls to NAT gateway 1238 which can forward calls to the public Internet 1254. In this example, containers 1267(1) to (N) that can be accessed in real time by the client can be isolated from control plane VCN 1216 and can be isolated from other entities contained in data plane VCN 1218. Containers 1267(1) to (N) can also be isolated from other clients' resources.
[0153]
[0004] In other examples, the client can use the containers 1267(1) to (N) to call cloud services 1256. In this example, the client can execute code in containers 1267(1) to (N) that requests a cloud service 1256. Containers 1267(1) to (N) can forward this request to secondary VNICs 1272(1) to (N) which can forward the request to the NAT gateway which can forward the request to the public internet 1254. The public internet 1254 can forward the request to the LB subnet(s) 1222 contained in the VCN control plane 1216 through the internet gateway 1234. In response to the determination that the request is valid, the LB subnet(s) can forward the request to the application subnet(s) 1226 which can forward the request to the cloud services. 1256 via service gateway 1236.
[0154] It should be taken into consideration that IaaS architectures The 900, 1000, 1100, and 1200 configurations shown in the figures may have other components besides those represented. Furthermore, the configurations shown in the figures are only a few examples of a cloud infrastructure system that may incorporate a different configuration. Petition 870260056421, dated 10 / 06 / 2026, pp. 241 / 320 75 / 96 disclosure. In some other embodiments, IaaS systems may have more or fewer components than those shown in the figures, may combine two or more components, or may have a different configuration or arrangement of components.
[0155] In certain modalities, the IaaS systems described in this Reports may include a suite of applications, middleware, and database service offerings that are delivered to a customer in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner. An example of such an IaaS system is the Oracle Cloud Infrastructure (OCI) provided by this assignee.
[0156] FIG. 13 illustrates an exemplary computer system. 1300, in which various modalities can be implemented. The 1300 system can be used to implement any of the computer systems described above. As shown in the figure, the 1300 computer system includes a processing unit 1304 that communicates with a number of peripheral subsystems through a bus subsystem 1302. These peripheral subsystems may include a processing acceleration unit 1306, an I / O subsystem 1308, a storage subsystem 1318, and a communications subsystem 1324. The storage subsystem 1318 includes tangible computer-readable storage media 1322 and a system memory 1310.
[0157] The 1302 bus subsystem provides a mechanism to allow the various components and subsystems of the 1300 computer system to communicate with each other as intended. Although the 1302 bus subsystem is schematically shown as a single bus, alternative embodiments of the bus subsystem may utilize multiple buses. The 404 system bus may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a bus Petition 870260056421, dated 10 / 06 / 2026, pages 242 / 320 76 / 96 local using any of several bus architectures. For example, such architectures may include an Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus, which may be implemented as a Mezzanine bus manufactured to the IEEE P1386.1 standard.
[0158] The processing unit 1304, which can be implemented as one or more integrated circuits (e.g., a conventional microprocessor or microcontroller), controls the operation of the computer system 1300. One or more processors can be included in the processing unit 1304. These processors can include single-core or multi-core processors. In certain embodiments, the processing unit 1304 can be implemented as one or more independent processing units 1332 and / or 1334 with single-core or multi-core processors included in each processing unit. In other embodiments, the processing unit 1304 can also be implemented as a quad-core processing unit formed by integrating two dual-core processors onto a single chip.
[0159] In various embodiments, the processing unit 1304 can execute a variety of programs in response to program code and can maintain several programs or processes running simultaneously. At any given time, part or all of the program code to be executed may reside in the processor(s) 1304 and / or the storage subsystem 1318. Through appropriate programming, the processor(s) 1304 can provide various features described above. The computer system 1300 may additionally include a processing acceleration unit 1306, which may include a digital signal processor (DSP), a special-purpose processor, and / or the like. Petition 870260056421, dated 10 / 06 / 2026, pp. 243 / 320
[0160] The I / O subsystem 1308 may include user interface input devices and user interface output devices. User interface input devices may include a keyboard, pointing devices such as a mouse or trackball, a touchpad or touchscreen embedded in a display, a scroll wheel, a click wheel, a dial, a button, a switch, a keyboard, audio input devices with voice command recognition systems, microphones, and other types of input devices. User interface input devices may include, for example, motion detection and / or gesture recognition devices, such as the Microsoft Kinect® motion sensor that allows users to control and interact with an input device, such as the Microsoft Xbox® 360 game controller, through a natural user interface using gestures and spoken commands.User interface input devices may also include eye-hand recognition devices, such as the Google Glass® blink detector, which detects users' eye activity (e.g., "blinking" when taking photos and / or making menu selections) and transforms eye gestures into input on an input device (e.g., Google Glass®). Additionally, user interface input devices may include voice recognition detection devices that allow users to interact with voice recognition systems (e.g., Siri® browser) via voice commands.
[0161] User interface input devices may also include, without limitation, three-dimensional (3D) mice, joysticks or pointing sticks, gamepads and graphics tablets, and audio / visual devices such as speakers, digital cameras, digital camcorders, portable media players, webcams, image scanners, fingerprint scanners, 3D barcode reader scanners, 3D printers, laser rangefinders, and eye-tracking devices. Furthermore, user interface input devices Petition 870260056421, dated 10 / 06 / 2026, pp. 244 / 320 78 / 96 user input devices may include, for example, medical image input devices such as computed tomography, magnetic resonance imaging, positional emission tomography, and medical ultrasound devices. User interface input devices may also include, for example, audio input devices such as MIDI keyboards, digital musical instruments, and the like.
[0162] User interface output devices may include a display subsystem, indicator lights, or non-visual displays such as audio output devices, etc. The display subsystem may be a cathode ray tube (CRT), a flat panel device such as one using a liquid crystal display (LCD) or plasma screen, a projection device, a touch screen, and the like. In general, the use of the term “output device” is intended to include all possible types of devices and mechanisms for sending information from the 1300 computer system to a user or another computer. For example, user interface output devices may include, without limitation, a variety of display devices that visually transmit text, graphics, and audio / video information, such as monitors, printers, loudspeakers, headphones, automotive navigation systems, plotters, voice output devices, and modems.
[0163] The computer system 1300 may comprise a storage subsystem 1318 that provides a tangible, non-transient, computer-readable storage medium for storing software and data constructs that provide the functionality of the embodiments described in this disclosure. The software may include programs, code modules, instructions, scripts, etc., which when executed by one or more cores or processors of the processing unit 1304 provide the functionality described above. The storage subsystem 1318 may also provide a repository for storing data used in accordance with this disclosure. Petition 870260056421, dated 10 / 06 / 2026, pp. 245 / 320 79 / 96
[0164] As represented in the example in FIG. 13, the storage subsystem 1318 may include several components, including a system memory 1310, computer-readable storage media 1322, and a computer-readable storage media reader 1320. The system memory 1310 may store program instructions that are loadable and executable by the processing unit 1304. The system memory 1310 may also store data that is used during the execution of instructions and / or data that is generated during the execution of program instructions. Several different types of programs may be loaded into the system memory 1310, including, but not limited to, client applications, web browsers, mid-level applications, relational database management systems (RDBMS), virtual machines, containers, etc.
[0165] The system memory 1310 may also store an operating system 1316. Examples of operating systems 1316 may include various versions of the Microsoft Windows®, Apple Macintosh®, and / or Linux operating systems, a variety of commercially available UNIX® or UNIX-like operating systems (including, without limitation, the variety of GNU / Linux operating systems, Google Chrome® OS, and similar systems), and / or mobile operating systems such as iOS, Windows®Phone, Android®OS, BlackBerry®OS, and Palm®OS. In certain implementations where the computer system 1300 runs one or more virtual machines, the virtual machines along with their guest operating systems (GOSs) may be loaded into the system memory 1310 and executed by one or more processors or cores of the processing unit 1304.
[0166] System memory 1310 may come in different configurations depending on the type of computer system 1300. Computer-readable storage media may include volatile memory (such as random access memory (RAM)) and / or non-volatile memory (such as read-only memory (ROM), memory Petition 870260056421, dated 10 / 06 / 2026, pages 246 / 320 80 / 96 flash, etc.). Different types of RAM configurations can be provided, including static random access memory (SRAM), dynamic random access memory (DRAM), and others. In some implementations, the 1310 system memory may include a basic input / output system (BIOS) containing basic routines that help transfer information between elements within the 1300 computer system, such as during startup.
[0167] Computer-readable storage media 1322 may represent remote, local, fixed and / or removable storage devices, as well as storage media for temporarily and / or more permanently storing computer-readable information for use by the computer system 1300, including instructions executable by the processing unit 1304 of the computer system 1300.
[0168] Computer-readable storage media 1322 may include any suitable media known or used in the art, including storage media and communication media, such as, but not limited to, volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing and / or transmitting information. This may include tangible computer-readable storage media such as RAM, ROM, electronically erasable programmable ROM (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or other tangible computer-readable media.
[0169] By way of example, computer-readable storage media 1322 may include a hard disk drive that reads or writes to non-removable, non-volatile magnetic media, a magnetic disk drive that reads or writes to a removable, non-volatile magnetic disk, and an optical disk drive that reads or writes to an optical disk. Petition 870260056421, dated 10 / 06 / 2026, pp. 247 / 320 81 / 96 removable and non-volatile, such as a CD-ROM, DVD, and Blu-Ray® disc or other optical media. Computer-readable storage media 1322 may include, but are not limited to, Zip® drives, flash memory cards, Universal Serial Bus (USB) flash drives, Secure Digital (SD) cards, DVD discs, digital video tape, and the like. Computer-readable storage media 1322 may also include non-volatile memory-based solid-state drives (SSDs), such as flash memory-based SSDs, enterprise flash drives, solid-state ROM, and the like; volatile memory-based SSDs, such as solid-state RAM, dynamic RAM, static RAM, DRAM-based SSDs, magnetoresistive RAM (MRAM) SSDs, and hybrid SSDs that use a combination of DRAM and flash memory-based SSDs.Disk drives and their associated computer-readable media can provide non-volatile storage of computer-readable instructions, data structures, program modules, and other data for the 1300 computer system.
[0170] Machine-readable instructions executable by one or more processors or cores of the 1304 processing unit may be stored on a non-transient computer-readable storage medium. A non-transient computer-readable storage medium may include physically tangible memory or storage devices that include volatile memory storage devices and / or non-volatile storage devices. Examples of non-transient computer-readable storage media include magnetic storage media (e.g., disk or tapes), optical storage media (e.g., DVDs, CDs), various types of RAM, ROM, or flash memory, hard disks, floppy disk drives, detachable memory units (e.g., USB drives), or other types of storage devices.
[0171] The 1324 communications subsystem provides an interface to other computer systems and networks. The subsystem of Petition 870260056421, dated 10 / 06 / 2026, pp. 248 / 320 The 82 / 96 communications subsystem 1324 serves as an interface for receiving data and transmitting data to other systems of the computer system 1300. For example, the communications subsystem 1324 may allow the computer system 1300 to connect to one or more devices via the Internet. In some embodiments, the communications subsystem 1324 may include radio frequency (RF) transceiver components for accessing wireless voice and / or data networks (e.g., using cellular phone technology, advanced data network technology such as 3G, 4G, or EDGE (enhanced data rates for global evolution), WiFi (IEEE 802.11 family standards or other mobile communication technologies, or any combination thereof), global positioning system (GPS) receiver components, and / or other components. In some embodiments, the communications subsystem 1324 may provide wired network connectivity (e.g., Ethernet) in addition to or instead of a wireless interface.
[0172] In some modes, the communications subsystem 1324 can also receive incoming communication in the form of structured and / or unstructured data feeds 1326, event streams 1328, event updates 1330 and the like on behalf of one or more users who may use the computer system 1300.
[0173] By way of example, the communications subsystem 1324 can be configured to receive real-time data feeds 1326 from users of social networks and / or other communication services, such as Twitter® feeds, Facebook® updates, web feeds such as RSS (Rich Site Summary) feeds and / or real-time updates from one or more third-party information sources.
[0174] In addition, the communications subsystem 1324 can also be configured to receive data in the form of continuous data streams, which may include event streams 1328 of real-time events and / or event updates 1330, which may be continuous or of an unlimited nature without explicit end. Examples of applications that generate continuous data may include, for example, data applications. Petition 870260056421, dated 10 / 06 / 2026, pp. 249 / 320 83 / 96 sensors, financial tickers, network performance measurement tools (e.g., network monitoring and traffic management applications), clickstream analysis tools, automobile traffic monitoring, and the like.
[0175] The communications subsystem 1324 can also be configured to output structured and / or unstructured data feeds 1326, event streams 1328, event updates 1330 and the like to one or more databases that may be in communication with one or more streaming data source computers coupled to the computer system 1300.
[0176] The 1300 computer system can be one of several types, including a portable device (e.g., an iPhone® mobile phone, an iPad® computing tablet, a PDA), a wearable device (e.g., a Google Glass® head-mounted display), a PC, a workstation, a mainframe, a kiosk, a server rack, or any other data processing system.
[0177] Due to the constantly changing nature of computers and networks, the description of the 1300 computer system shown in the figure is intended only as a specific example. Many other configurations with more or fewer components than the system shown in the figure are possible. For example, custom hardware can also be used and / or particular elements can be implemented in hardware, firmware, software (including applets), or a combination thereof. Furthermore, connection to other computing devices, such as network input / output devices, can be employed. Based on the disclosure and teachings provided in this Report, a person skilled in the art will evaluate other ways and / or methods to implement the various modalities.
[0178] The modalities can be implemented using a computer program product, comprising computer program / instructions that, when executed by a processor, cause the processor to execute any of the methods described. Petition 870260056421, dated 10 / 06 / 2026, pages 250 / 320 84 / 96 in the disclosure.
[0179] Although specific embodiments have been described, various modifications, alterations, alternative constructions, and equivalents are also encompassed within the scope of this disclosure. The embodiments are not restricted to operation within certain specific data processing environments but are free to operate within a plurality of data processing environments. Additionally, although embodiments have been described using a particular series of transactions and steps, it should be evident to those skilled in the art that the scope of this disclosure is not limited to the described series of transactions and steps. Various features and aspects of the subject described above may be used individually or in combination.
[0180] Furthermore, although embodiments have been described using a particular combination of hardware and software, it should be recognized that other combinations of hardware and software are also within the scope of this disclosure. Embodiments may be implemented in hardware alone, or in software alone, or using combinations thereof. The various processes described in this Report may be implemented on the same processor or different processors in any combination. Where components are described as being configured to perform certain operations, such configuration may be accomplished, for example, by designing electronic circuits to perform the operation, programming programmable electronic circuits (such as microprocessors) to perform the operation, or any combination thereof.Processes can communicate using a variety of techniques, including, but not limited to, conventional techniques for communication between processes, and different pairs of processes may use different techniques, or the same pair of processes may use different techniques at different times.
[0181] The Descriptive Report and drawings should therefore be considered in an illustrative, not restrictive, sense. It will, however, be evident that additions, subtractions, deletions and Petition 870260056421, dated 10 / 06 / 2026, pp. 251 / 320 85 / 96 other modifications and alterations without departing from the broader spirit and scope as set forth in the Claims. Thus, while specific disclosure methods have been described, these are not intended to be limiting. Various modifications and equivalents are within the scope of the following Claims.
[0182] The use of the terms “a” and “an”, “the” and “the” and similar referents in the context of describing elements (especially in the context of the following Claims) should be interpreted to cover both the singular and plural forms, unless otherwise indicated in this Report or clearly contradicted by the context. The terms “comprising”, “having”, “including” and “containing” should be interpreted as open terms (i.e., “including, but not limited to”), unless otherwise indicated. The term “connected” should be interpreted as partially or wholly contained, attached or joined, even if something is intervening.The recitation of value ranges in this Report is intended only as a shorthand method for referring individually to each separate value that falls within the range, unless otherwise indicated in this Report, and each separate value is incorporated into the Descriptive Report as if it were individually recited in this Report. All methods described in this Report may be performed in any appropriate order unless otherwise indicated in this Report or otherwise clearly contradicted by the context. The use of any and all examples, or illustrative language (e.g., “such as”) provided herein is intended only to better clarify the disclosure and does not represent a limitation on the scope of the disclosure, unless otherwise claimed. No language in the Descriptive Report should be construed as indicating any unclaimed element as essential to the practice of the disclosure.
[0183] Disjunctive language, such as the sentence “at least one of X, "Y or Z", unless specifically indicated otherwise, is intended to be understood within the context as generally used for Petition 870260056421, dated 10 / 06 / 2026, pp. 252 / 320 86 / 96 suggests that an item, term, etc., can be X, Y, or Z, or any combination thereof (e.g., X, Y, and / or Z). Thus, such conjunctive language is not intended in a general way to imply that certain modalities require at least one of X, at least one of Y, and at least one of Z to each be present, unless otherwise indicated.
[0184] Preferred modes of this disclosure are described here This report includes the best known manner to the inventors for making the disclosure. Variations of these preferred embodiments may become apparent to those skilled in the art from reading the foregoing description. Those skilled in the art should be able to employ such variations as appropriate, and the disclosure may be made in a manner other than as specifically described in this report. Consequently, this disclosure includes all modifications and equivalents of the subject matter referenced in the Claims added hereto as permitted by applicable law. Furthermore, any combination of the elements described above, in all possible variations thereof, is covered by the disclosure unless otherwise indicated in this report or otherwise clearly contradicted by the context.
[0185] The terms of this disclosure can be described taking into account the following clauses:
[0186] Clause 1. A method is disclosed. The method may comprise identifying, by a power management service, a plurality of components of a power system that are arranged according to a power distribution hierarchy that may comprise a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the power distribution hierarchy represents a corresponding component of the plurality of components. A subset of nodes of a first level of the plurality of levels may descend from a particular node of a second level. Petition 870260056421, dated 10 / 06 / 2026, pp. 253 / 320 87 / 96 level of the plurality of levels that is higher than the first level. A set of lower-level components of the plurality of components may be represented by the subset of nodes of the first level receiving distributed energy through a higher-level component of the plurality of components that is represented by the particular node of the second level. The method may comprise monitoring, by the energy management service, the energy consumption of the set of lower-level components represented by the subset of nodes of the first level. The method may comprise determining, by the energy management service based at least in part on the monitoring, that the energy consumption of the set of lower-level components has violated a budget limit associated with the higher-level component.The method may further comprise responding to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component by transmitting, via the power management service, a power limit value to a lower-level component. In some embodiments, the transmission of the power limit value may cause the lower-level component to store the power limit value in memory while allowing a corresponding power consumption of the lower-level component to exceed the power limit value, until a time period corresponding to a timeout value expires.
[0187] Clause 2. The method in clause 1, whereby storing the power limit value in memory while allowing the respective power consumption of the lower-level component to exceed the power limit value allows the set of lower-level components to continue to violate the budget limit associated with the higher-level component for at least part of the time period corresponding to the timing value.
[0188] Clause 3. The method of clauses 1 or 2, wherein the method may additionally comprise transmitting, by the service of Petition 870260056421, dated 10 / 06 / 2026, pp. 254 / 320 In 88 / 96 power management, the timing value for an intermediate component is represented by a specific node at an intermediate level of the power distribution hierarchy between the first and second levels. In some embodiments, the set of lower-level components is configured to receive distributed power from the higher-level component through the intermediate component. In some embodiments, the transmission of the timing value causes the intermediate component to generate a timer associated with the time period corresponding to the timing value. In some embodiments, the intermediate component is configured to instruct, based at least in part on the timer expiration, the lower-level component to trigger operations to limit its operations based at least in part on the power limit value.
[0189] Clause 4. The method of any of clauses 1 to 3, wherein determining that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component, may further comprise determining that the energy consumption of the lower-level component set is likely to violate a budgeted amount of energy allocated to the higher-level component.
[0190] Clause 5. The method of clause 4, further comprising obtaining, based at least in part on historical energy consumption data associated with the set of lower-level components that receive energy distributed by the higher-level component, a confidence value indicating that the energy consumption corresponding to the set of lower-level components is likely to violate the budgeted amount of energy allocated to the higher-level component. The method may comprise determining that the confidence value exceeds a threshold.
[0191] Clause 6. Some embodiments include a system. The system may comprise memory configured to store Petition 870260056421, dated 10 / 06 / 2026, pages 255 / 320 89 / 96 instructions and one or more processors configured to execute the instructions of a method. The method may comprise identifying, by a power management service, a plurality of components of a power system that are arranged according to a power distribution hierarchy comprising a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the power distribution hierarchy represents a corresponding component of the plurality of components. In some embodiments, a subset of nodes of a first level of the plurality of levels descends from a particular node of a second level of the plurality of levels that is higher than the first level.In some embodiments, a set of lower-level components from the plurality of components represented by the first-level node subset receives distributed power through a higher-level component from the plurality of components represented by the particular second-level node. The method may comprise monitoring, by the power management service, the power consumption of the set of lower-level components represented by the first-level node subset. The method may comprise determining, by the power management service based at least in part on the monitoring, that the power consumption of the set of lower-level components has violated a budget limit associated with the higher-level component.The method may involve responding to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component, by transmitting, through the power management service, a power limit value to a lower-level component, causing the lower-level component to store the power limit value in memory while allowing a respective power consumption of the lower-level component to exceed the power limit value, up to a period of time. Petition 870260056421, dated 10 / 06 / 2026, pp. 256 / 320 90 / 96 corresponds to a timeout value.
[0192] Clause 7. The system of clause 6, in which the expiration of a timer corresponding to the time period triggers the lower-level component to limit energy consumption based, at least in part, on at least one of: dynamic frequency scale or dynamic voltage scale.
[0193] Clause 8. The system of clauses 6 or 7, wherein the second level of the power distribution hierarchy comprises two or more of the plurality of nodes representing at least the top-level component corresponding to a first top-level component and a second top-level component different from the first top-level component, wherein the execution of the instructions causes the system to at least: 1) determine, by the power management service with respect to the second top-level component, that there is an unused portion of power provisioned for the second top-level component; 2) determine, by the power management service, a particular power threshold value for a second lower-level component of a second set of lower-level components that are receiving power through the second top-level component;3) transmit, via the power management service, the respective power limit value to the second lower-level component, wherein the transmission of the respective power limit value triggers the second lower-level component to accelerate operations on the second lower-level component as part of the application of the respective power limit value; and 4) transmit, via the power management service, a cancellation signal that causes a timer corresponding to the time period to be canceled, wherein the cancellation of the timer causes the lower-level component to refrain from imposing the power limit value after the time period expires.
[0194] Clause 9. The system of any of clauses 6 to 8, in which the execution of the instructions causes the system, at least, Petition 870260056421, dated 10 / 06 / 2026, pages 257 / 320 91 / 96 further respond to the determination that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component, determine, by the energy management service, the energy limit value based, at least in part, on at least one of: a difference between the energy consumption of the lower-level component set, a priority value associated with a workload being executed on the lower-level component set, or individual consumption rates of the lower-level component set.
[0195] Clause 10. The system of any of clauses 6 to 9, where the energy limit value is determined based on a monitored data value obtained on or after determining that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component.
[0196] Clause 11. Some embodiments comprise a method comprising identifying, by a power management service, a plurality of components of a power system that are arranged according to a power distribution hierarchy comprising a plurality of nodes organized according to the respective levels of a plurality of levels. In some embodiments, a node of the plurality of nodes of the power distribution hierarchy represents a corresponding component of the plurality of components. In some embodiments, a subset of nodes of a first level of the plurality of levels descends from a particular node of a second level of the plurality of levels that is higher than the first level.In some embodiments, a set of lower-level components from the plurality of components represented by the subset of nodes at the first level receives distributed energy through a higher-level component from the plurality of components represented by the particular node at the second level. The method may involve monitoring, through the energy management service, the energy consumption of the set of lower-level components. Petition 870260056421, dated 10 / 06 / 2026, pp. 258 / 320 92 / 96 represented by the subset of nodes at the first level. The method may comprise determining, by the energy management service based at least in part on monitoring, that the energy consumption of the lower-level component set has violated a budget limit associated with the higher-level component. The method may comprise responding to the determination that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component by initiating a timer corresponding to a timing value.In some modes, the timer expiration indicates the expiration of a time period corresponding to the timing value; a lower-level component of the lower-level component set stores a power limit value in memory during the time period, and the application of the power limit value on the lower-level component is delayed until the timer expires.
[0197] Clause 12. The method in Clause 11 may further comprise, in response to the determination that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component, determining, by the energy management service, the timing value based at least in part on at least one of: a rate of change of the energy consumption of the lower-level component set, a direction of change corresponding to the rate of change of the energy consumption of the lower-level component set, a tolerance to the power circuits associated with the higher-level component, or an expected time required to initiate energy throttling on each component in the lower-level component set.
[0198] Clause 13. The method of clauses 11 or 12, wherein starting the timer corresponding to the timing value additionally comprises transmitting, via the power management service, the timing value to an intermediate component from which the lower-level component receives power. In some Petition 870260056421, dated 10 / 06 / 2026, pp. 259 / 320 In modes 93 / 96, the transmission of the timing value causes the intermediate component to generate the timer associated with the time period corresponding to the timing value.
[0199] Clause 14. The method of clause 13, in which the intermediate component triggers the application of the energy limit value to the lower-level component after the timer expires.
[0200] Clause 15. The method of any of clauses 11 to 14, further comprising: 1) obtaining, based at least in part on historical energy consumption data associated with a second set of lower-level components receiving distributed energy from the higher-level component, a probability value indicating that a combined energy consumption corresponding to the second set of lower-level components receiving distributed energy from the higher-level component is likely to exceed the budget limit associated with the higher-level component; and 2) in response to the determination that the probability value exceeds a probability limit, transmitting, through the energy management service, an additional energy limit value for a second lower-level component of the second set of lower-level components.where the transmission of the additional energy limit value causes the additional energy limit value to be used to restrict the corresponding energy consumption in the second lower-level component of the second set of lower-level components.
[0201] Clause 16. In some embodiments, a system is disclosed. The system may comprise memory configured to store instructions and one or more processors configured to execute the instructions to execute a method. The method may comprise identifying, by a power management service, a plurality of components of a power system that are arranged according to a power distribution hierarchy comprising a plurality of nodes organized according to the respective levels of a plurality of levels, a node of the plurality of Petition 870260056421, dated 10 / 06 / 2026, pages 260 / 320 94 / 96 nodes of the energy distribution hierarchy representing a corresponding component of the plurality of components. In some embodiments, a subset of nodes from a first level of the plurality of levels descends from a particular node of a second level of the plurality of levels that is higher than the first level. In some embodiments, a set of lower-level components of the plurality of components is represented by the subset of nodes of the first-level receiving energy distributed through a higher-level component of the plurality of components that is represented by the particular node of the second level. The method may comprise monitoring, by the energy management service, the energy consumption of the set of lower-level components represented by the subset of nodes of the first level.The method may further comprise determining, by the power management service based at least in part on monitoring, that the power consumption of the lower-level component set has violated a budget limit associated with the higher-level component. The method may comprise, in response to the determination that the power consumption of the lower-level component set has violated the budget limit associated with the higher-level component, initiating a timer corresponding to a timing value. In some embodiments, the timer's expiration indicates the expiration of a time period corresponding to the timing value; a lower-level component of the lower-level component set stores a power limit value in memory during the time period; and the application of the power limit value to the lower-level component is delayed until the timer expires.
[0202] Clause 17. The system of clause 16, in which the execution of the instructions causes the system to at least still respond to the determination that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component, determine, by the energy management service, the Petition 870260056421, dated 10 / 06 / 2026, pp. 261 / 320 95 / 96 timing value based, at least in part, on at least one of: a rate of change of the energy consumption of the lower-level component set, a direction of change corresponding to the rate of change of the energy consumption of the lower-level component set, a tolerance to the power circuits associated with the higher-level component, or an expected time required to initiate the energy limit in each component in the lower-level component set.
[0203] Clause 18. The system of clauses 16 or 17, whereby the lower-level component set is considered to be in breach of the budget limit based, at least in part, on the determination by the energy management service and based, at least in part, on historical consumption data associated with the lower-level component set, that the energy consumption of the lower-level component set is likely to infringe the budget limit.
[0204] Clause 19. The system of any of clauses 16 to 18, wherein the second level of the power distribution hierarchy comprises two or more of the plurality of nodes representing at least the top-level component corresponding to a first top-level component and a second top-level component different from the first top-level component, wherein the execution of the instructions causes the system to at least: 1) determine, by the power management service with respect to the second top-level component, that there is an unused portion of power supplied to the second top-level component, 2) determine, by the power management service, a specific power threshold value for a second lower-level component from a second set of lower-level components that are receiving power through the second top-level component, 3) transmit, by the power management service,the specific energy limit value for the second lower-level component, where a, Petition 870260056421, dated 10 / 06 / 2026, pp. 262 / 320 96 / 96 transmission of the specific energy limit value to the second lower-level component triggers energy consumption restrictions to be performed on the second lower-level component as part of the application of the specific energy limit value, and 4) transmit, via the energy management service, a cancellation signal that causes the timer to be canceled.
[0205] Clause 20. The system of any of clauses 16 to 19, where the energy limit value is determined based on a monitored data value obtained on or after the determination that the energy consumption of the lower-level component set has violated the budget limit associated with the higher-level component.
[0206] All references, including publications, patent applications and patents, cited in this Report are incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in this Report in its entirety.
[0207] In the previous Descriptive Report, aspects of the disclosure are described with reference to specific embodiments, but those skilled in the art will recognize that the disclosure is not limited to this. Several features and aspects of the disclosure described above can be used individually or in combination. Furthermore, the embodiments can be used in any number of environments and applications beyond those described in this Report without departing from the broader spirit and scope of the Descriptive Report. The Descriptive Report and the Drawings should therefore be considered illustrative rather than restrictive. Petition 870260056421, dated 10 / 06 / 2026, pp. 263 / 320
Claims
1 / 9 CLAIMS 1. A method, characterized in that it comprises: identifying, by an energy management service, components of an energy system that are arranged according to an energy distribution hierarchy, the energy distribution hierarchy comprising nodes organized according to their respective levels within the levels; monitoring, by the energy management service, the energy consumption of a set of lower-level components, the set of lower-level components being represented by a subset of nodes of a first level of the energy distribution hierarchy;To obtain, through the energy management service, a machine learning model that has been previously trained using supervised learning and labeled training data examples to predict a probability that a collective energy consumption of one or more lower-level components violates a corresponding budget threshold of a corresponding higher-level component, a labeled training data example comprising 1) historical consumption data corresponding to a set of lower-level components to which energy has been passed via a respective higher-level component and 2) a label indicating a corresponding probability that the collective energy consumption of the set of lower-level components violates a respective budget threshold of the respective higher-level component;to determine, by the energy management service based, at least in part, on the output obtained from the machine learning model, that the energy consumption of the lower-level component set likely violates a budget threshold associated with a higher-level component corresponding to a second level of the energy distribution hierarchy, the second level being higher in the energy distribution hierarchy than the first;and transmit, through the power management service, a power threshold value and a timing value with which a timer is started, a lower-level component of the lower-level component set stores the power threshold value in memory while allowing a respective power consumption of the lower-level component to exceed the power threshold value, until the timer expires, indicating that a period of time corresponding to a timing value has elapsed.
2. A method, according to Claim 1, characterized in that determining that the energy consumption of the lower-level component set is likely to violate the budget threshold associated with the higher-level component corresponding to the second level of the energy distribution hierarchy, further comprises determining a predicted energy consumption of the lower-level component set that is likely to occur in a future time period.
3. A method, according to Claim 1, characterized in that the output received from the machine learning model indicates an amount by which the energy consumption corresponding to the set of lower-level components is expected to change.
4. A method, according to Claim 1, characterized in that storing the power limit value in memory while allowing the respective power consumption of the lower-level component to exceed the power limit value causes the set of one or more lower-level components to violate the budget threshold associated with the higher-level component for at least part of the time period corresponding to the timing value. Petition 870260056421, dated 10 / 06 / 2026, p. 311 / 320 3 / 9 5. A system characterized in that it comprises: one or more processors; and a memory configured to store computer executable instructions that, when executed by one or more processors, cause one or more processors to: identify components that are arranged according to a power distribution hierarchy, the power distribution hierarchy comprising nodes organized according to their respective levels within the levels; monitor the power consumption of a set of lower-level components represented by a subset of nodes of a first level of the power distribution hierarchy, the set of lower-level components receiving power through a higher-level component corresponding to a second level of the power distribution hierarchy, the second level being higher in the power distribution hierarchy than the first level;Obtain a machine learning model that has been previously trained using supervised learning and labeled training data examples to predict the probability that the collective energy consumption of one or more lower-level components violates a corresponding budget threshold of a corresponding higher-level component, a labeled training data example comprising 1) historical consumption data corresponding to a set of lower-level components to which energy has been transmitted via a respective higher-level component and 2) a label indicating the corresponding probability that the collective energy consumption of the set of lower-level components violates a respective budget threshold of the respective higher-level component;Determine, based at least in part on the output of the machine learning model, that the aggregate power consumption of the lower-level component set will likely violate a budget limit associated with the higher-level component; and transmit a power limit value and a timing value with which a timer is started, where the transmission of the power limit value and the timing value causes the lower-level component set to violate the budget threshold until the timer expires, indicating that a period of time corresponding to the timing value has elapsed.
6. System according to Claim 5, characterized in that the expiration of the timer triggers at least one lower-level component of the lower-level component assembly to limit its respective power consumption based, at least in part, on the power limit value.
7. System, according to Claim 6, characterized in that the limitation of the respective energy consumption based, at least in part, on the power limit value, is based, at least in part, on at least one of: dynamic frequency scaling or dynamic voltage scaling.
8. A system, according to Claim 5, characterized in that the top-level component is a first top-level component, wherein the second level of the power distribution hierarchy comprises a second top-level component different from the first top-level component, and wherein the execution of instructions further causes one or more processors, at least: Petition 870260056421, dated 10 / 06 / 2026, pp. 313 / 320 5 / 9 determine that there is an unused portion of power provisioned for the second top-level component; modify the power consumption of a second lower-level component that is receiving power through the second top-level component; transmit a cancellation signal that causes the timer to be canceled, wherein the cancellation of the timer causes the lower-level component of the lower-level component set to refrain from enforcing the power limit value.
9. A system according to Claim 5, characterized in that the output further comprises a forecast of the aggregate power consumption for the lower-level component set during a future period, and in that the execution of instructions that determine that the aggregate power consumption of the lower-level component set will likely violate the budget limit associated with the higher-level component causes one or more processors to compare the predicted aggregate power consumption for the lower-level component set during the future period with the budget limit associated with the higher-level component.
10. System, according to Claim 5, characterized in that the energy limit value is determined based, at least in part, on determining an amount by which the energy consumption of the lower-level component set is likely to violate the budget threshold associated with the higher-level component.
11. A method, characterized in that it comprises: monitoring, by a power management service, the energy consumption of a set of lower-level components of a power distribution system, the set of lower-level components receiving energy through a higher-level component of the power distribution system; determining, by the power management service based at least in part on the monitoring, that an aggregate energy consumption of the set of lower-level components is likely to violate a budgeted energy threshold associated with the higher-level component; and in response to the determination that the aggregate energy consumption of the set of lower-level components is likely to violate the budgeted energy threshold associated with the higher-level component, initiating a timer corresponding to a period of time,wherein the timer initialization delays the application of a power limit on a lower-level component of the lower-level component set by at least the time period corresponding to the timer, wherein the timer is initialized with a timing value that is determined based on at least one of: a rate of change of the aggregate power consumption of the lower-level component set, a direction of change corresponding to the rate of change of the aggregate power consumption of the lower-level component set, a tolerance to a power circuit associated with the higher-level component, or an expected time required to initiate power limiting on each component of the lower-level component set.
12. Method, according to Claim 11, characterized in that initiating the timer corresponding to the timing period further comprises transmitting, via the power management service, the timing value to an intermediate component from which the lower-level component receives power, the intermediate component receiving power from the higher-level component, wherein the transmission of the timing value causes the intermediate component to generate the timer corresponding to the timing value, the timer being set to expire based on the expiration of the time period corresponding to the timing value.
13. Method, according to Claim 12, characterized in that starting the intermediate component triggers the application of the energy limit on the lower-level component after the timer expires. 14.A system, characterized in that it comprises: one or more processors; and memory comprising computer executable instructions that, when executed by one or more processors, cause one or more processors to: monitor the energy consumption of a set of downstream components of a power distribution system, the set of downstream components receiving energy through an upstream component of the power distribution system; determine, based at least in part on energy consumption, that an aggregate energy consumption of the set of downstream components will violate a budgeted energy threshold in a future period, the budgeted energy threshold being associated with the upstream component; and in response to the determination that the aggregate energy consumption of the set of downstream components is likely to violate the budgeted energy threshold associated with the upstream component, initiate a timer corresponding to a Petition 870260056421, dated 10 / 06 / 2026, p.316 / 320 8 / 9 time period, in which the timer initialization delays the application of a power limit on a downstream component of the downstream component assembly for at least the time period corresponding to the timer, in which the timer is initialized with a timing value that is determined based on at least part of at least one of: a rate of change of the aggregate power consumption of the downstream component assembly, a direction of change corresponding to the rate of change of the aggregate power consumption of the downstream component assembly, a tolerance to a power circuit associated with the upstream component, or an expected time required to initiate power limiting on each component in the downstream component assembly.
15. A system according to Claim 14, characterized in that the execution of the instructions causes one or more processors to: train a machine learning model to identify a probability value indicating a probability that the corresponding aggregate power consumption of one or more downstream components violates a power limit of a corresponding upstream component; provide historical power consumption data of the downstream component set to the machine learning model as input; and receive output from the machine learning model, the output indicating a corresponding probability that the corresponding aggregate power consumption of the downstream component set violates the budgeted power limit associated with the upstream component.
16. System, according to Claim 14, characterized in that Petition 870260056421, dated 10 / 06 / 2026, pp. 317 / 320 9 / 9 the execution of the executable computer instructions that initiate the timer causes one or more processors to transmit the timing value corresponding to the time period and a corresponding power limit value, the timing value being used by an intermediate component to generate the timer, the power limit value being stored in the memory of the subsequent component in the subsequent component set while the application of the power limit is delayed. Petition 870260056421, dated 10 / 06 / 2026, pp. 318 / 320