62
T T T Ta a a ab b b b lll le e e e 3333....2222:::: Conflict matrix for Palimpsest operations
3.3.1 Point/point conflicts (for all operations)
This is the simplest sort of conflict, since the operations’ effects on points are all essen-
tially interchangeable; all operations that affect point locations insert data at them, so this
conflict is the same for any pair of operations. There are essentially three possible solutions
to merging multiple attempts to insert at the same place.
• Disallow the combination. This is the most drastic possibility, and one that we reserve
for application-specific policy. In general, this option is available for all conflicts, and we
assume that any system using Palimpsest operational semantics will allow applications to
define conditions to determine if a conflict should be regarded as this drastic a consis-
tency problem. Our goal is to define the best possible default resolution, for applications
that do not require such rigid consistency guarantees. Therefore, I will not mention this
option explicitly again for any of the conflict cases discussed.
• Relax the strict ordering condition on sequences. This changes the definition of sequence
so that a position in the sequence could hold a set of values, rather than just a single
value. User resolution of such conflicts would then require some additional operation
that would allow the relative ordering of two identical points to be specified. While this
Insert Delete Move Copy
Insert Point/Point
Delete Point/Range Range/Range
Move Point/Point
Point/Range
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
Copy Point/Point
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
T T T Ta a a ab b b b lll le e e e 3333....2222:::: Conflict matrix for Palimpsest operations
3.3.1 Point/point conflicts (for all operations)
This is the simplest sort of conflict, since the operations’ effects on points are all essen-
tially interchangeable; all operations that affect point locations insert data at them, so this
conflict is the same for any pair of operations. There are essentially three possible solutions
to merging multiple attempts to insert at the same place.
• Disallow the combination. This is the most drastic possibility, and one that we reserve
for application-specific policy. In general, this option is available for all conflicts, and we
assume that any system using Palimpsest operational semantics will allow applications to
define conditions to determine if a conflict should be regarded as this drastic a consis-
tency problem. Our goal is to define the best possible default resolution, for applications
that do not require such rigid consistency guarantees. Therefore, I will not mention this
option explicitly again for any of the conflict cases discussed.
• Relax the strict ordering condition on sequences. This changes the definition of sequence
so that a position in the sequence could hold a set of values, rather than just a single
value. User resolution of such conflicts would then require some additional operation
that would allow the relative ordering of two identical points to be specified. While this
Insert Delete Move Copy
Insert Point/Point
Delete Point/Range Range/Range
Move Point/Point
Point/Range
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
Copy Point/Point
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range
Point/Point
Point/Range
Range/Range