In the smart contract ecosystem each transaction contains code to be executed, and all nodes that execute the block of transactions must arrive at the same final state. Consequently, it becomes necessary to maximize the parallel execution of transactions within a node in settings where execution time is a bottleneck (e.g., under heavier workloads, larger blocks, or in future scaling designs) while still allowing all nodes to reach a consistent final state resulting from the execution of a set of transactions. Traditional software transactional memory has been identified as a possible abstraction for the parallel execution of transactions within a block. However, in the smart contract setting, the execution order must follow the preset order of the transactions in the block. This paper presents a complexity study of this model for in-memory transactions (or block transactional memory) and investigates the fundamental bounds that might exist. To address this, we formalize the model of block transactional memory and identify the safety property that is required. We then present algorithmic designs for single-version and multi-version block transactional implementations that provide preset serializability. Finally, we show some fundamental limitations of the block transactional memory model, which establishes the limits of parallelism.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Block Transactional Memory: A Complexity Study

  • Parwat Singh Anjana,
  • Srivatsan Ravi

摘要

In the smart contract ecosystem each transaction contains code to be executed, and all nodes that execute the block of transactions must arrive at the same final state. Consequently, it becomes necessary to maximize the parallel execution of transactions within a node in settings where execution time is a bottleneck (e.g., under heavier workloads, larger blocks, or in future scaling designs) while still allowing all nodes to reach a consistent final state resulting from the execution of a set of transactions. Traditional software transactional memory has been identified as a possible abstraction for the parallel execution of transactions within a block. However, in the smart contract setting, the execution order must follow the preset order of the transactions in the block. This paper presents a complexity study of this model for in-memory transactions (or block transactional memory) and investigates the fundamental bounds that might exist. To address this, we formalize the model of block transactional memory and identify the safety property that is required. We then present algorithmic designs for single-version and multi-version block transactional implementations that provide preset serializability. Finally, we show some fundamental limitations of the block transactional memory model, which establishes the limits of parallelism.