sathya peri, iit patna, india, sathya@mun
DESCRIPTION
Efficient Non-Blocking Conflict Notion for Nested Transactions. Sathya Peri, IIT Patna, India, [email protected] K.Vidyasankar, Memorial University, St John’s, Canada, [email protected]. 1. Overview. Introduction to Closed Nested Transactions Write and Read operations in closed nested transactions - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/1.jpg)
Sathya Peri, IIT Patna, India, [email protected], Memorial University, St John’s, Canada, [email protected]
1
Efficient Non-Blocking Conflict Notion for Nested Transactions
![Page 2: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/2.jpg)
Overview
2
Introduction to Closed Nested TransactionsWrite and Read operations in closed nested
transactionslastWrite definition
Specification of lastWrite operations for read:
Blocking specifiction, lwSpecNon-blocking specification, nblwSpec
Non-blocking Conflict notion
![Page 3: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/3.jpg)
Nesting of Transactions
3
A transaction is nested: if it invokes another transaction
Composing of transaction can be achieved through nestingComposition: basis of modular programming
Different types of nesting: Closed, Open and Flat
![Page 4: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/4.jpg)
Our Focus: Closed Nesting
4
We focus only on nested transactions with read and write operations
Let P be a parent transaction which invokes a sub-transaction S
In closed nesting, when the sub-transaction S commits its effects are not visible to other 'external'
transactions immediately, i.e., it is localthey become visible when its parent
transaction P commitsAbort of the sub-transaction S has no affect
on P
![Page 5: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/5.jpg)
Illustration: Closed Nesting
5
Memory
x=5
P
S
Q
Closed Nesting
x=10
write(x,10)
read(x) = 5read(x) = 10
committed
committed
![Page 6: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/6.jpg)
Background Information: Schedule Representation
Schedule: r11(x) r211(y) w212(y) c21 w12(y) c1 r221(y) w222(z) c22 a2 r31(z) w32(b) c1
6
tR
t1
t2 t3
t21 t22
r211(y)
w212(y)
r221(y)
w222(z)
w32(b)
r31(z)
r11(x)
w12(y)
tinittfin
![Page 7: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/7.jpg)
Write Operation – Lazy Write approachA transaction maintains a local buffer for
every data-item it writes to.All the writes of a transaction are onto the
local buffers.When the transaction commits, the
contents of the buffers are merged with its parent’s buffers.
On abort the buffers are discarded
7
![Page 8: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/8.jpg)
Schedule Augmentation: Commit WritesWe augment a schedule with extra write
operations: Commit Write operationsIn a schedule,
There is a commit-write operation for every data-item, a committed (sub)transaction writes to
Aborted (sub) transactions do not have commit-write operations
A commit-write represents the merging of a write of a transaction on a data-item with its parent’s write
Simple memory write operation’s commit write is itself
8
![Page 9: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/9.jpg)
Background Information: Schedule Representation
Augmented Schedule: r11(x) r211(y) w212(y) w21
212(y) c21 w12(y) w112(y) c1 r221(y) w222(z)
w22222(z) c22 a2 r31(z) w32(b) w3
32(b) c3
9
tR
t1
t2 t3
t21 t22
r211(y)
w212(y)
r221(y)
w222(z)
w32(b)
r31(z)
r11(x)
w12(y)
tinittfin
![Page 10: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/10.jpg)
Observation on Write and Commit OperationsThe write operation of a nested transaction
ts involves only its local buffers
The commit of a sub-transaction ts with parent tp only involves the buffers of tp
Observation: Write and Commit operations be implemented atomically, possibly using locks
10
![Page 11: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/11.jpg)
Read Operation – Closest AncestorA transaction performing a read operation
on data-item d starts with its local write buffers.
If the data item is not present, then it accesses the buffers of its ancestors in
increasing order of heightreads from the buffers of an ancestor closest
to itA write operation read by a given read
operation is denoted as the read’s lastWrite.
11
![Page 12: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/12.jpg)
lastWrite Specification: Non-nested transactionsIn single version database schedules, the
lastWrite for a read operation ri(x) belonging to transaction ti is:
The previous closest write on the data-item x by a transaction ti, wj(x)
For instance consider the following schedule of non-nested transactions: r1(x) r2(x) w1(z) r2(y) w2(y) r1(z) w3(z)
lastWrite of r1(z) is w1(z)
12
![Page 13: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/13.jpg)
lastWrite Specification: Nested transactionsIn nested transactions, by reading from the
closest ancestor the notion of lastWrite can be defined
The lastWrite of a read operation ri(x) in a nested transaction is either a simple write or committed write wj(x) which:Occurs before the readIs a peer of the read or the peer of an
ancestor of the readIs closest in terms of tree heightIs closest in terms of schedule distance We denote this specification of lastWrite as
lwSpec13
![Page 14: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/14.jpg)
Examples of LastWrite using lwSpec
r11(x) : init(x), r211(y):init(y), r221(y): w21212(y)
r31(z):init(z)
14
tR
t1
t2 t3
t21 t22
r211(y)
w212(y)
r221(y)
w222(z)
w32(b)
r31(z)
r11(x)
w12(y)
tinittfin
![Page 15: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/15.jpg)
Limitations of lwSpeclwSpec implicitly assumes that the read
operations are atomicSpecifically, it assumes that no other
operation is being executed when a read is in progress
A read operation that follows closest ancestor option, involves buffers of multiple transactionsHence can not be implemented atomicallyEach read operation is represented as a
leaf node in the treeTo correctly capture the read, we
assume that the node implies the instant the read completes
15
![Page 16: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/16.jpg)
Limitations of lwSpec: illustrationConsider a nested transaction ti at level 10
(in the tree) wishing to read x, ri(x). Consider this sequence
When the control (of the read) reaches a transaction tj at level 9, it does not find any buffer for x
The control goes to transaction tk at level 8 and still does not find x. At that point suppose transaction tj writes to x
The control finally reaches a transaction tj
at level 7 and reads x This implies that the last two conditions of the
lwSpec are not true. 16
![Page 17: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/17.jpg)
Non-blocking lastWrite Specification: nblwSpecThe lastWrite of a read operation ri(x) in a
nested transaction is either a simple write or committed write wj(x) which:Occurs before the readIs a peer of the read or the peer of an
ancestor of the readWe denote this specification of lastWrite as
nblwSpecIt must be noted that given a schedule,
for a given read ri(x), there could be multiple writes in the
schedule that satisfy the nblwSpec (unlike lwSpec, where there is only one write)
thus, in this case an external entity should specify the lastWrite for each read operation
17
![Page 18: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/18.jpg)
lastWrite Specification and Conflict notionBased on the specification of the lastWrite,
the correctness for the correctness criteria can be defined
Two data operations on the same data-item are conflicting:
if one of them is a write operationThen, based on the correctness criteria,
accurate conflict notions can be defined• Using accurate conflict notion, efficient
algorithms can be devised• Similar to Conflict Serializability in
databases18
![Page 19: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/19.jpg)
External ReadsFor a transaction, we define
External-read: A read operation belonging to a descendant, whose lastWrite is external to the transaction
A simple-memory read is an external read of itself
19
![Page 20: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/20.jpg)
Non-blocking Conflict NotionFor any two nodes (transactions/simple
memory operations) in the tree na and nb, which contain two operations oa and ob are in conflict if:
w-w conflict: oa and ob are commit-writes respectively wa and wb
w-r conflict: oa is a commit-write of na, wa and ob is an external read of nb, rb .
r-w conflict: oa is an external-read of na, ra and ob is a commit-write of nb,wb.Let the lastWrite of ra be wl . This conflict is true if S.ord(wl) < S.ord(wb) and S.level(wl) < S.level(wb)
20
![Page 21: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/21.jpg)
ConclusionCharacterized the non-blocking
specification of lastWrites, nblwSpecDeveloped conflict notions based on these
non-blocking specification
21
![Page 22: Sathya Peri, IIT Patna, India, sathya@mun](https://reader031.vdocuments.us/reader031/viewer/2022012406/568132a8550346895d994b57/html5/thumbnails/22.jpg)
Questions?
22