Business Transactions describe long-running operations that may span many discrete systems. This has been an area of research for many years [6],[15]. While these operations involve tasks that may or may not be transactional in the traditional sense, the business still wants many of the same Atomic, Consistent, Isolated, and Durable characteristics that we know and love. Providing ACID can be difficult in an environment that includes: • Long-Running Operations: The work may span weeks or days. • Autonomous Participants: Independent systems may renege on promises or simply lose their state. • Schismatic Participants: Sometimes replicas of participants may independently do the work more than one time. We propose a new communication and storage mechanism called engagements. Engagements connect the participants of an Eventually ACiD Transaction. Participants are autonomous and may break their commitments. They may also be schismatic and composed of replicas that take independent and redundant actions. Engagements offer support for coping with the problems that may arise. This allows a new perspective on ACID: • Eventual Atomicity: Schismatic participants may do the work two or more times. With the help of engagements, this eventually becomes one operation with the redundant ones canceled. Autonomous participants may refuse to do what’s been promised. Engagements ensure these operations are eventually performed or the breakage is escalated for help. • Eventual Consistency: The business transaction is eventually completed. Furthermore, its outcome allows reordering of the schismatic or alternative redundant work while achieving the same outcome across all the replicas. The business transaction will eventually become consistent or an escalation happens. • Probabilistic Isolation: The promise protocol knits together the business transaction allowing for far greater commutativity. Work may ignore side effects at a lower layer of abstraction (using open-nested transactions). Hence, lower level concerns are semantically isolated from the business transaction. Still, while schismatic and autonomous work is eventually cleaned up, concurrent work may possibly see through the isolation. Concurrent work may see dirty or stale data from other business transactions and we don't deal with this problem. • Eventual Durability: Engagements capture the promises made by participants as they interact with the rest of the business transaction. They also allow the participants to record their state as they chatter. A less-than-durable participant can be resurrected and fulfill his job when presented with his state from an ongoing engagement. Eventually, the collection of participants can repair the temporary loss of some participants. The views in this paper are those of the authors. They may not reflect the views of any of their employers, real or imagined.
[1]
J. Eliot B. Moss.
Open Nested Transactions: Semantics and Support
,
2006
.
[2]
Edward Grossman.
ACM Queue
,
2003,
CIE.
[3]
Pat Helland,et al.
Building on Quicksand
,
2009,
CIDR.
[4]
Hans-Jörg Schek,et al.
Concepts and Applications of Multilevel Transactions and Open Nested Transactions
,
1992,
Database Transaction Models for Advanced Applications.
[5]
Leslie Lamport,et al.
Paxos Made Simple
,
2001
.
[6]
Andreas Reuter,et al.
Transaction Processing: Concepts and Techniques
,
1992
.
[7]
Julian Jang,et al.
Delivering Promises for Web Services Applications
,
2007,
IEEE International Conference on Web Services (ICWS 2007).
[8]
Andreas Reuter,et al.
The ConTract Model
,
1991,
Database Transaction Models for Advanced Applications.
[9]
Julian Jang,et al.
Isolation Support for Service-based Applications: A Position Paper
,
2007,
CIDR.
[10]
Joseph M. Hellerstein,et al.
Consistency Analysis in Bloom: a CALM and Collected Approach
,
2011,
CIDR.
[11]
Werner Vogels,et al.
Building reliable distributed systems at a worldwide scale demands trade-offs between consistency and availability.
,
2022
.
[12]
Nancy A. Lynch,et al.
Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services
,
2002,
SIGA.
[13]
Werner Vogels,et al.
Dynamo: amazon's highly available key-value store
,
2007,
SOSP.
[14]
Eric A. Brewer,et al.
Towards robust distributed systems (abstract)
,
2000,
PODC '00.
[15]
Gil Neiger,et al.
Causal memory: definitions, implementation, and programming
,
1995,
Distributed Computing.