Advances in Electrical and Computer Engineering (Nov 2020)
Fault Tolerant Distributed Python Software Transactional Memory
Abstract
Much of the previous research has been done on distributed software transactional memories targeting data centers in Internet clouds, which resulted in nondeterministic and nonrealtime middleware solutions mainly written in Java and C++. On the other hand, embedded systems based on the Internet of Things at the edge of the Internet, such as smart homes, cars, etc., need to operate in realtime, and should, therefore, be deterministic. In order to be smart, these systems use machine learning, and nowadays Python is becoming a leading language in this venue, too. This is the first paper that presents a distributed software transactional memory that is at the same time: (i) fault tolerant, (ii) deterministic, (iii) based on Python, and (iv) extended from a formally verified root. The presented solution consists of a pair of master-slave transaction coordinators and a set of replicated data servers and targets small-to-medium edge networks. Besides intelligent embedded systems, based on the Internet of Things, it can be also used in a wide range of application domains, from SCADA systems to large-scale simulations. The experimental results, presented in the paper, show a superlinear growth of the system throughput as the workload changes from write-only to read-only.
Keywords