Parallelization & Concurrency Control Models
Background Information
Parallelization is widely used in to improve system throughput. All modern supercomputers are parallel machines, and even quantum computers utilize this principle to achieve their goals. By allowing multiple transactions or tasks to be executed concurrently, parallel processing can significantly boost blockchain throughput. This approach capitalizes on modern multi-core processors and distributed architectures, maximizing the utilization of computational resources. Arcology is built around the idea of parallel transaction execution.
The Importance of Concurrency Control
A key challenge with parallel execution is managing concurrent access to shared resources while maintaining state consistency. The concurrency control system is responsible for this task.
Concurrency control models have been extensively researched and validated in conventional computing settings, providing a solid foundation for understanding concurrency and data access patterns. There are two major concurrency control strategies: Pessimistic Concurrency Control (PCC) and Optimistic concurrency control (OCC). Both approaches aim to improve the scalability of blockchain networks, but they differ in their focus and implementation.
One of the key limitations of traditional concurrency control mechanisms is their lack of determinism. While determinism can be a desirable trait in traditional computing environments, it is a critical requirement for blockchain systems due to their decentralized and consensus-driven nature. Blockchains demand that all participants agree on the outcome of executed transactions, necessitating a deterministic behaviors across all nodes.
Arcology's Concurrency Control
Arcology's concurrency controls employs a hybrid approach that combines both optimistic and pessimistic control models to effectively manage all concurrency-related issues with a number of key characteristics:
Secure & Deterministic: The concurrency control system must ensure that concurrent executions follow security protocols and maintain the integrity of the blockchain data. Unlike traditional databases, blockchain networks require deterministic execution to achieve consensus among nodes. This means that parallel-processed transactions must produce consistent results, ensuring all nodes in the network reach the same final state. Therefore, the concurrency control system must enforce deterministic execution.
Efficiency: Optimistic concurrency control inherently more sensitive to the conflicts when multiple transactions access shared resources concurrently. A proper blockchain native concurrency control system must offer means to help and incentivize smart contract developers write conflict free smart contracts.
Usability: One of the goals of a concurrency control system is to empower developers to write efficient and contention-free smart contracts. Providing user-friendly APIs and tools that abstract the complexities of concurrency control can simplify the development process and encourage best practices in concurrent programming.
Last updated