当前位置:网站首页>Serializability of concurrent scheduling
Serializability of concurrent scheduling
2022-07-05 21:59:00 【Short section senior】
Different scheduling of concurrent transactions by database management system may produce different results
Serial scheduling is correct
It is also true that the execution result is equivalent to serial scheduling , It is called serializable scheduling
Serializable scheduling
Serializable (Serializable) Dispatch
Concurrent execution of multiple transactions is correct , If and only if the result is the same as when these transactions are executed serially in a certain order
Serializability (Serializability)
It is the criterion for the correct scheduling of concurrent transactions
A given concurrent schedule , If and only if it is serializable , I think it's the right scheduling
[ example 11.2] Now there are two transactions , The following operations are included respectively :
Business T1: read B;A=B+1; Write back to A
Business T2: read A;B=A+1; Write back to B
Different scheduling strategies for these two transactions are given
Serial scheduling , Correct scheduling
hypothesis A、B The initial values of are 2.
Press T1→T2 The sequence execution result is A=3,B=4
Serial scheduling policy , Correct scheduling
hypothesis A、B The initial values of are 2.
T2→T1 The sequence execution result is B=3,A=4
Serial scheduling policy , Correct scheduling
Non serializable scheduling , Wrong scheduling
Execution results and (a)、(b) The results are all different
It's the wrong scheduling
Serializable scheduling , Correct scheduling
Execution results and serial scheduling (a) The execution results are the same
Is the right scheduling
Conflicts can be scheduled serially
Conflicts can be serialized
A more stringent condition than serializability
The scheduler in the commercial system adopts
Conflicting operations : It refers to the reading and writing operations of different transactions on the same data :
Ri(x) And Wj(x) /* Business Ti read x,Tj Write x, among i≠j*/
Wi(x) And Wj(x) /* Business Ti Write x,Tj Write x, among i≠j*/
Other operations are non conflicting operations
It can't be exchanged (Swap) The action of :
Two operations of the same transaction
Conflicting operations of different transactions
A dispatch Sc In the case of keeping the order of conflicting operations unchanged , Get another schedule by exchanging the order of two non conflicting transactions Sc’, If Sc’ It's serial , Call scheduling Sc Conflict serializable scheduling
If a scheduling conflict is serializable , Then it must be serializable scheduling
This method can be used to determine whether a schedule is conflict serializable
[ example 11.3] There is a dispatch today
Sc2 Equivalent to a serial scheduling T1,T2. therefore Sc1 Conflict serializable scheduling
Conflict serializable scheduling is a sufficient condition for serializable scheduling , It's not necessary . There is also serializable scheduling that does not meet the conflict serializability condition .
[ example 11.4] Yes 3 One transaction T1=W1(Y)W1(X),T2=W2(Y)W2(X),T3=W3(X)
Dispatch L1=W1(Y)W1(X)W2(Y)W2(X) W3(X) Is a serial scheduler .
Dispatch L2=W1(Y)W2(Y)W2(X)W1(X)W3(X) Does not satisfy conflict serializability . But scheduling L2 It's serializable , because L2 Execution results and scheduling L1 identical ,Y All the values of are equal to T2 Value ,X All the values of are equal to T3 Value
Welcome to join me for wechat exchange and discussion ( Please note csdn Add )
边栏推荐
- Oracle checkpoint queue - Analysis of the principle of instance crash recovery
- 多家呼吸机巨头产品近期被一级召回 呼吸机市场仍在增量竞争
- Kingbasees v8r3 cluster maintenance case -- online addition of standby database management node
- one hundred and twenty-three thousand four hundred and fifty-six
- Shell script, awk uses if, for process control
- How to add new fields to mongodb with code (all)
- Gcc9.5 offline installation
- 如何向mongoDB中添加新的字段附代码(全)
- C language knowledge points link
- Implementing Lmax disruptor queue from scratch (IV) principle analysis of multithreaded producer multiproducersequencer
猜你喜欢
The real situation of programmers
Daily question brushing record (XIV)
极狐公司官方澄清声明
Reptile practice
场景化面试:关于分布式锁的十问十答
【愚公系列】2022年7月 Go教学课程 003-IDE的安装和基本使用
华为快游戏调用登录接口失败,返回错误码 -1
【愚公系列】2022年7月 Go教学课程 004-Go代码注释
Li Kou ----- the maximum profit of operating Ferris wheel
Emotional analysis of wechat chat records on Valentine's day based on Text Mining
随机推荐
C language knowledge points link
他们主动布局(autolayout)环境的图像编辑器
Exercise 1 simple training of R language drawing
The real situation of programmers
Matlab | app designer · I used Matlab to make a real-time editor of latex formula
2.2.3 output of documents
Summarize the reasons for 2XX, 3xx, 4xx, 5xx status codes
Sorting out the problems encountered in MySQL built by pycharm connecting virtual machines
How to use tensorflow2 for cat and dog classification and recognition
HDU 4391 paint the wall segment tree (water
PyGame practical project: write Snake games with 300 lines of code
微服务链路风险分析
Gcc9.5 offline installation
Huawei cloud modelarts text classification - takeout comments
HYSBZ 2243 染色 (树链拆分)
MySQL disconnection reports an error MySQL ldb_ exceptions. OperationalError 4031, The client was disconnected by the server
regular expression
Analysis and test of ModbusRTU communication protocol
Cold violence -- another perspective of objective function setting
About the writing method of SQL field "this includes" and "included in" strings