Apparatus and method for optimizing blockchain resources

KR103015605B1Active Publication Date: 2026-09-04SAMSUNG SDS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
KR1020210141082
Authority / Receiving Office
KR · KR
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-10-21
Publication Date
2026-09-04
Estimated Expiration
2041-10-21

Smart Images

  • Figure 112021120824150-PAT00001_ABST
    Figure 112021120824150-PAT00001_ABST
Patent Text Reader

Abstract

The present disclosure relates to a method and apparatus for optimizing blockchain resources. A method for optimizing blockchain resources according to some embodiments of the present disclosure may include, in a method performed by a computing device, the step of filtering resource usage of a first container for a one-time process—wherein the first container is a process execution unit included in a pod, and the pod is an application execution unit included in a blockchain network—the step of calculating a resource utilization rate of the first container for the transaction process based on the result of the filtering, the step of calculating an optimal resource allocation of the first container based on the resource utilization rate, and the step of adjusting the resources of the pod including the first container based on the optimal resource allocation.
Need to check novelty before this filing date? Find Prior Art

Description

Technology Field

[0001] The present disclosure relates to a method and apparatus for optimizing blockchain resources. More specifically, it relates to a method and apparatus for allocating optimal resources to containers constituting a blockchain network by filtering resource usage for one-time processes. Background Technology

[0002] Conventionally, as multiple applications ran on a single physical server, the performance of other applications degraded when one application consumed the majority of the server's resources. As an alternative, a method was devised to run individual applications on multiple physical servers; however, this approach did not fully utilize the resources of each individual physical server.

[0003] Virtualization methods that run multiple virtual machines (VMs) on a single physical server allowed for more efficient resource utilization than before by isolating applications running on each virtual machine; however, due to the isolation of the virtualization method, a separate operating system (OS) was required for each virtual machine.

[0004] Accordingly, Kubernetes is being utilized, which is similar to virtualization but somewhat relaxes the isolation requirements of virtualization to allow operating systems to be shared among applications. In particular, as Kubernetes provides an environment for the flexible execution of distributed computing, blockchain networks, an example of a distributed database, are being implemented using the Kubernetes method.

[0005] However, although the aforementioned Kubernetes approach provides an environment for elastically executing distributed computing, resource allocation relies purely on the administrator's experience; consequently, idle or resource shortages still occurred in the containers configuring the Kubernetes environment.

[0006] Therefore, a technique is required to optimize container resources by providing optimal resource allocations to pods containing at least one container. Prior art literature

[0007] Korean Registered Patent No. 10-2191586 (Published May 15, 2020) The problem to be solved

[0008] The technical problem to be solved by some embodiments of the present disclosure is to provide an apparatus for optimizing resources allocated to containers constituting a blockchain network and a method performed by said apparatus.

[0009] Another technical problem to be solved by some embodiments of the present disclosure is to provide an apparatus and a method performed by the apparatus that improve the performance of a process performed in a container by allocating optimal resources to the container.

[0010] Another technical problem to be solved by some embodiments of the present disclosure is to provide a device and a method performed by the device that reduce the cost consumed by idle resources by allocating optimal resources to containers included in a pod.

[0011] Another technical problem to be solved by some embodiments of the present disclosure is to provide a device for coordinating the resources of a pod without interruption of services provided through a blockchain network, and a method performed by said device.

[0012] Another technical problem to be solved through some embodiments of the present disclosure is to provide a device capable of increasing the accuracy of calculating the resource utilization rate of a container and a method performed by said device.

[0013] Another technical problem to be solved by some embodiments of the present disclosure is to provide a device capable of determining the priority of resource distribution and a method performed by said device.

[0014] The technical problems of the present disclosure are not limited to those mentioned above, and other unmentioned technical problems will be clearly understood by a person skilled in the art from the description below. means of solving the problem

[0015] A blockchain resource optimization method according to some embodiments of the present disclosure for solving the above technical problem may include, in a method performed by a computing device, the step of filtering resource usage of a first container for a one-time process—wherein the first container is a process execution unit included in a pod, and the pod is an application execution unit included in a blockchain network—, the step of calculating a resource usage rate of the first container for the transaction process based on the result of the filtering, the step of calculating an optimal resource allocation of the first container based on the resource usage rate, and the step of adjusting the resources of the pod including the first container based on the optimal resource allocation.

[0016] In some embodiments, the blockchain network may be a permission-based blockchain network.

[0017] In some embodiments, the filtering step may include a step of filtering the resource usage of the first container for the one-time process determined based on the start time or end time of the process, or a step of filtering the resource usage of the first container for the one-time process determined based on the type of process.

[0018] In some embodiments, the step of calculating the resource utilization rate may include the step of calculating the resource utilization rate based on the resource allocation and resource usage of the first container, the step of calculating the resource utilization rate based on the number of transaction data processed in the first container, or the step of calculating the resource utilization rate based on the latency of the first container.

[0019] In some embodiments, the step of calculating the optimal resource allocation may include the step of calculating the optimal resource allocation to reduce the resource utilization when the resource utilization exceeds an upper threshold. Here, the optimal resource allocation may be determined based on the upper threshold and lower threshold of the resource utilization. Additionally, the step of adjusting the resources of the pod including the first container may include the step of distributing resources to the pod based on the difference between the optimal resource allocation and the resource allocation of the first container.

[0020] In some embodiments, the step of calculating the optimal resource allocation may include the step of calculating the optimal resource allocation to increase the resource utilization rate when the resource utilization rate is below a lower threshold. Here, the optimal resource allocation may be determined based on the upper threshold and lower threshold of the resource utilization rate. Additionally, the step of adjusting the resources of the pod including the first container may include the step of reclaiming the resources of the pod based on the difference between the optimal resource allocation and the resource allocation of the first container.

[0021] In some embodiments, the step of performing blockchain resource optimization in response to an input from a manager is further included, wherein the filtering step includes filtering the resource usage of the first container for the one-time process existing in the time interval determined based on the input from the manager, the step of calculating the resource usage rate includes calculating the resource usage rate corresponding to the time interval, and the step of calculating the optimal resource allocation may include calculating the optimal resource allocation corresponding to the time interval.

[0022] In some embodiments, the pod includes the first container and the second container distinguished from the first container, and the step of adjusting the resources of the pod may include adjusting the resources of the pod when adjustment of at least one of the resources of the first container and the second container included in the pod is required.

[0023] A blockchain resource optimization method according to some other embodiments of the present disclosure may include, in a method performed by a computing device, the steps of obtaining a list of a plurality of pods for which the calculation of an optimal resource allocation has been completed—wherein the optimal resource allocation is a resource allocation for improving the resource utilization of at least one container included in each of the plurality of pods, wherein the pod is an application execution unit included in a blockchain network, and wherein the container is a process execution unit—, recovering resources from a first pod among the plurality of pods included in the list—wherein the first pod is a pod for which a down-adjustment of resources is required based on the optimal resource allocation—, determining a priority for resource distribution of a second pod among the plurality of pods included in the list—wherein the second pod is a pod for which a up-adjustment of resources is required based on the optimal resource allocation—and distributing resources recovered from the first pod to the second pod based on the priority.

[0024] In some other embodiments, the step of distributing resources recovered from the first pod to the second pod may include distributing resources recovered from the first pod to the second pod based on the priority when the classification of the plurality of pods included in the list is completed.

[0025] In some other embodiments, the priority may be determined to be higher as the amount of up-adjustment of the resource increases. Here, the resource includes memory and a CPU (Central Processing Unit), and the priority is determined based on a weight applied to each of the amount of up-adjustment of the memory and the amount of up-adjustment of the CPU, and the second weight applied to the amount of up-adjustment of the second may be set higher than the first weight applied to the amount of up-adjustment of the first.

[0026] A blockchain resource optimization device according to some other embodiments of the present disclosure comprises a processor, a network interface, a memory, and a computer program loaded into the memory and executed by the processor, wherein the computer program may include an instruction for filtering resource usage of a first container for a one-time process—wherein the first container is a process execution unit included in a pod, and the pod is an application execution unit included in a blockchain network—an instruction for calculating a resource usage rate of the first container for a transaction process based on the result of the filtering, an instruction for calculating an optimal resource allocation of the first container based on the resource usage rate, and an instruction for adjusting the resources of the pod including the first container based on the optimal resource allocation. Brief explanation of the drawing

[0027] FIG. 1 illustrates an exemplary environment in which a blockchain resource optimization device according to some embodiments of the present disclosure may be applied. FIG. 2 is an exemplary drawing for illustrating a Kubernetes environment that may be referenced in some embodiments of the present disclosure. FIG. 3 is an exemplary drawing for more specifically explaining the operation of a blockchain resource optimization device described with reference to FIG. 1. FIGS. 4 and 5 are exemplary flowcharts for illustrating a blockchain resource optimization method according to some embodiments of the present disclosure. FIG. 6 is an exemplary drawing for illustrating the resource utilization of a container that may be referenced in some embodiments of the present disclosure. FIG. 7 is an exemplary drawing for illustrating resource optimization of a container that may be referenced in some embodiments of the present disclosure. FIG. 8 illustrates an exemplary computing device capable of implementing a device and / or system according to various embodiments of the present disclosure. Specific details for implementing the invention

[0028] Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the attached drawings. The advantages and features of the present disclosure and the methods for achieving them will become clear by referring to the embodiments described below in detail together with the attached drawings. However, the technical concept of the present disclosure is not limited to the following embodiments but can be implemented in various different forms. The following embodiments are provided merely to complete the technical concept of the present disclosure and to fully inform those skilled in the art of the scope of the present disclosure, and the technical concept of the present disclosure is defined only by the scope of the claims.

[0029] It should be noted that when assigning reference numerals to the components of each drawing, the same components are given the same reference numeral whenever possible, even if they are shown in different drawings. Furthermore, in describing the present disclosure, if it is determined that a detailed description of related known components or functions could obscure the essence of the present disclosure, such detailed description is omitted.

[0030] Unless otherwise defined, all terms used herein (including technical and scientific terms) may be used in a meaning commonly understood by those skilled in the art to which this disclosure pertains. Additionally, terms defined in commonly used dictionaries are not to be interpreted ideally or excessively unless explicitly and specifically defined otherwise. The terms used herein are for describing the embodiments and are not intended to limit this disclosure. In this specification, the singular form includes the plural form unless specifically stated otherwise in the text.

[0031] Additionally, terms such as first, second, A, B, (a), (b), etc., may be used to describe the components of the present disclosure. These terms are intended only to distinguish the components from other components and do not limit the nature, order, or sequence of the components. Where it is stated that a component is "connected," "coupled," or "joined" to another component, it should be understood that the component may be directly connected or joined to the other component, but that another component may also be "connected," "coupled," or "joined" between each component.

[0032] As used in the specification, "comprises" and / or "comprising" do not exclude the presence or addition of one or more other components, steps, actions, and / or elements to the mentioned components, steps, actions, and / or elements.

[0033] As used herein, a "pod" may be the smallest deployable computing unit that can be created and managed in a Kubernetes environment. For example, if a blockchain network is implemented in Kubernetes, a pod may be an execution unit of an application that can be included in the blockchain network. Additionally, as used herein, a "container" may be an execution unit of an application process that is included in a pod.

[0034] It should be noted that the aforementioned "Pod" and "Container" may be replaced with any other terms for environments similar to Kubernetes, and that the scope of this disclosure is not limited to Kubernetes environments.

[0035] Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the attached drawings.

[0036] FIG. 1 illustrates an exemplary environment in which a blockchain resource optimization device (100) according to some embodiments of the present disclosure may be applied. FIG. 1 illustrates that three pods (200, 300, 400) are applied to the blockchain resource optimization device (100), but this is merely an example for convenience of understanding, and the number of pods can vary. In addition, FIG. 1 illustrates that the blockchain resource optimization device (100) is connected to a permission-based blockchain network, but if a public blockchain network is implemented, the CA pod (Certificate Authority pod, 400) may be omitted.

[0037] Hereinafter, each component of an exemplary environment to which the blockchain resource optimization device (100) illustrated in FIG. 1 can be applied will be described in more detail.

[0038] The blockchain resource optimization device (100) can calculate the resource utilization rate according to the process performed by each container (210, 310, 330, 410) included in the pod (200, 300, 400). Here, the blockchain resource optimization device (100) can filter the resource usage of at least some of the various processes performed by the containers (210, 310, 330, 410), and can calculate the resource utilization rate of each container (210, 310, 330, 410) excluding the resource usage of the filtered processes. Additionally, the blockchain resource optimization device (100) can calculate the optimal resource allocation for each container (210, 310, 330, 410) according to the calculated resource utilization rate, and can adjust the resources of the pod (200, 300, 400) (e.g., resource recovery or resource distribution) based on the calculated optimal resource allocation.

[0039] That is, the blockchain resource optimization device (100) can optimize the resources of the containers (210, 310, 330, 410) by calculating the optimal resource allocation amount from the resource usage rate of the containers (210, 310, 330, 410) included in the pods (200, 300, 400) and adjusting the resources of the pods (200, 300, 400). The method by which the blockchain resource optimization device (100) performs optimization will be explained in detail later with reference to the drawings from Fig. 3 onwards.

[0040] Next, the block-generating pod (200) can generate a block and propagate the generated block to a peer pod (Peer pod, 300). This block-generating pod (200) may include at least one block-generating container (210) that performs the block-generating process.

[0041] Next, the peer pod (300) can manage and store ledgers according to the propagated blocks. Such a peer pod (300) may include at least one ledger management container (310) that performs a ledger management process, and, in some cases, may include at least one smart contract management container (330) that performs a smart contract management process. Additionally, the peer pod (300) may include at least one ledger database (320) for storing ledgers.

[0042] Next, the CA pod (400) can manage and store certificates issued in a permission-based blockchain network. This CA pod (400) may include at least one certificate management container (410) that performs a certificate management process, and may include at least one certificate database (420) for storing certificates.

[0043] Meanwhile, FIG. 1 merely illustrates a preferred embodiment for achieving the purpose of the present disclosure, and some components may be added or removed as needed. Also, it should be noted that the components of the exemplary environment shown in FIG. 1 represent functionally distinct functional elements, and that multiple components may be implemented in a form that integrates with each other in an actual physical environment. Furthermore, other components other than the blockchain resource optimization device (100) that performs resource optimization may be replaced with other components at any time, and to avoid obscuring the gist of the present disclosure, the description of more specific functions performed by the block generation pod (200), the peer pod (300), and the CA pod (400) will be omitted.

[0044] Up to this point, with reference to FIG. 1, an exemplary environment in which a blockchain resource optimization device (100) can be applied has been described. Here, the blockchain resource optimization device (100) may be implemented with one or more computing devices. For example, all functions of the blockchain resource optimization device (100) may be implemented in a single computing device. As another example, the first function of the blockchain resource optimization device (100) may be implemented in a first computing device, and the second function may be implemented in a second computing device. Here, the computing device may be a notebook, desktop, laptop, etc., but is not limited thereto and may include any type of device equipped with computing functions. However, if the environment requires the blockchain resource optimization device (100) to work with various pods (200, 300, 400) to optimize the resources of the pods, it may be desirable for the blockchain resource optimization device (100) to be implemented as a high-performance server-class computing device. For an example of a computing device, FIG. 8 will be referenced later.

[0045] Additionally, the blockchain resource optimization device (100) may be implemented as a pod, similar to the pods (200, 300, 400) shown in FIG. 1, and the Kubernetes architecture will be described in more detail with reference to FIG. 2.

[0046] FIG. 2 is an exemplary drawing for illustrating a Kubernetes environment that may be referenced in some embodiments of the present disclosure. Each of the nodes (10, 20) included in the Kubernetes cluster (1000) shown in FIG. 2 may represent a physically separated computing device.

[0047] The nodes (10, 20) illustrated in FIG. 2 may include at least one pod (500, 600, 700). For example, as in FIG. 2, the first node (10) may include a first pod (500) and a second pod (600), and the second node (20) may include a third pod (700). As another example, unlike FIG. 2, any number of different pods may be included in a single node (10, 20).

[0048] Additionally, the pods (500, 600, 700) illustrated in FIG. 2 may include at least one container (610, 620, 630). Unlike FIG. 2, any number of different containers may be included in a single pod (500, 600, 700). Also, it should be noted that the blockchain resource optimization device (100) illustrated in FIG. 1 may be implemented in any one of the pods (500, 600, 700) illustrated in FIG. 2.

[0049] Up to now, with reference to FIGS. 1 and FIGS. 2, exemplary environments in which a blockchain resource optimization device (100) according to some embodiments of the present disclosure may be applied have been described. Hereinafter, with reference to FIGS. 3, the configuration and operation of the blockchain resource optimization device (100) will be described.

[0050] As illustrated in FIG. 3, the blockchain resource optimization device (100) may include a resource utilization calculation unit (110), an optimal resource allocation calculation unit (120), and a pod resource adjustment unit (130). However, FIG. 3 illustrates only the components related to the embodiments of the present disclosure. Therefore, a person skilled in the art to which the present disclosure belongs will understand that other general-purpose components may be included in addition to the components illustrated in FIG. 3. Furthermore, it should be noted that if the blockchain resource optimization device (100) illustrated in FIG. 3 is implemented in an environment where it is implemented as a pod, each component of the blockchain resource optimization device (100) may be implemented as a container. The functions performed by each component will be described in detail below.

[0051] First, the resource utilization calculation unit (110) can monitor the resource usage of each container included in the pods that constitute the blockchain network. Here, the resource utilization calculation unit (110) can filter the resource usage of containers that perform one-time processes. At this time, a one-time process is a process that does not constitute a transaction process, and may refer to a process performed only once, such as the issuance of a certificate following the addition of a new node. According to the present embodiment, one-time processes that do not constitute a transaction process are removed as noise based on filtering, thereby allowing the resource utilization of the container to be calculated more accurately.

[0052] The resource utilization rate calculation unit (110) may refer to various items to filter the resource usage of the process performed by the container. For example, it may refer to at least one of the process start time, process end time, and process type. Here, a pre-stored table may be referenced so that the resource utilization rate calculation unit (110) can determine a specific process as a one-time process by referring to at least one of the process start time, process type time, and process type. For example, if a one-time process that is triggered at a specific time and starts repeatedly is recorded in a pre-stored table, the resource utilization rate calculation unit (110) may refer to the pre-stored table. For another example, if a one-time process that is triggered at a specific time and ends repeatedly is recorded in a pre-stored table, the resource utilization rate calculation unit (110) may refer to the pre-stored table. For yet another example, if a specific process type is defined as a one-time process in a pre-stored table, the resource utilization rate calculation unit (110) may refer to the pre-stored table.

[0053] Additionally, the resource utilization rate calculation unit (110) can calculate the resource utilization rate of the container for the transaction process based on the result of filtering. Here, the resource utilization rate can be calculated based on the resource usage of the container relative to the resource allocation of the container. For a more specific explanation regarding this, reference will be made to FIG. 6.

[0054] FIG. 6 is an exemplary drawing for illustrating the resource utilization of a container that may be referenced in some embodiments of the present disclosure. It should be noted that the resources illustrated in FIG. 6 are a CPU (Central Processing Unit) and memory, but the resources are not limited to the example illustrated in FIG. 6.

[0055] Referring to FIG. 6, the second pod (600) may include a first container (610), a second container (620), and a third container (630). In this case, the resource utilization of each container (610, 620, 630) included in the second pod (600) shown in FIG. 6 may be displayed as the resource usage of each container (610, 620, 630) relative to the resource allocation of each container (610, 620, 630). FIG. 6 is an example of a screen that may be provided to an administrator, and in some cases, a first text indicating resource utilization, a second text indicating resource usage, and a third text indicating resource allocation may be additionally added to the screen and provided to the administrator. Additionally, FIG. 6 is an example of a screen showing the resource utilization of a single pod included in a Kubernetes cluster, but it should be noted that, unlike FIG. 6, a screen showing the resource utilization of multiple pods included in a Kubernetes cluster may be provided to the administrator.

[0056] In addition, the resource utilization rate is a type of evaluation metric for the container's resources, and may be calculated by referring to various items in addition to the container's resource usage relative to the container's resource allocation. A more specific operation of the resource utilization rate calculation unit (110) calculating the resource utilization rate will be described.

[0057] In some embodiments related to the calculation of resource utilization, the resource utilization calculation unit (110) may calculate the resource utilization based on the number of transaction data processed in the container. For example, to calculate the resource utilization, the number of transaction data processed per unit time of the container may be referenced, and as another example, the number of transaction data processed in the container corresponding to a specific time interval may be referenced.

[0058] In some other embodiments related to the calculation of resource utilization, the resource utilization calculation unit (110) may calculate resource utilization based on the latency time of the container. For example, the longer the latency time, the higher the resource utilization may be calculated, and the shorter the latency time, the lower the resource utilization may be calculated. Additionally, the resource utilization calculation unit (110) may refer to a pre-stored mapping table of latency time and resource utilization to calculate the resource utilization of the container.

[0059] According to the various embodiments of the present disclosure described so far regarding the calculation of resource utilization, various operations capable of evaluating the resources of a container may be provided. By accurately evaluating the resource utilization of a container according to these various operations, the optimal resource allocation of the container can be calculated more accurately.

[0060] We will explain again with reference to Fig. 3.

[0061] Next, the optimal resource allocation calculation unit (120) can calculate the optimal resource allocation of the container based on the resource utilization rate calculated by the resource utilization rate calculation unit (110). Here, the optimal resource allocation is a value determined according to the resource utilization rate of the container and may mean a resource allocation that can guarantee the optimal performance of the container.

[0062] The optimal resource allocation calculation unit (120) may use various methods to calculate the optimal resource allocation of a container. For example, a regression analysis model may be used. Here, the regression analysis model is a model that calculates the optimal resource allocation based on the resource utilization rate of a container sampled in a specific time interval, and may be implemented as a multiple regression analysis model depending on the number of items referenced to calculate the resource utilization rate (e.g., resource usage of the container, number of transactions processed in the container, latency of the container). In addition, various other methods may be used, and a more specific operation of the optimal resource allocation calculation unit (120) calculating the optimal resource allocation will be described.

[0063] In some embodiments related to the calculation of an optimal resource allocation, the optimal resource allocation calculation unit (120) can calculate an optimal resource allocation to reduce resource utilization when the resource utilization of a container exceeds a preset upper threshold. Here, the optimal resource allocation can be determined based on a preset upper threshold and a preset lower threshold. Additionally, the optimal resource allocation calculation unit (120) can calculate an optimal resource allocation to increase resource utilization when the resource utilization of a container is below a preset lower threshold. Here, the optimal resource allocation can be determined based on a preset upper threshold and a preset lower threshold. For a more specific explanation regarding this, reference will be made to FIG. 7.

[0064] FIG. 7 is an exemplary drawing for illustrating resource optimization of a container that may be referenced in some embodiments of the present disclosure. For example, the resource usage of the first container (50a) before resource adjustment may be less than a lower threshold (70), and the resources of the first container may be adjusted so that the resource usage of the first container (50a) before resource adjustment becomes an optimal resource usage (90), such as the resource usage of the first container (50b) after resource adjustment. In this case, the resources of the first container may be adjusted by reclaiming the resources of the pod containing the first container (50a) before resource adjustment by the pod resource adjustment unit (130) to be described later. In another example, the resource usage of the second container (60a) before resource adjustment may exceed the upper threshold (80), and the resources of the second container may be adjusted so that the resource usage of the second container (60a) before resource adjustment becomes the optimal resource usage (90), such as the resource usage of the second container (60b) after resource adjustment. In this case, the resources of the second container may be adjusted by distributing resources to a pod containing the second container (60a) before resource adjustment by the pod resource adjustment unit (130) to be described later.

[0065] Additionally, the optimal resource utilization rate (90) illustrated in FIG. 7 may be the average value of the lower threshold (70) and the upper threshold (80). For a more specific example, if the container's memory allocation is 100 MB, memory usage is 10 MB, the upper threshold is 90%, and the lower threshold is 50%, the optimal resource utilization rate may be 70%, which is the average value of the upper threshold and the lower threshold. In this case, the container's optimal memory allocation may be 14.3 MB, and the container's memory allocation may be adjusted to 14.3 MB as the Pod's memory is reclaimed. For another example, if the container's memory allocation is 100 MB, memory usage is 100 MB, the upper threshold is 90%, and the lower threshold is 50%, the optimal resource utilization rate may be 70%, which is the average value of the upper threshold and the lower threshold. In this case, the optimal memory allocation for the container may be 142.9MB, and as memory is distributed to the pod, the container's memory allocation may be adjusted to 142.9MB.

[0066] Regarding the optimal resource utilization rate (90) illustrated in FIG. 7, the optimal resource utilization rate (90) can be determined to be any other value in addition to the average value of the lower threshold (70) and the upper threshold (80). That is, any resource utilization rate between the lower threshold (70) and the upper threshold (80) can be the optimal resource utilization rate, and it can be understood that the optimal resource utilization rate can be determined in a heuristic manner depending on the environment in which the blockchain resource optimization device is applied.

[0067] We will explain again with reference to Fig. 3.

[0068] Next, the pod resource adjustment unit (130) can adjust the resources of a pod containing a container based on the optimal resource allocation calculated by the optimal resource allocation calculation unit (120). For example, as illustrated in FIG. 3, resources of a pod included in the first node (30) can be reclaimed and resources can be distributed to a pod included in the second node (40).

[0069] In some embodiments related to resource coordination, if coordination of at least one container contained in a pod is required, the resources of the pod may be coordinated. That is, when the optimal resource allocation for each container contained in the pod is calculated, the resources of the pod containing the container may be coordinated accordingly. This is because a pod is the smallest deployable computing unit that can be created and managed in a Kubernetes environment, and thus, the resources of the pod can be coordinated to optimize the resources of the containers.

[0070] In some other embodiments related to resource coordination, the priority of multiple pods for which the calculation of optimal resource allocations has been completed can be determined. That is, the order of resource recovery and distribution for each of the multiple pods can be determined, and according to the present embodiment, resource coordination of pods can be efficiently scheduled within available resources. A more specific explanation regarding this will be provided later with reference to FIG. 5.

[0071] Although not illustrated in FIG. 3, the blockchain resource optimization device (100) may further include an optimization execution trigger unit (not illustrated). Here, the optimization execution trigger unit may initiate blockchain resource optimization in response to an input from a manager. Here, the input from the manager may include a setting value for a time interval to calculate resource utilization. Additionally, the optimization execution trigger unit may initiate blockchain resource optimization according to a period pre-set by the manager without an input from the manager.

[0072] Specifically, upon the initiation of optimization execution by the optimization execution trigger unit, the resource utilization calculation unit (110) can filter the resource usage of containers for one-time processes existing in a time interval determined based on the manager's input, and can also calculate the resource utilization corresponding to the time interval. Here, the optimal resource allocation calculation unit (120) can calculate the optimal resource allocation corresponding to the time interval using the calculated resource utilization, and the pod resource adjustment unit (130) can adjust the resources of the pod using the calculated optimal resource allocation.

[0073] According to this optimization execution trigger, by adjusting the Pod's resources in response to administrator input during times when user usage of the service provided through the blockchain network is low, the Pod's resources can be optimized without interrupting service provision.

[0074] Up to this point, the configuration and operation of a blockchain resource optimization device (100) according to some embodiments of the present disclosure have been described with reference to FIG. 3. Below, methods according to various embodiments of the present disclosure will be described in detail.

[0075] Each step of the methods described below may be performed by a computing device. In other words, each step of the methods may be implemented by one or more instructions executed by a processor of the computing device. Additionally, all steps included in the methods may be performed by a single physical computing device, but the first steps of the methods may be performed by a first computing device and the second steps of the methods may be performed by a second computing device. Hereinafter, the explanation will continue assuming that each step of the methods is performed by the blockchain resource optimization device (100) exemplified in FIGS. 1 and FIGS. 3. However, for the convenience of explanation, the subject of the operation of each step included in the methods may be omitted.

[0076] FIG. 4 is an exemplary flowchart regarding a method for adjusting the resources of a pod that can be performed in a blockchain resource optimization device (100) described with reference to FIG. 3.

[0077] Referring to FIG. 4, in step S110, blockchain resource optimization may be performed in response to an administrator's input. For a specific description related to step S110, refer to the description of the optimization execution trigger unit (not shown) described with reference to FIG. 3. Next, in step S120, the resource usage of the container for a one-time process may be filtered, and in step S130, the resource utilization rate of the container for a transaction process may be calculated. For a specific description related to steps S120 and S130, refer to the description of the resource utilization rate calculation unit (110) described with reference to FIG. 3. Next, in step S140, the optimal resource allocation of the container may be calculated. For a specific description related to step S140, refer to the description of the optimal resource allocation calculation unit (120) described with reference to FIG. 3. Next, in step S150, the resources of the pod may be adjusted. For a specific description related to step S150, refer to the description of the pod resource adjustment unit (130) described with reference to FIG. 3.

[0078] FIG. 5 is another exemplary flowchart regarding a method for adjusting pod resources that can be performed in the pod resource adjustment unit (130) of the blockchain resource optimization device (100) described with reference to FIG. 3. According to the embodiment to be described below, even if there are at least some pods for which the calculation of the optimal resource allocation has been completed, the recovery and distribution of pod resources may not be performed until the calculation of the optimal resource allocation for all pods existing in the blockchain network is completed in order to efficiently distribute available resources in the blockchain network.

[0079] Referring to FIG. 5, at step S210, a list of multiple pods for which the calculation of optimal resource allocations is completed may be obtained. The above-described list may be generated, for example, in the optimal resource allocation calculation unit (120) of FIG. 3, but it should be noted that the scope of the present disclosure is not limited to the location where the list is generated.

[0080] Next, the steps described below (S220 to S240) may be performed in the order of the pods recorded in the list, and the steps described below (S220 to S240) may be repeated until there are no next pods in the list at step S250. That is, at step S220, if a downscaling of a pod's resources is required, the resources of the pod requiring downscaling may be reclaimed (S240), and if an upscaling of a pod's resources is required, the reclaimed resources are not first distributed to the pod requiring upscaling, and only the priority of resource distribution is determined (S230).

[0081] If there is no next pod in the list at step S250, at step S260, resources reclaimed from pods requiring resource downsizing can be distributed in order to pods requiring resource upsizing, based on the determined priority.

[0082] In some embodiments related to priority, priority may be determined to be higher as the amount of resource upscaling increases. For example, a pod with a memory upscaling amount of 100MB may be determined to have a higher priority than a pod with a memory upscaling amount of 50MB.

[0083] In some other embodiments related to priority, priority may be determined based on weights applied to the amount of the first up-up of the first resource and the amount of the second up-up of the second resource, respectively. For example, priority may be determined based on weights applied to the amount of the first up-up of memory and the amount of the second up-up of CPU, respectively. Here, the weight applied to the amount of the first up-up and the weight applied to the amount of the second up-up may be different values. For example, the weight applied to the amount of the CPU up-up may be greater than the weight applied to the amount of the memory up-up, because, generally, the performance improvement of a container due to CPU allocation is more pronounced than the performance improvement due to memory allocation, so CPU can be preferentially allocated to containers that are underutilized. However, it should be understood that, depending on the case, the respective weights that may be applied to the amount of resource up-up may vary depending on the environment of the blockchain network.

[0084] Up to this point, blockchain resource optimization methods according to some embodiments of the present disclosure have been described with reference to FIGS. 4 and 5. According to the methods described above, resources allocated to containers constituting a blockchain network can be optimized. That is, by allocating optimal resources to containers, the performance of processes that can be performed in containers can be improved, and costs consumed by idle resources can be reduced. In addition, before deploying resources to pods requiring resource upscaling, resources from pods requiring resource downscaling are reclaimed first, and by determining the priority of pods requiring resource upscaling, available resources within the blockchain network can be efficiently deployed by minimizing cases where resource deployment is impossible.

[0085] Hereinafter, with reference to FIG. 8, an exemplary computing device (1500) capable of implementing a blockchain resource optimization device according to some embodiments of the present disclosure will be described in more detail.

[0086] A computing device (1500) may include one or more processors (1510), a bus (1550), a communication interface (1570), a memory (1530) for loading a computer program (1591) executed by the processor (1510), and a storage (1590) for storing the computer program (1591). However, only components related to the embodiments of the present disclosure are illustrated in FIG. 8. Accordingly, a person skilled in the art to which the present disclosure belongs will understand that other general-purpose components may be included in addition to the components illustrated in FIG. 8.

[0087] The processor (1510) controls the overall operation of each component of the computing device (1500). The processor (1510) may be configured to include a CPU (Central Processing Unit), an MPU (Micro Processor Unit), an MCU (Micro Controller Unit), a GPU (Graphic Processing Unit), or any form of processor well known in the art of the present disclosure. Additionally, the processor (1510) may perform operations for at least one application or program for executing the method according to the embodiments of the present disclosure. The computing device (1500) may have one or more processors.

[0088] The memory (1530) stores various data, commands and / or information. The memory (1530) may load one or more programs (1591) from storage (1590) to execute a method according to embodiments of the present disclosure. The memory (1530) may be implemented as a volatile memory such as RAM, but the technical scope of the present disclosure is not limited thereto.

[0089] The bus (1550) provides communication functions between components of the computing device (1500). The bus (1550) can be implemented as various types of buses, such as an address bus, a data bus, and a control bus.

[0090] The communication interface (1570) supports wired and wireless internet communication of the computing device (1500). Additionally, the communication interface (1570) may support various communication methods other than internet communication. To this end, the communication interface (1570) may be configured to include a communication module well known in the art of the present disclosure.

[0091] According to some embodiments, the communication interface (1570) may be omitted.

[0092] Storage (1590) can store one or more of the above programs (1591) and various data non-temporarily.

[0093] Storage (1590) may be configured to include non-volatile memory such as ROM (Read Only Memory), EPROM (Erasable Programmable ROM), EEPROM (Electrically Erasable Programmable ROM), flash memory, a hard disk, a removable disk, or any form of computer-readable recording medium well known in the art to which this disclosure belongs.

[0094] A computer program (1591) may include one or more instructions that cause a processor (1510) to perform a method / operation according to various embodiments of the present disclosure when loaded into memory (1530). That is, the processor (1510) may perform a method / operation according to various embodiments of the present disclosure by executing the one or more instructions.

[0095] In the above case, a blockchain resource optimization device according to some embodiments of the present disclosure can be implemented through a computing device (1500).

[0096] Various embodiments of the present disclosure and effects according to those embodiments have been described with reference to FIGS. 1 through 8. The effects according to the technical concept of the present disclosure are not limited to those described above, and other unmentioned effects will be clearly understood by a person skilled in the art from the description in the specification.

[0097] The technical concept of the present disclosure described so far with reference to FIGS. 1 through 8 may be implemented as computer-readable code on a computer-readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). The computer program recorded on the computer-readable recording medium may be transmitted to another computing device via a network such as the Internet and installed on the other computing device, thereby being used on the other computing device.

[0098] In the foregoing, although all components constituting the embodiments of the present disclosure have been described as being combined or operating together, the technical concept of the present disclosure is not necessarily limited to such embodiments. That is, within the scope of the purpose of the present disclosure, all components may be selectively combined in one or more ways to operate.

[0099] Although operations are depicted in a specific order in the drawings, it should not be understood that the operations must be executed in the specific order depicted or in a sequential order, or that all depicted operations must be executed to obtain the desired result. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of the various configurations in the embodiments described above should not be understood as a necessary separation, and it should be understood that the described program components and systems can generally be integrated together into a single software product or packaged into multiple software products.

[0100] Although embodiments of the present disclosure have been described above with reference to the attached drawings, those skilled in the art will understand that the present disclosure may be practiced in other specific forms without altering the technical concept or essential features thereof. Therefore, the embodiments described above should be understood as illustrative in all respects and not restrictive. The scope of protection of the present disclosure shall be interpreted by the claims below, and all technical concepts within the equivalent scope shall be interpreted as being included within the scope of rights of the technical concepts defined by the present disclosure.

Claims

Claim 1 A blockchain resource optimization method comprising, in a method performed by a computing device, a step of filtering resource usage of a first container for a one-time process, wherein the first container is a process execution unit included in a pod, and the pod is an application execution unit included in a blockchain network; a step of calculating a resource utilization rate of the first container for a transaction process based on the result of the filtering; a step of calculating an optimal resource allocation of the first container based on the resource utilization rate; and a step of adjusting the resources of the pod including the first container based on the optimal resource allocation, wherein the filtering step includes removing the one-time process that starts or ends at a predetermined specific time, wherein the one-time process is a process different from the transaction process. Claim 2 In claim 1, the blockchain network is a permission-based blockchain network, a blockchain resource optimization method. Claim 3 A blockchain resource optimization method according to claim 1, wherein the filtering step comprises the step of filtering the resource usage of the first container for the one-time process determined based on the start time or end time of the process. Claim 4 A blockchain resource optimization method according to claim 1, wherein the filtering step comprises the step of filtering the resource usage of the first container for the one-time process determined based on the type of process. Claim 5 A blockchain resource optimization method according to claim 1, wherein the step of calculating the resource utilization rate includes the step of calculating the resource utilization rate based on the resource allocation and resource usage of the first container. Claim 6 A blockchain resource optimization method according to claim 1, wherein the step of calculating the resource utilization rate includes the step of calculating the resource utilization rate based on the number of transaction data processed in the first container. Claim 7 A blockchain resource optimization method according to claim 1, wherein the step of calculating the resource utilization rate includes the step of calculating the resource utilization rate based on the latency of the first container. Claim 8 A blockchain resource optimization method according to claim 1, wherein the step of calculating the optimal resource allocation includes the step of calculating the optimal resource allocation to reduce the resource utilization rate when the resource utilization rate exceeds an upper threshold. Claim 9 A blockchain resource optimization method in which, in claim 8, the optimal resource allocation is determined based on the upper threshold and lower threshold of the resource utilization rate. Claim 10 A blockchain resource optimization method according to claim 8, wherein the step of adjusting the resources of the pod including the first container includes the step of distributing resources to the pod based on the difference between the optimal resource allocation and the resource allocation of the first container. Claim 11 A blockchain resource optimization method according to claim 1, wherein the step of calculating the optimal resource allocation includes the step of calculating the optimal resource allocation to increase the resource utilization rate when the resource utilization rate is below a lower threshold. Claim 12 A blockchain resource optimization method in which, in claim 11, the optimal resource allocation is determined based on the upper threshold and lower threshold of the resource utilization rate. Claim 13 A blockchain resource optimization method according to claim 11, wherein the step of adjusting the resources of the pod including the first container includes the step of reclaiming the resources of the pod based on the difference between the optimal resource allocation and the resource allocation of the first container. Claim 14 A blockchain resource optimization method according to claim 1, further comprising the step of performing blockchain resource optimization in response to an input from a manager, wherein the filtering step comprises the step of filtering resource usage of the first container for the one-time process existing in the time interval determined based on the input from the manager, the step of calculating the resource usage rate comprises the step of calculating the resource usage rate corresponding to the time interval, and the step of calculating the optimal resource allocation comprises the step of calculating the optimal resource allocation corresponding to the time interval. Claim 15 A blockchain resource optimization method according to claim 1, wherein the pod comprises the first container and the second container distinguished from the first container, and the step of adjusting the resources of the pod comprises the step of adjusting the resources of the pod when adjustment of at least one of the resources of the first container and the second container included in the pod is required. Claim 16 A method performed by a computing device, comprising: obtaining a list of multiple pods for which the calculation of optimal resource allocations has been completed—wherein the optimal resource allocation is a resource allocation for improving the resource utilization of at least one container included in each of the multiple pods, wherein the pod is an application execution unit included in a blockchain network, and the container is a process execution unit—; a step of recovering resources from a first pod among the multiple pods included in the list—wherein the first pod is a pod for which a downward adjustment of resources is required based on the optimal resource allocation—; a step of determining the priority of resource distribution for a second pod among the multiple pods included in the list—wherein the second pod is a pod for which an upward adjustment of resources is required based on the optimal resource allocation—; A blockchain resource optimization method comprising the step of distributing resources recovered from the first pod to the second pod based on the above priority, wherein the optimal resource allocation is calculated based on the resource utilization rate of at least one container included in each of the plurality of pods for a process from which a one-time process that starts or ends at a predetermined specific time among the plurality of processes has been removed. Claim 17 A blockchain resource optimization method according to claim 16, wherein the step of distributing resources recovered from the first pod to the second pod includes, when classification of the plurality of pods included in the list is completed, distributing resources recovered from the first pod to the second pod based on the priority. Claim 18 A blockchain resource optimization method in which, in Clause 16, the above priority is determined to be higher the greater the amount of upward adjustment of the above resource. Claim 19 A blockchain resource optimization method according to claim 18, wherein the resources include memory and a CPU (Central Processing Unit), the priority is determined based on a weight applied to each of the first upward adjustment amount of the memory and the second upward adjustment amount of the CPU, and the second weight applied to the second upward adjustment amount is set higher than the first weight applied to the first upward adjustment amount. Claim 20 A blockchain resource optimization device comprising: a processor; a network interface; memory; and a computer program loaded into the memory and executed by the processor, wherein the computer program comprises: an instruction for filtering resource usage of a first container for a one-time process - wherein the first container is a process execution unit included in a pod, and the pod is an application execution unit included in a blockchain network -; an instruction for calculating a resource usage rate of the first container for a transaction process based on the result of the filtering; an instruction for calculating an optimal resource allocation of the first container based on the resource usage rate; and an instruction for adjusting the resources of the pod including the first container based on the optimal resource allocation, wherein the filtering instruction comprises an instruction for removing the one-time process that starts or ends at a predetermined specific time, wherein the one-time process is a process different from the transaction process.

Citation Information

Patent Citations

  • Optimizing method and system for decentralized container arrangement

    JP2018156464A

  • Information processing apparatus, container arrangement method, and container arrangement program

    JP2020144669A

  • Containerized deployment of microservices based on monolithic legacy applications.

    KR1020200004835A

  • Apparatus and method for dynamic resource scaling in network function virtualization

    KR1020200070933A

  • Edge computing method and apparatus for flexibly allocating computing resource

    KR1020210049551A