在DBMS中,调度是什么意思?


事务必须满足DBMS的ACID特性,即

  • 原子性 - 全部执行或全部不执行事务。

  • 一致性 - 数据库在事务执行前后都必须保持一致。

  • 隔离性 - 事务必须以隔离的形式执行。

  • 持久性 - 在任何情况下发生故障都应该能够回滚。

调度定义为事务的执行顺序。调度维护每个单独事务中操作的顺序。调度是事务操作的安排。调度可能包含一组事务。

我们已经知道事务是一组操作。为了并发运行事务,我们以交错的方式安排或调度它们的操作。

调度分为两类,即:

串行调度

此调度中存在的事务按顺序执行,在Ti指令完成后,将执行Tj指令,其中j=i+1。

串行调度保证一致性如下:

对于2个事务,可能的串行调度总数 = 2。

对于3个事务,可能的串行调度总数 = 6。

2 transaction        3 transaction
    T1->T2            T1->T2->T3
    T2->T1            T1->T3->T2
                      T2->T1->T3
                      T2->T3->T1
                     T3->T1->T2
                     T3->T2->T1

如果n = 事务数,则可能的串行调度数 = n!。

串行调度总是给出正确的结果。但是,为了提高时间效率,我们遵循并发调度。因此,我们必须确保并发调度的可串行化。

并发调度

多个事务可以以交错的方式执行,但要遵守上述ACID特性。

优点

并发调度的优点如下:

  • 提高吞吐量(即每单位时间完成的事务数)。

  • 减少等待时间。

示例

T1= 90sec
T2= 500sec
T3= 5sec.

如果我们按T1->T2->T3顺序执行,则事务T3等待590秒,因此我们采用非串行或并发事务来减少等待时间。

即 T3 -> T1 -> T2。

并发事务的缺点是并发事务的执行可能导致不一致。

更新于:2021年7月6日

3K+ 次浏览

启动您的职业生涯

通过完成课程获得认证

开始
广告