KR20220089383A - Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system - Google Patents

Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system Download PDF

Info

Publication number
KR20220089383A
KR20220089383A KR1020200179967A KR20200179967A KR20220089383A KR 20220089383 A KR20220089383 A KR 20220089383A KR 1020200179967 A KR1020200179967 A KR 1020200179967A KR 20200179967 A KR20200179967 A KR 20200179967A KR 20220089383 A KR20220089383 A KR 20220089383A
Authority
KR
South Korea
Prior art keywords
execution time
transaction
shard
account
transaction execution
Prior art date
Application number
KR1020200179967A
Other languages
Korean (ko)
Inventor
박수용
이유정
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020200179967A priority Critical patent/KR20220089383A/en
Publication of KR20220089383A publication Critical patent/KR20220089383A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 이더리움 샤딩 환경에서의 부하 분산 방법에 관한 것이다. 상기 부하 분산 방법은, 다수 개의 계정 그룹들이 할당된 복수 개의 샤드들 및 각 샤드의 부하 분산을 제어하는 로드 발란서를 구비하는 이더리움 샤딩 환경에 있어서, 상기 로드 발란서의 데이터 수집기가 각 샤드들의 각 주기에 대한 트랜잭션 수행 시간, 트랜잭션 가스비 및 트랜잭션을 발생시킨 계정 그룹 번호를 수집하고, 예측 모듈이 각 샤드로부터 수집된 트랜잭션 수행 시간 및 트랜잭션 가스비를 이용하여, 다음 주기에 발생될 트랜잭션 가스비와 트랜잭션 수행 시간을 예측하며, 계정 재배치 모듈이 각 계정 그룹별 트랜잭션 수행 시간 예측값과 각 샤드별 트랜잭션 수행 시간 예측값을 기반으로 하여 각 샤드의 계정 그룹을 재배치하는 것을 특징으로 한다. The present invention relates to a load balancing method in an Ethereum sharding environment. In the load balancing method, in an Ethereum sharding environment having a plurality of shards to which a plurality of account groups are allocated and a load balancer controlling the load balancing of each shard, the data collector of the load balancer is configured for each of the shards. The transaction execution time, transaction gas cost, and account group number that generated the transaction are collected for the cycle, and the prediction module uses the transaction execution time and transaction gas cost collected from each shard to generate the transaction gas cost and transaction execution time in the next cycle. predicts, and the account relocation module relocates the account groups of each shard based on the predicted transaction execution time for each account group and the transaction execution time for each shard.

Description

이더리움 샤딩 환경에서의 트랜잭션 수행 시간을 기반으로 한 부하 분산 방법 및 이더리움 샤딩 시스템{Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system}Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system}

본 발명은 이더리움 샤딩 환경에서의 부하 분산 방법에 관한 것으로서, 더욱 구체적으로는 이더리움 샤딩 환경에서, 각 샤드의 트랜잭션 수행시간을 예측하고, 트랜잭션 수행 시간 예측값을 기반으로 하여 각 샤드의 계정 그룹을 재배치하여 각 샤드의 부하를 분산시키도록 하는 부하 분산 방법 및 이를 이용하여 구현된 이더리움 샤딩 시스템에 관한 것이다. The present invention relates to a load balancing method in an Ethereum sharding environment, and more specifically, predicting the transaction execution time of each shard in the Ethereum sharding environment, and setting the account group of each shard based on the transaction execution time prediction value It relates to a load balancing method that distributes the load of each shard by redeployment, and an Ethereum sharding system implemented using the same.

최근 블록체인에 IoT 데이터, 의료 데이터 등 다양한 데이터를 저장하기 위한 플랫폼과 DAPP(Decentralization Application)이 등장하면서 블록체인 서비스를 사용하는 사용자가 늘어나고 있다. 2020년 현재 이더리움의 계정수는 약 1억개이며 2018년의 약 20000만개의 계정수에 대비하여 5배 증가했다. 이처럼 블록체인 사용자가 늘어남에 따라 블록체인에 저장되는 데이터가 많아지게 되고, 이로 인해 블록체인 확장성 문제가 대두되고 있다. 블록체인 확장성 문제란, 하드웨어 성능을 높이더라도 트랜잭션 처리량이 늘어나지 않는다는 것을 말한다. 비트코인에서는 블록사이즈를 1MB, 이더리움은 한 블록에서 처리할 수 있는 가스량을 1200만 가스로 제한하고 있으며, 합의 알고리즘을 사용하여 블록 생성 시간을 두고 있어 시간당 처리할 수 있는 트랜잭션의 양이 정해져 있다. 따라서, 블록체인은 기존 중앙집중식 서버와 달리 하드웨어인 노드의 성능을 높여 트랜잭션 처리량을 늘릴 수 없는 한계가 발생한다. Recently, with the advent of platforms and decentralization applications (DAPPs) for storing various data such as IoT data and medical data in the block chain, the number of users using block chain services is increasing. As of 2020, the number of accounts on Ethereum is about 100 million, a five-fold increase compared to the number of about 20 million accounts in 2018. As the number of blockchain users increases, more data is stored in the blockchain, which raises the issue of blockchain scalability. The blockchain scalability problem means that the transaction throughput does not increase even if the hardware performance is increased. In Bitcoin, the block size is 1 MB, and in Ethereum, the amount of gas that can be processed in one block is limited to 12 million gas. . Therefore, unlike the existing centralized server, blockchain has a limitation in that it cannot increase the transaction throughput by increasing the performance of the hardware node.

현재 블록체인 확장성 문제를 해결하기 위하여 다양한 방법들이 제시되고 있다. 확장성을 해결하기 위한 방법으로, 크게 온체인 솔루션(On-Chain solution), 오프체인 솔루션(Off-Chain solution), 사이드체인 솔루션(Side-Chain solution), 자식체인 솔루션(Child-Chain solution)으로 분류할 수 있다. 온체인 솔루션은 블록체인 내에서 직접 요소를 추가하거나 수정하여 확장성 문제를 해결하는 방식이다. 온체인 솔루션은 블록 사이즈를 키워 트랜잭션 처리량을 증가시키는 빅블록(Big-Block) 방법, 트랜잭션 내용과 서명을 분리하는 세그윗(Segwit) 방법, 트랜잭션을 병렬로 처리하여 트랜잭션 처리 속도를 높인 샤딩(Sharding) 방법이 있다. 오프레인 솔루션에는 채널을 생성하여 소규모 거래를 한번에 처리할 수 있는 라이트닝 네트워크와 라이덴 네트워크가 있다. 사이드 체인 솔루션은 사이드체인에서 트랜잭션을 처리하고, 중요한 데이터만 메인체인에 기록하는 레이어2솔루션이다. 자식체인 솔루션은 자식체인에서 트랜잭션을 처리하고 결과만 부모체인에 저장하는 솔루션으로서, 사이드체인과 달리 손자체인을 생성하여 계층적으로 확장이 가능하다. Various methods are currently being proposed to solve the blockchain scalability problem. As a method to solve scalability, it is largely divided into On-Chain solution, Off-Chain solution, Side-Chain solution, and Child-Chain solution. can be classified. On-chain solutions solve the scalability problem by adding or modifying elements directly within the blockchain. On-chain solutions include the Big-Block method, which increases the transaction throughput by increasing the block size, the Segwit method, which separates the transaction contents and the signature, and the Sharding method that increases the transaction processing speed by processing the transaction in parallel. ) is a way. Offline solutions include Lightning Network and Raiden Network, which can create channels to process small transactions at once. The side chain solution is a layer 2 solution that processes transactions on the side chain and records only important data on the main chain. The child chain solution is a solution that processes transactions in the child chain and stores only the results in the parent chain.

도 1은 이더리움의 샤딩 환경을 도시한 모식도이다. 도 1을 참조하면, 샤딩은 온체인 솔루션에 해당하며, 체인을 여러 개 생성한 후 트랜잭션을 분산처리하여 초당 트랜잭션을 높이는 방법이다. 블록체인에서 샤딩은 '샤드(Shard)'라는 단위로 여러 체인을 생성하고 계정을 샤드에 배치하여 각 계정들은 배정된 샤드에서 거래한다. 이더리움에서의 샤딩 환경은, 메인 체인인 비콘 체인과 트랜잭션을 처리하는 샤드 체인으로 구성되며, 각 샤드 체인에서 트랜잭션을 처리한 후 각 샤드 체인에서 트랜잭션을 처리한 결과만 비콘 체인에 저장한다. 이와 같이, 샤딩 환경에서는 각 샤드에서 처리한 결과만 메인 체인인 비콘 체인에 저장함으로써, 메인 체인의 부하를 줄이고 트랜잭션을 병렬로 처리하여 트랜잭션 처리량을 높이게 된다. 1 is a schematic diagram showing the sharding environment of Ethereum. Referring to FIG. 1, sharding corresponds to an on-chain solution, and is a method to increase transactions per second by creating multiple chains and then distributing transactions. In blockchain, sharding creates multiple chains in units called 'shards' and places accounts in shards, so that each account transacts in the assigned shard. The sharding environment in Ethereum consists of the main chain, the beacon chain, and the shard chain that processes transactions. As such, in a sharding environment, only the results processed by each shard are stored in the main chain, the beacon chain, thereby reducing the load on the main chain and processing transactions in parallel to increase the transaction throughput.

전술한 샤딩 환경에서, 비콘 체인 아래에는 샤드가 존재하며, 각 샤드에는 계정이 배치되어 계정들이 발생시킨 트랜잭션으로 콜레이션(Collation)을 생성한다. 콜레이션은 기존 블록체인에서 블록과 같은 개념으로, 각 샤드에 배치된 검증자(validator)가 생성한다. 샤딩에서는 지분 증명 합의 알고리즘을 사용하여 지분을 맡긴 사용자가 콜레이션을 생성하고 검증할 수 있는 권한을 가진다. In the sharding environment described above, shards exist under the beacon chain, and accounts are placed in each shard to create a collation with transactions generated by the accounts. Collation is the same concept as a block in the existing blockchain, and is created by validators placed in each shard. In sharding, using a proof-of-stake consensus algorithm, users who have entrusted their stake have the right to create and verify collations.

전술한 이더리움 샤딩 환경에서, 각 계정을 샤드에 배치하는 계정 배치 방법으로는 정적 주소 기반 배치 방법과 동적 로드 밸런싱 방법이 있다. 정적 주소 기반 배치 방법은 각 계정 주소의 앞 prefix를 기준으로 각 샤드에 계정을 배치하는 방법으로서, 각 계정의 트랜잭션 요청량을 고려하지 않기 때문에 일부 샤드에 부하가 집중될 수 있는 문제가 있다. 동적 로드 밸런싱 방법은 일부 샤드에 부하가 집중되는 것을 막기 위하여, 각 계정의 트랜잭션 가스 소모량을 예측하여 특정 주기마다 계정을 재배치하는 방법이다. 따라서, 동적 로드 밸런싱 방법은 전전 주기에서 각 계정이 발생시킨 트랜잭션의 가스량으로 다음 주기에 계정의 트랜잭션 요청량을 예측하고, 예측된 값으로 각 샤드에 계정을 재배치하게 된다. In the above-mentioned Ethereum sharding environment, there are a static address-based placement method and a dynamic load balancing method as an account placement method for placing each account in a shard. The static address-based arrangement method places accounts in each shard based on the prefix of each account address, and there is a problem that the load may be concentrated on some shards because the transaction request amount of each account is not considered. The dynamic load balancing method is a method of relocating accounts at specific intervals by predicting the transaction gas consumption of each account in order to prevent the load from being concentrated on some shards. Therefore, the dynamic load balancing method predicts the transaction request amount of the account in the next cycle with the amount of transaction gas generated by each account in the previous cycle, and relocates the account to each shard with the predicted value.

한편, 이더리움에서는 OPCODE 연산 복잡도에 따라 OPCODE별 가스(GAS)비용이 설정되어 있다. 도 2는 이더리움 환경에 있어서, OPCODE별 가스 소모량을 도시한 도표이다. 이와 같이, 이더리움에서 연산의 복잡도를 고려하여 OPCODE 별 가스비를 지정하기는 하였지만, 노드의 성능과 캐시 여부 등 하드웨어 사양에 따라 연산 수행 시간이 달라지게 된다. On the other hand, in Ethereum, the gas (GAS) cost for each OPCODE is set according to the OPCODE calculation complexity. 2 is a chart showing gas consumption for each OPCODE in the Ethereum environment. As described above, although the gas cost for each OPCODE is specified in consideration of the computational complexity in Ethereum, the computational execution time varies depending on the hardware specifications such as node performance and cache availability.

도 3은 이더리움 샤딩 환경에 있어서, 가스비를 기준으로 분류하였을 때 각 샤드별 콜레이션의 평균 수행 시간을 도시한 그래프이다. 도 3을 참조하면, 가스비를 기준으로 부하를 분산하였을 때, 각 샤드의 트랜잭션 수행 시간을 측정한 결과 각 샤드의 트랜잭션 수행 시간의 차이가 많이 발생되는 것을 파악할 수 있다. 따라서, 이더리움 가스비를 기준으로 트랜잭션의 복잡도를 정확하게 예측할 수는 없으며, 이로 인하여 트랜잭션의 가스비를 기준으로 부하를 분산할 경우, 각 샤드의 부하가 제대로 분산되지 못하는 문제가 발생하게 된다. 3 is a graph showing the average execution time of collation for each shard when classified based on gas cost in the Ethereum sharding environment. Referring to FIG. 3 , when the load is distributed based on the gas cost, as a result of measuring the transaction execution time of each shard, it can be understood that a large difference in the transaction execution time of each shard occurs. Therefore, it is impossible to accurately predict the complexity of a transaction based on the gas cost of Ethereum, and for this reason, when the load is distributed based on the gas cost of the transaction, a problem arises that the load of each shard is not properly distributed.

한국공개특허공보 제 10-2020-0059136호Korean Patent Publication No. 10-2020-0059136 한국공개특허공보 제 10-2020-0058273호Korean Patent Publication No. 10-2020-0058273

전술한 문제점을 해결하기 위하여 본 발명은 이더리움 샤딩 환경에서 부하를 효율적으로 분산시키기 위하여 각 계정 그룹의 트랜잭션 수행시간을 예측하고, 예측된 트랜잭션 수행 시간을 기준으로 각 샤드의 콜레이션 수행 시간을 균등하게 하고, 각 콜레이션의 수행시간의 편차를 줄임으로써, 각 부하를 각 샤드에게 고르게 분산하는 부하 분산 방법을 제공하는 것을 목적으로 한다. In order to solve the above problems, the present invention predicts the transaction execution time of each account group in order to efficiently distribute the load in the Ethereum sharding environment, and equalizes the collation execution time of each shard based on the predicted transaction execution time It aims to provide a load balancing method that evenly distributes each load to each shard by reducing the variation in the execution time of each collation.

본 발명의 다른 목적은 전술한 방법을 구현하는 로드 발란서(Load Balancer)를 제공하는 것이다. Another object of the present invention is to provide a load balancer implementing the above method.

전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 이더리움 샤딩 시스템은, 다수 개의 계정 그룹들이 할당된 복수 개의 샤드들 및 각 샤드의 부하 분산을 제어하는 로드 발란서를 구비하는 이더리움 샤딩 시스템으로서, 상기 로드 발란서는, 각 샤드들의 각 주기에 대한 트랜잭션 수행 시간, 트랜잭션 가스비 및 트랜잭션을 발생시킨 계정 그룹 번호를 수집하는 데이터 수집기; 각 샤드로부터 수집된 트랜잭션 수행 시간 및 트랜잭션 가스비를 이용하여, 다음 주기에 발생될 트랜잭션 가스비와 트랜잭션 수행 시간을 예측하는 예측 모듈; 상기 예측 모듈에 의하여 예측된 트랜잭션 수행 시간 예측값을 이용하여 각 샤드의 계정 그룹을 재배치하는 계정 재배치 모듈;을 구비한다. Ethereum sharding system according to the first aspect of the present invention for achieving the above-described technical problem, Ethereum sharding having a plurality of shards to which a plurality of account groups are allocated and a load balancer controlling the load distribution of each shard A system, the load balancer comprising: a data collector for collecting a transaction execution time for each cycle of each shard, a transaction gas cost, and an account group number that generated a transaction; a prediction module for predicting a transaction gas cost and a transaction execution time to be generated in a next cycle using the transaction execution time and transaction gas cost collected from each shard; and an account relocation module for relocating the account group of each shard using the transaction execution time prediction value predicted by the prediction module.

전술한 제1 특징에 따른 이더리움 샤딩 시스템에 있어서, 상기 계정 재배치 모듈은 상기 예측 모듈에 의하여 예측된 각 계정 그룹별 트랜잭션 수행 시간 예측값과 각 샤드별 트랜잭션 수행 시간 예측값을 기반으로 하여 각 샤드의 계정 그룹을 재배치하는 것이 바람직하다. In the Ethereum sharding system according to the first feature described above, the account relocation module is configured to calculate the account of each shard based on the predicted value of the transaction execution time for each account group and the predicted value of the transaction execution time for each shard predicted by the prediction module. It is desirable to rearrange the groups.

전술한 제1 특징에 따른 이더리움 샤딩 시스템에 있어서, 상기 계정 재배치 모듈은 제1 우선순위 큐와 제2 우선순위 큐를 구비하고, 상기 제1 우선순위 큐에 각 계정 그룹별 트랜잭션 수행 시간 예측값을 기준으로 각 계정 그룹 번호를 내림차순으로 정렬시키고, 상기 제2 우선순위 큐에 각 샤드별 트랜잭션 수행 시간 예측값을 기준으로 각 샤드 번호를 오름차순으로 정렬시킨 후, 제1 및 제2 우선순위 큐들로부터 계정 그룹 번호와 샤드 번호를 하나씩 꺼내어, 해당 샤드에 해당 계정 그룹을 배치시키는 것이 더욱 바람직하다. In the Ethereum sharding system according to the first feature described above, the account relocation module includes a first priority queue and a second priority queue, and a transaction execution time prediction value for each account group in the first priority queue After sorting each account group number in descending order based on the criteria, and sorting each shard number in ascending order based on the transaction execution time prediction value for each shard in the second priority queue, the account group from the first and second priority queues It is more preferable to take out the number and the shard number one by one and place the corresponding account group in the corresponding shard.

전술한 제1 특징에 따른 이더리움 샤딩 시스템에 있어서, 상기 예측 모듈은, 계정 그룹이 이전 주기에서 발생시킨 트랜잭션을 기반으로 다음 주기에 발생시킬 가스비를 예측하고, 각 계정 그룹에 대한 이전 주기의 1가스당 트랜잭션 수행시간을 예측하고, 각 계정 그룹의 다음 주기의 트랜잭션 가스비 예측값과 상기 1가스당 트랜잭션 수행시간을 곱하여, 계정 그룹의 총 트랜잭션 수행 시간 예측값을 구하고, In the Ethereum sharding system according to the first feature described above, the prediction module predicts the gas cost to be generated in the next cycle based on the transaction generated by the account group in the previous cycle, and is 1 of the previous cycle for each account group. Predicting the transaction execution time per gas, multiplying the transaction gas cost prediction value of the next cycle of each account group by the transaction execution time per 1 gas to obtain a total transaction execution time prediction value of the account group,

각 샤드의 트랜잭션 풀에 남아있는 트랜잭션의 가스비를 예측하고, 각 샤드의 1 가스당 트랜잭션 수행 시간을 예측하고, 각 샤드의 1 가스당 트랜잭션 수행 시간 예측값과 트랜잭션 가스비를 이를 이용하여 각 샤드의 트랜잭션 수행 시간 예측값을 설정하는 것이 바람직하다. Predict the gas cost of the remaining transactions in the transaction pool of each shard, predict the transaction execution time per gas of each shard, and perform each shard transaction using the estimated transaction execution time per gas of each shard and the transaction gas cost It is desirable to set a time estimate.

전술한 제1 특징에 따른 이더리움 샤딩 시스템에 있어서, 상기 계정 재배치 모듈은, 각 샤드의 콜레이션이 생성될 때 콜레이션 생성 주기만큼 생성되었는지 여부를 확인하고, 콜레이션이 콜레이션 생성 주기만큼 생성되면 생성된 콜레이션의 트랜잭션 가스비와 트랜잭션 수행시간을 분석하여 다음 주기의 계정 그룹별 트랜잭션 수행 시간을 예측하고, 각 샤드의 콜레이션 수행 시간 예측값이 사전 설정된 콜레이션 수행 시간 한계값을 초과하면 계정 재배치를 진행하고, 한계값을 초과하지 않으면 계정 재배치를 수행하지 않는 것이 바람직하다. In the Ethereum sharding system according to the first feature described above, the account relocation module checks whether the collation of each shard is generated by the collation generation cycle when the collation is generated, and the collation is generated by the collation generation cycle Analyzes the transaction gas cost and transaction execution time of the created collation to predict the transaction execution time for each account group in the next cycle. It is recommended not to perform account relocation if the limit is not exceeded.

전술한 제1 특징에 따른 이더리움 샤딩 시스템에 있어서, 상기 데이터 수집기는, 각 샤드의 검증자(Validator)로부터 각 샤드의 트랜잭션 가스비, 트랜잭션 수행 시간 및 트랜잭션을 발생한 계정 그룹 번호를 제공받아 수집하는 것이 바람직하다. In the Ethereum sharding system according to the first aspect, the data collector receives and collects the transaction gas cost of each shard, the transaction execution time, and the account group number that generated the transaction from a validator of each shard. desirable.

본 발명의 제2 특징에 따른 부하 분산 방법은, 다수 개의 계정 그룹들이 할당된 복수 개의 샤드들과 로드 발란서를 구비하는 이더리움 샤딩 환경에서의 로드 발란서에 의한 부하 분산 방법에 관한 것으로서, (a) 각 샤드들의 각 주기에 대한 트랜잭션 수행 시간, 트랜잭션 가스비 및 트랜잭션을 발생시킨 계정 그룹 번호를 수집하는 단계; (b) 각 샤드로부터 수집된 트랜잭션 수행 시간 및 트랜잭션 가스비를 이용하여, 다음 주기에 발생될 각 계정 그룹별 트랜잭션 수행 시간 에측값과 각 샤드별 트랜잭션 수행 시간 예측값을 구하는 단계; (c) 상기 각 계정별 트랜잭션 수행 시간 예측값과 각 샤드별 트랜잭션 수행 시간 예측값을 이용하여 각 샤드의 계정 그룹을 재배치하는 단계;를 구비한다. A load balancing method according to a second aspect of the present invention relates to a load balancing method by a load balancer in an Ethereum sharding environment having a load balancer and a plurality of shards to which a plurality of account groups are allocated, (a ) collecting the transaction execution time for each cycle of each shard, the transaction gas cost, and the account group number that generated the transaction; (b) using the transaction execution time and transaction gas cost collected from each shard, obtaining an estimate of the transaction execution time for each account group to be generated in the next cycle and an estimated value of the transaction execution time for each shard; (c) relocating the account group of each shard using the predicted transaction execution time for each account and the predicted transaction execution time for each shard.

전술한 제2 특징에 따른 이더리움 샤딩 환경에서의 부하 분산 방법에 있어서, 상기 (c) 단계는 제1 우선순위 큐에 각 계정 그룹별 트랜잭션 수행 시간 예측값을 기준으로 각 계정 그룹 번호를 내림차순으로 정렬시키고, 제2 우선순위 큐에 각 샤드별 트랜잭션 수행 시간 예측값을 기준으로 각 샤드 번호를 오름차순으로 정렬시킨 후, 제1 및 제2 우선순위 큐들로부터 계정 그룹 번호와 샤드 번호를 하나씩 꺼내어, 해당 샤드에 해당 계정 그룹을 배치시키는 것이 바람직하다. In the load balancing method in the Ethereum sharding environment according to the second feature described above, step (c) arranges each account group number in the first priority queue in descending order based on the transaction execution time estimate for each account group In the second priority queue, each shard number is sorted in ascending order based on the transaction execution time estimate for each shard, and the account group number and shard number are taken out one by one from the first and second priority queues, It is desirable to place the corresponding account group.

전술한 제2 특징에 따른 이더리움 샤딩 환경에서의 부하 분산 방법에 있어서, 상기 (b) 단계는, 각 계정 그룹이 이전 주기에서 발생시킨 트랜잭션을 기반으로 다음 주기에 발생시킬 가스비를 예측하고, 각 계정 그룹의 이전 주기의 1가스당 트랜잭션 수행시간을 예측하고, 각 계정 그룹의 다음 주기의 트랜잭션 가스비 예측값과 상기 1가스당 트랜잭션 수행시간을 곱하여, 계정 그룹의 총 트랜잭션 수행 시간 예측값을 구하고, In the load balancing method in the Ethereum sharding environment according to the second feature described above, the step (b) predicts the gas cost to be generated in the next cycle based on the transactions generated by each account group in the previous cycle, Predicting the transaction execution time per gas of the previous cycle of the account group, multiplying the transaction gas cost prediction value of the next cycle of each account group by the transaction execution time per gas, to obtain the total transaction execution time prediction value of the account group,

각 샤드의 트랜잭션 풀에 남아있는 트랜잭션의 가스비를 예측하고, 각 샤드의 1 가스당 트랜잭션 수행 시간을 예측하고, 각 샤드의 1 가스당 트랜잭션 수행 시간 예측값과 트랜잭션 가스비를 이를 이용하여 각 샤드의 트랜잭션 수행 시간 예측값을 설정하는 것이 바람직하다.Predict the gas cost of the remaining transactions in the transaction pool of each shard, predict the transaction execution time per gas of each shard, and perform each shard transaction using the estimated transaction execution time per gas of each shard and the transaction gas cost It is desirable to set a time estimate.

본 발명에 따른 부하 분산 방법은, 샤드의 부하를 효율적으로 분산시키기 위하여 각 샤드의 트랜잭션 수행시간 예측값과 각 계정 그룹의 트랜잭션 수행 시간 예측값을 기반으로 하여, 계정 재배치를 수행하여 부하 분산함으로써, 계정 그룹별 트랜잭션 수행 시간뿐만 아니라 각 샤드의 트랜잭션 풀에 남아있는 트랜잭션을 고려하여 계정을 재배치할 수 있게 된다. 본 발명에 따른 계정 재배치 방법을 통해 기존의 가스비 예측에 따른 계정 재배치 방법보다 콜레이션 표준 편차는 평균 11% 감소하엿으며, 수행시간 표준편차는 7% 감소하였다. 또한, 트랜잭션 처리량도 5% 증가하여 기존 방법들보다 효율적으로 부하를 분산할 수 있게 된다. In the load balancing method according to the present invention, in order to efficiently distribute the load of the shards, based on the predicted transaction execution time of each shard and the transaction execution time of each account group, the load is distributed by performing account relocation, Accounts can be relocated taking into account not only each transaction execution time but also the remaining transactions in the transaction pool of each shard. Through the account relocation method according to the present invention, the collation standard deviation was reduced by 11% on average, compared to the account relocation method according to the existing gas cost prediction, and the standard deviation of the execution time was reduced by 7%. In addition, the transaction throughput is also increased by 5%, making it possible to distribute the load more efficiently than existing methods.

도 1은 이더리움의 샤딩 환경을 도시한 모식도이다.
도 2는 이더리움 환경에 있어서, OPCODE별 가스 소모량을 도시한 도표이다.
도 3은 이더리움 샤딩 환경에 있어서, 가스비를 기준으로 분류하였을 때 각 샤드별 콜레이션의 평균 수행 시간을 도시한 그래프이다.
도 4는 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템을 도시한 구조도이다.
도 5는 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템에 있어서, 로드 발란서가 데이터 수집 과정을 설명하기 위하여 도시한 구조도이다.
도 6은 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템에 있어서, 로드 발란서가 계정 재배치 과정을 설명하기 위하여 도시한 구조도이다.
도 7은 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템에 있어서, 계정 재배치 모듈의 계정 재배치 알고리즘을 도시한 것이다.
도 8은 본 발명에 따른 방법의 성능을 살펴보기 위하여, 각 샤드의 콜레이션 표준 편차를 비교한 그래프이다.
도 9는 본 발명에 따른 방법의 성능을 살펴보기 위하여, 각 샤드의 수행시간 표준 편차를 비교한 그래프이다.
도 10은 본 발명에 따른 방법의 성능을 살펴보기 위하여, 각 계정 배치 방법 별 트랜잭션 처리량을 비교한 그래프이다.
도 11는 본 발명에 따른 방법의 성능을 살펴보기 위하여, 계정 배치 주기별 부하 분산 효율들을 비교한 그래프이다.
1 is a schematic diagram illustrating a sharding environment of Ethereum.
2 is a chart showing gas consumption for each OPCODE in the Ethereum environment.
3 is a graph showing the average execution time of a collation for each shard when classified based on gas cost in an Ethereum sharding environment.
4 is a structural diagram showing an Ethereum sharding system according to a preferred embodiment of the present invention.
5 is a structural diagram illustrating a data collection process by a load balancer in an Ethereum sharding system according to a preferred embodiment of the present invention.
6 is a structural diagram illustrating a load balancer account relocation process in an Ethereum sharding system according to a preferred embodiment of the present invention.
7 illustrates an account relocation algorithm of the account relocation module in the Ethereum sharding system according to a preferred embodiment of the present invention.
8 is a graph comparing the collation standard deviation of each shard in order to examine the performance of the method according to the present invention.
9 is a graph comparing the standard deviation of the execution time of each shard in order to examine the performance of the method according to the present invention.
10 is a graph comparing transaction throughput for each account arrangement method in order to examine the performance of the method according to the present invention.
11 is a graph comparing load balancing efficiencies for each account placement cycle in order to examine the performance of the method according to the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 환경에서의 부하 분산 방법 및 이를 구현한 시스템을 구체적으로 설명한다. Hereinafter, a load balancing method in an Ethereum sharding environment according to a preferred embodiment of the present invention and a system implementing the same will be described in detail with reference to the accompanying drawings.

도 4는 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템을 도시한 구조도이다. 4 is a structural diagram showing an Ethereum sharding system according to a preferred embodiment of the present invention.

도 4를 첨부하면, 본 발명에 따른 이더리움 샤딩 시스템은 로드 발란서(Load Balancer; 10) 및 복수 개의 샤드(Shard; 20)를 구비하며, 상기 로드 발란서는 각 샤드(20)의 검증자(Validator)들로부터 제공된 트랜잭션 수행 시간과 가스비를 분석하여 다음 주기의 가스비와 트랜잭션 수행시간을 예측하고, 예측된 트랜잭션 수행시간을 기반으로 각 샤드의 계정 그룹을 재배치하는 것을 특징으로 한다. 이더리움 샤딩 환경에서, 각 계정이 처음 생성될 때 계정 그룹을 부여받으며, 계정 그룹을 부여받은 계정들은 해당 계정 그룹이 속한 샤드에서 활동하며 트랜잭션을 생성한다. 초기에는 에측을 위한 데이터가 존재하지 않기 때문에, 계정 그룹수/샤드 수로 각 샤드에 계정 그룹을 배치한다.4, the Ethereum sharding system according to the present invention includes a load balancer (10) and a plurality of shards (20), and the load balancer is a validator ( It is characterized by analyzing the transaction execution time and gas cost provided by validators) to predict the gas cost and transaction execution time of the next cycle, and relocating the account group of each shard based on the predicted transaction execution time. In the Ethereum sharding environment, each account is given an account group when it is first created, and the accounts given the account group work in the shard to which the account group belongs and create transactions. Since there is no data for prediction in the beginning, account groups are placed in each shard by the number of account groups/number of shards.

상기 로드 발란서(10)는 데이터 수집기(100), 예측 모듈(120) 및 계정 재배치 모듈(140)을 구비하며, 각 샤드(20)는 노드들에 부여된 계정들을 포함하는 계정 그룹들(200) 및 콜레이션 체인(220)을 구비하고, 트랜잭션을 수행 및 검증하고 콜레이션을 생성하는 검증자(Validator)를 더 구비하며, 상기 검증자는 랜덤하게 선출된다. The load balancer 10 includes a data collector 100 , a prediction module 120 , and an account relocation module 140 , and each shard 20 includes account groups 200 including accounts assigned to nodes. ) and a collation chain 220 , and further comprising a validator that performs and verifies a transaction and generates a collation, wherein the validator is randomly selected.

각 샤드의 검증자는 트랜잭션을 수행 및 검증하고 콜레이션을 생성하며, 트랜잭션 가스비, 트랜잭션 수행시간 및 트랜잭션을 발생시킨 계정 그룹 번호를 상기 로드 발란서의 데이터 수집기(100)로 전송한다. The verifier of each shard executes and verifies the transaction, creates a collation, and transmits the transaction gas cost, the transaction execution time, and the account group number that generated the transaction to the data collector 100 of the load balancer.

도 5는 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템에 있어서, 로드 발란서가 데이터 수집 과정을 설명하기 위하여 도시한 구조도이다. 도 5를 참조하면, 로드 발란서(10)의 데이터 수집기(Data collector; 100)는 각 샤드의 검증자로부터 각 샤드의 트랜잭션 수행시간과 트랜잭션 가스비를 수집한다. 5 is a structural diagram illustrating a data collection process by a load balancer in an Ethereum sharding system according to a preferred embodiment of the present invention. Referring to FIG. 5 , the data collector 100 of the load balancer 10 collects the transaction execution time and transaction gas cost of each shard from the verifier of each shard.

로드 발란서(10)의 예측 모듈(Time Predictor; 120)은 데이터 수집기를 통해 수집된 트랜잭션 수행 시간과 트랜잭션 가스비를 분석하여 다음 주기에 발생시킬 트랜잭션 수행 시간과 트랜잭션 가스비를 예측한다. 상기 예측 모듈은 각 샤드의 콜레이션이 생성될 때 콜레이션 생성 주기만큼 콜레이션이 생성되었는지 확인하고, 콜레이션이 콜레이션 생성 주기만큼 생성되면, 생성된 콜레이션의 트랜잭션 가스비와 트랜잭션 수행 시간을 분석하여 다음 주기의 계정별 트랜잭션 수행 시간을 예측한다. 이하, 상기 예측 모듈의 트랜잭션 수행 시간 예측 방법에 대하여 보다 구체적으로 설명한다.The prediction module (Time Predictor) 120 of the load balancer 10 predicts the transaction execution time and transaction gas cost to be generated in the next cycle by analyzing the transaction execution time and transaction gas cost collected through the data collector. When the collation of each shard is generated, the prediction module checks whether the collation is generated for as long as the collation generation cycle, and when the collation is generated for the collation generation cycle, it analyzes the transaction gas ratio and transaction execution time of the generated collation to predict the transaction execution time for each account in the next cycle. Hereinafter, a method of predicting a transaction execution time of the prediction module will be described in more detail.

지수 평활법은 시계열 데이터에서 과거의 데이터에는 지수적으로 적은 가중치를 적용하고 최근 데이터에 높은 가중치를 두어 미래의 데이터를 예측하는 기법이다. 지수 평활법은 단순 지수 평활법, 이중 지수 평활법, 삼중 지수 평활법으로 나뉘며, 단순 지수 평활법은 시계열 데이터에 계절성이나 추세성이 없는 경우에 사용하기 적합한 방법이다. 본 발명에 따른 예측 모듈은 단순 지수 평활법을 사용하여 다음 주기에서 계정 그룹이 발생시킬 가스비와 수행 시간을 예측하여 계정을 재배치하는 것을 특징으로 한다. 단순 지수 평활법에서 α값이 클수록 이전 데이터를 많이 고려하지 않는다는 것을 의미한다. Exponential smoothing is a technique for predicting future data by applying exponentially small weights to past data and high weighting to recent data in time series data. The exponential smoothing method is divided into a simple exponential smoothing method, a double exponential smoothing method, and a triple exponential smoothing method. The simple exponential smoothing method is suitable for use when there is no seasonality or trend in time series data. The prediction module according to the present invention is characterized in that the account is rearranged by predicting the gas cost and execution time to be generated by the account group in the next cycle using a simple exponential smoothing method. In the simple exponential smoothing method, the larger the value of α, the less the previous data are considered.

각 샤드에 배치되어 있는 계정 그룹들을 재배치하기 위하여, 계정 그룹이 이전 주기에서 발생시킨 트랜잭션 가스비를 기반으로 하여 다음 주기에 발생시킬 트랜잭션 가스비를 예측한다. 다음, 이전 주기의 1가스당 수행시간을 예측한 후, 예측된 가스비에 1가스당 수행 시간을 곱하여 계정 그룹의 총 트랜잭션 수행 시간을 예측한다. 다음, 각 샤드의 트랜잭션 풀에 남아있는 트랜잭션을 고려하기 위하여, 각 샤드의 트랜잭션 풀에 남아있는 트랜잭션의 가스비를 기준으로 각 샤드의 트랜잭션 수행 시간 예측값을 설정한다. In order to rearrange the account groups arranged in each shard, the transaction gas cost to be generated in the next cycle is predicted based on the transaction gas fee generated by the account group in the previous cycle. Next, after predicting the execution time per gas of the previous cycle, the estimated gas cost is multiplied by the execution time per gas to predict the total transaction execution time of the account group. Next, in order to consider the transactions remaining in the transaction pool of each shard, the estimated value of the transaction execution time of each shard is set based on the gas ratio of the transactions remaining in the transaction pool of each shard.

Figure pat00001
는 i번째 콜레이션에서 j번째 계정 그룹의 가스 소모량 예측값을 의미하며,
Figure pat00002
는 i번째 콜레이션에서 j번째 계정 그룹의 실제 가스 소모량을 의미한다. i번째 콜레이션에서 j번째 계정 그룹의 가스 소모량 예측값은 단순 지수 평활법을 사용하여 예측하며, i번째 콜레이션에서 j번째 계정 그룹의 가스 소모량 예측값은 i-1번째 콜레이션에서 j번째 계정 그룹의 가스 소모량 예측값과 i-1번째 콜레이션에서 요청된 실제 가스 소모량을 이용하여 예측한다. 본 발명에서는 가스비 예측을 위한 α값은 0.2로 설정하였다. 각 계정 그룹의 다음 콜레이션에서 요청할 가스 소모량 예측값은 수학식 1에 의해 얻을 수 있다.
Figure pat00001
is the predicted value of gas consumption of the j-th account group in the i-th collation,
Figure pat00002
is the actual gas consumption of the j-th account group in the i-th collation. In the i-th collation, the predicted gas consumption of the j-th account group is predicted using simple exponential smoothing, and in the i-th collation, the predicted gas consumption of the j-th account group is that of the j-th account group in the i-1 collation. It is predicted using the predicted gas consumption value and the actual gas consumption requested in the i-1th collation. In the present invention, the α value for gas ratio prediction is set to 0.2. The predicted value of gas consumption to be requested in the next collation of each account group can be obtained by Equation (1).

Figure pat00003
Figure pat00003

Figure pat00004
는 j번째 계정 그룹의 트랜잭션 수행시간 예측값을 의미하며,
Figure pat00005
는 i번째 주기에서 j번째 계정 그룹의 1가스를 소모하는데 걸리는 수행시간 예측값을 의미한다. j번째 계정 그룹이 i-1 번째 주기에서 요청한 트랜잭션 가스비와 트랜잭션 수행시간을 이용하여 i 번째 주기의 1 가스당 트랜잭션 수행 시간을 예측한다. 예측된 i 번째 주기의 1 가스당 수행 시간 예측값과 j번째 계정 그룹의 i번째 주기의 가스비 예측값을 곱하여, j번째 계정 그룹의 총 트랜잭션 수행 시간 예측값을 구한다. 본 발명에서는 수행 시간 예측을 위한 α값은 0.8로 설정한다. 각 계정 그룹의 총 트랜잭션 수행 시간 예측값(
Figure pat00006
)은 수학식 2에 의해 구할 수 있으며, 각 계정 그룹의 1가스당 수행시간 예측값(
Figure pat00007
)은 수학식 3에 의해 구할 수 있다.
Figure pat00004
is the estimated transaction execution time of the j-th account group,
Figure pat00005
is the estimated execution time required to consume 1 gas of the j-th account group in the i-th cycle. The transaction execution time per gas of the i-th cycle is predicted using the transaction gas cost and the transaction execution time requested by the j-th account group in the i-1th cycle. The predicted value of the total transaction execution time of the j-th account group is obtained by multiplying the predicted execution time per gas of the i-th period by the predicted value of the gas cost of the i-th period of the j-th account group. In the present invention, the value of α for prediction of execution time is set to 0.8. Estimated total transaction execution time for each account group (
Figure pat00006
) can be obtained by Equation 2, and the predicted value (
Figure pat00007
) can be obtained by Equation (3).

Figure pat00008
Figure pat00008

Figure pat00009
Figure pat00009

각 샤드의 트랜잭션 풀에 남아있는 트랜잭션을 반영하기 위하여, 각 샤드의 1 가스당 수행시간 예측값과 트랜잭션 풀에 남아있는 트랜잭션에 대한 가스비를 곱하여 각 샤드의 총 트랜잭션 수행시간 예측값을 구한다. 본 발명에서는 수행 시간 예측을 위한 α값은 0.8로 설정한다. 각 샤드의 총 트랜잭션 수행 시간 예측값(

Figure pat00010
)은 수학식 4에 의해 구할 수 있으며, 각 샤드의 1 가스당 수행시간 예측값(
Figure pat00011
)은 수학식 5에 의해 구할 수 있다.
Figure pat00012
는 i번째 주기에서 j번째 샤드의 수행 시간 예측값을 의미하며,
Figure pat00013
는 j번째 샤드의 트랜잭션 풀에 남아있는 트랜잭션에 대한 가스량을 의미하며
Figure pat00014
는 j번째 주기에서 j번째 샤드의 1 가스를 소모하는데 걸리는 수행시간 예측값을 의미한다.
Figure pat00015
는 i번째 주기에서 j번째 샤드의 수행 시간을 의미한다.To reflect the remaining transactions in the transaction pool of each shard, the estimated total transaction execution time of each shard is obtained by multiplying the estimated execution time per gas of each shard by the gas cost for the remaining transactions in the transaction pool. In the present invention, the value of α for prediction of execution time is set to 0.8. Estimated total transaction execution time for each shard (
Figure pat00010
) can be obtained by Equation 4, and the estimated execution time per gas of each shard (
Figure pat00011
) can be obtained by Equation 5.
Figure pat00012
is the estimated execution time of the j-th shard in the i-th cycle,
Figure pat00013
is the amount of gas for the remaining transactions in the transaction pool of the j-th shard.
Figure pat00014
is the estimated execution time required to consume 1 gas of the j-th shard in the j-th cycle.
Figure pat00015
is the execution time of the j-th shard in the i-th cycle.

Figure pat00016
Figure pat00016

Figure pat00017
Figure pat00017

도 6은 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템에 있어서, 로드 발란서가 계정 재배치 과정을 설명하기 위하여 도시한 구조도이다. 도 6을 참조하면, 로드 발란서(10)의 계정 재배치 모듈(Account Group Relocator;140)은 예측 모듈에 의해 예측된 각 계정 그룹의 트랜잭션 수행 시간 예측값과 각 샤드의 트랜잭션 수행 시간 예측값을 기반으로 각 샤드의 계정 그룹을 재배치한다. 특히, 상기 계정 재배치 모듈은 트랜잭션 풀에 남아 있는 트랜잭션을 함께 고려하여 각 샤드의 콜레이션 예측 수행 시간이 콜레이션 수행 시간 한계를 넘으면 계정 재배치를 진행하고, 만약 예측값이 콜레이션 수행 시간 한계를 넘지 않으면 재배치하지 않는다. 6 is a structural diagram illustrating a load balancer account relocation process in an Ethereum sharding system according to a preferred embodiment of the present invention. Referring to FIG. 6 , the account relocation module (Account Group Relocator) 140 of the load balancer 10 is based on the predicted transaction execution time of each account group and the transaction execution time of each shard predicted by the prediction module. Relocate the shard's account groups. In particular, the account relocation module considers the transactions remaining in the transaction pool and relocates the account if the collation prediction execution time of each shard exceeds the collation execution time limit, and if the prediction value does not exceed the collation execution time limit, do not relocate

도 7은 본 발명의 바람직한 실시예에 따른 이더리움 샤딩 시스템에 있어서, 계정 재배치 모듈의 계정 재배치 알고리즘을 도시한 것이다. 도 7을 참조하면, 계정 재배치 모듈은, 수행 시간 예측 모듈로부터 계정 그룹 번호와 각 계정 그룹의 트랜잭션 수행 시간 예측값을 받아, 제1 우선 순위 큐(QA)에 넣어, 계정 그룹의 트랜잭션 수행 시간 예측값이 큰 순서대로 정렬한다. 또한, 각 샤드의 트랜잭션 수행 시간 예측값과 샤드 번호를 함께 제2 우선 순위 큐(QSH)에 넣어 각 샤드의 수행 시간 예측값이 작은 순서대로 정렬한다. 다음, 제1 및 제2 우선순위큐들에서 각각 샤드 번호와 계정 그룹 번호를 꺼내고, 해당 샤드에 해당 계정 그룹을 배치한다. 전술한 과정을 모든 계정이 샤드에 재배치될 때까지 반복 수행하여 모든 계정 그룹이 샤드에 재배치될 수 있도록 한다. 도 7에서, an은 계정 그룹의 개수이며, sn은 샤드의 개수이며, APan은 계정 그룹의 수행시간 예측값이며, SHTsn 은 sn번째 샤드에서의 트랜잭션 풀의 수행시간 예측값이며, Ai는 i번재 계정 그룹이며, SHi는 i번째 샤드이며, QA는 계정 그룹의 수행시간 예측값을 내림차순으로 정렬하는 우선순위 큐이며, QSH는 샤드의 트랜잭션 풀 수행 시간 예측값을 오름차순으로 정렬하는 우선 순위 큐를 의미한다. 7 illustrates an account relocation algorithm of the account relocation module in the Ethereum sharding system according to a preferred embodiment of the present invention. Referring to FIG. 7 , the account relocation module receives the account group number and the transaction execution time prediction value of each account group from the execution time prediction module, puts it in the first priority queue (QA), and the transaction execution time prediction value of the account group is Sort in large order. In addition, the transaction execution time prediction value of each shard and the shard number are put together in the second priority queue (QSH), and the execution time prediction value of each shard is arranged in the order of the smallest. Next, the shard number and the account group number are taken out from the first and second priority queues, respectively, and the corresponding account group is placed in the corresponding shard. Repeat the above process until all accounts are relocated to a shard so that all account groups can be relocated to a shard. In Figure 7, an is the number of account groups, sn is the number of shards, APan is the execution time prediction value of the account group, SHTsn is the execution time prediction value of the transaction pool in the sn-th shard, and Ai is the i-th account group , SHi is the i-th shard, QA is a priority queue that sorts the execution time predictions of account groups in descending order, and QSH means a priority queue that sorts the transaction pool execution time predictions of shards in ascending order.

이하, 본 발명에 따른 트랜잭션 수행 시간을 고려한 부하 분산 방법의 성능을 평가하고 설명한다. 성능 평가를 위하여, 기존의 계정 주소 기반 계정 배치 방법(S-ACC), 기존의 가스 소모량을 고려한 계정 재배치 방법(D-GAS) 및 본 발명에 따른 트랜잭션 수행 시간을 고려한 계정 재배치 방법(T-Time)의 3가지 방법에 대하여 각각 콜레이션 사용량 표준 편차, 수행 시간 표준 편차, 트랜잭션 처리량 및 계정 재배치 주기에 따른 수행 시간 표준 편차를 측정하고 이를 각각 설명한다. Hereinafter, the performance of the load balancing method in consideration of the transaction execution time according to the present invention will be evaluated and described. For performance evaluation, the existing account address-based account arrangement method (S-ACC), the existing account relocation method considering gas consumption (D-GAS), and the account relocation method considering the transaction execution time according to the present invention (T-Time) ) for each of the three methods, the standard deviation of collation usage, standard deviation of execution time, transaction throughput, and standard deviation of execution time according to the account relocation cycle are measured and explained respectively.

도 8은 본 발명에 따른 방법의 성능을 살펴보기 위하여, 각 샤드의 콜레이션 표준 편차를 비교한 그래프이다. 도 8을 참조하면, 트랜잭션 요청 수에 따라 각 계정 배치 방법의 콜레이션 표준 편차를 구해 부하 분산 효율을 측정한 결과, 본 발명에 따른 계정 재배치 방법(T-Time)이 모든 트랜잭션 요청량에서 계정 주소별 계정 배치 방법(S-ACC)보다 낮은 표준 편차를 보였으며, 또한, 가스소모량을 고려한 계정 재배치 방법(D-GAS)보다 트랜잭션 요청량이 많아질수록 콜레이션 표준 편차가 낮아짐을 알 수 있었다. 8 is a graph comparing the collation standard deviation of each shard in order to examine the performance of the method according to the present invention. Referring to FIG. 8 , as a result of measuring the load balancing efficiency by obtaining the collation standard deviation of each account arrangement method according to the number of transaction requests, the account relocation method (T-Time) according to the present invention is an account address in all transaction requests. It showed a lower standard deviation than the star account arrangement method (S-ACC), and it was also found that the collation standard deviation decreased as the transaction request volume increased compared to the account relocation method (D-GAS) that considered gas consumption.

도 9는 본 발명에 따른 방법의 성능을 살펴보기 위하여, 각 샤드의 수행시간 표준 편차를 비교한 그래프이다. 도 9를 참조하면, 트랜잭션 요청 수에 따라 각 계정 배치 방법의 샤드 수행 시간 표준 편차를 구해 부하 분산 효율을 측정한 결과, 본 발명에 따른 계정 재배치 방법(T-Time)이 모든 트랜잭션 요청량에서 계정 주소별 계정 배치 방법(S-ACC) 및 가스소모량을 고려한 계정 재배치 방법(D-GAS)보다 트랜잭션 요청량이 많아지더라도 트랜잭션 수행 시간의 표준 편차가 낮음을 알 수 있었다. 이는 본 발명에 따른 방법이 기존의 다른 방법보다 트랜잭션 수행시간이 고르게 분포된 것을 의미하며, 이는 본 발명에 따른 방법이 기존 방법과는 달리 각 계정 그룹과 트랜잭션 풀의 수행 시간을 예측하고 계정을 재배치하여 트랜잭션 수행 시간의 표준 편차가 낮아진 것으로 파악된다. 9 is a graph comparing the standard deviation of the execution time of each shard in order to examine the performance of the method according to the present invention. Referring to FIG. 9 , as a result of measuring the load balancing efficiency by obtaining the standard deviation of the shard execution time of each account arrangement method according to the number of transaction requests, the account relocation method (T-Time) according to the present invention accounts for all transaction requests. It was found that the standard deviation of transaction execution time was lower even when the transaction request volume was higher than that of the account allocation method by address (S-ACC) and the account relocation method that considers gas consumption (D-GAS). This means that the method according to the present invention distributes the transaction execution time more evenly than other existing methods. This means that, unlike the existing method, the method according to the present invention predicts the execution time of each account group and transaction pool and relocates the accounts. As a result, the standard deviation of the transaction execution time is found to be lowered.

도 10은 본 발명에 따른 방법의 성능을 살펴보기 위하여, 각 계정 배치 방법 별 트랜잭션 처리량을 비교한 그래프이다. 도 10을 참조하면, 트랜잭션 요청 수에 따라 각 계정 배치 방법의 트랜잭션 처리량을 측정한 결과, 본 발명에 따른 계정 재배치 방법(T-Time)이 모든 트랜잭션 요청량에서 계정 주소별 계정 배치 방법(S-ACC)보다 트랜잭션 처리량이 높아지고 수행 시간의 표준 편차는 낮추어짐을 알 수 있다. 이는 본 발명에 따른 재배치 방법은, 트랜잭션 요청량이 많아 트랜잭션 풀에 트랜잭션이 남아 있는 경우, 트랜잭션 풀에 남아있는 트랜잭션을 고려하여 계정을 재배치하는 방법을 사용하여, 기존 방법들보다 효과적인 부하 분산이 가능해진 것으로 판단된다. 10 is a graph comparing transaction throughput for each account arrangement method in order to examine the performance of the method according to the present invention. Referring to FIG. 10 , as a result of measuring the transaction throughput of each account placement method according to the number of transaction requests, the account relocation method (T-Time) according to the present invention is the account placement method (S- It can be seen that the transaction throughput is higher than that of ACC) and the standard deviation of the execution time is lowered. This is because the relocation method according to the present invention uses a method of relocating accounts in consideration of the remaining transactions in the transaction pool when a transaction remains in the transaction pool due to a large amount of transaction requests, enabling more effective load balancing than existing methods. is judged to be

도 11는 본 발명에 따른 방법의 성능을 살펴보기 위하여, 계정 배치 주기별 부하 분산 효율들을 비교한 그래프이다. 도 11을 참조하면, 재배치 주기에 따른 각 계정 배치 방법별 수행 시간 표준 편차를 구하여 재배치 주기에 따른 부하 분산 효율을 측정한 결과, 본 발명에 따른 계정 재배치 방법(T-Time)은 계정 재배치 주기가 늘어나도 균등한 표준 편차를 보여 줌을 알 수 있었다. 이는 본 발명에 따른 방법은 계정 재배치 주기를 늘려도 부하 분산 효율이 떨어지지 않기 때문에 계정 재배치 오버헤드를 줄이기 위해 계정 재배치 주기를 늘려도 효율적인 부하 분산이 가능하게 되기 때문이다. 11 is a graph comparing load balancing efficiencies for each account placement cycle in order to examine the performance of the method according to the present invention. 11, as a result of measuring the load balancing efficiency according to the relocation period by obtaining the standard deviation of the execution time for each account arrangement method according to the relocation period, the account relocation method (T-Time) according to the present invention shows that the account relocation period is It was found that even when increased, it showed an even standard deviation. This is because, in the method according to the present invention, load balancing efficiency does not decrease even if the account relocation period is increased.

이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다. In the above, the present invention has been mainly described with respect to its preferred embodiment, but this is only an example and does not limit the present invention. It will be appreciated that various modifications and applications not exemplified above in the scope are possible. And, the differences related to such modifications and applications should be construed as being included in the scope of the present invention defined in the appended claims.

10 : 로드 발란서
100 : 데이터 수집기
120 : 예측 모듈
140 : 계정 재배치 모듈
20 : 샤드
200 : 계정 그룹
220 : 콜레이션 체인
10: load balancer
100: data collector
120: prediction module
140: Account Relocation Module
20 : Shard
200 : account group
220: collation chain

Claims (10)

다수 개의 계정 그룹들이 할당된 복수 개의 샤드들 및 각 샤드의 부하 분산을 제어하는 로드 발란서를 구비하는 이더리움 샤딩 시스템에 있어서,
상기 로드 발란서는,
각 샤드들의 각 주기에 대한 트랜잭션 수행 시간, 트랜잭션 가스비 및 트랜잭션을 발생시킨 계정 그룹 번호를 수집하는 데이터 수집기;
각 샤드로부터 수집된 트랜잭션 수행 시간 및 트랜잭션 가스비를 이용하여, 다음 주기에 발생될 트랜잭션 가스비와 트랜잭션 수행 시간을 예측하는 예측 모듈;
상기 예측 모듈에 의하여 예측된 트랜잭션 수행 시간 예측값을 이용하여 각 샤드의 계정 그룹을 재배치하는 계정 재배치 모듈;
을 구비하는 것을 특징으로 하는 이더리움 샤딩 시스템.
In the Ethereum sharding system having a plurality of shards to which a plurality of account groups are allocated and a load balancer for controlling the load distribution of each shard,
The load balancer,
a data collector that collects the transaction execution time for each cycle of each shard, the transaction gas cost, and the account group number that generated the transaction;
a prediction module for predicting a transaction gas cost and a transaction execution time to be generated in a next cycle by using the transaction execution time and transaction gas cost collected from each shard;
an account relocation module for relocating the account group of each shard using the transaction execution time prediction value predicted by the prediction module;
Ethereum sharding system, characterized in that it comprises a.
제1항에 있어서, 상기 계정 재배치 모듈은
상기 예측 모듈에 의하여 예측된 각 계정 그룹별 트랜잭션 수행 시간 예측값과 각 샤드별 트랜잭션 수행 시간 예측값을 기반으로 하여 각 샤드의 계정 그룹을 재배치하는 것을 특징으로 하는 이더리움 샤딩 시스템.
The method of claim 1, wherein the account relocation module
Ethereum sharding system, characterized in that the account group of each shard is rearranged based on the predicted value of the transaction execution time for each account group and the predicted value of the transaction execution time for each shard predicted by the prediction module.
제2항에 있어서, 상기 계정 재배치 모듈은 제1 우선순위 큐와 제2 우선순위 큐를 구비하고,
상기 제1 우선순위 큐에 각 계정 그룹별 트랜잭션 수행 시간 예측값을 기준으로 각 계정 그룹 번호를 내림차순으로 정렬시키고, 상기 제2 우선순위 큐에 각 샤드별 트랜잭션 수행 시간 예측값을 기준으로 각 샤드 번호를 오름차순으로 정렬시킨 후,
제1 및 제2 우선순위 큐들로부터 계정 그룹 번호와 샤드 번호를 하나씩 꺼내어, 해당 샤드에 해당 계정 그룹을 배치시키는 것을 특징으로 하는 이더리움 샤딩 시스템.
3. The method of claim 2, wherein the account relocation module has a first priority queue and a second priority queue,
In the first priority queue, each account group number is arranged in descending order based on the transaction execution time prediction value for each account group, and each shard number is arranged in ascending order based on the transaction execution time prediction value for each shard in the second priority queue After sorting by
An Ethereum sharding system, characterized in that the account group number and the shard number are taken out one by one from the first and second priority queues, and the corresponding account group is placed in the corresponding shard.
제1항에 있어서, 상기 예측 모듈은,
각 계정 그룹이 다음 주기에 요청할 트랜잭션 수행 시간을 예측하고, 각 샤드의 트랜잭션 풀에 남아 있는 트랜잭션 수행 시간을 예측하는 것을 특징으로 하는 이더리움 샤딩 시스템.
According to claim 1, wherein the prediction module,
An Ethereum sharding system characterized by predicting the transaction execution time that each account group will request in the next cycle, and predicting the remaining transaction execution time in the transaction pool of each shard.
제4항에 있어서, 상기 예측 모듈은
계정 그룹이 이전 주기에서 발생시킨 트랜잭션을 기반으로 다음 주기에 발생시킬 가스비를 예측하고,
이전 주기의 1가스당 트랜잭션 수행시간을 예측하고,
계정 그룹의 다음 주기의 트랜잭션 가스비 예측값과 상기 1가스당 트랜잭션 수행시간을 곱하여, 계정 그룹의 총 트랜잭션 수행 시간 예측값을 구하고,
각 샤드의 트랜잭션 풀에 남아있는 트랜잭션의 가스비를 예측하고,
각 샤드의 1 가스당 트랜잭션 수행 시간을 예측하고,
각 샤드의 1 가스당 트랜잭션 수행 시간 예측값과 트랜잭션 가스비를 이를 이용하여 각 샤드의 트랜잭션 수행 시간 예측값을 설정하는 것을 특징으로 하는 이더리움 샤딩 시스템.
5. The method of claim 4, wherein the prediction module is
Predict the gas cost to be generated in the next cycle based on the transactions generated by the account group in the previous cycle,
Predict the transaction execution time per gas of the previous cycle,
Multiplying the estimated transaction gas cost of the next cycle of the account group by the transaction execution time per 1 gas to obtain a predicted value of the total transaction execution time of the account group,
Predict the gas cost of the remaining transactions in the transaction pool of each shard,
Predict the transaction execution time per 1 gas of each shard,
An Ethereum sharding system, characterized in that the predicted value of the transaction execution time per gas of each shard and the transaction gas ratio are used to set the predicted value of the transaction execution time of each shard.
제1항에 있어서, 상기 계정 재배치 모듈은,
각 샤드의 콜레이션이 생성될 때 콜레이션 생성 주기만큼 생성되었는지 여부를 확인하고,
콜레이션이 콜레이션 생성 주기만큼 생성되면 생성된 콜레이션의 트랜잭션 가스비와 트랜잭션 수행시간을 분석하여 다음 주기의 계정별 트랜잭션 수행 시간을 예측하고,
각 샤드의 콜레이션 수행 시간 예측값이 사전 설정된 콜레이션 수행 시간 한계값을 초과하면 계정 재배치를 진행하고, 한계값을 초과하지 않으면 계정 재배치를 수행하지 않는 것을 특징으로 하는 이더리움 샤딩 시스템.
According to claim 1, wherein the account relocation module,
When the collation of each shard is created, it is checked whether it is created for as long as the collation creation cycle,
When a collation is generated as much as the collation creation cycle, the transaction gas cost and transaction execution time of the generated collation are analyzed to predict the transaction execution time for each account in the next cycle,
An Ethereum sharding system, characterized in that when the predicted value of the collation execution time of each shard exceeds the preset collation execution time limit, account relocation proceeds, and if the threshold is not exceeded, the account relocation is not performed.
제1항에 있어서, 상기 데이터 수집기는,
각 샤드의 검증자(Validator)로부터 각 샤드의 트랜잭션 가스비, 트랜잭션 수행 시간 및 트랜잭션을 발생한 계정 그룹 번호를 제공받아 수집하는 것을 특징으로 하는 이더리움 샤딩 시스템.
According to claim 1, wherein the data collector,
An Ethereum sharding system characterized by receiving and collecting the transaction gas cost of each shard, the transaction execution time, and the account group number that generated the transaction from the validator of each shard.
다수 개의 계정 그룹들이 할당된 복수 개의 샤드들과 로드 발란서를 구비하는 이더리움 샤딩 환경에서의 로드 발란서에 의한 부하 분산 방법에 있어서,
(a) 각 샤드들의 각 주기에 대한 트랜잭션 수행 시간, 트랜잭션 가스비 및 트랜잭션을 발생시킨 계정 그룹 번호를 수집하는 단계;
(b) 각 샤드로부터 수집된 트랜잭션 수행 시간 및 트랜잭션 가스비를 이용하여, 다음 주기에 발생될 각 계정 그룹별 트랜잭션 수행 시간 에측값과 각 샤드별 트랜잭션 수행 시간 예측값을 구하는 단계;
(c) 상기 각 계정별 트랜잭션 수행 시간 예측값과 각 샤드별 트랜잭션 수행 시간 예측값을 이용하여 각 샤드의 계정 그룹을 재배치하는 단계;
를 구비하는 것을 특징으로 하는 이더리움 샤딩 환경에서의 부하 분산 방법.
In a load balancing method by a load balancer in an Ethereum sharding environment having a plurality of shards and a load balancer to which a plurality of account groups are allocated,
(a) collecting the transaction execution time for each cycle of each shard, the transaction gas cost, and the account group number that generated the transaction;
(b) using the transaction execution time and transaction gas cost collected from each shard, obtaining an estimate of the transaction execution time for each account group to be generated in the next cycle and an estimated value of the transaction execution time for each shard;
(c) relocating the account group of each shard using the predicted transaction execution time for each account and the predicted transaction execution time for each shard;
A load balancing method in an Ethereum sharding environment, characterized in that it comprises a.
제8항에 있어서, 상기 (c) 단계는
제1 우선순위 큐에 각 계정 그룹별 트랜잭션 수행 시간 예측값을 기준으로 각 계정 그룹 번호를 내림차순으로 정렬시키고, 제2 우선순위 큐에 각 샤드별 트랜잭션 수행 시간 예측값을 기준으로 각 샤드 번호를 오름차순으로 정렬시킨 후,
제1 및 제2 우선순위 큐들로부터 계정 그룹 번호와 샤드 번호를 하나씩 꺼내어, 해당 샤드에 해당 계정 그룹을 배치시키는 것을 특징으로 하는 이더리움 샤딩 환경에서의 부하 분산 방법.
The method of claim 8, wherein step (c) is
Sort each account group number in descending order based on the transaction execution time estimate for each account group in the first priority queue, and sort each shard number in ascending order based on the transaction execution time estimate for each shard in the second priority queue after done,
A load balancing method in an Ethereum sharding environment, characterized in that the account group number and the shard number are taken out one by one from the first and second priority queues, and the corresponding account group is placed in the corresponding shard.
제8항에 있어서, 상기 (b) 단계는,
각 계정 그룹이 이전 주기에서 발생시킨 트랜잭션을 기반으로 다음 주기에 발생시킬 가스비를 예측하고, 각 계정 그룹의 이전 주기의 1가스당 트랜잭션 수행시간을 예측하고, 각 계정 그룹의 다음 주기의 트랜잭션 가스비 예측값과 상기 1가스당 트랜잭션 수행시간을 곱하여, 계정 그룹의 총 트랜잭션 수행 시간 예측값을 구하고,
각 샤드의 트랜잭션 풀에 남아있는 트랜잭션의 가스비를 예측하고, 각 샤드의 1 가스당 트랜잭션 수행 시간을 예측하고, 각 샤드의 1 가스당 트랜잭션 수행 시간 예측값과 트랜잭션 가스비를 이를 이용하여 각 샤드의 트랜잭션 수행 시간 예측값을 설정하는 것을 특징으로 하는 이더리움 샤딩 환경에서의 부하 분산 방법.
The method of claim 8, wherein (b) step,
Predict the gas cost to be generated in the next cycle based on the transactions that each account group generated in the previous cycle, estimate the transaction execution time per gas in the previous cycle for each account group, and estimate the transaction gas cost of each account group in the next cycle multiplied by the transaction execution time per 1 gas to obtain an estimate of the total transaction execution time of the account group,
Predict the gas cost of the remaining transactions in the transaction pool of each shard, predict the transaction execution time per gas of each shard, and perform each shard transaction using the estimated transaction execution time per gas of each shard and the transaction gas cost A load balancing method in an Ethereum sharding environment, characterized by setting a time estimate.
KR1020200179967A 2020-12-21 2020-12-21 Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system KR20220089383A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200179967A KR20220089383A (en) 2020-12-21 2020-12-21 Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200179967A KR20220089383A (en) 2020-12-21 2020-12-21 Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system

Publications (1)

Publication Number Publication Date
KR20220089383A true KR20220089383A (en) 2022-06-28

Family

ID=82268565

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200179967A KR20220089383A (en) 2020-12-21 2020-12-21 Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system

Country Status (1)

Country Link
KR (1) KR20220089383A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115442291A (en) * 2022-08-19 2022-12-06 南京理工大学 Ethernet-oriented active network topology sensing method
WO2024039129A1 (en) * 2022-08-17 2024-02-22 주식회사 블룸테크놀로지 Dynamic sharding system and method in blockchain network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200058273A (en) 2018-11-19 2020-05-27 서강대학교산학협력단 Method for transmitting message between nodes based on blockcahin sharding
KR20200059136A (en) 2018-11-20 2020-05-28 서강대학교산학협력단 Method for distributing transaction load between shard based on ethereum sharding envirionment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200058273A (en) 2018-11-19 2020-05-27 서강대학교산학협력단 Method for transmitting message between nodes based on blockcahin sharding
KR20200059136A (en) 2018-11-20 2020-05-28 서강대학교산학협력단 Method for distributing transaction load between shard based on ethereum sharding envirionment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024039129A1 (en) * 2022-08-17 2024-02-22 주식회사 블룸테크놀로지 Dynamic sharding system and method in blockchain network
CN115442291A (en) * 2022-08-19 2022-12-06 南京理工大学 Ethernet-oriented active network topology sensing method

Similar Documents

Publication Publication Date Title
Tang et al. An intermediate data placement algorithm for load balancing in spark computing environment
CN107491341B (en) A kind of virtual machine distribution method based on particle group optimizing
US8726290B2 (en) System and/or method for balancing allocation of data among reduce processes by reallocation
US8620932B2 (en) Parallel sorting apparatus, method, and program
CN107168782A (en) A kind of concurrent computational system based on Spark and GPU
EP1564638B1 (en) A method of reassigning objects to processing units
US20070226743A1 (en) Parallel-distributed-processing program and parallel-distributed-processing system
KR20220089383A (en) Load balancing method based on transaction execution time in Ethereum sharding environment and Ethereum sharding system
CN107193652B (en) The flexible resource dispatching method and system of flow data processing system in container cloud environment
CN103701886A (en) Hierarchic scheduling method for service and resources in cloud computation environment
CN107357652A (en) A kind of cloud computing method for scheduling task based on segmentation sequence and standard deviation Dynamic gene
KR20200059136A (en) Method for distributing transaction load between shard based on ethereum sharding envirionment
US20070162629A1 (en) Method of assigning objects to processing units
CN114625500A (en) Method and application for scheduling micro-service application based on topology perception in cloud environment
CN109976879B (en) Cloud computing virtual machine placement method based on resource usage curve complementation
CN108776698B (en) Spark-based anti-deflection data fragmentation method
JPH11259433A (en) Parallel execution system
CN104778088B (en) A kind of Parallel I/O optimization methods and system based on reduction interprocess communication expense
EP1524599B1 (en) A method of reassigning objects to processing units
CN110058942B (en) Resource allocation system and method based on analytic hierarchy process
US20140047454A1 (en) Load balancing in an sap system
CN115168014A (en) Job scheduling method and device
CN107103095A (en) Method for computing data based on high performance network framework
CN112965825A (en) Dynamic balance partitioning method and system for load balance
CN107704320A (en) The method for allocating tasks and system of a kind of distributed system