On the Serializability of Transactions in JavaSpaces
Nadia Busi, Gianluigi Zavattaro · Electronic Notes in Theoretical Computer Science · 2001
JavaSpaces is a coordination infrastructure inspired by the shared dataspace model: processes interact by introducing, consuming, and testing for the presence/absence of data in a common repository. Besides these traditional operations, an event based coordination mechanism is considered which allows for the notification of the introduction of new instances of data in the repository. JavaSpaces also supports transactions: multiple coordination operations can be grouped into a bundle that acts as a single atomic operation. In this paper we adopt serializability as a criterion to evaluate the correctness of the JavaSpaces transaction semantics: we prove that serializability is satisfied only if we restrict to output, input, and read operations. On the other hand, in the presence of either test for absence or event notification, serializability is not satisfied; we propose an alternative semantics and we prove that it supports serializability.